tiny-ui 1.0.2 → 1.0.3

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 (371) hide show
  1. package/dist/styles/index.css +2 -2
  2. package/dist/styles/index.css.map +1 -1
  3. package/dist/styles/index.min.css +1 -1
  4. package/dist/styles/index.min.css.map +1 -1
  5. package/dist/tiny.min.js +1 -1
  6. package/dist/tiny.min.js.map +1 -1
  7. package/es/alert/style/_index.scss +72 -0
  8. package/es/alert/style/_mixin.scss +5 -0
  9. package/es/alert/style/css.js +2 -0
  10. package/es/anchor/style/_index.scss +83 -0
  11. package/es/anchor/style/css.js +3 -0
  12. package/es/aspect-ratio/style/_index.scss +22 -0
  13. package/es/aspect-ratio/style/css.js +2 -0
  14. package/es/auto-complete/style/_index.scss +58 -0
  15. package/es/auto-complete/style/css.js +2 -0
  16. package/es/avatar/style/_index.scss +80 -0
  17. package/es/avatar/style/css.js +2 -0
  18. package/es/back-top/style/_index.scss +25 -0
  19. package/es/back-top/style/css.js +2 -0
  20. package/es/badge/style/_index.scss +60 -0
  21. package/es/badge/style/_mixin.scss +11 -0
  22. package/es/badge/style/css.js +2 -0
  23. package/es/breadcrumb/style/_index.scss +38 -0
  24. package/es/breadcrumb/style/css.js +2 -0
  25. package/es/button/style/_index.scss +215 -0
  26. package/es/button/style/_mixin.scss +45 -0
  27. package/es/button/style/css.js +2 -0
  28. package/es/calendar/style/_index.scss +190 -0
  29. package/es/calendar/style/css.js +2 -0
  30. package/es/card/style/_index.scss +57 -0
  31. package/es/card/style/_mixin.scss +4 -0
  32. package/es/card/style/css.js +2 -0
  33. package/es/carousel/style/_index.scss +158 -0
  34. package/es/carousel/style/css.js +2 -0
  35. package/es/cascader/style/_index.scss +162 -0
  36. package/es/cascader/style/css.js +2 -0
  37. package/es/checkbox/style/_index.scss +139 -0
  38. package/es/checkbox/style/css.js +2 -0
  39. package/es/collapse/style/_index.scss +101 -0
  40. package/es/collapse/style/css.js +2 -0
  41. package/es/collapse-transition/style/_index.scss +4 -0
  42. package/es/collapse-transition/style/css.js +2 -0
  43. package/es/color-picker/style/_index.scss +196 -0
  44. package/es/color-picker/style/css.js +2 -0
  45. package/es/date-picker/style/_index.scss +272 -0
  46. package/es/date-picker/style/css.js +2 -0
  47. package/es/descriptions/style/_index.scss +116 -0
  48. package/es/descriptions/style/css.js +2 -0
  49. package/es/divider/style/_index.scss +80 -0
  50. package/es/divider/style/css.js +2 -0
  51. package/es/drawer/style/_index.scss +152 -0
  52. package/es/drawer/style/css.js +4 -0
  53. package/es/dropdown/style/_index.scss +37 -0
  54. package/es/dropdown/style/css.js +4 -0
  55. package/es/empty/style/_index.scss +26 -0
  56. package/es/empty/style/css.js +2 -0
  57. package/es/flex/style/_index.scss +5 -0
  58. package/es/flex/style/css.js +2 -0
  59. package/es/flip/style/_index.scss +61 -0
  60. package/es/flip/style/css.js +2 -0
  61. package/es/form/style/_index.scss +93 -0
  62. package/es/form/style/css.js +3 -0
  63. package/es/grid/style/_index.scss +90 -0
  64. package/es/grid/style/css.js +2 -0
  65. package/es/icon/style/_index.scss +16 -0
  66. package/es/icon/style/css.js +2 -0
  67. package/es/image/style/_index.scss +9 -0
  68. package/es/image/style/css.js +2 -0
  69. package/es/input/style/_index.scss +180 -0
  70. package/es/input/style/_mixin.scss +38 -0
  71. package/es/input/style/css.js +2 -0
  72. package/es/input-number/style/_index.scss +142 -0
  73. package/es/input-number/style/css.js +3 -0
  74. package/es/input-password/style/_index.scss +20 -0
  75. package/es/input-password/style/css.js +3 -0
  76. package/es/keyboard/style/_index.scss +23 -0
  77. package/es/keyboard/style/css.js +2 -0
  78. package/es/layout/style/_index.scss +82 -0
  79. package/es/layout/style/css.js +2 -0
  80. package/es/link/style/_index.scss +17 -0
  81. package/es/link/style/css.js +2 -0
  82. package/es/list/style/_index.scss +141 -0
  83. package/es/list/style/css.js +2 -0
  84. package/es/loader/style/_index.scss +142 -0
  85. package/es/loader/style/css.js +2 -0
  86. package/es/loading-bar/style/_index.scss +17 -0
  87. package/es/loading-bar/style/css.js +2 -0
  88. package/es/menu/style/_index.scss +183 -0
  89. package/es/menu/style/_mixin.scss +16 -0
  90. package/es/menu/style/css.js +4 -0
  91. package/es/message/style/_index.scss +59 -0
  92. package/es/message/style/css.js +2 -0
  93. package/es/modal/style/_index.scss +116 -0
  94. package/es/modal/style/css.js +5 -0
  95. package/es/native-select/style/_index.scss +65 -0
  96. package/es/native-select/style/_mixin.scss +4 -0
  97. package/es/native-select/style/css.js +2 -0
  98. package/es/notification/style/_index.scss +66 -0
  99. package/es/notification/style/css.js +2 -0
  100. package/es/overlay/style/_index.scss +51 -0
  101. package/es/overlay/style/css.js +2 -0
  102. package/es/pagination/style/_index.scss +143 -0
  103. package/es/pagination/style/css.js +2 -0
  104. package/es/pop-confirm/style/_index.scss +25 -0
  105. package/es/pop-confirm/style/css.js +5 -0
  106. package/es/popover/style/_index.scss +42 -0
  107. package/es/popover/style/css.js +4 -0
  108. package/es/popup/style/_index.scss +84 -0
  109. package/es/popup/style/css.js +4 -0
  110. package/es/progress/style/_index.scss +170 -0
  111. package/es/progress/style/css.js +2 -0
  112. package/es/radio/style/_index.scss +86 -0
  113. package/es/radio/style/css.js +2 -0
  114. package/es/rate/style/_index.scss +31 -0
  115. package/es/rate/style/css.js +2 -0
  116. package/es/result/style/_index.scss +48 -0
  117. package/es/result/style/css.js +2 -0
  118. package/es/scroll-indicator/style/_index.scss +15 -0
  119. package/es/scroll-indicator/style/css.js +2 -0
  120. package/es/segmented/style/_index.scss +93 -0
  121. package/es/segmented/style/css.js +2 -0
  122. package/es/select/style/_index.scss +313 -0
  123. package/es/select/style/css.js +4 -0
  124. package/es/skeleton/style/_index.scss +42 -0
  125. package/es/skeleton/style/css.js +2 -0
  126. package/es/slider/style/_index.scss +177 -0
  127. package/es/slider/style/css.js +4 -0
  128. package/es/space/style/_index.scss +25 -0
  129. package/es/space/style/css.js +2 -0
  130. package/es/speed-dial/style/_index.scss +230 -0
  131. package/es/speed-dial/style/css.js +2 -0
  132. package/es/split/style/_index.scss +98 -0
  133. package/es/split/style/css.js +2 -0
  134. package/es/split-button/style/_index.scss +9 -0
  135. package/es/split-button/style/css.js +5 -0
  136. package/es/statistic/style/_index.scss +31 -0
  137. package/es/statistic/style/css.js +2 -0
  138. package/es/steps/style/_index.scss +208 -0
  139. package/es/steps/style/css.js +2 -0
  140. package/es/sticky/style/_index.scss +8 -0
  141. package/es/sticky/style/css.js +2 -0
  142. package/es/strength-indicator/style/_index.scss +46 -0
  143. package/es/strength-indicator/style/css.js +2 -0
  144. package/es/style/_animation.scss +31 -0
  145. package/es/style/_component.scss +78 -0
  146. package/es/style/_font.scss +981 -0
  147. package/es/style/_mixins.scss +13 -0
  148. package/es/style/_normalise.scss +405 -0
  149. package/es/style/_theme.scss +26 -0
  150. package/es/style/_tokens.scss +61 -0
  151. package/es/style/_variables.scss +266 -0
  152. package/es/style/fonts/iconfont.eot +0 -0
  153. package/es/style/fonts/iconfont.svg +752 -0
  154. package/es/style/fonts/iconfont.ttf +0 -0
  155. package/es/style/fonts/iconfont.woff +0 -0
  156. package/es/style/index.css +10048 -0
  157. package/es/style/index.scss +7 -0
  158. package/es/style/themes/_dark.scss +380 -0
  159. package/es/style/themes/_light.scss +380 -0
  160. package/es/switch/style/_index.scss +144 -0
  161. package/es/switch/style/_mixin.scss +16 -0
  162. package/es/switch/style/css.js +2 -0
  163. package/es/table/style/_index.scss +143 -0
  164. package/es/table/style/css.js +2 -0
  165. package/es/tabs/style/css.js +2 -0
  166. package/es/tabs/style/index.css +241 -0
  167. package/es/tabs/style/index.scss +315 -0
  168. package/es/tag/style/_index.scss +119 -0
  169. package/es/tag/style/css.js +2 -0
  170. package/es/textarea/style/_index.scss +28 -0
  171. package/es/textarea/style/css.js +4 -0
  172. package/es/time-picker/style/_index.scss +212 -0
  173. package/es/time-picker/style/css.js +2 -0
  174. package/es/timeline/style/_index.scss +91 -0
  175. package/es/timeline/style/css.js +2 -0
  176. package/es/tooltip/style/_index.scss +41 -0
  177. package/es/tooltip/style/css.js +4 -0
  178. package/es/transfer/style/_index.scss +98 -0
  179. package/es/transfer/style/css.js +6 -0
  180. package/es/transition/style/_index.scss +20 -0
  181. package/es/transition/style/_mixin.scss +58 -0
  182. package/es/transition/style/css.js +2 -0
  183. package/es/tree/style/_index.scss +66 -0
  184. package/es/tree/style/css.js +4 -0
  185. package/es/typography/style/_index.scss +126 -0
  186. package/es/typography/style/css.js +2 -0
  187. package/es/upload/style/_index.scss +99 -0
  188. package/es/upload/style/css.js +4 -0
  189. package/lib/alert/style/_index.scss +72 -0
  190. package/lib/alert/style/_mixin.scss +5 -0
  191. package/lib/alert/style/css.js +4 -0
  192. package/lib/anchor/style/_index.scss +83 -0
  193. package/lib/anchor/style/css.js +5 -0
  194. package/lib/aspect-ratio/style/_index.scss +22 -0
  195. package/lib/aspect-ratio/style/css.js +4 -0
  196. package/lib/auto-complete/style/_index.scss +58 -0
  197. package/lib/auto-complete/style/css.js +4 -0
  198. package/lib/avatar/style/_index.scss +80 -0
  199. package/lib/avatar/style/css.js +4 -0
  200. package/lib/back-top/style/_index.scss +25 -0
  201. package/lib/back-top/style/css.js +4 -0
  202. package/lib/badge/style/_index.scss +60 -0
  203. package/lib/badge/style/_mixin.scss +11 -0
  204. package/lib/badge/style/css.js +4 -0
  205. package/lib/breadcrumb/style/_index.scss +38 -0
  206. package/lib/breadcrumb/style/css.js +4 -0
  207. package/lib/button/style/_index.scss +215 -0
  208. package/lib/button/style/_mixin.scss +45 -0
  209. package/lib/button/style/css.js +4 -0
  210. package/lib/calendar/style/_index.scss +190 -0
  211. package/lib/calendar/style/css.js +4 -0
  212. package/lib/card/style/_index.scss +57 -0
  213. package/lib/card/style/_mixin.scss +4 -0
  214. package/lib/card/style/css.js +4 -0
  215. package/lib/carousel/style/_index.scss +158 -0
  216. package/lib/carousel/style/css.js +4 -0
  217. package/lib/cascader/style/_index.scss +162 -0
  218. package/lib/cascader/style/css.js +4 -0
  219. package/lib/checkbox/style/_index.scss +139 -0
  220. package/lib/checkbox/style/css.js +4 -0
  221. package/lib/collapse/style/_index.scss +101 -0
  222. package/lib/collapse/style/css.js +4 -0
  223. package/lib/collapse-transition/style/_index.scss +4 -0
  224. package/lib/collapse-transition/style/css.js +4 -0
  225. package/lib/color-picker/style/_index.scss +196 -0
  226. package/lib/color-picker/style/css.js +4 -0
  227. package/lib/date-picker/style/_index.scss +272 -0
  228. package/lib/date-picker/style/css.js +4 -0
  229. package/lib/descriptions/style/_index.scss +116 -0
  230. package/lib/descriptions/style/css.js +4 -0
  231. package/lib/divider/style/_index.scss +80 -0
  232. package/lib/divider/style/css.js +4 -0
  233. package/lib/drawer/style/_index.scss +152 -0
  234. package/lib/drawer/style/css.js +6 -0
  235. package/lib/dropdown/style/_index.scss +37 -0
  236. package/lib/dropdown/style/css.js +6 -0
  237. package/lib/empty/style/_index.scss +26 -0
  238. package/lib/empty/style/css.js +4 -0
  239. package/lib/flex/style/_index.scss +5 -0
  240. package/lib/flex/style/css.js +4 -0
  241. package/lib/flip/style/_index.scss +61 -0
  242. package/lib/flip/style/css.js +4 -0
  243. package/lib/form/style/_index.scss +93 -0
  244. package/lib/form/style/css.js +5 -0
  245. package/lib/grid/style/_index.scss +90 -0
  246. package/lib/grid/style/css.js +4 -0
  247. package/lib/icon/style/_index.scss +16 -0
  248. package/lib/icon/style/css.js +4 -0
  249. package/lib/image/style/_index.scss +9 -0
  250. package/lib/image/style/css.js +4 -0
  251. package/lib/input/style/_index.scss +180 -0
  252. package/lib/input/style/_mixin.scss +38 -0
  253. package/lib/input/style/css.js +4 -0
  254. package/lib/input-number/style/_index.scss +142 -0
  255. package/lib/input-number/style/css.js +5 -0
  256. package/lib/input-password/style/_index.scss +20 -0
  257. package/lib/input-password/style/css.js +5 -0
  258. package/lib/keyboard/style/_index.scss +23 -0
  259. package/lib/keyboard/style/css.js +4 -0
  260. package/lib/layout/style/_index.scss +82 -0
  261. package/lib/layout/style/css.js +4 -0
  262. package/lib/link/style/_index.scss +17 -0
  263. package/lib/link/style/css.js +4 -0
  264. package/lib/list/style/_index.scss +141 -0
  265. package/lib/list/style/css.js +4 -0
  266. package/lib/loader/style/_index.scss +142 -0
  267. package/lib/loader/style/css.js +4 -0
  268. package/lib/loading-bar/style/_index.scss +17 -0
  269. package/lib/loading-bar/style/css.js +4 -0
  270. package/lib/menu/style/_index.scss +183 -0
  271. package/lib/menu/style/_mixin.scss +16 -0
  272. package/lib/menu/style/css.js +6 -0
  273. package/lib/message/style/_index.scss +59 -0
  274. package/lib/message/style/css.js +4 -0
  275. package/lib/modal/style/_index.scss +116 -0
  276. package/lib/modal/style/css.js +7 -0
  277. package/lib/native-select/style/_index.scss +65 -0
  278. package/lib/native-select/style/_mixin.scss +4 -0
  279. package/lib/native-select/style/css.js +4 -0
  280. package/lib/notification/style/_index.scss +66 -0
  281. package/lib/notification/style/css.js +4 -0
  282. package/lib/overlay/style/_index.scss +51 -0
  283. package/lib/overlay/style/css.js +4 -0
  284. package/lib/pagination/style/_index.scss +143 -0
  285. package/lib/pagination/style/css.js +4 -0
  286. package/lib/pop-confirm/style/_index.scss +25 -0
  287. package/lib/pop-confirm/style/css.js +7 -0
  288. package/lib/popover/style/_index.scss +42 -0
  289. package/lib/popover/style/css.js +6 -0
  290. package/lib/popup/style/_index.scss +84 -0
  291. package/lib/popup/style/css.js +6 -0
  292. package/lib/progress/style/_index.scss +170 -0
  293. package/lib/progress/style/css.js +4 -0
  294. package/lib/radio/style/_index.scss +86 -0
  295. package/lib/radio/style/css.js +4 -0
  296. package/lib/rate/style/_index.scss +31 -0
  297. package/lib/rate/style/css.js +4 -0
  298. package/lib/result/style/_index.scss +48 -0
  299. package/lib/result/style/css.js +4 -0
  300. package/lib/scroll-indicator/style/_index.scss +15 -0
  301. package/lib/scroll-indicator/style/css.js +4 -0
  302. package/lib/segmented/style/_index.scss +93 -0
  303. package/lib/segmented/style/css.js +4 -0
  304. package/lib/select/style/_index.scss +313 -0
  305. package/lib/select/style/css.js +6 -0
  306. package/lib/skeleton/style/_index.scss +42 -0
  307. package/lib/skeleton/style/css.js +4 -0
  308. package/lib/slider/style/_index.scss +177 -0
  309. package/lib/slider/style/css.js +6 -0
  310. package/lib/space/style/_index.scss +25 -0
  311. package/lib/space/style/css.js +4 -0
  312. package/lib/speed-dial/style/_index.scss +230 -0
  313. package/lib/speed-dial/style/css.js +4 -0
  314. package/lib/split/style/_index.scss +98 -0
  315. package/lib/split/style/css.js +4 -0
  316. package/lib/split-button/style/_index.scss +9 -0
  317. package/lib/split-button/style/css.js +7 -0
  318. package/lib/statistic/style/_index.scss +31 -0
  319. package/lib/statistic/style/css.js +4 -0
  320. package/lib/steps/style/_index.scss +208 -0
  321. package/lib/steps/style/css.js +4 -0
  322. package/lib/sticky/style/_index.scss +8 -0
  323. package/lib/sticky/style/css.js +4 -0
  324. package/lib/strength-indicator/style/_index.scss +46 -0
  325. package/lib/strength-indicator/style/css.js +4 -0
  326. package/lib/style/_animation.scss +31 -0
  327. package/lib/style/_component.scss +78 -0
  328. package/lib/style/_font.scss +981 -0
  329. package/lib/style/_mixins.scss +13 -0
  330. package/lib/style/_normalise.scss +405 -0
  331. package/lib/style/_theme.scss +26 -0
  332. package/lib/style/_tokens.scss +61 -0
  333. package/lib/style/_variables.scss +266 -0
  334. package/lib/style/fonts/iconfont.eot +0 -0
  335. package/lib/style/fonts/iconfont.svg +752 -0
  336. package/lib/style/fonts/iconfont.ttf +0 -0
  337. package/lib/style/fonts/iconfont.woff +0 -0
  338. package/lib/style/index.css +10048 -0
  339. package/lib/style/index.scss +7 -0
  340. package/lib/style/themes/_dark.scss +380 -0
  341. package/lib/style/themes/_light.scss +380 -0
  342. package/lib/switch/style/_index.scss +144 -0
  343. package/lib/switch/style/_mixin.scss +16 -0
  344. package/lib/switch/style/css.js +4 -0
  345. package/lib/table/style/_index.scss +143 -0
  346. package/lib/table/style/css.js +4 -0
  347. package/lib/tabs/style/css.js +4 -0
  348. package/lib/tabs/style/index.css +241 -0
  349. package/lib/tabs/style/index.scss +315 -0
  350. package/lib/tag/style/_index.scss +119 -0
  351. package/lib/tag/style/css.js +4 -0
  352. package/lib/textarea/style/_index.scss +28 -0
  353. package/lib/textarea/style/css.js +6 -0
  354. package/lib/time-picker/style/_index.scss +212 -0
  355. package/lib/time-picker/style/css.js +4 -0
  356. package/lib/timeline/style/_index.scss +91 -0
  357. package/lib/timeline/style/css.js +4 -0
  358. package/lib/tooltip/style/_index.scss +41 -0
  359. package/lib/tooltip/style/css.js +6 -0
  360. package/lib/transfer/style/_index.scss +98 -0
  361. package/lib/transfer/style/css.js +8 -0
  362. package/lib/transition/style/_index.scss +20 -0
  363. package/lib/transition/style/_mixin.scss +58 -0
  364. package/lib/transition/style/css.js +4 -0
  365. package/lib/tree/style/_index.scss +66 -0
  366. package/lib/tree/style/css.js +6 -0
  367. package/lib/typography/style/_index.scss +126 -0
  368. package/lib/typography/style/css.js +4 -0
  369. package/lib/upload/style/_index.scss +99 -0
  370. package/lib/upload/style/css.js +6 -0
  371. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tiny.min.js","mappings":"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","sources":["webpack://tiny/webpack/universalModuleDefinition","webpack://tiny/./node_modules/react-dom/client.js","webpack://tiny/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://tiny/./node_modules/react/jsx-runtime.js","webpack://tiny/external umd {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://tiny/external umd {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack://tiny/./node_modules/classnames/index.js","webpack://tiny/webpack/bootstrap","webpack://tiny/webpack/runtime/compat get default export","webpack://tiny/webpack/runtime/define property getters","webpack://tiny/webpack/runtime/hasOwnProperty shorthand","webpack://tiny/webpack/runtime/make namespace object","webpack://tiny/./components/config-provider/config-context.tsx","webpack://tiny/./components/_utils/general.ts","webpack://tiny/./components/_utils/components.tsx","webpack://tiny/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://tiny/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://tiny/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://tiny/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://tiny/./node_modules/dom-helpers/esm/removeClass.js","webpack://tiny/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://tiny/./node_modules/react-transition-group/esm/utils/reflow.js","webpack://tiny/./node_modules/react-transition-group/esm/Transition.js","webpack://tiny/./node_modules/react-transition-group/esm/CSSTransition.js","webpack://tiny/./node_modules/dom-helpers/esm/addClass.js","webpack://tiny/./node_modules/dom-helpers/esm/hasClass.js","webpack://tiny/./components/transition/transition.tsx","webpack://tiny/./components/transition/index.tsx","webpack://tiny/./components/alert/alert.tsx","webpack://tiny/./components/alert/index.tsx","webpack://tiny/./components/anchor/anchor-context.ts","webpack://tiny/./components/_utils/dom.ts","webpack://tiny/./components/sticky/sticky.tsx","webpack://tiny/./components/sticky/index.tsx","webpack://tiny/./components/anchor/anchor.tsx","webpack://tiny/./components/anchor/anchor-link.tsx","webpack://tiny/./components/anchor/index.tsx","webpack://tiny/./components/aspect-ratio/aspect-ratio.tsx","webpack://tiny/./components/aspect-ratio/index.tsx","webpack://tiny/./components/_utils/hooks.tsx","webpack://tiny/./components/_utils/useCombobox.ts","webpack://tiny/./components/_utils/enum.ts","webpack://tiny/./components/input/input.tsx","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/math.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://tiny/./node_modules/@popperjs/core/lib/enums.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://tiny/./node_modules/@popperjs/core/lib/createPopper.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/within.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://tiny/./node_modules/@popperjs/core/lib/popper.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://tiny/./components/portal/index.tsx","webpack://tiny/./components/portal/portal.tsx","webpack://tiny/./components/popup/index.tsx","webpack://tiny/./components/popup/popup.tsx","webpack://tiny/./components/auto-complete/auto-complete.tsx","webpack://tiny/./components/avatar/avatar.tsx","webpack://tiny/./components/avatar/avatar-group.tsx","webpack://tiny/./components/avatar/index.tsx","webpack://tiny/./components/back-top/index.tsx","webpack://tiny/./components/back-top/back-top.tsx","webpack://tiny/./components/badge/badge.tsx","webpack://tiny/./components/badge/index.tsx","webpack://tiny/./components/breadcrumb/breadcrumb.tsx","webpack://tiny/./components/breadcrumb/breadcrumb-item.tsx","webpack://tiny/./components/breadcrumb/index.tsx","webpack://tiny/./components/button/button.tsx","webpack://tiny/./components/button/button-group.tsx","webpack://tiny/./components/button/index.tsx","webpack://tiny/./components/locale/en_US.ts","webpack://tiny/./components/intl-provider/intl-context.tsx","webpack://tiny/./components/_utils/use-locale.ts","webpack://tiny/./components/date-picker/utils.ts","webpack://tiny/./components/calendar/calendar.tsx","webpack://tiny/./components/calendar/index.tsx","webpack://tiny/./components/card/card.tsx","webpack://tiny/./components/card/card-content.tsx","webpack://tiny/./components/card/index.tsx","webpack://tiny/./components/carousel/carousel.tsx","webpack://tiny/./components/carousel/carousel-item.tsx","webpack://tiny/./components/carousel/index.tsx","webpack://tiny/./components/cascader/cascader.tsx","webpack://tiny/./components/cascader/index.tsx","webpack://tiny/./components/checkbox/checkbox-group-context.ts","webpack://tiny/./components/checkbox/checkbox.tsx","webpack://tiny/./components/checkbox/checkbox-group.tsx","webpack://tiny/./components/checkbox/index.tsx","webpack://tiny/./components/intl-provider/index.tsx","webpack://tiny/./components/intl-provider/intl-provider.tsx","webpack://tiny/./components/config-provider/config-provider.tsx","webpack://tiny/./components/config-provider/index.tsx","webpack://tiny/./components/copy-to-clipboard/copy-to-clipboard.tsx","webpack://tiny/./components/copy-to-clipboard/index.tsx","webpack://tiny/./components/grid/col.tsx","webpack://tiny/./components/col/index.tsx","webpack://tiny/./components/collapse/collapse-context.ts","webpack://tiny/./components/collapse/collapse.tsx","webpack://tiny/./components/collapse-transition/collapse-transition.tsx","webpack://tiny/./components/collapse-transition/index.tsx","webpack://tiny/./components/collapse/collapse-panel.tsx","webpack://tiny/./components/collapse/index.tsx","webpack://tiny/./components/color-picker/utils.ts","webpack://tiny/./components/color-picker/color-picker.tsx","webpack://tiny/./components/color-picker/index.tsx","webpack://tiny/./components/countdown/countdown.tsx","webpack://tiny/./components/countdown/index.tsx","webpack://tiny/./components/date-picker/picker-header.tsx","webpack://tiny/./components/date-picker/picker-day.tsx","webpack://tiny/./components/date-picker/picker-month.tsx","webpack://tiny/./components/date-picker/picker-year.tsx","webpack://tiny/./components/date-picker/date-picker.tsx","webpack://tiny/./components/date-picker/index.tsx","webpack://tiny/./components/descriptions/col.tsx","webpack://tiny/./components/descriptions/row.tsx","webpack://tiny/./components/descriptions/descriptions.tsx","webpack://tiny/./components/descriptions/descriptions-item.tsx","webpack://tiny/./components/descriptions/index.tsx","webpack://tiny/./components/divider/divider.tsx","webpack://tiny/./components/divider/index.tsx","webpack://tiny/./components/dropdown/dropdown.tsx","webpack://tiny/./components/dropdown/index.tsx","webpack://tiny/./components/overlay/overlay.tsx","webpack://tiny/./components/overlay/index.tsx","webpack://tiny/./components/drawer/drawer.tsx","webpack://tiny/./components/drawer/index.tsx","webpack://tiny/./components/empty/empty.tsx","webpack://tiny/./components/empty/index.tsx","webpack://tiny/./components/flex/flex.tsx","webpack://tiny/./components/flex/index.tsx","webpack://tiny/./components/flip/flip.tsx","webpack://tiny/./components/flip/flip-item.tsx","webpack://tiny/./components/flip/index.tsx","webpack://tiny/./components/_utils/object.ts","webpack://tiny/./components/form/form-helper.ts","webpack://tiny/./components/form/form-instance.ts","webpack://tiny/./components/form/form-instance-context.ts","webpack://tiny/./components/form/form-options-context.ts","webpack://tiny/./components/form/form.tsx","webpack://tiny/./components/grid/row.tsx","webpack://tiny/./components/form/form-item.tsx","webpack://tiny/./components/form/index.tsx","webpack://tiny/./components/form/use-form.ts","webpack://tiny/./components/icon/icon.tsx","webpack://tiny/./components/icon/index.tsx","webpack://tiny/./components/image/image.tsx","webpack://tiny/./components/image/index.tsx","webpack://tiny/./components/input/input-group.tsx","webpack://tiny/./components/input/input-group-addon.tsx","webpack://tiny/./components/input/index.tsx","webpack://tiny/./components/input-number/input-number.tsx","webpack://tiny/./components/input-number/index.tsx","webpack://tiny/./components/input-password/index.tsx","webpack://tiny/./components/input-password/input-password.tsx","webpack://tiny/./components/keyboard/keyboard.tsx","webpack://tiny/./components/keyboard/index.tsx","webpack://tiny/./components/layout/sidebar-context.ts","webpack://tiny/./components/layout/layout.tsx","webpack://tiny/./components/layout/sidebar.tsx","webpack://tiny/./components/layout/index.tsx","webpack://tiny/./components/link/link.tsx","webpack://tiny/./components/link/index.tsx","webpack://tiny/./components/_utils/use-virtual-scroll.ts","webpack://tiny/./components/pagination/pagination.tsx","webpack://tiny/./components/pagination/index.tsx","webpack://tiny/./components/list/list.tsx","webpack://tiny/./components/list/list-item.tsx","webpack://tiny/./components/list/list-item-meta.tsx","webpack://tiny/./components/list/index.tsx","webpack://tiny/./components/loader/indicator.tsx","webpack://tiny/./components/loader/loader.tsx","webpack://tiny/./components/loader/index.tsx","webpack://tiny/./components/loading-bar/loading-bar.tsx","webpack://tiny/./components/loading-bar/index.ts","webpack://tiny/./components/menu/menu-context.ts","webpack://tiny/./components/menu/menu.tsx","webpack://tiny/./components/menu/sub-menu-context.ts","webpack://tiny/./components/menu/menu-item.tsx","webpack://tiny/./components/menu/sub-menu.tsx","webpack://tiny/./components/menu/menu-item-group.tsx","webpack://tiny/./components/menu/menu-divider.tsx","webpack://tiny/./components/menu/index.tsx","webpack://tiny/./components/message/message.tsx","webpack://tiny/./components/message/message-container.tsx","webpack://tiny/./components/message/index.tsx","webpack://tiny/./components/native-select/native-select.tsx","webpack://tiny/./components/native-select/native-option.tsx","webpack://tiny/./components/native-select/native-opt-group.tsx","webpack://tiny/./components/native-select/index.tsx","webpack://tiny/./components/row/index.tsx","webpack://tiny/./components/modal/modal.tsx","webpack://tiny/./components/modal/modal-context.tsx","webpack://tiny/./components/modal/index.tsx","webpack://tiny/./components/notification/notification.tsx","webpack://tiny/./components/notification/notification-container.tsx","webpack://tiny/./components/notification/index.tsx","webpack://tiny/./components/popover/popover.tsx","webpack://tiny/./components/popover/index.tsx","webpack://tiny/./components/pop-confirm/pop-confirm.tsx","webpack://tiny/./components/pop-confirm/index.tsx","webpack://tiny/./components/progress/types.ts","webpack://tiny/./components/progress/circle.tsx","webpack://tiny/./components/progress/bar.tsx","webpack://tiny/./components/progress/index.tsx","webpack://tiny/./components/radio/radio-group-context.ts","webpack://tiny/./components/radio/radio.tsx","webpack://tiny/./components/radio/radio-group.tsx","webpack://tiny/./components/radio/index.tsx","webpack://tiny/./components/rate/rate-item.tsx","webpack://tiny/./components/rate/rate.tsx","webpack://tiny/./components/rate/index.tsx","webpack://tiny/./components/result/result.tsx","webpack://tiny/./components/result/index.tsx","webpack://tiny/./components/scroll-indicator/scroll-indicator.tsx","webpack://tiny/./components/scroll-indicator/index.tsx","webpack://tiny/./components/segmented/segmented.tsx","webpack://tiny/./components/segmented/index.tsx","webpack://tiny/./components/select/select-context.tsx","webpack://tiny/./components/select/select.tsx","webpack://tiny/./components/select/option.tsx","webpack://tiny/./components/select/opt-group.tsx","webpack://tiny/./components/select/index.tsx","webpack://tiny/./components/skeleton/skeleton.tsx","webpack://tiny/./components/skeleton/index.tsx","webpack://tiny/./components/tooltip/tooltip.tsx","webpack://tiny/./components/tooltip/index.tsx","webpack://tiny/./components/slider/slider.tsx","webpack://tiny/./components/slider/index.tsx","webpack://tiny/./components/split/resizer.tsx","webpack://tiny/./components/split/split-context.ts","webpack://tiny/./components/split/split-pane.tsx","webpack://tiny/./components/split/split.tsx","webpack://tiny/./components/split/index.tsx","webpack://tiny/./components/split-button/split-button.tsx","webpack://tiny/./components/split-button/index.tsx","webpack://tiny/./components/space/space.tsx","webpack://tiny/./components/space/index.tsx","webpack://tiny/./components/speed-dial/speed-dial-context.ts","webpack://tiny/./components/speed-dial/speed-dial.tsx","webpack://tiny/./components/speed-dial/speed-dial-action.tsx","webpack://tiny/./components/speed-dial/index.tsx","webpack://tiny/./components/steps/steps-context.ts","webpack://tiny/./components/steps/steps.tsx","webpack://tiny/./components/steps/steps-item.tsx","webpack://tiny/./components/steps/index.tsx","webpack://tiny/./components/statistic/statistic.tsx","webpack://tiny/./components/statistic/index.tsx","webpack://tiny/./components/strength-indicator/strength-indicator.tsx","webpack://tiny/./components/strength-indicator/index.tsx","webpack://tiny/./components/switch/switch.tsx","webpack://tiny/./components/switch/index.tsx","webpack://tiny/./components/table/table.tsx","webpack://tiny/./components/table/index.tsx","webpack://tiny/./components/tabs/tabs.tsx","webpack://tiny/./components/tabs/tab-panel.tsx","webpack://tiny/./components/tabs/index.tsx","webpack://tiny/./components/tag/types.ts","webpack://tiny/./components/tag/tag.tsx","webpack://tiny/./components/tag/checkable-tag.tsx","webpack://tiny/./components/tag/index.tsx","webpack://tiny/./components/textarea/textarea.tsx","webpack://tiny/./components/textarea/index.tsx","webpack://tiny/./components/timeline/timeline.tsx","webpack://tiny/./components/timeline/timeline-item.tsx","webpack://tiny/./components/timeline/index.tsx","webpack://tiny/./components/time-picker/time-panel.tsx","webpack://tiny/./components/time-picker/time-picker.tsx","webpack://tiny/./components/time-picker/index.tsx","webpack://tiny/./components/transfer/transfer-panel.tsx","webpack://tiny/./components/transfer/transfer.tsx","webpack://tiny/./components/transfer/index.tsx","webpack://tiny/./components/tree/tree-instance.ts","webpack://tiny/./components/tree/tree-node.tsx","webpack://tiny/./components/tree/tree.tsx","webpack://tiny/./components/tree/index.tsx","webpack://tiny/./components/typography/typography.tsx","webpack://tiny/./components/typography/paragraph.tsx","webpack://tiny/./components/typography/text.tsx","webpack://tiny/./components/typography/index.tsx","webpack://tiny/./components/typography/heading.tsx","webpack://tiny/./components/upload/ajax.ts","webpack://tiny/./components/upload/upload-list.tsx","webpack://tiny/./components/upload/dragger-cover.tsx","webpack://tiny/./components/upload/upload.tsx","webpack://tiny/./components/upload/index.tsx","webpack://tiny/./components/intl-provider/with-locale.tsx","webpack://tiny/./components/locale/zh_CN.ts","webpack://tiny/./components/_utils/use-theme.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"tiny\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"tiny\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__442__, __WEBPACK_EXTERNAL_MODULE__3__) {\nreturn ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__442__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React from 'react';\nimport { SizeType } from '../_utils/props';\nimport { SpaceSize } from '../space/types';\nimport { Locale } from '../locale/types';\n\nexport type ThemeMode = 'light' | 'dark' | 'system';\n\nexport interface ConfigContextProps {\n prefixCls?: string;\n componentSize?: SizeType;\n shimmer?: boolean;\n space?: SpaceSize;\n theme?: ThemeMode;\n locale?: Locale;\n}\n\nexport const ConfigContext = React.createContext<ConfigContextProps>({\n prefixCls: 'ty',\n componentSize: 'md',\n shimmer: false,\n space: 'sm',\n});\n","/**\n * Check whether the target is in the array\n * @param target\n * @param array\n */\nexport const isOneOf = (target: string, array: string | string[]) => {\n if (Array.isArray(array)) {\n return array.includes(target);\n }\n\n return array === target;\n};\n\n/**\n * Transfer camel char to dash format\n * @param str\n */\nexport const camelCaseToDash = (str: string) => {\n const regex = /[A-Z]/g;\n return str.replace(regex, (word: string) => {\n return '-' + word.toLowerCase();\n });\n};\n\n/**\n * Covert hex color to rgb color including alpha channel\n * @param color: hex color\n * @param opacity: max 1\n */\nexport const convertHexToRGBA = (color: string, opacity = 1): string => {\n if (/^#[0-9A-F]{6}$/i.test(color)) {\n const hex = color.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n\n return `rgba(${r},${g},${b},${opacity})`;\n }\n return color;\n};\n\n/**\n * Get class name from combining context prefix and customised class\n * @param suffixCls\n * @param contextPrefix\n * @param customisedCls\n */\nexport const getPrefixCls = (suffixCls: string, contextPrefix?: string, customisedCls?: string): string => {\n if (customisedCls) {\n return customisedCls;\n }\n return contextPrefix ? `${contextPrefix}-${suffixCls}` : `ty-${suffixCls}`;\n};\n","import React from 'react';\n\ntype IconProps = {\n className?: string;\n style?: React.CSSProperties;\n size?: number | string;\n color?: string;\n};\nexport const ArrowDown = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M472.064 751.552 72.832 352.32c-22.08-22.08-22.08-57.792 0-79.872 22.016-22.016 57.792-22.08 79.872 0L512 631.744l359.296-359.296c22.016-22.016 57.792-22.08 79.872 0 22.08 22.08 22.016 57.792 0 79.872l-399.232 399.232C529.856 773.568 494.144 773.568 472.064 751.552z\"\n />\n </svg>\n );\n};\n\nexport const PaperClip = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M596.600738 77.483387C707.652076-15.699749 863.952233-17.103951 945.87122 80.523296 1025.33565 175.225316 1000.817463 322.788809 897.886159 416.55918L500.872884 750.033876C428.941403 810.391556 330.343483 819.035113 279.34144 758.253245 228.350653 697.484792 254.004524 601.845857 325.904469 541.51464L549.255103 354.101205C568.4844 337.965909 597.16161 340.484261 613.234234 359.638868L613.234234 359.638868C629.339635 378.832538 626.827441 407.455341 607.577908 423.607617L384.227274 611.021052C346.503334 642.675196 335.433548 683.943896 348.847852 699.93044 362.276678 715.934291 404.796072 712.206837 442.550079 680.527464L829.892107 355.508911C905.161842 292.350105 923.282829 194.760822 876.364807 138.846101 829.422073 82.901929 730.238566 83.792991 654.923543 146.9898L207.957862 522.038537C112.028875 602.532515 99.523634 745.608046 180.046565 841.571538 260.588409 937.557569 403.622296 950.081865 499.571887 869.570599L901.909406 531.969334C921.04904 515.909275 949.653556 518.488625 965.72618 537.643231L965.72618 537.643231C981.831581 556.836901 979.334768 585.446798 960.232211 601.475747L557.894692 939.077011C423.555518 1051.800962 223.290899 1034.265449 110.540153 899.894342 0.612214 768.887326 14.525852 575.161364 139.830689 461.101188L596.600738 77.483387Z\"\n />\n </svg>\n );\n};\n\nexport const CheckCircle = (props: IconProps): React.ReactElement => {\n const { size = 20, color = '#52c41a', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m193.5 301.7l-210.6 292c-12.7 17.7-39 17.7-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\"\n />\n </svg>\n );\n};\n\nexport const CloseCircle = (props: IconProps): React.ReactElement => {\n const { size = 20, color = '#f44336', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m165.4 618.2l-66-0.3L512 563.4l-99.3 118.4-66.1 0.3c-4.4 0-8-3.5-8-8 0-1.9 0.7-3.7 1.9-5.2l130.1-155L340.5 359c-1.2-1.5-1.9-3.3-1.9-5.2 0-4.4 3.6-8 8-8l66.1 0.3L512 464.6l99.3-118.4 66-0.3c4.4 0 8 3.5 8 8 0 1.9-0.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\"\n />\n </svg>\n );\n};\n\nexport const WarningCircle = (props: IconProps): React.ReactElement => {\n const { size = 20, color = '#ff9800', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296z m32 440c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"\n />\n </svg>\n );\n};\n\nexport const InfoCircle = (props: IconProps): React.ReactElement => {\n const { size = 20, color = '#1890ff', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272z m-32-344c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"\n />\n </svg>\n );\n};\n\nexport const LoadingCircle = (props: IconProps): React.ReactElement => {\n const { size = 20, color = '#1890ff', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M512.064 963.296c-96.16 0-189.344-30.816-267.68-89.472-95.744-71.712-157.856-176.48-174.848-294.912C52.544 460.448 82.688 342.464 154.4 246.688c148.096-197.76 429.44-238.08 627.136-90.08 82.88 62.08 142.016 151.584 166.56 252 4.192 17.184-6.336 34.496-23.488 38.688-17.152 4.064-34.496-6.304-38.688-23.488-20.992-86.048-71.68-162.752-142.752-215.968-169.376-126.88-410.56-92.288-537.536 77.216-61.472 82.08-87.296 183.2-72.704 284.736 14.56 101.536 67.808 191.296 149.888 252.736 169.536 127.04 410.688 92.384 537.6-77.12 33.216-44.384 56-94.112 67.648-147.84 3.776-17.28 20.896-28.256 38.048-24.512 17.28 3.744 28.256 20.8 24.512 38.048-13.664 62.784-40.224 120.832-78.976 172.672-71.712 95.744-176.48 157.888-294.976 174.848a449.402 449.402 0 0 1-64.608 4.672z\"\n />\n </svg>\n );\n};\n\nexport const QuestionCircle = (props: IconProps): React.ReactElement => {\n const { size = 20, color = '#ff9800', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z m62.9-219.5c-18.5 7.1-30.9 25.1-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z\"\n />\n </svg>\n );\n};\n\nexport const Check = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M887.904 298.208c-12.864-12.064-33.152-11.488-45.216 1.408L415.936 753.984l-233.12-229.696c-12.608-12.416-32.864-12.288-45.28 0.32-12.416 12.576-12.256 32.864 0.352 45.248l256.48 252.672c0.096 0.096 0.224 0.128 0.32 0.224s0.128 0.224 0.224 0.32c2.016 1.92 4.448 3.008 6.784 4.288 1.152 0.672 2.144 1.664 3.36 2.144 3.776 1.472 7.776 2.24 11.744 2.24 4.192 0 8.384-0.832 12.288-2.496 1.312-0.544 2.336-1.664 3.552-2.368 2.4-1.408 4.896-2.592 6.944-4.672 0.096-0.096 0.128-0.256 0.224-0.352 0.064-0.096 0.192-0.128 0.288-0.224L889.28 343.424c12.16-12.832 11.488-33.088-1.376-45.216z\"\n />\n </svg>\n );\n};\n\nexport const Close = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M782.426059 824.924989l-584.588225-584.727395c-11.987009-11.990079-11.984962-31.42778 0.005116-43.414789 11.990079-11.987009 31.42778-11.984962 43.414789 0.005117l584.588225 584.727395c11.987009 11.990079 11.984962 31.42778-0.005116 43.414788-11.989055 11.988032-31.42778 11.984962-43.414789-0.005116z\"\n />\n <path\n fill={color}\n d=\"M197.768249 824.856427c-11.987009-11.990079-11.984962-31.42778 0.005117-43.414788l584.727394-584.589249c11.990079-11.987009 31.42778-11.984962 43.414789 0.005117 11.987009 11.990079 11.984962 31.42778-0.005116 43.414788l-584.727395 584.589249c-11.990079 11.987009-31.42778 11.984962-43.414789-0.005117z\"\n />\n </svg>\n );\n};\n\nexport const Eye = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3-7.7 16.2-7.7 35.2 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766z\"\n />\n <path\n fill={color}\n d=\"M508 336c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176z m0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\"\n />\n </svg>\n );\n};\n\nexport const EyeClose = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M942.3 486.4l-0.1-0.1-0.1-0.1c-36.4-76.7-80-138.7-130.7-186L760.7 351c43.7 40.2 81.5 93.7 114.1 160.9C791.5 684.2 673.4 766 512 766c-51.3 0-98.3-8.3-141.2-25.1l-54.7 54.7C374.6 823.8 439.8 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0.1-51.3zM878.3 154.2l-42.4-42.4c-3.1-3.1-8.2-3.1-11.3 0L707.8 228.5C649.4 200.2 584.2 186 512 186c-192.2 0-335.4 100.5-430.2 300.3v0.1c-7.7 16.2-7.7 35.2 0 51.5 36.4 76.7 80 138.7 130.7 186.1L111.8 824.5c-3.1 3.1-3.1 8.2 0 11.3l42.4 42.4c3.1 3.1 8.2 3.1 11.3 0l712.8-712.8c3.1-3 3.1-8.1 0-11.2zM398.9 537.4c-1.9-8.2-2.9-16.7-2.9-25.4 0-61.9 50.1-112 112-112 8.7 0 17.3 1 25.4 2.9L398.9 537.4z m184.5-184.5C560.5 342.1 535 336 508 336c-97.2 0-176 78.8-176 176 0 27 6.1 52.5 16.9 75.4L263.3 673c-43.7-40.2-81.5-93.7-114.1-160.9C232.6 339.8 350.7 258 512 258c51.3 0 98.3 8.3 141.2 25.1l-69.8 69.8z\"\n />\n <path\n fill={color}\n d=\"M508 624c-6.4 0-12.7-0.5-18.8-1.6l-51.1 51.1c21.4 9.3 45.1 14.4 69.9 14.4 97.2 0 176-78.8 176-176 0-24.8-5.1-48.5-14.4-69.9l-51.1 51.1c1 6.1 1.6 12.4 1.6 18.8C620 573.9 569.9 624 508 624z\"\n />\n </svg>\n );\n};\n\nexport const TreeArrow = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path fill={color} d=\"M726.652801 429.305603 297.347199 429.305603 512.193405 638.156258Z\" />\n </svg>\n );\n};\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { CSSTransitionProps } from 'react-transition-group/CSSTransition';\n\nexport type AnimationName =\n | 'zoom-center-top'\n | 'zoom-center-bottom'\n | 'zoom-center-left'\n | 'zoom-center-right'\n | 'zoom-top-start'\n | 'zoom-top'\n | 'zoom-top-end'\n | 'zoom-bottom-start'\n | 'zoom-bottom'\n | 'zoom-bottom-end'\n | 'zoom-left-start'\n | 'zoom-left'\n | 'zoom-left-end'\n | 'zoom-right-start'\n | 'zoom-right'\n | 'zoom-right-end'\n | 'slide-up'\n | 'slide-down';\n\nexport type TransitionProps = {\n /** Animation prefix */\n prefix?: string;\n\n /** Preset animation name */\n animation?: AnimationName;\n\n /** Prevent the transition conflict with the inner component */\n wrapper?: boolean;\n children?: React.ReactNode;\n} & Partial<CSSTransitionProps<HTMLElement>>;\n\nconst Transition = (props: TransitionProps): React.ReactElement => {\n const {\n timeout = 300,\n unmountOnExit = true,\n appear = true,\n prefix = 'ty',\n animation,\n classNames,\n nodeRef,\n children,\n wrapper,\n ...otherProps\n } = props;\n\n return (\n <CSSTransition\n {...(otherProps as CSSTransitionProps<HTMLElement>)}\n timeout={timeout}\n appear={appear}\n unmountOnExit={unmountOnExit}\n nodeRef={nodeRef}\n classNames={classNames ? classNames : `${prefix}-${animation}`}>\n {wrapper ? <div>{children}</div> : (children as React.ReactElement)}\n </CSSTransition>\n );\n};\n\nTransition.displayName = 'Transition';\n\nexport default Transition;\n","import Transition from './transition';\n\nexport type { AnimationName, TransitionProps } from './transition';\nexport default Transition;\n","import React, { useState, useRef, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CheckCircle, CloseCircle, InfoCircle, WarningCircle } from '../_utils/components';\nimport { AlertProps } from './types';\nimport Transition from '../transition';\n\nconst setClosedStyle = (node: HTMLElement): void => {\n node.style.borderTopWidth = '0';\n node.style.paddingTop = '0';\n node.style.marginTop = '0';\n node.style.height = '0';\n node.style.paddingBottom = '0';\n node.style.borderBottomWidth = '0';\n node.style.marginBottom = '0';\n};\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>((props, forwardedRef) => {\n const {\n type = 'info',\n iconSize = 14,\n prefixCls: customisedCls,\n title,\n icon,\n closeText,\n closable,\n afterClose,\n onClose,\n children,\n className,\n style,\n ...otherProps\n } = props;\n const [isShow, setShow] = useState(true);\n const ref = useRef<HTMLDivElement | null>(null);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('alert', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, [`${prefixCls}_${type}`]);\n\n const closeBtnOnClick = (e: React.MouseEvent<HTMLSpanElement>): void => {\n ref.current && setClosedStyle(ref.current as HTMLDivElement);\n setShow(false);\n onClose && onClose(e);\n };\n\n // Setting close text attribute also allows to be closable\n const closeIcon = (closable || closeText) && (\n <button type=\"button\" className={`${prefixCls}__close-btn`} onClick={closeBtnOnClick} aria-label=\"Close\">\n {closeText || '✕'}\n </button>\n );\n\n const renderIcon = (): React.ReactNode => {\n if (typeof icon === 'boolean') {\n switch (type) {\n case 'success':\n return <CheckCircle size={iconSize} className={`${prefixCls}__icon`} />;\n case 'info':\n return <InfoCircle size={iconSize} className={`${prefixCls}__icon`} />;\n case 'warning':\n return <WarningCircle size={iconSize} className={`${prefixCls}__icon`} />;\n case 'error':\n return <CloseCircle size={iconSize} className={`${prefixCls}__icon`} />;\n }\n }\n\n return icon;\n };\n\n return (\n <Transition timeout={300} in={isShow} nodeRef={ref} onExited={afterClose}>\n <div {...otherProps} role=\"alert\" className={cls} style={style} ref={(node) => {\n ref.current = node;\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef) forwardedRef.current = node;\n }}>\n {icon && renderIcon()}\n <div>\n {title && <p className={`${prefixCls}__title`}>{title}</p>}\n {children}\n </div>\n {closeIcon}\n </div>\n </Transition>\n );\n});\n\nAlert.displayName = 'Alert';\n\nexport default Alert;\n","import Alert from './alert';\n\nexport default Alert;\n","import React from 'react';\n\ntype Props = {\n activeId?: string;\n onClick?: (e: React.MouseEvent<HTMLAnchorElement>, anchorName: string) => void;\n registerLink?: (href: string) => void;\n unregisterLink?: (href: string) => void;\n};\n\nexport const AnchorContext = React.createContext<Props>({});\n","export type Target = HTMLElement | Window;\n\nexport const getScroll = (node: Target, isVertical = true): number => {\n if (typeof window === 'undefined') {\n return 0;\n }\n const windowProp = isVertical ? 'pageYOffset' : 'pageXOffset';\n const elementProp = isVertical ? 'scrollTop' : 'scrollLeft';\n return node === window ? (node as Window)[windowProp] : (node as HTMLElement)[elementProp];\n};\n\nexport const getRect = (node: Target = window) => {\n return node !== window\n ? (node as HTMLElement).getBoundingClientRect()\n : {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: window.document.documentElement.clientWidth,\n height: window.document.documentElement.clientHeight,\n };\n};\n\n/**\n * Get element absolute position relative to the root\n * @param node\n */\nexport const getAbsolutePosition = (node: Target = window): { x: number; y: number } => {\n if (node === window) {\n return { x: 0, y: 0 };\n }\n const x =\n (node as HTMLElement).getBoundingClientRect().left + document.documentElement.scrollLeft;\n const y = (node as HTMLElement).getBoundingClientRect().top + document.documentElement.scrollTop;\n return { x, y };\n};\n\nexport const getNodeHeight = (node: Target): number => {\n if (!node) {\n return 0;\n }\n if (node === window) {\n return window.innerHeight;\n }\n return (node as HTMLElement).clientHeight;\n};\n\nexport const getNodeScrollHeight = (node: Target): number => {\n if (!node) {\n return 0;\n }\n\n if (node === window) {\n return window.document.documentElement.scrollHeight;\n }\n return (node as HTMLElement).scrollHeight;\n};\n","import { CSSProperties, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { getRect, getScroll, getNodeHeight } from '../_utils/dom';\nimport { StickyProps } from './types';\n\nconst Sticky = (props: StickyProps): JSX.Element => {\n const {\n offsetTop,\n offsetBottom,\n container = () => window,\n onChange,\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('sticky', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const placeholderRef = useRef<HTMLDivElement | null>(null);\n const stickyRef = useRef<HTMLDivElement | null>(null);\n const [stickyStyle, setStickyStyle] = useState<CSSProperties>({});\n const [placeholderStyle, setPlaceholderStyle] = useState<CSSProperties>({});\n const [stickyContainer, setStickyContainer] = useState(container());\n\n const getStickyMode = () => {\n const mode = {\n top: false,\n bottom: false,\n offset: 0,\n };\n\n if (typeof offsetTop !== 'number' && typeof offsetBottom !== 'number') {\n mode.top = true;\n } else if (typeof offsetTop === 'number') {\n mode.top = true;\n mode.bottom = false;\n mode.offset = offsetTop || 0;\n } else if (typeof offsetBottom === 'number') {\n mode.bottom = true;\n mode.top = false;\n mode.offset = offsetBottom || 0;\n }\n\n return mode;\n };\n const [stickyMode] = useState(getStickyMode());\n\n const getOffset = useCallback((placeholderNode: HTMLElement, stickyContainer: HTMLElement | Window): {\n top: number;\n left: number;\n width: number;\n height: number;\n } => {\n const rect = placeholderNode.getBoundingClientRect();\n const containerRect = getRect(stickyContainer);\n const containerScrollTop = getScroll(stickyContainer, true);\n const containerScrollLeft = getScroll(stickyContainer, false);\n\n return {\n top: rect.top - containerRect.top + containerScrollTop,\n left: rect.left - containerRect.left + containerScrollLeft,\n width: rect.width,\n height: rect.height,\n };\n }, []);\n\n const updateStickyStyle = useCallback(\n (stickyStyle: CSSProperties, stuck = false) => {\n setStickyStyle({ ...stickyStyle });\n\n if (stuck) {\n onChange && onChange(true);\n } else if (!stickyStyle) {\n onChange && onChange(false);\n }\n },\n [onChange]\n );\n\n const updatePlaceholderStyle = (placeholderStyle: CSSProperties) => {\n setPlaceholderStyle({ ...placeholderStyle });\n };\n\n const updateNodePosition = useCallback(() => {\n const placeholderNode = placeholderRef.current;\n const stickyNode = stickyRef.current;\n if (!placeholderNode || !stickyContainer || !stickyNode) {\n return;\n }\n\n const containerScrollTop = getScroll(stickyContainer, true);\n const placeholderOffset = getOffset(placeholderNode, stickyContainer);\n const containerHeight = getNodeHeight(stickyContainer);\n const placeholderHeight = placeholderNode.offsetHeight;\n const containerRect = getRect(stickyContainer);\n const stickyHeight = stickyNode.offsetHeight;\n\n const stickyStyle: CSSProperties = {\n width: placeholderOffset.width,\n };\n const placeholderStyle: CSSProperties = {\n width: placeholderOffset.width,\n height: stickyHeight,\n };\n if (stickyMode.top && containerScrollTop > placeholderOffset.top - stickyMode.offset) {\n // sticky top\n stickyStyle.position = 'fixed';\n stickyStyle.top = stickyMode.offset + containerRect.top;\n updateStickyStyle(stickyStyle, true);\n updatePlaceholderStyle(placeholderStyle);\n } else if (\n stickyMode.bottom &&\n containerScrollTop <\n placeholderOffset.top + placeholderHeight + stickyMode.offset - containerHeight\n ) {\n // sticky bottom\n stickyStyle.height = placeholderHeight;\n stickyStyle.position = 'fixed';\n stickyStyle.bottom = stickyMode.offset;\n\n updateStickyStyle(stickyStyle, true);\n updatePlaceholderStyle(placeholderStyle);\n } else {\n updateStickyStyle({});\n updatePlaceholderStyle({});\n }\n }, [stickyContainer, updateStickyStyle, stickyMode, getOffset]);\n\n /**\n * If the container is changed, update the listeners\n */\n useEffect(() => {\n const stickyContainer = container();\n if (!stickyContainer) {\n return;\n }\n setStickyContainer(stickyContainer);\n\n stickyContainer.addEventListener('scroll', updateNodePosition);\n stickyContainer.addEventListener('resize', updateNodePosition);\n\n return () => {\n stickyContainer.removeEventListener('scroll', updateNodePosition);\n stickyContainer.removeEventListener('resize', updateNodePosition);\n };\n }, [updateNodePosition, container]);\n\n useEffect(() => {\n updateNodePosition();\n }, [updateNodePosition]);\n\n return (\n <div ref={placeholderRef} style={placeholderStyle}>\n <div {...otherProps} className={cls} ref={stickyRef} style={{ ...stickyStyle, ...style }}>\n {children}\n </div>\n </div>\n );\n};\n\nSticky.displayName = 'Sticky';\n\nexport default Sticky;\n","import Sticky from './sticky';\n\nexport default Sticky;\n","import React, { useContext, useState, useCallback, useEffect, useRef, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { AnchorLinkProps, AnchorProps } from './types';\nimport { AnchorContext } from './anchor-context';\nimport Sticky from '../sticky';\n\nconst Anchor = (props: AnchorProps): JSX.Element => {\n const {\n affix = false,\n offsetTop = 0,\n offsetBottom,\n type = 'dot',\n getContainer,\n onChange,\n onClick,\n className,\n style,\n children,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('anchor', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, { [`${prefixCls}_line`]: type === 'line' }, className);\n const [activeId, setActiveId] = useState('');\n const anchorRef = useRef<HTMLUListElement | null>(null);\n const inkBallRef = useRef<HTMLDivElement | null>(null);\n const linksRef = useRef<Set<string>>(new Set());\n\n const registerLink = useCallback((href: string) => {\n linksRef.current.add(href);\n }, []);\n\n const unregisterLink = useCallback((href: string) => {\n linksRef.current.delete(href);\n }, []);\n\n const updateInk = useCallback(() => {\n const anchorEl = anchorRef.current;\n if (!anchorEl) return;\n const activeNodes = anchorEl.getElementsByClassName(`${prefixCls}__link_active`);\n const inkEl = inkBallRef.current;\n // Use the last (deepest) active link so the ink ball targets the child, not the parent\n const linkNode = activeNodes[activeNodes.length - 1];\n if (linkNode && inkEl) {\n // Use the <a> title element, not the <li> (which includes nested children)\n const titleEl = linkNode.querySelector(`.${prefixCls}__link-title`);\n const targetEl = titleEl || linkNode;\n const anchorRect = anchorEl.getBoundingClientRect();\n const targetRect = targetEl.getBoundingClientRect();\n if (type === 'line') {\n inkEl.style.top = `${targetRect.top - anchorRect.top}px`;\n inkEl.style.height = `${targetEl.clientHeight}px`;\n } else {\n inkEl.style.top = `${targetRect.top - anchorRect.top + targetEl.clientHeight / 2 - 4.5}px`;\n }\n }\n }, [prefixCls, type]);\n\n const getScrollContainer = useCallback((): HTMLElement | Window => {\n return getContainer ? getContainer() : window;\n }, [getContainer]);\n\n const scrollToAnchor = useCallback(\n (anchorName: string): void => {\n const element = document.getElementById(anchorName);\n if (!element) return;\n\n if (getContainer) {\n const container = getContainer();\n const containerRect = container.getBoundingClientRect();\n const elementRect = element.getBoundingClientRect();\n container.scrollTop += elementRect.top - containerRect.top;\n } else {\n element.scrollIntoView(true);\n }\n },\n [getContainer]\n );\n\n const handleLinkClick = (e: React.MouseEvent<HTMLAnchorElement>, anchorName: string) => {\n onClick?.(e, { title: anchorName, href: `#${anchorName}` });\n const { location } = window;\n let url;\n // if it is a HashRouter mode, prevent the default event and update the query.\n if (location.pathname.includes('/#/')) {\n url = location.protocol + '//' + location.host + location.pathname + `?anchor=${anchorName}`;\n } else {\n url = location.protocol + '//' + location.host + location.pathname + `#${anchorName}`;\n }\n window.history.pushState({ path: url }, '', url);\n scrollToAnchor(anchorName);\n };\n\n /**\n * If the url contains the hash, check whether there is an element can be scrolled into\n */\n const initHashScroll = useCallback(() => {\n const { location } = window;\n if (location.search) {\n const urlParams = new URLSearchParams(location.search);\n const anchor = urlParams.get('anchor');\n !!anchor && scrollToAnchor(anchor);\n } else if (location.hash) {\n const anchor = location.hash.replace('#', '');\n !!anchor && scrollToAnchor(anchor);\n }\n }, [scrollToAnchor]);\n\n const handleScroll = useCallback(() => {\n const links = linksRef.current;\n if (links.size === 0) return;\n\n const container = getContainer?.();\n const containerTop = container\n ? container.getBoundingClientRect().top\n : 0;\n\n let newActiveId = '';\n let maxTop = -Infinity;\n let firstId = '';\n let firstTop = Infinity;\n links.forEach((href) => {\n const id = href.replace('#', '');\n const el = document.getElementById(id);\n if (!el) return;\n const elTop = el.getBoundingClientRect().top - containerTop;\n if (elTop < firstTop) {\n firstTop = elTop;\n firstId = id;\n }\n if (elTop <= offsetTop && elTop > maxTop) {\n maxTop = elTop;\n newActiveId = id;\n }\n });\n if (!newActiveId && firstId) {\n newActiveId = firstId;\n }\n\n setActiveId((prev) => {\n if (prev !== newActiveId) {\n onChange?.(`#${newActiveId}`);\n }\n return newActiveId;\n });\n }, [onChange, getContainer, offsetTop]);\n\n useEffect(() => {\n updateInk();\n }, [activeId, updateInk]);\n\n useEffect(() => {\n initHashScroll();\n }, [initHashScroll]);\n\n useEffect(() => {\n const scrollTarget = getScrollContainer();\n scrollTarget.addEventListener('scroll', handleScroll);\n handleScroll();\n return () => {\n scrollTarget.removeEventListener('scroll', handleScroll);\n };\n }, [handleScroll, getScrollContainer]);\n\n const contextValue = useMemo(\n () => ({ activeId, onClick: handleLinkClick, registerLink, unregisterLink }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeId, registerLink, unregisterLink]\n );\n\n const anchorContent = (\n <ul className={cls} style={style} ref={anchorRef}>\n <div className={`${prefixCls}__ink`}>\n <div className={`${prefixCls}__ink-ball`} ref={inkBallRef} />\n </div>\n {React.Children.map(children, (child) => {\n const childElement = child as React.FunctionComponentElement<AnchorLinkProps>;\n if (childElement.type.displayName === 'AnchorLink') {\n const childProps: Partial<AnchorLinkProps> = {\n prefixCls,\n };\n return React.cloneElement(childElement, childProps);\n }\n return null;\n })}\n </ul>\n );\n\n return (\n <AnchorContext.Provider value={contextValue}>\n {affix ? (\n <Sticky offsetTop={offsetTop} offsetBottom={offsetBottom}>\n {anchorContent}\n </Sticky>\n ) : (\n anchorContent\n )}\n </AnchorContext.Provider>\n );\n};\n\nAnchor.displayName = 'Anchor';\n\nexport default Anchor;\n","import React, { useContext, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { AnchorLinkProps } from './types';\nimport { AnchorContext } from './anchor-context';\n\nconst AnchorLink = React.forwardRef<HTMLAnchorElement, AnchorLinkProps>(\n (props: AnchorLinkProps, ref): JSX.Element => {\n const { href, title, children, prefixCls, ...otherProps } = props;\n const anchorContext = useContext(AnchorContext);\n\n useEffect(() => {\n anchorContext.registerLink?.(href);\n return () => anchorContext.unregisterLink?.(href);\n }, [href, anchorContext]);\n\n const activeHref = `#${anchorContext.activeId}`;\n const isActive = activeHref === href;\n\n const cls = classNames(`${prefixCls}__link`, {\n [`${prefixCls}__link_active`]: isActive,\n });\n\n const onLinkClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault();\n const { onClick } = anchorContext;\n onClick && onClick(e, href.replace('#', ''));\n };\n\n return (\n <li title={title} className={cls}>\n <a\n {...otherProps}\n className={`${prefixCls}__link-title`}\n ref={ref}\n href={href}\n onClick={onLinkClick}\n target={'target' in props ? props.target : undefined}>\n {title}\n </a>\n {children && (\n <ul className={prefixCls}>\n {React.Children.map(children, (child) => (\n <AnchorLink {...child.props} prefixCls={prefixCls} />\n ))}\n </ul>\n )}\n </li>\n );\n }\n);\n\nAnchorLink.displayName = 'AnchorLink';\n\nexport default AnchorLink;\n","import Anchor from './anchor';\nimport AnchorLink from './anchor-link';\n\ntype IAnchor = typeof Anchor & {\n Link: typeof AnchorLink;\n};\n\nconst DefaultAnchor = Anchor as IAnchor;\nDefaultAnchor.Link = AnchorLink;\n\nexport default DefaultAnchor;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { AspectRatioProps } from './types';\n\nconst AspectRatio = React.forwardRef<HTMLDivElement, AspectRatioProps>((props, ref) => {\n const {\n ratio = 1,\n width = '100%',\n prefixCls: customisedCls,\n className,\n style,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('aspect-ratio', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={{ ...style, width }}>\n <div className={`${prefixCls}__padding`} style={{ paddingTop: `${(1 / ratio) * 100}%` }} />\n <div className={`${prefixCls}__inside`}>{children}</div>\n </div>\n );\n});\n\nAspectRatio.displayName = 'AspectRatio';\n\nexport default AspectRatio;\n","import AspectRatio from './aspect-ratio';\n\nexport default AspectRatio;\n","import { useEffect, useRef, useState } from 'react';\nimport { Target } from './dom';\n\nexport const useEventListener = (\n eventName: keyof HTMLElementEventMap,\n handler: EventListener,\n target: Target = window\n): void => {\n const savedHandler = useRef<EventListener>();\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = target && target.addEventListener;\n if (!isSupported) return;\n\n const eventListener = (event: Event): void =>\n savedHandler.current && savedHandler.current(event);\n target.addEventListener(eventName, eventListener);\n return (): void => {\n target.removeEventListener(eventName, eventListener);\n };\n }, [eventName, target]);\n};\n\nexport const useClickOutside = (target: HTMLElement, handler: (event: MouseEvent) => void): void => {\n useEffect(() => {\n const listener = (event: MouseEvent): void => {\n if (!target || target.contains(event.target as HTMLElement)) {\n return;\n }\n handler(event);\n };\n document.addEventListener('click', listener);\n return (): void => {\n document.removeEventListener('click', listener);\n };\n }, [target, handler]);\n};\n\nexport function useDebounce<T>(value: T, delay = 300): [T] {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = window.setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return (): void => {\n window.clearTimeout(handler);\n };\n }, [value, delay]);\n\n return [debouncedValue];\n}\n","import { useState, useCallback, useMemo, useEffect } from 'react';\n\ninterface ComboboxItem {\n value: string;\n label?: React.ReactNode;\n disabled?: boolean;\n}\n\ninterface UseComboboxOptions<T extends ComboboxItem> {\n items: T[];\n searchValue: string;\n filterOption?: boolean | ((input: string, item: T) => boolean);\n isOpen?: boolean;\n defaultOpen?: boolean;\n disabled?: boolean;\n defaultActiveFirstOption?: boolean;\n onOpenChange?: (open: boolean) => void;\n onSelect?: (item: T) => void;\n}\n\nexport function useCombobox<T extends ComboboxItem>(options: UseComboboxOptions<T>) {\n const {\n items,\n searchValue,\n filterOption = true,\n isOpen: controlledOpen,\n defaultOpen = false,\n disabled = false,\n defaultActiveFirstOption = true,\n onOpenChange,\n onSelect,\n } = options;\n\n const isControlled = controlledOpen !== undefined;\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isOpen = isControlled ? controlledOpen : internalOpen;\n\n const [focusedIndex, setFocusedIndex] = useState(-1);\n\n useEffect(() => {\n if (isControlled) setInternalOpen(controlledOpen);\n }, [isControlled, controlledOpen]);\n\n const matchesFilter = useCallback(\n (item: T): boolean => {\n if (!searchValue) return true;\n if (filterOption === false) return true;\n if (typeof filterOption === 'function') return filterOption(searchValue, item);\n const label = typeof item.label === 'string' ? item.label : String(item.value);\n return label.toLowerCase().includes(searchValue.toLowerCase());\n },\n [searchValue, filterOption]\n );\n\n const filteredItems = useMemo(\n () => items.filter(matchesFilter),\n [items, matchesFilter]\n );\n\n useEffect(() => {\n if (defaultActiveFirstOption && filteredItems.length > 0) {\n setFocusedIndex(0);\n } else {\n setFocusedIndex(-1);\n }\n }, [filteredItems.length, defaultActiveFirstOption]);\n\n const openDropdown = useCallback(() => {\n if (!isControlled) setInternalOpen(true);\n onOpenChange?.(true);\n }, [isControlled, onOpenChange]);\n\n const closeDropdown = useCallback(() => {\n if (!isControlled) setInternalOpen(false);\n onOpenChange?.(false);\n }, [isControlled, onOpenChange]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n\n if (e.key === 'Escape') {\n closeDropdown();\n return;\n }\n\n if (e.key === 'Enter') {\n if (isOpen && focusedIndex >= 0 && focusedIndex < filteredItems.length) {\n e.preventDefault();\n const item = filteredItems[focusedIndex];\n if (!item.disabled) onSelect?.(item);\n }\n return;\n }\n\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n if (!isOpen) {\n openDropdown();\n setFocusedIndex(0);\n return;\n }\n const dir = e.key === 'ArrowDown' ? 1 : -1;\n setFocusedIndex((prev) => {\n let next = prev + dir;\n if (next < 0) next = filteredItems.length - 1;\n if (next >= filteredItems.length) next = 0;\n return next;\n });\n }\n },\n [disabled, isOpen, focusedIndex, filteredItems, closeDropdown, openDropdown, onSelect]\n );\n\n return {\n isOpen,\n focusedIndex,\n filteredItems,\n matchesFilter,\n openDropdown,\n closeDropdown,\n setFocusedIndex,\n handleKeyDown,\n };\n}\n","export enum KeyCode {\n BACKSPACE = 8,\n COMMA = 188,\n DELETE = 46,\n DOWN = 40,\n END = 35,\n ENTER = 13,\n ESCAPE = 27,\n HOME = 36,\n LEFT = 37,\n NUMPAD_ADD = 107,\n NUMPAD_DECIMAL = 110,\n NUMPAD_DIVIDE = 111,\n NUMPAD_ENTER = 108,\n NUMPAD_MULTIPLY = 106,\n NUMPAD_SUBTRACT = 109,\n PAGE_DOWN = 34,\n PAGE_UP = 33,\n PERIOD = 190,\n RIGHT = 39,\n SPACE = 32,\n TAB = 9,\n UP = 38\n}\n","import React, { useRef, useEffect, useState, ReactNode, useContext } from 'react';\nimport classNames from 'classnames';\nimport { KeyCode } from '../_utils/enum';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CloseCircle } from '../_utils/components';\nimport { InputProps } from './types';\n\nconst DEFAULT_MARGIN = 16; // 8px * 2\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (props: InputProps, ref): JSX.Element => {\n const {\n size = 'md',\n disabled = false,\n clearable = false,\n defaultValue = '',\n prefix,\n suffix,\n onChange,\n onEnterPress,\n onKeyDown,\n className,\n style,\n onClearClick,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('input', configContext.prefixCls, customisedCls);\n const inputSize = props.size || configContext.componentSize || size;\n const cls = classNames(prefixCls, className, `${prefixCls}_${inputSize}`, {\n [`${prefixCls}_disabled`]: disabled,\n });\n const prefixRef = useRef<HTMLDivElement | null>(null);\n const suffixRef = useRef<HTMLDivElement | null>(null);\n const [value, setValue] = useState<string>(\n 'value' in props ? (props.value as string) : defaultValue\n );\n const [inputPadding, setInputPadding] = useState({ paddingLeft: '7px', paddingRight: '7px' });\n\n const inputOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const val = e.currentTarget.value;\n !('value' in props) && setValue(val);\n onChange && onChange(e);\n };\n\n const inputOnKeydown = (e: React.KeyboardEvent<HTMLInputElement>): void => {\n if (e.keyCode === KeyCode.ENTER) {\n onEnterPress && onEnterPress(e);\n }\n onKeyDown && onKeyDown(e);\n };\n\n const clearBtnOnClick = (e: React.MouseEvent<HTMLSpanElement>): void => {\n !('value' in props) && setValue('');\n onClearClick && onClearClick(e);\n };\n\n const renderClearButton = (): ReactNode => {\n if (clearable && value && value.length > 0) {\n return (\n <span className={`${prefixCls}__clear-btn`} onClick={clearBtnOnClick}>\n <CloseCircle size={16} color=\"#BFBFBF\" />\n </span>\n );\n }\n return null;\n };\n\n useEffect(() => {\n const prefixNode = prefixRef.current;\n const suffixNode = suffixRef.current;\n\n const prefixWidth = prefixNode && prefixNode.offsetWidth;\n const suffixWidth = suffixNode && suffixNode.offsetWidth;\n const padding = { ...inputPadding };\n\n if (prefixWidth) {\n padding.paddingLeft = prefixWidth + DEFAULT_MARGIN + 'px';\n }\n if (suffixWidth) {\n padding.paddingRight = suffixWidth + DEFAULT_MARGIN + 'px';\n }\n\n if (\n padding.paddingLeft !== inputPadding.paddingLeft ||\n padding.paddingRight !== inputPadding.paddingRight\n ) {\n setInputPadding(padding);\n }\n }, [inputPadding]);\n\n useEffect(() => {\n 'value' in props && typeof props.value !== 'undefined' && setValue(props.value);\n }, [props]);\n\n return (\n <div className={cls} style={style}>\n {prefix && (\n <div ref={prefixRef} className={`${prefixCls}__prefix`}>\n {prefix}\n </div>\n )}\n <input\n {...otherProps}\n ref={ref}\n value={value}\n disabled={disabled}\n className={`${prefixCls}__input`}\n style={{ paddingLeft: inputPadding.paddingLeft, paddingRight: inputPadding.paddingRight }}\n onChange={inputOnChange}\n onKeyDown={inputOnKeydown}\n />\n {(suffix || clearable) && (\n <div ref={suffixRef} className={`${prefixCls}__suffix`}>\n {renderClearButton()}\n {suffix}\n </div>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport default Input;\n","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import Portal from './portal';\n\nexport default Portal;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nexport interface PortalProps {\n container?: HTMLElement;\n children?: React.ReactNode;\n}\n\nconst Portal = (props: PortalProps): React.ReactPortal => {\n const { container = document.body, children } = props;\n return ReactDOM.createPortal(children, container);\n};\n\nexport default Portal;\n","import Popup from './popup';\n\nexport default Popup;\n","import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { createPopper, Instance } from '@popperjs/core';\nimport Transition, { AnimationName } from '../transition';\nimport Portal from '../portal';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { Placement, PopupProps } from './types';\n\nconst Popup = (props: PopupProps): JSX.Element => {\n const {\n disabled = false,\n trigger = 'click',\n placement = 'top',\n defaultVisible = false,\n arrow = true,\n flip = true,\n offset = 0,\n theme = 'light',\n usePortal = true,\n mouseEnterDelay = 100,\n mouseLeaveDelay = 100,\n biZoom = true,\n prefixCls: customisedCls,\n content,\n visible,\n onVisibleChange,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('popup', configContext.prefixCls, customisedCls);\n const cls = classNames(\n className,\n prefixCls,\n `${prefixCls}_${placement}`,\n `${prefixCls}_${theme}`\n );\n const [popupVisible, setPopupVisible] = useState('visible' in props ? visible : defaultVisible);\n const targetRef = useRef<HTMLElement | null>(null);\n const popupRef = useRef<HTMLDivElement | null>(null);\n const delayDisplayPopupTimer = useRef<number | undefined>(undefined);\n const delayHidePopupTimer = useRef<number | undefined>(undefined);\n const popperRef = useRef<Instance | undefined>(undefined);\n const elementProps = {\n ref: (ref: HTMLElement | null) => (targetRef.current = ref),\n };\n\n const displayPopup = useCallback(() => {\n setPopupVisible(true);\n onVisibleChange && onVisibleChange(true);\n }, [onVisibleChange]);\n\n const hidePopup = useCallback(() => {\n setPopupVisible(false);\n onVisibleChange && onVisibleChange(false);\n }, [onVisibleChange]);\n\n const delayDisplayPopup = useCallback((): void => {\n delayDisplayPopupTimer.current = window.setTimeout(() => {\n displayPopup();\n }, mouseEnterDelay);\n }, [mouseEnterDelay, displayPopup]);\n\n const delayHidePopup = useCallback((): void => {\n delayHidePopupTimer.current = window.setTimeout(() => {\n hidePopup();\n }, mouseLeaveDelay);\n }, [mouseLeaveDelay, hidePopup]);\n\n const handlePopupOnMouseEnter = (): void => {\n if (trigger === 'hover') {\n displayPopup();\n window.clearTimeout(delayHidePopupTimer.current);\n }\n };\n\n const handlePopupOnMouseLeave = (): void => {\n if (trigger === 'hover') {\n delayHidePopup();\n window.clearTimeout(delayDisplayPopupTimer.current);\n }\n };\n\n const handleTargetOnMouseEnter = useCallback((): void => {\n delayDisplayPopup();\n window.clearTimeout(delayHidePopupTimer.current);\n }, [delayDisplayPopup]);\n\n const handleTargetOnMouseLeave = useCallback((): void => {\n delayHidePopup();\n window.clearTimeout(delayDisplayPopupTimer.current);\n }, [delayHidePopup]);\n\n const documentOnClick = useCallback(\n (e: Event): void => {\n const target = targetRef.current;\n const popup = popupRef.current;\n if (\n !target ||\n target.contains(e.target as HTMLElement) ||\n !popup ||\n popup.contains(e.target as HTMLElement)\n )\n return;\n\n hidePopup();\n },\n [targetRef, hidePopup]\n );\n\n const handleTargetOnMouseClick = useCallback(\n (e: MouseEvent): void => {\n e.preventDefault();\n if (popupVisible) {\n hidePopup();\n } else {\n displayPopup();\n document.addEventListener('click', documentOnClick, true);\n }\n },\n [popupVisible, hidePopup, displayPopup, documentOnClick]\n );\n\n const transitionOnEnter = (): void => {\n const instance = createPopper(\n targetRef.current as HTMLElement,\n popupRef.current as HTMLElement,\n {\n placement: placement as Placement,\n modifiers: [\n {\n name: 'flip',\n enabled: flip,\n },\n {\n name: 'offset',\n options: {\n offset: [0, arrow ? 10 + offset : 3 + offset],\n },\n },\n {\n name: 'computeStyles',\n options: {\n gpuAcceleration: false,\n adaptive: false,\n },\n },\n ],\n }\n );\n if (trigger === 'hover') {\n instance.state.elements.popper.addEventListener('mouseenter', handlePopupOnMouseEnter);\n instance.state.elements.popper.addEventListener('mouseleave', handlePopupOnMouseLeave);\n }\n popperRef.current = instance;\n };\n\n const transitionOnExited = (): void => {\n const popperInstance = popperRef.current;\n if (popperInstance) {\n if (trigger === 'hover') {\n popperInstance.state.elements.popper.removeEventListener(\n 'mouseenter',\n handlePopupOnMouseEnter\n );\n popperInstance.state.elements.popper.removeEventListener(\n 'mouseleave',\n handlePopupOnMouseLeave\n );\n }\n popperInstance.destroy();\n }\n };\n\n const getAnimationName = () => {\n const mapping = {\n 'top-start': biZoom ? 'top-start' : 'center-top',\n top: biZoom ? 'top' : 'center-top',\n 'top-end': biZoom ? 'top-end' : 'center-top',\n 'bottom-start': biZoom ? 'bottom-start' : 'center-bottom',\n bottom: biZoom ? 'bottom' : 'center-bottom',\n 'bottom-end': biZoom ? 'bottom-end' : 'center-bottom',\n 'left-start': biZoom ? 'bottom-end' : 'center-left',\n left: biZoom ? 'left' : 'center-left',\n 'left-end': biZoom ? 'top-end' : 'center-left',\n 'right-start': biZoom ? 'bottom-start' : 'center-right',\n right: biZoom ? 'right' : 'center-right',\n 'right-end': biZoom ? 'top-start' : 'center-right',\n };\n return `zoom-${mapping[placement]}` as AnimationName;\n };\n\n useEffect(() => {\n if (disabled) return;\n\n const target = targetRef.current;\n if (!target) return;\n\n if (trigger === 'hover') {\n target.addEventListener('mouseenter', handleTargetOnMouseEnter);\n target.addEventListener('mouseleave', handleTargetOnMouseLeave);\n } else if (trigger === 'click') {\n target.addEventListener('click', handleTargetOnMouseClick);\n } else if (trigger === 'focus') {\n if (target.nodeName === 'INPUT' || target.nodeName === 'TEXTAREA') {\n target.addEventListener('focus', displayPopup);\n target.addEventListener('blur', hidePopup);\n } else {\n target.addEventListener('mousedown', displayPopup);\n target.addEventListener('mouseup', hidePopup);\n }\n } else if (trigger === 'contextmenu') {\n target.addEventListener('contextmenu', handleTargetOnMouseClick);\n } else if (trigger === 'manual') {\n setPopupVisible(props.visible);\n }\n\n return (): void => {\n target.removeEventListener('mouseenter', handleTargetOnMouseEnter);\n target.removeEventListener('mouseleave', handleTargetOnMouseLeave);\n target.removeEventListener('click', handleTargetOnMouseClick);\n target.removeEventListener('focus', displayPopup);\n target.removeEventListener('blur', hidePopup);\n target.removeEventListener('mousedown', displayPopup);\n target.removeEventListener('mouseup', hidePopup);\n target.removeEventListener('contextmenu', handleTargetOnMouseClick);\n };\n }, [\n props.visible,\n disabled,\n targetRef,\n trigger,\n handleTargetOnMouseClick,\n handleTargetOnMouseEnter,\n handleTargetOnMouseLeave,\n displayPopup,\n hidePopup,\n ]);\n\n useEffect(() => {\n if ('visible' in props) {\n props.visible ? displayPopup() : hidePopup();\n }\n }, [props, displayPopup, hidePopup]);\n\n const renderContent = () => (\n <Transition\n in={popupVisible}\n nodeRef={popupRef}\n onEnter={transitionOnEnter}\n onExited={transitionOnExited}\n animation={getAnimationName()}>\n <div {...otherProps} className={cls} ref={popupRef}>\n {content && arrow && <div data-popper-arrow className={`${prefixCls}__arrow`} />}\n {content}\n </div>\n </Transition>\n );\n\n return (\n <>\n {React.cloneElement(children, elementProps)}\n {usePortal ? <Portal>{renderContent()}</Portal> : renderContent()}\n </>\n );\n};\n\nexport default Popup;\n","import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { useClickOutside } from '../_utils/hooks';\nimport { useCombobox } from '../_utils/useCombobox';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { AutoCompleteOption, AutoCompleteProps } from './types';\nimport Input from '../input/input';\nimport Popup from '../popup';\n\nconst AutoComplete = React.forwardRef<HTMLDivElement, AutoCompleteProps>(\n (props, ref) => {\n const {\n options = [],\n defaultValue = '',\n placeholder,\n disabled = false,\n allowClear = false,\n defaultActiveFirstOption = true,\n defaultOpen = false,\n notFoundContent,\n size,\n filterOption = true,\n onChange,\n onSelect,\n onSearch,\n onFocus,\n onBlur,\n className,\n style,\n prefixCls: customisedCls,\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('auto-complete', configContext.prefixCls, customisedCls);\n const autoCompleteSize = size || configContext.componentSize || 'md';\n\n const [inputValue, setInputValue] = useState(\n 'value' in props ? (props.value as string) : defaultValue\n );\n\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const handleOptionSelect = useCallback(\n (opt: AutoCompleteOption) => {\n if (opt.disabled) return;\n if (!('value' in props)) setInputValue(opt.value);\n onChange?.(opt.value);\n onSelect?.(opt.value, opt);\n combo.closeDropdown();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onChange, onSelect, props]\n );\n\n const combo = useCombobox<AutoCompleteOption>({\n items: options,\n searchValue: inputValue,\n filterOption,\n isOpen: 'open' in props ? (props.open as boolean) : undefined,\n defaultOpen,\n disabled,\n defaultActiveFirstOption,\n onSelect: handleOptionSelect,\n });\n\n // Merge refs\n const setWrapperRef = useCallback(\n (node: HTMLDivElement | null) => {\n wrapperRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [ref]\n );\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_open`]: combo.isOpen,\n });\n\n // Click outside to close\n useClickOutside(wrapperRef.current as HTMLDivElement, () => {\n if (!('open' in props)) {\n combo.closeDropdown();\n }\n });\n\n // Controlled value\n useEffect(() => {\n if ('value' in props) setInputValue(props.value as string);\n }, [props.value]);\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n if (!('value' in props)) setInputValue(val);\n onChange?.(val);\n onSearch?.(val);\n combo.openDropdown();\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n combo.openDropdown();\n onFocus?.(e);\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(e);\n };\n\n const handleClear = () => {\n if (!('value' in props)) setInputValue('');\n onChange?.('');\n onSearch?.('');\n };\n\n const renderDropdown = () => {\n if (combo.filteredItems.length === 0) {\n if (notFoundContent) {\n return <div className={`${prefixCls}__empty`}>{notFoundContent}</div>;\n }\n return null;\n }\n\n return combo.filteredItems.map((opt, index) => {\n const optCls = classNames(`${prefixCls}-option`, {\n [`${prefixCls}-option_active`]: index === combo.focusedIndex,\n [`${prefixCls}-option_disabled`]: opt.disabled,\n });\n return (\n <li\n key={opt.value}\n role=\"option\"\n className={optCls}\n aria-selected={index === combo.focusedIndex}\n aria-disabled={opt.disabled}\n onClick={() => handleOptionSelect(opt)}\n onMouseEnter={() => combo.setFocusedIndex(index)}>\n {opt.label ?? opt.value}\n </li>\n );\n });\n };\n\n const dropdownContent = renderDropdown();\n const showDropdown = combo.isOpen && dropdownContent !== null;\n\n const renderOverlay = () => {\n const selectorWidth = wrapperRef.current?.offsetWidth;\n return (\n <ul\n className={`${prefixCls}__dropdown`}\n style={{ minWidth: selectorWidth || undefined }}\n role=\"listbox\">\n {dropdownContent}\n </ul>\n );\n };\n\n return (\n <div\n ref={setWrapperRef}\n className={cls}\n style={style}\n onKeyDown={combo.handleKeyDown}>\n <Popup\n trigger=\"manual\"\n placement=\"bottom\"\n arrow={false}\n visible={showDropdown}\n content={renderOverlay()}>\n <Input\n ref={inputRef}\n size={autoCompleteSize}\n placeholder={placeholder}\n disabled={disabled}\n value={inputValue}\n clearable={allowClear}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onClearClick={handleClear}\n />\n </Popup>\n </div>\n );\n }\n);\n\nAutoComplete.displayName = 'AutoComplete';\n\nexport default AutoComplete;\n","import React, { useRef, useEffect, useState, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { AvatarProps } from './types';\n\nconst Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>((props, ref) => {\n const {\n size = 38,\n shape = 'circle',\n presence = undefined,\n alt = 'avatar',\n icon,\n src,\n children,\n className,\n style,\n onClick,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const outerEl = useRef<HTMLSpanElement | null>(null);\n const textEl = useRef<HTMLSpanElement | null>(null);\n const [scale, setScale] = useState(1);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('avatar', configContext.prefixCls, customisedCls);\n\n const cls = classNames(prefixCls, className, `${prefixCls}_${shape}`, {\n [`${prefixCls}_clickable`]: onClick,\n });\n\n const renderChildren = () => {\n if (typeof children === 'string') {\n let textStyle: React.CSSProperties = {};\n if (textEl.current) {\n const transformString = `scale(${scale}) translateX(-50%)`;\n textStyle = {\n msTransform: transformString,\n WebkitTransform: transformString,\n transform: transformString,\n };\n }\n return (\n <span ref={textEl} className={`${prefixCls}__text`} style={textStyle}>\n {children}\n </span>\n );\n } else {\n return children;\n }\n };\n\n const renderItem = (): React.ReactNode => {\n if (children) {\n return renderChildren();\n } else if (src) {\n return <img src={src} alt={alt} className={`${prefixCls}__img`} />;\n } else {\n return icon;\n }\n };\n\n const renderPresence = (): React.ReactElement => {\n return <i className={`${prefixCls}__presence ${prefixCls}__presence_${presence}`} />;\n };\n\n const styles: React.CSSProperties = {\n width: size,\n height: size,\n fontSize: size / 2,\n lineHeight: `${size - 4}px`,\n ...style,\n };\n\n useEffect(() => {\n if (outerEl.current && textEl.current && textEl.current!.className === `${prefixCls}__text`) {\n const textElWidth = textEl.current!.offsetWidth;\n const outerElWidth = outerEl.current!.offsetWidth;\n // leave 4px padding for left and right side\n if (outerElWidth - 8 < textElWidth) {\n setScale((outerElWidth - 8) / textElWidth);\n } else {\n setScale(1);\n }\n }\n });\n\n return (\n <span {...otherProps} ref={(node) => {\n outerEl.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n }} className={cls} style={styles}>\n {renderItem()}\n {presence && renderPresence()}\n </span>\n );\n});\n\nAvatar.displayName = 'Avatar';\n\nexport default Avatar;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { AvatarProps, AvatarGroupProps } from './types';\n\nconst AvatarGroup = (props: AvatarGroupProps): JSX.Element => {\n const { gap = -15, className, style, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('avatar-group', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <span {...otherProps} className={cls} style={style}>\n {React.Children.map(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<AvatarProps>;\n if (childElement.type.displayName === 'Avatar') {\n const childProps: Partial<AvatarProps> = {\n style: {\n ...childElement.props.style,\n marginLeft: idx === 0 ? 0 : gap,\n },\n };\n return React.cloneElement(childElement, childProps);\n }\n return child;\n })}\n </span>\n );\n};\n\nAvatarGroup.displayName = 'AvatarGroup';\n\nexport default AvatarGroup;\n","import Avatar from './avatar';\nimport AvatarGroup from './avatar-group';\n\ntype IAvatar = typeof Avatar & {\n Group: typeof AvatarGroup;\n};\n\nconst DefaultAvatar = Avatar as IAvatar;\nDefaultAvatar.Group = AvatarGroup;\n\nexport default DefaultAvatar;\n","import BackTop from './back-top';\n\nexport default BackTop;\n","import React, { useCallback, useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { Target } from '../_utils/dom';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BackTopProps } from './types';\n\nconst easeInOutCubic = (t: number, b: number, c: number, d: number): number => {\n const cc = c - b;\n t /= d / 2;\n if (t < 1) {\n return (cc / 2) * t * t * t + b;\n } else {\n return (cc / 2) * ((t -= 2) * t * t + 2) + b;\n }\n};\n\nconst BackTop = (props: BackTopProps): JSX.Element | null => {\n const {\n visibilityHeight = 300,\n target = (): Target => window,\n prefixCls: customisedCls,\n onClick,\n className,\n style,\n children,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('back-top', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_custom`]: !!children,\n });\n const [visible, setVisible] = useState(true);\n\n const getDistanceFromTop = useCallback((): number => {\n const targetNode = target();\n if (targetNode === window) {\n return window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\n }\n return (targetNode as HTMLElement).scrollTop;\n }, [target]);\n\n const setScrollToTop = (distance: number): void => {\n const targetNode = target();\n if (targetNode === window) {\n document.body.scrollTop = distance;\n document.documentElement.scrollTop = distance;\n } else {\n (targetNode as HTMLElement).scrollTop = distance;\n }\n };\n\n const scrollToTop = (e: React.MouseEvent<HTMLButtonElement>): void => {\n const scrollTop = getDistanceFromTop();\n const startTime = Date.now();\n const step = (): void => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n setScrollToTop(easeInOutCubic(time, scrollTop, 0, 450));\n if (time < 450) {\n requestAnimationFrame(step);\n } else {\n setScrollToTop(0);\n }\n };\n requestAnimationFrame(step);\n onClick && onClick(e);\n };\n\n const handleOnScroll = useCallback(() => {\n if (getDistanceFromTop() > visibilityHeight) {\n !visible && setVisible(true);\n } else if (visible) {\n setVisible(false);\n }\n }, [getDistanceFromTop, visible, visibilityHeight]);\n\n useEffect(() => {\n const targetNode = target();\n targetNode.addEventListener('scroll', handleOnScroll);\n handleOnScroll();\n\n return (): void => {\n targetNode.removeEventListener('scroll', handleOnScroll);\n };\n }, [target, handleOnScroll]);\n\n if (visible) {\n return (\n <button type=\"button\" className={cls} style={style} onClick={scrollToTop} aria-label=\"Back to top\">\n {children || (\n <svg viewBox=\"0 0 1024 1024\" width=\"18\" height=\"18\">\n <path\n d=\"M563.2 379.757048 563.2 972.755371C563.2 1001.056998 540.219441 1024 512 1024\n 483.723021 1024 460.8 1001.019181 460.8 972.755371L460.8 379.740842 272.093167\n 568.447675C252.13208 588.408762 219.700711 588.340711 199.746554 568.386554 179.75171\n 548.39171 179.766716 515.958656 199.685432 496.039941L473.973319 221.752055C483.353204\n 211.343458 496.929524 204.8 512 204.8 527.198527 204.8 540.850334 211.438998 550.227358\n 221.968936L824.32552 496.0671C844.244236 515.985815 844.259243 548.418868 824.2644\n 568.413712 804.310241 588.367871 771.878874 588.435921 751.917786 568.474834L563.2\n 379.757048ZM0 51.2C0 22.923021 22.82342 0 51.130666 0L972.869334 0C1001.108021 0 1024\n 22.980559 1024 51.2 1024 79.476979 1001.17658 102.4 972.869334 102.4L51.130666\n 102.4C22.891979 102.4 0 79.419441 0 51.2Z\"\n fill=\"#ffffff\"\n />\n </svg>\n )}\n </button>\n );\n }\n\n return null;\n};\n\nexport default BackTop;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport warning from '../_utils/warning';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BadgeProps } from './types';\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {\n const {\n count,\n color = '#f2453d',\n max = 99,\n dot = false,\n processing = false,\n showZero = false,\n prefixCls: customisedCls,\n title,\n className,\n badgeStyle,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('badge', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, { [`${prefixCls}_no-wrap`]: !children });\n const dotCls = classNames(`${prefixCls}__dot`, { [`${prefixCls}__dot_wave`]: processing });\n\n warning(!dot && processing, 'only dot badge has the processing effect');\n\n const renderCount = () => {\n if (typeof count === 'number' || typeof count === 'string') {\n if (count === 0 && !showZero) {\n return null;\n }\n return (\n <sup\n title={title}\n className={`${prefixCls}__count`}\n style={{ backgroundColor: color, ...badgeStyle }}>\n {typeof count === 'number' && count > max ? `${max}+` : count}\n </sup>\n );\n } else {\n return <span className={`${prefixCls}__custom`}>{count}</span>;\n }\n };\n\n return (\n <span\n {...otherProps}\n ref={ref}\n className={cls}\n aria-label={typeof count === 'number' ? `${count > max ? `${max}+` : count} notifications` : undefined}>\n {children}\n {dot ? (\n <sup title={title} className={dotCls} style={{ backgroundColor: color, ...badgeStyle }} />\n ) : (\n renderCount()\n )}\n </span>\n );\n});\n\nBadge.displayName = 'Badge';\n\nexport default Badge;\n","import Badge from './badge';\n\nexport default Badge;\n","import React, { ReactElement, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BreadcrumbItemProps, BreadcrumbProps } from './types';\n\nconst Breadcrumb = (props: BreadcrumbProps): React.ReactElement => {\n const { separator = '/', prefixCls: customisedCls, className, style, children } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('breadcrumb', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <nav className={cls} style={style} aria-label=\"Breadcrumb\">\n <ol className={`${prefixCls}__ol`}>\n {React.Children.map(children, (child: ReactElement<BreadcrumbItemProps>) => {\n const childProps: Partial<BreadcrumbItemProps> = { separator };\n return React.cloneElement(child, childProps);\n })}\n </ol>\n </nav>\n );\n};\n\nBreadcrumb.displayName = 'Breadcrumb';\n\nexport default Breadcrumb;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BreadcrumbItemProps } from './types';\n\nconst BreadcrumbItem = (props: BreadcrumbItemProps): React.ReactElement => {\n const { separator, className, style, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('breadcrumb-item', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <li {...otherProps} className={cls} style={style}>\n {children}\n <span className={`${prefixCls}__separator`}>{separator}</span>\n </li>\n );\n};\n\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\nexport default BreadcrumbItem;\n","import Breadcrumb from './breadcrumb';\nimport BreadcrumbItem from './breadcrumb-item';\n\ntype IBreadcrumb = typeof Breadcrumb & {\n Item: typeof BreadcrumbItem;\n};\n\nconst DefaultBreadcrumb = Breadcrumb as IBreadcrumb;\nDefaultBreadcrumb.Item = BreadcrumbItem;\n\nexport default DefaultBreadcrumb;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ButtonProps } from './types';\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>((props: ButtonProps, ref) => {\n const {\n size = 'md',\n btnType = 'default',\n loading = false,\n disabled = false,\n block = false,\n onClick,\n icon,\n round,\n children,\n className,\n style,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('btn', configContext.prefixCls, customisedCls);\n const btnSize = props.size || configContext.componentSize || size;\n const cls = classNames(\n prefixCls,\n `${prefixCls}_${btnSize}`,\n {\n [`${prefixCls}_${btnType}`]: btnType,\n [`${prefixCls}_block`]: block,\n [`${prefixCls}_round`]: round,\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_loading`]: loading,\n },\n className\n );\n\n const btnOnClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled || loading) {\n return;\n }\n onClick && onClick(e);\n };\n\n const renderIcon = (): React.ReactElement | null => {\n if (loading) {\n return <span className={`${prefixCls}__loader`} />;\n } else if (icon) {\n return <span className={`${prefixCls}__icon-container`}>{icon}</span>;\n } else {\n return null;\n }\n };\n\n return (\n <button\n {...otherProps}\n ref={ref}\n role=\"button\"\n className={cls}\n disabled={disabled}\n onClick={btnOnClick}\n style={style}>\n {renderIcon()}\n {children && <span className={`${prefixCls}__children`}>{children}</span>}\n </button>\n );\n});\n\nButton.displayName = 'Button';\n\nexport default Button;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ButtonGroupProps, ButtonProps, ButtonType } from './types';\nimport { SizeType } from '../_utils/props';\n\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n (props: ButtonGroupProps, ref) => {\n const {\n size = 'md',\n btnType = 'default',\n disabled = false,\n round = false,\n prefixCls: customisedCls,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('btn-group', configContext.prefixCls, customisedCls);\n const btnSize = props.size || configContext.componentSize || size;\n const cls = classNames(\n prefixCls,\n {\n [`${prefixCls}_round`]: round,\n [`${prefixCls}_${btnType}`]: btnType,\n },\n className\n );\n return (\n <div {...otherProps} className={cls} ref={ref}>\n {React.Children.map(children, (child) => {\n const childElement = child as React.FunctionComponentElement<ButtonProps>;\n const { displayName } = childElement.type;\n if (displayName === 'Button') {\n const childProps: Partial<ButtonProps> = {\n btnType: btnType as ButtonType,\n size: btnSize as SizeType,\n disabled: 'disabled' in childElement.props ? childElement.props.disabled : disabled,\n };\n return React.cloneElement(childElement, childProps);\n } else {\n return child;\n }\n })}\n </div>\n );\n }\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n\nexport default ButtonGroup;\n","import Button from './button';\nimport ButtonGroup from './button-group';\n\ntype IButton = typeof Button & {\n Group: typeof ButtonGroup;\n};\n\nconst DefaultButton = Button as IButton;\nDefaultButton.Group = ButtonGroup;\n\nexport default DefaultButton;\n","import { Locale } from './types';\n\nconst en_US: Locale = {\n locale: 'en_US',\n DatePicker: {\n weeks: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n today: 'Today',\n selectDate: 'Select date',\n selectMonth: 'Select month',\n selectYear: 'Select year',\n },\n TimePicker: {\n selectTime: 'Select time',\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n },\n PopConfirm: {\n okText: 'Yes',\n cancelText: 'No',\n },\n Empty: {\n description: 'No Data',\n },\n Table: {\n sortAscend: 'Sort ascending',\n sortDescend: 'Sort descending',\n cancelSort: 'Cancel sort',\n selectAll: 'Select all',\n selectNone: 'Select none',\n emptyText: 'No Data',\n },\n ColorPicker: {\n hex: 'HEX',\n rgb: 'RGB',\n hsb: 'HSB',\n },\n};\n\nexport default en_US;\n","import React from 'react';\nimport { Locale } from '../locale/types';\nimport en_US from '../locale/en_US';\n\nexport default React.createContext<Locale>(en_US);\n","import { useContext } from 'react';\nimport { Locale } from '../locale/types';\nimport { ConfigContext } from '../config-provider/config-context';\nimport IntlContext from '../intl-provider/intl-context';\n\nexport function useLocale(): Locale {\n const config = useContext(ConfigContext);\n const intl = useContext(IntlContext);\n return config.locale ?? intl;\n}\n","export const WEEKS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\nexport const MONTHS = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n];\n\nconst TODAY = new Date();\nexport const THIS_YEAR = TODAY.getFullYear();\nexport const THIS_MONTH = TODAY.getMonth();\nexport const THIS_DAY = TODAY.getDate();\n\nexport const isLeapYear = (year: number): boolean => {\n if (year % 4 === 0 && year % 100 !== 0) {\n return true;\n } else if (year % 400 === 0) {\n return true;\n }\n return false;\n};\n\n/**\n * (int) Number days in a month for a given year from 28 - 31\n * @param month\n * @param year\n */\nexport const getMonthDays = (year: number = THIS_YEAR, month: number = THIS_MONTH): number => {\n const day = year && isLeapYear(year) ? 29 : 28;\n return [31, day, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n};\n\nexport const getWeekday = (\n year: number = THIS_YEAR,\n month: number = THIS_MONTH,\n date: number = THIS_DAY\n): number => {\n return new Date(year, month, date).getDay();\n};\n\ntype DayCell = {\n label: number;\n date: Date;\n isThisMonth: boolean;\n};\n\nexport const getMonthDaysArray = (date: Date = TODAY): DayCell[] => {\n const year = date.getFullYear();\n const month = date.getMonth();\n const dayArrays: DayCell[] = [];\n const days = getMonthDays(year, month);\n const [preYear, preMonth] = getPrevMonthAndYear(year, month);\n const preDays = getMonthDays(preYear, preMonth);\n const thisMonthFirstDayInWeek = getWeekday(year, month, 1);\n\n // last month days\n for (let i = 0; i < thisMonthFirstDayInWeek; i++) {\n const day = preDays - thisMonthFirstDayInWeek + i + 1;\n dayArrays.push({\n label: day,\n date: new Date(preYear, preMonth, day),\n isThisMonth: false,\n });\n }\n\n // this month days\n for (let i = 1; i <= days; i++) {\n dayArrays.push({\n label: i,\n date: new Date(year, month, i),\n isThisMonth: true,\n });\n }\n\n // next month days\n for (let i = 1; i <= 42 - days - thisMonthFirstDayInWeek; i++) {\n dayArrays.push({\n label: i,\n date: new Date(year, month + 1, i),\n isThisMonth: false,\n });\n }\n\n return dayArrays;\n};\n\nexport const isSameDate = (dateA: Date, dateB: Date): boolean => {\n const dateAYear = dateA.getFullYear();\n const dateAMonth = dateA.getMonth();\n const dateADate = dateA.getDate();\n const dateBYear = dateB.getFullYear();\n const dateBMonth = dateB.getMonth();\n const dateBDate = dateB.getDate();\n return dateAYear === dateBYear && dateAMonth === dateBMonth && dateADate === dateBDate;\n};\n\nexport const isToday = (date: Date): boolean => {\n return isSameDate(new Date(), date);\n};\n\n/**\n * (bool) Checks if a value is a date - this is just a simple check\n * @param date\n */\nexport const isDate = (date: Date): boolean => {\n const isPrototypeDate = Object.prototype.toString.call(date) === '[object Date]';\n const isValidDate = date && !Number.isNaN(date.valueOf());\n\n return isPrototypeDate && isValidDate;\n};\n\nexport const getPrevMonthDate = (date: Date = TODAY): Date => {\n const month = date.getMonth();\n const year = date.getFullYear();\n const prevMonth = month > 0 ? month - 1 : 11;\n const prevYear = month > 0 ? year : year - 1;\n\n return new Date(prevYear, prevMonth, date.getDate());\n};\n\nexport const getPrevMonthAndYear = (\n year: number = THIS_YEAR,\n month: number = THIS_MONTH\n): [number, number] => {\n const prevMonth = month > 0 ? month - 1 : 11;\n const prevYear = month > 0 ? year : year - 1;\n\n return [prevYear, prevMonth];\n};\n\nexport const getNextMonthDate = (date: Date = TODAY): Date => {\n const month = date.getMonth();\n const year = date.getFullYear();\n const nextMonth = month < 11 ? month + 1 : 0;\n const nextYear = month < 11 ? year : year + 1;\n\n return new Date(nextYear, nextMonth, date.getDate());\n};\n\nexport const getPrevYearDate = (date: Date = TODAY): Date => {\n return new Date(date.getFullYear() - 1, date.getMonth(), date.getDate());\n};\n\nexport const getNextYearDate = (date: Date = TODAY): Date => {\n return new Date(date.getFullYear() + 1, date.getMonth(), date.getDate());\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useLocale } from '../_utils/use-locale';\nimport {\n getMonthDaysArray,\n isSameDate,\n isToday,\n getPrevMonthDate,\n getNextMonthDate,\n getPrevYearDate,\n getNextYearDate,\n} from '../date-picker/utils';\nimport { CalendarProps, CalendarMode } from './types';\n\nconst MONTH_NAMES_EN = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n];\n\nconst Calendar = React.forwardRef<HTMLDivElement, CalendarProps>((props, ref) => {\n const {\n defaultValue,\n fullscreen = true,\n disabledDate,\n dateCellRender,\n monthCellRender,\n headerRender,\n defaultMode = 'month',\n prefixCls: customisedCls,\n className,\n style,\n onChange,\n onSelect,\n onPanelChange,\n value: _value,\n mode: _mode,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('calendar', configContext.prefixCls, customisedCls);\n const locale = useLocale();\n\n const [selectedDate, setSelectedDate] = useState<Date>(\n 'value' in props ? (props.value as Date) : (defaultValue ?? new Date())\n );\n const [panelDate, setPanelDate] = useState<Date>(selectedDate);\n const [mode, setMode] = useState<CalendarMode>(\n 'mode' in props ? (props.mode as CalendarMode) : defaultMode\n );\n\n useEffect(() => {\n if ('value' in props && props.value) {\n setSelectedDate(props.value);\n setPanelDate(props.value);\n }\n }, [props.value]);\n\n useEffect(() => {\n if ('mode' in props) {\n setMode(props.mode as CalendarMode);\n }\n }, [props.mode]);\n\n const weeks = locale?.DatePicker?.weeks ?? ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n const months = locale?.DatePicker?.months ?? [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',\n ];\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_fullscreen`]: fullscreen,\n [`${prefixCls}_card`]: !fullscreen,\n });\n\n const handleDateSelect = (date: Date) => {\n if (disabledDate?.(date)) return;\n if (!('value' in props)) {\n setSelectedDate(date);\n }\n setPanelDate(date);\n onSelect?.(date);\n onChange?.(date);\n };\n\n const handlePanelChange = (newDate: Date, newMode?: CalendarMode) => {\n setPanelDate(newDate);\n const m = newMode ?? mode;\n onPanelChange?.(newDate, m);\n };\n\n const handleModeChange = (newMode: CalendarMode) => {\n if (!('mode' in props)) {\n setMode(newMode);\n }\n onPanelChange?.(panelDate, newMode);\n };\n\n const handleMonthSelect = (month: number) => {\n const newDate = new Date(panelDate.getFullYear(), month, 1);\n handleDateSelect(newDate);\n handleModeChange('month');\n };\n\n const goPrev = () => {\n const newDate = mode === 'month' ? getPrevMonthDate(panelDate) : getPrevYearDate(panelDate);\n handlePanelChange(newDate);\n };\n\n const goNext = () => {\n const newDate = mode === 'month' ? getNextMonthDate(panelDate) : getNextYearDate(panelDate);\n handlePanelChange(newDate);\n };\n\n const renderHeader = () => {\n if (headerRender) {\n return headerRender({\n value: panelDate,\n mode,\n onChange: (date) => handlePanelChange(date),\n onModeChange: handleModeChange,\n });\n }\n\n const year = panelDate.getFullYear();\n const month = panelDate.getMonth();\n const monthName = locale?.locale === 'zh_CN'\n ? `${months[month]}`\n : MONTH_NAMES_EN[month];\n\n return (\n <div className={`${prefixCls}__header`}>\n <button type=\"button\" className={`${prefixCls}__nav-btn`} onClick={goPrev} aria-label=\"Previous\">\n ‹\n </button>\n <span className={`${prefixCls}__title`}>\n <button\n type=\"button\"\n className={`${prefixCls}__title-btn`}\n onClick={() => handleModeChange(mode === 'month' ? 'year' : 'month')}\n >\n {mode === 'month' ? `${monthName} ${year}` : year}\n </button>\n </span>\n <button type=\"button\" className={`${prefixCls}__nav-btn`} onClick={goNext} aria-label=\"Next\">\n ›\n </button>\n </div>\n );\n };\n\n const renderMonthPanel = () => {\n const panelDays = getMonthDaysArray(panelDate);\n\n return (\n <table className={`${prefixCls}__table`} role=\"grid\">\n <thead>\n <tr>\n {weeks.map((week, i) => (\n <th key={i} className={`${prefixCls}__cell-header`} scope=\"col\">\n {week}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: panelDays.length / 7 }, (_, row) => (\n <tr key={row}>\n {panelDays.slice(row * 7, row * 7 + 7).map((dayCell, col) => {\n const isDisabled = disabledDate?.(dayCell.date) ?? false;\n const cellCls = classNames(`${prefixCls}__cell`, {\n [`${prefixCls}__cell_in-view`]: dayCell.isThisMonth,\n [`${prefixCls}__cell_today`]: isToday(dayCell.date),\n [`${prefixCls}__cell_selected`]: isSameDate(selectedDate, dayCell.date),\n [`${prefixCls}__cell_disabled`]: isDisabled,\n });\n return (\n <td\n key={col}\n className={cellCls}\n onClick={() => handleDateSelect(dayCell.date)}\n role=\"gridcell\"\n >\n <div className={`${prefixCls}__cell-inner`}>\n <span className={`${prefixCls}__cell-date`}>{dayCell.label}</span>\n {dateCellRender && dayCell.isThisMonth && (\n <div className={`${prefixCls}__cell-content`}>\n {dateCellRender(dayCell.date)}\n </div>\n )}\n </div>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n );\n };\n\n const renderYearPanel = () => {\n return (\n <div className={`${prefixCls}__months`}>\n {months.map((monthLabel, i) => {\n const monthDate = new Date(panelDate.getFullYear(), i, 1);\n const isCurrentMonth = panelDate.getMonth() === i;\n const cellCls = classNames(`${prefixCls}__month-cell`, {\n [`${prefixCls}__month-cell_selected`]: isCurrentMonth,\n });\n return (\n <div\n key={i}\n className={cellCls}\n onClick={() => handleMonthSelect(i)}\n >\n <div className={`${prefixCls}__month-inner`}>\n <span>{monthLabel}</span>\n {monthCellRender && (\n <div className={`${prefixCls}__month-content`}>\n {monthCellRender(monthDate)}\n </div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n };\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n {renderHeader()}\n <div className={`${prefixCls}__body`}>\n {mode === 'month' ? renderMonthPanel() : renderYearPanel()}\n </div>\n </div>\n );\n});\n\nCalendar.displayName = 'Calendar';\nexport default Calendar;\n","import Calendar from './calendar';\n\nexport default Calendar;\n","import React, { ReactNode, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CardContentProps, CardProps } from './types';\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>((props, ref) => {\n const {\n bordered = true,\n active = false,\n hoverable = false,\n prefixCls: customisedCls,\n title,\n extra,\n header,\n headerStyle,\n actions,\n footer,\n footerStyle,\n className,\n style,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('card', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_bordered`]: bordered,\n [`${prefixCls}_active`]: active,\n [`${prefixCls}_hoverable`]: hoverable,\n });\n\n const renderHeader = (): ReactNode => {\n if (header) {\n return header;\n } else if (title || extra) {\n return (\n <div className={`${prefixCls}__header`} style={headerStyle}>\n {title}\n {extra}\n </div>\n );\n } else {\n return null;\n }\n };\n\n const renderFooter = (): ReactNode => {\n if (footer) {\n return footer;\n } else if (actions) {\n return (\n <div className={`${prefixCls}__footer`} style={footerStyle}>\n {actions}\n </div>\n );\n } else {\n return null;\n }\n };\n\n const renderChildren = (): ReactNode => {\n if (children) {\n return React.Children.map(children, (child) => {\n if (!React.isValidElement(child)) {\n return child;\n }\n\n // Pass prefixCls attribute to child if it is a CardContent instance\n const childElement = child as React.FunctionComponentElement<CardContentProps>;\n if (childElement.type.displayName === 'CardContent') {\n const childProps: Partial<CardContentProps> = {\n prefixCls,\n };\n return React.cloneElement(childElement, childProps);\n } else {\n return child;\n }\n });\n }\n return null;\n };\n\n return (\n <div ref={ref} {...otherProps} className={cls} style={style}>\n {renderHeader()}\n {renderChildren()}\n {renderFooter()}\n </div>\n );\n});\n\nCard.displayName = 'Card';\n\nexport default Card;\n","import React from 'react';\nimport { CardContentProps } from './types';\n\nconst CardContent = (props: CardContentProps): React.ReactElement => {\n const { prefixCls, children, ...otherProps } = props;\n return (\n <div {...otherProps} className={`${prefixCls}__body`}>\n {children}\n </div>\n );\n};\n\nCardContent.displayName = 'CardContent';\n\nexport default CardContent;\n","import Card from './card';\nimport CardContent from './card-content';\n\ntype ICard = typeof Card & {\n Content: typeof CardContent;\n};\n\nconst DefaultCard = Card as ICard;\nDefaultCard.Content = CardContent;\n\nexport default DefaultCard;\n","import React, {\n useRef,\n useEffect,\n useState,\n useCallback,\n useImperativeHandle,\n forwardRef,\n useContext,\n} from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CarouselProps, CarouselRef } from './types';\n\nconst Carousel = forwardRef<CarouselRef, CarouselProps>((props, ref) => {\n const {\n dots = true,\n arrows = false,\n autoplay = false,\n autoplaySpeed = 3000,\n dotPlacement = 'bottom',\n effect = 'scrollx',\n easing = 'ease',\n speed = 500,\n infinite = true,\n draggable = false,\n waitForAnimate = false,\n beforeChange,\n afterChange,\n className,\n style,\n children,\n prefixCls: customisedCls,\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('carousel', configContext.prefixCls, customisedCls);\n\n const slideCount = React.Children.count(children);\n const slides = React.Children.toArray(children) as React.ReactElement[];\n\n const trackRef = useRef<HTMLDivElement>(null);\n const outerRef = useRef<HTMLDivElement>(null);\n const [current, setCurrent] = useState(0);\n const [isAnimating, setIsAnimating] = useState(false);\n const animatingRef = useRef(false);\n\n // Drag state\n const dragStartX = useRef(0);\n const dragDelta = useRef(0);\n const isDragging = useRef(false);\n\n const isFade = effect === 'fade';\n\n // ---- Navigate ----\n const goTo = useCallback(\n (index: number, dontAnimate = false) => {\n if (waitForAnimate && animatingRef.current) return;\n if (index === current) return;\n\n const next = ((index % slideCount) + slideCount) % slideCount;\n beforeChange?.(current, next);\n\n if (dontAnimate || isFade) {\n setCurrent(next);\n afterChange?.(next);\n } else {\n setIsAnimating(true);\n animatingRef.current = true;\n setCurrent(next);\n }\n },\n [current, slideCount, beforeChange, afterChange, isFade, waitForAnimate]\n );\n\n const next = useCallback(() => {\n if (!infinite && current >= slideCount - 1) return;\n goTo(current + 1);\n }, [current, slideCount, infinite, goTo]);\n\n const prev = useCallback(() => {\n if (!infinite && current <= 0) return;\n goTo(current - 1);\n }, [current, infinite, goTo]);\n\n // ---- Imperative handle ----\n useImperativeHandle(ref, () => ({ goTo, next, prev }), [goTo, next, prev]);\n\n // ---- Animation end ----\n const handleTransitionEnd = useCallback(() => {\n setIsAnimating(false);\n animatingRef.current = false;\n afterChange?.(current);\n }, [afterChange, current]);\n\n // ---- Autoplay ----\n useEffect(() => {\n if (!autoplay || slideCount <= 1) return;\n const timer = window.setInterval(next, autoplaySpeed);\n return () => window.clearInterval(timer);\n }, [autoplay, autoplaySpeed, next, slideCount]);\n\n // ---- Drag ----\n const handleDragStart = (e: React.MouseEvent | React.TouchEvent) => {\n if (!draggable) return;\n isDragging.current = true;\n dragDelta.current = 0;\n dragStartX.current = 'touches' in e ? e.touches[0].clientX : e.clientX;\n };\n\n const handleDragMove = (e: React.MouseEvent | React.TouchEvent) => {\n if (!isDragging.current) return;\n const x = 'touches' in e ? e.touches[0].clientX : e.clientX;\n dragDelta.current = x - dragStartX.current;\n };\n\n const handleDragEnd = () => {\n if (!isDragging.current) return;\n isDragging.current = false;\n const containerWidth = outerRef.current?.clientWidth ?? 300;\n const threshold = containerWidth / 4;\n if (dragDelta.current < -threshold) {\n next();\n } else if (dragDelta.current > threshold) {\n prev();\n }\n dragDelta.current = 0;\n };\n\n // ---- Pause on hover ----\n const [paused, setPaused] = useState(false);\n useEffect(() => {\n if (!autoplay || !paused) return;\n // Autoplay effect handles timer — paused state is checked via dependency\n }, [autoplay, paused]);\n\n // Override autoplay to account for pause\n useEffect(() => {\n if (!autoplay || slideCount <= 1 || paused) return;\n const timer = window.setInterval(next, autoplaySpeed);\n return () => window.clearInterval(timer);\n }, [autoplay, autoplaySpeed, next, slideCount, paused]);\n\n // ---- Dots config ----\n const showDots = dots !== false;\n const dotsClassName = typeof dots === 'object' ? dots.className : undefined;\n const isVerticalDot = dotPlacement === 'left' || dotPlacement === 'right';\n\n // ---- Class names ----\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${effect}`]: true,\n [`${prefixCls}_vertical-dots`]: isVerticalDot,\n });\n\n // ---- Render scrollx track ----\n const renderScrollxTrack = () => {\n const pct = 100 / slideCount;\n const trackStyle: React.CSSProperties = {\n width: `${slideCount * 100}%`,\n transform: `translate3d(${-current * pct}%, 0, 0)`,\n transition: isAnimating ? `transform ${speed}ms ${easing}` : 'none',\n };\n\n return (\n <div\n className={`${prefixCls}__track`}\n ref={trackRef}\n style={trackStyle}\n onTransitionEnd={handleTransitionEnd}>\n {slides.map((child, idx) => (\n <div\n key={idx}\n className={`${prefixCls}__slide`}\n style={{ width: `${pct}%` }}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`Slide ${idx + 1} of ${slideCount}`}\n aria-hidden={idx !== current}>\n {child}\n </div>\n ))}\n </div>\n );\n };\n\n // ---- Render fade ----\n const renderFadeTrack = () => (\n <div className={`${prefixCls}__track ${prefixCls}__track_fade`}>\n {slides.map((child, idx) => {\n const isActive = idx === current;\n return (\n <div\n key={idx}\n className={classNames(`${prefixCls}__slide`, {\n [`${prefixCls}__slide_active`]: isActive,\n })}\n style={{\n opacity: isActive ? 1 : 0,\n transition: `opacity ${speed}ms ${easing}`,\n }}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`Slide ${idx + 1} of ${slideCount}`}\n aria-hidden={!isActive}>\n {child}\n </div>\n );\n })}\n </div>\n );\n\n return (\n <div\n ref={outerRef}\n className={cls}\n style={style}\n role=\"region\"\n aria-roledescription=\"carousel\"\n aria-label=\"Carousel\"\n onKeyDown={(e) => {\n if (e.key === 'ArrowLeft') { e.preventDefault(); prev(); }\n if (e.key === 'ArrowRight') { e.preventDefault(); next(); }\n }}\n tabIndex={0}\n onMouseEnter={() => autoplay && setPaused(true)}\n onMouseLeave={() => autoplay && setPaused(false)}\n onMouseDown={handleDragStart}\n onMouseMove={handleDragMove}\n onMouseUp={handleDragEnd}\n onTouchStart={handleDragStart}\n onTouchMove={handleDragMove}\n onTouchEnd={handleDragEnd}>\n <div className={`${prefixCls}__viewport`}>\n {isFade ? renderFadeTrack() : renderScrollxTrack()}\n </div>\n\n {arrows && slideCount > 1 && (\n <>\n <button\n className={`${prefixCls}__arrow ${prefixCls}__arrow_prev`}\n onClick={prev}\n type=\"button\"\n aria-label=\"Previous slide\">\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"currentColor\">\n <path d=\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\" />\n </svg>\n </button>\n <button\n className={`${prefixCls}__arrow ${prefixCls}__arrow_next`}\n onClick={next}\n type=\"button\"\n aria-label=\"Next slide\">\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"currentColor\">\n <path d=\"M8.59 16.59L10 18l6-6-6-6-1.41 1.41L13.17 12z\" />\n </svg>\n </button>\n </>\n )}\n\n {showDots && slideCount > 1 && (\n <ul\n className={classNames(\n `${prefixCls}__dots`,\n `${prefixCls}__dots_${dotPlacement}`,\n dotsClassName\n )}>\n {slides.map((_, idx) => (\n <li\n key={idx}\n className={classNames(`${prefixCls}__dot`, {\n [`${prefixCls}__dot_active`]: idx === current,\n })}>\n <button\n type=\"button\"\n aria-label={`Go to slide ${idx + 1}`}\n aria-current={idx === current ? true : undefined}\n onClick={() => goTo(idx)}\n />\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n});\n\nCarousel.displayName = 'Carousel';\n\nexport default Carousel;\n","import { BaseProps } from '../_utils/props';\n\nexport interface CarouselItemProps extends BaseProps {\n children?: React.ReactNode;\n}\n\nconst CarouselItem = (props: CarouselItemProps): React.ReactElement => {\n const { children, style, className } = props;\n return (\n <div style={style} className={className}>\n {children}\n </div>\n );\n};\n\nCarouselItem.displayName = 'CarouselItem';\n\nexport default CarouselItem;\n","import Carousel from './carousel';\nimport CarouselItem from './carousel-item';\n\nexport type { CarouselProps, CarouselRef, DotPlacement, CarouselEffect } from './types';\nexport type { CarouselItemProps } from './carousel-item';\n\ntype ICarousel = typeof Carousel & {\n Item: typeof CarouselItem;\n};\n\nconst DefaultCarousel = Carousel as unknown as ICarousel;\nDefaultCarousel.Item = CarouselItem;\n\nexport default DefaultCarousel;\n","import React, { useState, useEffect, useRef, useContext, useMemo } from 'react';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ArrowDown } from '../_utils/components';\nimport { CascaderProps, CascaderOption, CascaderValue } from './types';\n\nconst getOptionsByValue = (\n options: CascaderOption[],\n value: CascaderValue\n): CascaderOption[] => {\n const result: CascaderOption[] = [];\n let current = options;\n for (const v of value) {\n const found = current.find((opt) => opt.value === v);\n if (!found) break;\n result.push(found);\n current = found.children ?? [];\n }\n return result;\n};\n\nconst Cascader = React.forwardRef<HTMLDivElement, CascaderProps>((props, ref) => {\n const {\n options,\n defaultValue,\n placeholder = 'Please select',\n disabled = false,\n allowClear = true,\n size,\n expandTrigger = 'click',\n displayRender,\n changeOnSelect = false,\n notFoundContent = 'No Data',\n prefixCls: customisedCls,\n className,\n style,\n onChange,\n onDropdownVisibleChange,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('cascader', configContext.prefixCls, customisedCls);\n const cascaderSize = size || configContext.componentSize || 'md';\n const wrapperRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const [open, setOpen] = useState(false);\n const [dropdownStyle, setDropdownStyle] = useState<React.CSSProperties>({});\n const [selectedValue, setSelectedValue] = useState<CascaderValue>(\n 'value' in props ? (props.value ?? []) : (defaultValue ?? [])\n );\n const [activeColumns, setActiveColumns] = useState<CascaderOption[][]>([options]);\n const [hoveredPath, setHoveredPath] = useState<CascaderValue>([]);\n\n useEffect(() => {\n if ('value' in props) {\n setSelectedValue(props.value ?? []);\n }\n }, [props.value]);\n\n useEffect(() => {\n if ('open' in props) {\n setOpen(props.open as boolean);\n }\n }, [props.open]);\n\n // Build columns from selected value on mount\n useEffect(() => {\n const cols: CascaderOption[][] = [options];\n let current = options;\n const path = selectedValue.length > 0 ? selectedValue : hoveredPath;\n for (const v of path) {\n const found = current.find((opt) => opt.value === v);\n if (found?.children?.length) {\n cols.push(found.children);\n current = found.children;\n } else {\n break;\n }\n }\n setActiveColumns(cols);\n }, [options, selectedValue]);\n\n // Position dropdown below selector\n useEffect(() => {\n if (open && wrapperRef.current) {\n const rect = wrapperRef.current.getBoundingClientRect();\n setDropdownStyle({\n position: 'absolute',\n top: rect.bottom + 4 + window.scrollY,\n left: rect.left + window.scrollX,\n zIndex: 1050,\n });\n }\n }, [open]);\n\n // Click outside\n useEffect(() => {\n if (!open) return;\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node;\n if (\n wrapperRef.current && !wrapperRef.current.contains(target) &&\n dropdownRef.current && !dropdownRef.current.contains(target)\n ) {\n closeDropdown();\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [open]);\n\n const closeDropdown = () => {\n if (!('open' in props)) setOpen(false);\n onDropdownVisibleChange?.(false);\n setHoveredPath([]);\n };\n\n const toggleOpen = () => {\n if (disabled) return;\n const next = !open;\n if (!('open' in props)) setOpen(next);\n onDropdownVisibleChange?.(next);\n };\n\n const handleOptionSelect = (option: CascaderOption, level: number) => {\n if (option.disabled) return;\n\n const newPath = [...hoveredPath.slice(0, level), option.value];\n setHoveredPath(newPath);\n\n // Update columns\n const cols = activeColumns.slice(0, level + 1);\n if (option.children?.length) {\n cols.push(option.children);\n }\n setActiveColumns(cols);\n\n // If leaf node or changeOnSelect\n const isLeaf = option.isLeaf !== undefined ? option.isLeaf : !option.children?.length;\n if (isLeaf || changeOnSelect) {\n if (!('value' in props)) {\n setSelectedValue(newPath);\n }\n const selectedOptions = getOptionsByValue(options, newPath);\n onChange?.(newPath, selectedOptions);\n if (isLeaf) {\n closeDropdown();\n }\n }\n };\n\n const handleOptionHover = (option: CascaderOption, level: number) => {\n if (expandTrigger !== 'hover' || option.disabled) return;\n const newPath = [...hoveredPath.slice(0, level), option.value];\n setHoveredPath(newPath);\n\n const cols = activeColumns.slice(0, level + 1);\n if (option.children?.length) {\n cols.push(option.children);\n }\n setActiveColumns(cols);\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!('value' in props)) {\n setSelectedValue([]);\n }\n onChange?.([], []);\n setActiveColumns([options]);\n setHoveredPath([]);\n };\n\n const selectedOptions = useMemo(\n () => getOptionsByValue(options, selectedValue),\n [options, selectedValue]\n );\n\n const labels = selectedOptions.map((opt) => opt.label);\n\n const displayText = useMemo(() => {\n if (selectedValue.length === 0) return '';\n if (displayRender) return displayRender(labels, selectedOptions);\n return labels.join(' / ');\n }, [selectedValue, selectedOptions, displayRender]);\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${cascaderSize}`]: cascaderSize,\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_open`]: open,\n });\n\n const dropdown = open\n ? createPortal(\n <div className={`${prefixCls}__dropdown`} ref={dropdownRef} style={dropdownStyle}>\n <div className={`${prefixCls}__menus`}>\n {activeColumns.map((columnOptions, level) => (\n <ul key={level} className={`${prefixCls}__menu`} role=\"listbox\">\n {columnOptions.length === 0 ? (\n <li className={`${prefixCls}__menu-empty`}>{notFoundContent}</li>\n ) : (\n columnOptions.map((option) => {\n const isActive =\n (selectedValue[level] === option.value) ||\n (hoveredPath[level] === option.value);\n const hasChildren = !!(option.children?.length);\n const itemCls = classNames(`${prefixCls}__menu-item`, {\n [`${prefixCls}__menu-item_active`]: isActive,\n [`${prefixCls}__menu-item_disabled`]: option.disabled,\n });\n return (\n <li\n key={option.value}\n className={itemCls}\n role=\"option\"\n aria-selected={isActive}\n onClick={() => handleOptionSelect(option, level)}\n onMouseEnter={() => handleOptionHover(option, level)}\n >\n <span className={`${prefixCls}__menu-item-label`}>{option.label}</span>\n {hasChildren && (\n <span className={`${prefixCls}__menu-item-arrow`}>›</span>\n )}\n </li>\n );\n })\n )}\n </ul>\n ))}\n </div>\n </div>,\n document.body\n )\n : null;\n\n return (\n <div {...otherProps} ref={wrapperRef} className={cls} style={style}>\n <div className={`${prefixCls}__selector`} onClick={toggleOpen}>\n {displayText ? (\n <span className={`${prefixCls}__display`}>{displayText}</span>\n ) : (\n <span className={`${prefixCls}__placeholder`}>{placeholder}</span>\n )}\n {allowClear && selectedValue.length > 0 && (\n <span className={`${prefixCls}__clear`} onClick={handleClear}>\n ✕\n </span>\n )}\n <span className={`${prefixCls}__arrow`}><ArrowDown size={10} /></span>\n </div>\n {dropdown}\n </div>\n );\n});\n\nCascader.displayName = 'Cascader';\nexport default Cascader;\n","import Cascader from './cascader';\n\nexport default Cascader;\n","import React from 'react';\n\ntype Props = {\n value?: string[];\n disabled?: boolean;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n};\n\nexport const CheckboxGroupContext = React.createContext<Props>({});\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CheckboxGroupContext } from './checkbox-group-context';\nimport { CheckboxProps } from './types';\n\nconst Checkbox = React.forwardRef<HTMLLabelElement, CheckboxProps>(\n (props: CheckboxProps, ref): React.ReactElement => {\n const {\n defaultChecked = false,\n indeterminate = false,\n value,\n onChange,\n className,\n children,\n checkboxRef,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const checkboxGroupContext = useContext(CheckboxGroupContext);\n const initialChecked = 'checked' in props ? (props.checked as boolean) : defaultChecked;\n const [checked, setChecked] = useState<boolean>(\n 'value' in checkboxGroupContext ? checkboxGroupContext.value === value : initialChecked\n );\n const prefixCls = getPrefixCls('checkbox', configContext.prefixCls, customisedCls);\n const disabled: boolean =\n 'disabled' in props\n ? (props.disabled as boolean)\n : 'disabled' in checkboxGroupContext\n ? (checkboxGroupContext.disabled as boolean)\n : false;\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_indeterminate`]: indeterminate,\n [`${prefixCls}_checked`]: checked && !indeterminate,\n [`${prefixCls}_disabled`]: disabled,\n });\n\n const checkboxOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled) {\n !('checked' in props) && setChecked(e.currentTarget.checked);\n onChange && onChange(e);\n checkboxGroupContext.onChange && checkboxGroupContext.onChange(e);\n }\n };\n\n useEffect(() => {\n if ('value' in checkboxGroupContext && typeof checkboxGroupContext.value !== 'undefined' && 'value' in props ) {\n setChecked((checkboxGroupContext.value).includes(value as string));\n }\n 'checked' in props && typeof props.checked !== 'undefined' && setChecked(props.checked);\n }, [props, checkboxGroupContext, value]);\n\n return (\n <label {...otherProps} ref={ref} className={cls}>\n <input\n ref={checkboxRef}\n role=\"checkbox\"\n aria-checked={checked}\n name={value}\n disabled={disabled}\n className={`${prefixCls}__native`}\n type=\"checkbox\"\n checked={checked}\n onChange={checkboxOnChange}\n />\n <span className={`${prefixCls}__inner`} />\n <span>{children}</span>\n </label>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CheckboxGroupContext } from './checkbox-group-context';\nimport { CheckboxGroupProps } from './types';\n\nconst CheckboxGroup = React.forwardRef<HTMLDivElement, CheckboxGroupProps>(\n (props: CheckboxGroupProps, ref): React.ReactElement => {\n const {\n defaultValue = [],\n prefixCls: customisedCls,\n onChange,\n disabled,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('checkbox-group', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [value, setValue] = useState<string[]>(\n 'value' in props ? (props.value as string[]) : defaultValue\n );\n\n const itemOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled) {\n const name = e.currentTarget.name;\n const newValue = value.includes(name)\n ? value.filter((v) => v !== name)\n : [...value, name];\n !('value' in props) && setValue(newValue);\n onChange && onChange(newValue);\n }\n };\n\n useEffect(() => {\n 'value' in props && setValue([...(props.value as string[])]);\n }, [props]);\n\n return (\n <CheckboxGroupContext.Provider\n value={{\n value,\n disabled,\n onChange: itemOnChange,\n }}>\n <div {...otherProps} ref={ref} role=\"group\" className={cls}>\n {children}\n </div>\n </CheckboxGroupContext.Provider>\n );\n }\n);\n\nCheckboxGroup.displayName = 'CheckboxGroup';\n\nexport default CheckboxGroup;\n","import Checkbox from './checkbox';\nimport CheckboxGroup from './checkbox-group';\n\ntype ICheckbox = typeof Checkbox & {\n Group: typeof CheckboxGroup;\n};\n\nconst DefaultCheckbox = Checkbox as ICheckbox;\nDefaultCheckbox.Group = CheckboxGroup;\n\nexport default DefaultCheckbox;\n","import IntlProvider from './intl-provider';\n\nexport default IntlProvider;\n","import React from 'react';\nimport { Locale } from '../locale/types';\nimport IntlContext from './intl-context';\n\nexport interface IntlProviderProps {\n locale: Locale;\n children: React.ReactNode;\n}\n\nconst IntlProvider = (props: IntlProviderProps): React.ReactElement => {\n const { locale, children } = props;\n return <IntlContext.Provider value={locale}>{children}</IntlContext.Provider>;\n};\n\nexport default IntlProvider;\n","import { useEffect } from 'react';\nimport { ConfigContext } from './config-context';\nimport { ConfigProviderProps } from './types';\nimport IntlProvider from '../intl-provider';\n\nconst ConfigProvider = (props: ConfigProviderProps): JSX.Element => {\n const { children, theme, locale, ...otherProps } = props;\n\n useEffect(() => {\n if (!theme) return;\n const html = document.documentElement;\n if (theme === 'system') {\n html.removeAttribute('data-theme');\n } else {\n html.setAttribute('data-theme', theme);\n }\n }, [theme]);\n\n const content = locale ? (\n <IntlProvider locale={locale}>{children}</IntlProvider>\n ) : (\n children\n );\n\n return (\n <ConfigContext.Provider value={{ theme, locale, ...otherProps }}>\n {content}\n </ConfigContext.Provider>\n );\n};\n\nConfigProvider.displayName = 'ConfigProvider';\n\nexport default ConfigProvider;\n","import ConfigProvider from './config-provider';\n\nexport default ConfigProvider;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CopyToClipboardProps } from './types';\n\nconst copy = async (value: string) => {\n if (navigator.clipboard) {\n try {\n await navigator.clipboard.writeText(value);\n } catch {\n fallbackCopy(value);\n }\n } else {\n fallbackCopy(value);\n }\n};\n\nconst fallbackCopy = (value: string) => {\n const textArea = document.createElement('textarea');\n textArea.style.position = 'fixed';\n textArea.style.opacity = '0';\n textArea.value = value;\n document.body.appendChild(textArea);\n textArea.select();\n try {\n document.execCommand('copy');\n } catch {\n // copy failed silently\n }\n document.body.removeChild(textArea);\n};\n\nconst CopyToClipboard = (props: CopyToClipboardProps): React.ReactElement => {\n const { prefixCls: customisedCls, text, className, children, onClick, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('copy', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n const btnOnClick = (e: React.MouseEvent<HTMLSpanElement>): void => {\n copy(text);\n onClick && onClick(e);\n };\n\n return (\n <span {...otherProps} className={cls} onClick={btnOnClick}>\n {children}\n </span>\n );\n};\n\nCopyToClipboard.displayName = 'CopyToClipboard';\n\nexport default CopyToClipboard;\n","import CopyToClipboard from './copy-to-clipboard';\n\nexport default CopyToClipboard;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ColProps, ColSize } from './types';\n\nconst ScreenTypes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\n\nconst Col = React.forwardRef<HTMLDivElement, ColProps>((props, ref) => {\n const {\n span = 24,\n offset = 0,\n order = 0,\n prefixCls: customisedCls,\n className,\n style,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('col', configContext.prefixCls, customisedCls);\n\n let sizeClassObj = {};\n ScreenTypes.forEach((size) => {\n let sizeProps: ColSize = {};\n // Prevent the error that expression of type 'string' can't be used to index type 'ColProps'.\n const propSize = (props as any)[size];\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (typeof propSize === 'object') {\n sizeProps = propSize || {};\n }\n sizeClassObj = {\n ...sizeClassObj,\n [`${prefixCls}-${size}-${sizeProps.span}`]: sizeProps.span !== undefined,\n [`${prefixCls}-${size}-order-${sizeProps.order}`]: sizeProps.order || sizeProps.order === 0,\n [`${prefixCls}-${size}-offset-${sizeProps.offset}`]:\n sizeProps.offset || sizeProps.offset === 0,\n };\n });\n const cls = classNames(\n prefixCls,\n className,\n {\n [`${prefixCls}-${span}`]: span,\n [`${prefixCls}-offset-${offset}`]: offset,\n [`${prefixCls}-order-${order}`]: order,\n },\n sizeClassObj\n );\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n {children}\n </div>\n );\n});\n\nCol.displayName = 'Col';\n\nexport default Col;\n","import Col from '../grid/col';\n\nexport default Col;\n","import React from 'react';\n\ntype Props = {\n activeKeys: string[];\n onItemClick?: (itemKey: string) => void;\n};\n\nexport const CollapseContext = React.createContext<Props>({\n activeKeys: [],\n});\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { CollapseContext } from './collapse-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CollapsePanelProps, CollapseProps } from './types';\n\n/**\n * Format active key to array\n * @param activeKey\n */\nconst toArray = (activeKey: string | string[]): string[] => {\n return Array.isArray(activeKey) ? activeKey : [activeKey];\n};\n\nconst Collapse = React.forwardRef<HTMLDivElement, CollapseProps>(\n (props: CollapseProps, ref): React.ReactElement => {\n const {\n showArrow = true,\n bordered = true,\n deletable = false,\n accordion = false,\n defaultActiveKey = [],\n prefixCls: customisedCls,\n activeKey,\n onChange,\n className,\n children,\n ...otherProps\n } = props;\n let currentActiveKey: string | string[] = defaultActiveKey;\n if (activeKey) {\n currentActiveKey = activeKey;\n }\n const [activeItems, setActiveItems] = useState<string[]>(toArray(currentActiveKey));\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('collapse', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_borderless`]: !bordered,\n });\n\n const updateActiveItems = (items: string[]) => {\n if (!('activeKey' in props)) {\n // only for defaultKey\n setActiveItems(items);\n }\n onChange && onChange(items);\n };\n\n const handleOnItemClick = (itemKey: string) => {\n let items = activeItems;\n if (accordion) {\n items = items[0] === itemKey ? [] : [itemKey];\n } else {\n items = [...activeItems];\n const index = items.indexOf(itemKey);\n const isActive = index > -1;\n if (isActive) {\n // remove active state\n items.splice(index, 1);\n } else {\n items.push(itemKey);\n }\n }\n updateActiveItems(items);\n };\n\n useEffect(() => {\n // Update state from updated props\n activeKey && setActiveItems(toArray(activeKey));\n }, [activeKey]);\n\n return (\n <div {...otherProps} ref={ref} className={cls}>\n <CollapseContext.Provider\n value={{\n activeKeys: activeItems,\n onItemClick: handleOnItemClick,\n }}>\n {React.Children.map(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<CollapsePanelProps>;\n if (childElement.type.displayName === 'CollapsePanel') {\n const itemProps: Partial<CollapsePanelProps> = {\n deletable,\n showArrow,\n itemKey: `${idx}`,\n };\n return React.cloneElement(childElement, itemProps);\n }\n return child;\n })}\n </CollapseContext.Provider>\n </div>\n );\n }\n);\n\nCollapse.displayName = 'Collapse';\n\nexport default Collapse;\n","import React, { useRef, useEffect, useCallback } from 'react';\n\ntype CollapseTransitionProps = {\n isShow: boolean;\n children: React.ReactNode;\n};\n\nconst COLLAPSE_DURATION = 250;\n\nconst CollapseTransition = (props: CollapseTransitionProps): JSX.Element => {\n const { isShow, children } = props;\n const leaveTimerRef = useRef<number | null>(null);\n const enterTimerRef = useRef<number | null>(null);\n const ref = useRef<HTMLDivElement | null>(null);\n\n const beforeEnter = useCallback((): void => {\n const el = ref.current;\n if (el) {\n el.style.display = 'block';\n el.style.height = '0px';\n }\n }, []);\n\n const afterEnter = useCallback((): void => {\n const el = ref.current;\n if (el) {\n el.style.display = 'block';\n el.style.height = '';\n }\n }, []);\n\n const enter = useCallback((): void => {\n const el = ref.current;\n if (el) {\n if (el.scrollHeight !== 0) {\n el.style.height = el.scrollHeight + 'px';\n } else {\n el.style.height = '';\n }\n\n enterTimerRef.current = window.setTimeout(() => afterEnter(), COLLAPSE_DURATION);\n }\n }, [afterEnter]);\n\n const beforeLeave = useCallback((): void => {\n const el = ref.current;\n if (el) {\n el.style.display = 'block';\n if (el.scrollHeight !== 0) {\n el.style.height = el.scrollHeight + 'px';\n }\n }\n }, []);\n\n const afterLeave = useCallback((): void => {\n const el = ref.current;\n if (el) {\n el.style.display = 'none';\n el.style.height = '';\n }\n }, []);\n\n const leave = useCallback((): void => {\n const el = ref.current;\n if (el) {\n if (el.scrollHeight !== 0) {\n el.style.height = '0px';\n }\n\n leaveTimerRef.current = window.setTimeout(() => afterLeave(), COLLAPSE_DURATION);\n }\n }, [afterLeave]);\n\n const triggerChange = useCallback(\n (isCollapsed: boolean): void => {\n const enterTimer = enterTimerRef.current;\n const leaveTimer = leaveTimerRef.current;\n enterTimer && window.clearTimeout(enterTimer);\n leaveTimer && window.clearTimeout(leaveTimer);\n\n if (isCollapsed) {\n beforeEnter();\n enter();\n } else {\n beforeLeave();\n leave();\n }\n },\n [enter, leave, beforeEnter, beforeLeave]\n );\n\n useEffect(() => {\n beforeEnter();\n enter();\n\n return () => {\n beforeLeave();\n leave();\n };\n }, [enter, leave, beforeEnter, beforeLeave]);\n\n useEffect(() => {\n triggerChange(isShow);\n }, [isShow, triggerChange]);\n\n return (\n <div className=\"ty-collapse-transition\" ref={ref}>\n {children}\n </div>\n );\n};\n\nCollapseTransition.displayName = 'CollapseTransition';\n\nexport default CollapseTransition;\n","import CollapseTransition from './collapse-transition';\n\nexport default CollapseTransition;\n","import React, { useContext, useId, useRef } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CollapsePanelProps } from './types';\nimport { ArrowDown } from '../_utils/components';\nimport CollapseTransition from '../collapse-transition';\nimport { CollapseContext } from './collapse-context';\n\n/**\n * Allow to parse active status to a node\n * @param node\n * @param isActive\n */\nconst richNode = (node: React.ReactNode | ((isActive: boolean) => React.ReactNode), isActive: boolean) => {\n return typeof node === 'function' ? node(isActive) : node;\n};\n\nconst CollapsePanel = (props: CollapsePanelProps): React.ReactElement => {\n const {\n showArrow = true,\n itemKey,\n header,\n disabled,\n extra,\n deletable,\n onHeaderOnClick,\n className,\n style,\n children,\n prefixCls: customisedCls,\n } = props;\n const itemRef = useRef<HTMLDivElement | null>(null);\n const panelId = useId();\n const headerId = useId();\n const configContext = useContext(ConfigContext);\n const { activeKeys, onItemClick } = useContext(CollapseContext);\n const prefixCls = getPrefixCls('collapse-item', configContext.prefixCls, customisedCls);\n const active = activeKeys.includes(itemKey);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_active`]: active,\n });\n\n const headerOnClick = (e: React.MouseEvent) => {\n if (!disabled) {\n onHeaderOnClick && onHeaderOnClick(e);\n onItemClick && onItemClick(itemKey);\n }\n };\n\n /**\n * Remove a item from collapse only the header is enabled\n * @param e\n * @private\n */\n const removeItem = (e: React.MouseEvent<HTMLSpanElement>) => {\n e.stopPropagation();\n if (!disabled) {\n const node = itemRef.current;\n node && node.parentNode?.removeChild(node);\n }\n };\n\n const renderHeader = () => {\n const headerCls = classNames(`${prefixCls}__header`, {\n [`${prefixCls}__header_disabled`]: disabled,\n });\n const arrowCls = classNames(`${prefixCls}__arrow`, {\n [`${prefixCls}__arrow_active`]: active,\n });\n\n return (\n <button\n type=\"button\"\n id={headerId}\n className={headerCls}\n onClick={headerOnClick}\n aria-expanded={active}\n aria-controls={panelId}\n aria-disabled={disabled || undefined}>\n {showArrow && <ArrowDown size={10} className={arrowCls} />}\n <div className={`${prefixCls}__title`}>{richNode(header, active)}</div>\n <div className={`${prefixCls}__extra`}>\n {deletable ? <span onClick={removeItem}>✕</span> : richNode(extra, active)}\n </div>\n </button>\n );\n };\n\n return (\n <div className={cls} style={style} ref={itemRef}>\n {renderHeader()}\n <CollapseTransition isShow={active}>\n <div className={`${prefixCls}__content`} id={panelId} role=\"region\" aria-labelledby={headerId}>{richNode(children, active)}</div>\n </CollapseTransition>\n </div>\n );\n};\n\nCollapsePanel.displayName = 'CollapsePanel';\n\nexport default CollapsePanel;\n","import Collapse from './collapse';\nimport CollapsePanel from './collapse-panel';\n\ntype ICollapse = typeof Collapse & {\n Panel: typeof CollapsePanel;\n};\n\nconst DefaultCollapse = Collapse as ICollapse;\nDefaultCollapse.Panel = CollapsePanel;\n\nexport default DefaultCollapse;\n","import { Color } from './types';\n\nexport const hexToHsb = (hex: string): Color => {\n let h = hex.replace('#', '');\n if (h.length === 3) h = h.split('').map((c) => c + c).join('');\n\n let a = 1;\n if (h.length === 8) {\n a = parseInt(h.slice(6, 8), 16) / 255;\n h = h.slice(0, 6);\n }\n\n const r = parseInt(h.slice(0, 2), 16) / 255;\n const g = parseInt(h.slice(2, 4), 16) / 255;\n const b = parseInt(h.slice(4, 6), 16) / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n\n let hue = 0;\n if (d !== 0) {\n if (max === r) hue = ((g - b) / d + 6) % 6;\n else if (max === g) hue = (b - r) / d + 2;\n else hue = (r - g) / d + 4;\n hue *= 60;\n }\n\n const saturation = max === 0 ? 0 : (d / max) * 100;\n const brightness = max * 100;\n\n return { h: Math.round(hue), s: Math.round(saturation), b: Math.round(brightness), a };\n};\n\nexport const hsbToHex = (color: Color): string => {\n const { h, s, b, a } = color;\n const sNorm = s / 100;\n const bNorm = b / 100;\n\n const c = bNorm * sNorm;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = bNorm - c;\n\n let r = 0, g = 0, bl = 0;\n if (h < 60) { r = c; g = x; bl = 0; }\n else if (h < 120) { r = x; g = c; bl = 0; }\n else if (h < 180) { r = 0; g = c; bl = x; }\n else if (h < 240) { r = 0; g = x; bl = c; }\n else if (h < 300) { r = x; g = 0; bl = c; }\n else { r = c; g = 0; bl = x; }\n\n const toHex = (v: number) => Math.round((v + m) * 255).toString(16).padStart(2, '0');\n const hex = `#${toHex(r)}${toHex(g)}${toHex(bl)}`;\n if (a < 1) {\n return hex + Math.round(a * 255).toString(16).padStart(2, '0');\n }\n return hex;\n};\n\nexport const hsbToRgb = (color: Color): string => {\n const hex = hsbToHex(color);\n const h = hex.replace('#', '');\n const r = parseInt(h.slice(0, 2), 16);\n const g = parseInt(h.slice(2, 4), 16);\n const b = parseInt(h.slice(4, 6), 16);\n if (color.a < 1) {\n return `rgba(${r}, ${g}, ${b}, ${color.a.toFixed(2)})`;\n }\n return `rgb(${r}, ${g}, ${b})`;\n};\n\nexport const formatColor = (color: Color, format: string): string => {\n switch (format) {\n case 'rgb':\n return hsbToRgb(color);\n case 'hsb':\n return `hsb(${color.h}, ${color.s}%, ${color.b}%)`;\n default:\n return hsbToHex(color);\n }\n};\n\nexport const parseColor = (input: string): Color => {\n if (!input) return { h: 0, s: 100, b: 100, a: 1 };\n\n // hex\n if (input.startsWith('#')) {\n return hexToHsb(input);\n }\n\n // rgb/rgba\n const rgbMatch = input.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*([\\d.]+))?\\s*\\)/);\n if (rgbMatch) {\n const r = parseInt(rgbMatch[1]) / 255;\n const g = parseInt(rgbMatch[2]) / 255;\n const b = parseInt(rgbMatch[3]) / 255;\n const a = rgbMatch[4] ? parseFloat(rgbMatch[4]) : 1;\n const hex = `#${Math.round(r * 255).toString(16).padStart(2, '0')}${Math.round(g * 255).toString(16).padStart(2, '0')}${Math.round(b * 255).toString(16).padStart(2, '0')}`;\n return { ...hexToHsb(hex), a };\n }\n\n return { h: 0, s: 100, b: 100, a: 1 };\n};\n","import React, { useState, useEffect, useRef, useContext, useCallback } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useClickOutside } from '../_utils/hooks';\nimport Popup from '../popup';\nimport { ColorPickerProps, Color, ColorFormat } from './types';\nimport { parseColor, formatColor, hsbToHex } from './utils';\n\nconst ColorPicker = React.forwardRef<HTMLDivElement, ColorPickerProps>((props, _ref) => {\n const {\n defaultValue = '#6e41bf',\n presets,\n showAlpha = false,\n disabled = false,\n trigger = 'click',\n defaultFormat = 'hex',\n prefixCls: customisedCls,\n className,\n style,\n onChange,\n onFormatChange,\n children,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('color-picker', configContext.prefixCls, customisedCls);\n\n const [color, setColor] = useState<Color>(() =>\n parseColor('value' in props ? (props.value as string) : defaultValue)\n );\n const [format, setFormat] = useState<ColorFormat>(\n 'format' in props ? (props.format as ColorFormat) : defaultFormat\n );\n const [open, setOpen] = useState(false);\n const [dragging, setDragging] = useState(false);\n\n const spectrumRef = useRef<HTMLDivElement>(null);\n const hueRef = useRef<HTMLDivElement>(null);\n const alphaRef = useRef<HTMLDivElement>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const isOpen = ('open' in props ? (props.open as boolean) : undefined) ?? open;\n const controlledOpen = 'open' in props ? (props.open as boolean) : undefined;\n\n useEffect(() => {\n if ('value' in props && props.value) {\n setColor(parseColor(props.value));\n }\n }, [props.value]);\n\n useEffect(() => {\n if ('format' in props) setFormat(props.format as ColorFormat);\n }, [props.format]);\n\n useEffect(() => {\n if ('open' in props) setOpen(props.open as boolean);\n }, [props.open]);\n\n useClickOutside(wrapperRef.current as HTMLDivElement, () => {\n if (controlledOpen === undefined) setOpen(false);\n props.onOpenChange?.(false);\n });\n\n const emitChange = useCallback((c: Color) => {\n const formatted = formatColor(c, format);\n onChange?.(formatted);\n }, [format, onChange]);\n\n const updateColor = (updates: Partial<Color>) => {\n const newColor = { ...color, ...updates };\n if (!('value' in props)) {\n setColor(newColor);\n }\n emitChange(newColor);\n };\n\n const handleSpectrumMouseDown = (e: React.MouseEvent) => {\n if (disabled) return;\n setDragging(true);\n updateSpectrumFromEvent(e.nativeEvent);\n };\n\n const updateSpectrumFromEvent = (e: MouseEvent | React.MouseEvent['nativeEvent']) => {\n const rect = spectrumRef.current?.getBoundingClientRect();\n if (!rect) return;\n const x = Math.max(0, Math.min(e.clientX - rect.left, rect.width));\n const y = Math.max(0, Math.min(e.clientY - rect.top, rect.height));\n const s = Math.round((x / rect.width) * 100);\n const b = Math.round(100 - (y / rect.height) * 100);\n updateColor({ s, b });\n };\n\n const handleHueMouseDown = (e: React.MouseEvent) => {\n if (disabled) return;\n updateHueFromEvent(e.nativeEvent);\n const handleMove = (ev: MouseEvent) => updateHueFromEvent(ev);\n const handleUp = () => {\n document.removeEventListener('mousemove', handleMove);\n document.removeEventListener('mouseup', handleUp);\n };\n document.addEventListener('mousemove', handleMove);\n document.addEventListener('mouseup', handleUp);\n };\n\n const updateHueFromEvent = (e: MouseEvent | React.MouseEvent['nativeEvent']) => {\n const rect = hueRef.current?.getBoundingClientRect();\n if (!rect) return;\n const x = Math.max(0, Math.min(e.clientX - rect.left, rect.width));\n const h = Math.round((x / rect.width) * 360);\n updateColor({ h });\n };\n\n const handleAlphaMouseDown = (e: React.MouseEvent) => {\n if (disabled) return;\n updateAlphaFromEvent(e.nativeEvent);\n const handleMove = (ev: MouseEvent) => updateAlphaFromEvent(ev);\n const handleUp = () => {\n document.removeEventListener('mousemove', handleMove);\n document.removeEventListener('mouseup', handleUp);\n };\n document.addEventListener('mousemove', handleMove);\n document.addEventListener('mouseup', handleUp);\n };\n\n const updateAlphaFromEvent = (e: MouseEvent | React.MouseEvent['nativeEvent']) => {\n const rect = alphaRef.current?.getBoundingClientRect();\n if (!rect) return;\n const x = Math.max(0, Math.min(e.clientX - rect.left, rect.width));\n const a = Math.round((x / rect.width) * 100) / 100;\n updateColor({ a });\n };\n\n useEffect(() => {\n if (!dragging) return;\n const handleMove = (e: MouseEvent) => updateSpectrumFromEvent(e);\n const handleUp = () => setDragging(false);\n document.addEventListener('mousemove', handleMove);\n document.addEventListener('mouseup', handleUp);\n return () => {\n document.removeEventListener('mousemove', handleMove);\n document.removeEventListener('mouseup', handleUp);\n };\n }, [dragging, color.h, color.a]);\n\n const toggleOpen = () => {\n if (disabled) return;\n const next = !isOpen;\n if (controlledOpen === undefined) setOpen(next);\n props.onOpenChange?.(next);\n };\n\n const handleFormatChange = () => {\n const formats: ColorFormat[] = ['hex', 'rgb', 'hsb'];\n const idx = formats.indexOf(format);\n const next = formats[(idx + 1) % formats.length];\n if (!('format' in props)) setFormat(next);\n onFormatChange?.(next);\n };\n\n const handlePresetClick = (preset: string) => {\n const c = parseColor(preset);\n if (!('value' in props)) setColor(c);\n emitChange(c);\n };\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_disabled`]: disabled,\n });\n\n const hexColor = hsbToHex(color);\n const hueColor = hsbToHex({ h: color.h, s: 100, b: 100, a: 1 });\n\n const renderPanel = () => (\n <div className={`${prefixCls}__panel`}>\n <div\n ref={spectrumRef}\n className={`${prefixCls}__spectrum`}\n style={{ backgroundColor: hueColor }}\n onMouseDown={handleSpectrumMouseDown}\n >\n <div className={`${prefixCls}__spectrum-white`} />\n <div className={`${prefixCls}__spectrum-black`} />\n <div\n className={`${prefixCls}__spectrum-handle`}\n style={{\n left: `${color.s}%`,\n top: `${100 - color.b}%`,\n backgroundColor: hexColor,\n }}\n />\n </div>\n\n <div className={`${prefixCls}__controls`}>\n <div className={`${prefixCls}__preview`} style={{ backgroundColor: hexColor }} />\n <div className={`${prefixCls}__sliders`}>\n <div\n ref={hueRef}\n className={`${prefixCls}__hue`}\n onMouseDown={handleHueMouseDown}\n >\n <div\n className={`${prefixCls}__slider-handle`}\n style={{ left: `${(color.h / 360) * 100}%` }}\n />\n </div>\n {showAlpha && (\n <div\n ref={alphaRef}\n className={`${prefixCls}__alpha`}\n onMouseDown={handleAlphaMouseDown}\n style={{\n background: `linear-gradient(to right, transparent, ${hsbToHex({ ...color, a: 1 })})`,\n }}\n >\n <div\n className={`${prefixCls}__slider-handle`}\n style={{ left: `${color.a * 100}%` }}\n />\n </div>\n )}\n </div>\n </div>\n\n <div className={`${prefixCls}__input-row`}>\n <button\n type=\"button\"\n className={`${prefixCls}__format-btn`}\n onClick={handleFormatChange}\n >\n {format.toUpperCase()}\n </button>\n <input\n className={`${prefixCls}__hex-input`}\n value={formatColor(color, format)}\n onChange={(e) => {\n const c = parseColor(e.target.value);\n if (!('value' in props)) setColor(c);\n onChange?.(e.target.value);\n }}\n />\n </div>\n\n {presets && presets.length > 0 && (\n <div className={`${prefixCls}__presets`}>\n {presets.map((preset, i) => (\n <div\n key={i}\n className={`${prefixCls}__preset`}\n style={{ backgroundColor: preset }}\n onClick={() => handlePresetClick(preset)}\n title={preset}\n />\n ))}\n </div>\n )}\n </div>\n );\n\n return (\n <div {...otherProps} ref={wrapperRef} className={cls} style={style}>\n <Popup\n trigger=\"manual\"\n placement=\"bottom\"\n arrow={false}\n visible={isOpen}\n content={renderPanel()}>\n <div\n className={`${prefixCls}__trigger`}\n onClick={trigger === 'click' ? toggleOpen : undefined}\n onMouseEnter={trigger === 'hover' ? toggleOpen : undefined}\n >\n {children || (\n <div className={`${prefixCls}__swatch`}>\n <div\n className={`${prefixCls}__swatch-inner`}\n style={{ backgroundColor: hexColor }}\n />\n </div>\n )}\n </div>\n </Popup>\n </div>\n );\n});\n\nColorPicker.displayName = 'ColorPicker';\nexport default ColorPicker;\n","import ColorPicker from './color-picker';\n\nexport default ColorPicker;\n","import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CountdownProps, DateType } from './types';\n\nconst Countdown = React.forwardRef<HTMLDivElement, CountdownProps>((props, ref) => {\n const {\n millisec = false,\n prefixCls: customisedCls,\n value,\n onFinish,\n className,\n style,\n children,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('countdown', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [date, setDate] = useState<DateType>({ day: 0, hour: 0, min: 0, sec: 0, millisec: 0 });\n const timerRef = useRef<number>();\n\n const startInterval = useCallback((): void => {\n timerRef.current = window.setInterval(\n () => {\n const distance = value.getTime() - Date.now();\n\n // when the count down finished\n if (distance < 0) {\n window.clearInterval(timerRef.current);\n setDate({ day: 0, hour: 0, min: 0, sec: 0, millisec: 0 });\n onFinish && onFinish();\n return;\n }\n\n // calculate the specific time\n const day = Math.floor(distance / 86400000);\n const hour = Math.floor((distance % 86400000) / 3600000);\n const min = Math.floor((distance % 3600000) / 60000);\n const sec = Math.floor((distance % 60000) / 1000);\n const millisecond = Math.floor((distance % 60000) % 1000);\n setDate({ day, hour, min, sec, millisec: millisecond });\n },\n millisec ? 1 : 1000\n );\n }, [millisec, onFinish, value]);\n\n useEffect(() => {\n value && startInterval();\n\n return (): void => {\n window.clearInterval(timerRef.current);\n };\n }, [value, startInterval]);\n\n return (\n <div ref={ref} className={cls} style={style} role=\"timer\" aria-live=\"polite\">\n {typeof children === 'function' && children(date)}\n </div>\n );\n});\n\nCountdown.displayName = 'Countdown';\n\nexport default Countdown;\n","import Countdown from './countdown';\n\nexport default Countdown;\n","import { PanelMode } from './types';\n\nexport type PickerHeaderProps = {\n date: Date;\n mode: PanelMode;\n months: string[];\n onChange: (date: Date) => void;\n onModeChange: (mode: PanelMode) => void;\n prefixCls: string;\n};\n\nconst PickerHeader = ({ date, mode, months, onChange, onModeChange, prefixCls }: PickerHeaderProps) => {\n const year = date.getFullYear();\n const startDecade = year - (year % 10);\n\n const step = (dir: -1 | 1, unit: 'month' | 'year' | 'decade') => {\n const y = date.getFullYear();\n const m = date.getMonth();\n if (unit === 'decade') onChange(new Date(y + dir * 10, m, 1));\n else if (unit === 'year') onChange(new Date(y + dir, m, 1));\n else {\n const next = new Date(y, m + dir, 1);\n onChange(next);\n }\n };\n\n const yearUnit = mode === 'year' ? 'decade' : 'year';\n\n return (\n <div className={`${prefixCls}__header`}>\n <button\n type=\"button\"\n className={`${prefixCls}__header-btn`}\n onClick={() => step(-1, yearUnit)}\n aria-label=\"Previous year\">\n «\n </button>\n {mode === 'date' && (\n <button\n type=\"button\"\n className={`${prefixCls}__header-btn`}\n onClick={() => step(-1, 'month')}\n aria-label=\"Previous month\">\n ‹\n </button>\n )}\n <div className={`${prefixCls}__header-caption`}>\n {mode === 'year' ? (\n <span className={`${prefixCls}__header-label`}>\n {startDecade} – {startDecade + 9}\n </span>\n ) : mode === 'month' ? (\n <span\n className={`${prefixCls}__header-label`}\n onClick={() => onModeChange('year')}>\n {year}\n </span>\n ) : (\n <>\n <span\n className={`${prefixCls}__header-label`}\n onClick={() => onModeChange('month')}>\n {months[date.getMonth()]}\n </span>\n <span\n className={`${prefixCls}__header-label`}\n onClick={() => onModeChange('year')}>\n {year}\n </span>\n </>\n )}\n </div>\n {mode === 'date' && (\n <button\n type=\"button\"\n className={`${prefixCls}__header-btn`}\n onClick={() => step(1, 'month')}\n aria-label=\"Next month\">\n ›\n </button>\n )}\n <button\n type=\"button\"\n className={`${prefixCls}__header-btn`}\n onClick={() => step(1, yearUnit)}\n aria-label=\"Next year\">\n »\n </button>\n </div>\n );\n};\n\nexport default PickerHeader;\n","import classNames from 'classnames';\nimport { getMonthDaysArray, isSameDate, isToday } from './utils';\n\nexport type PickerDayProps = {\n date: Date | null;\n panelDate: Date;\n weeks: string[];\n disabledDate?: (current: Date) => boolean;\n onChange: (date: Date) => void;\n panelOnChange: (panelDate: Date) => void;\n prefixCls: string;\n};\n\nconst PickerDay = (props: PickerDayProps) => {\n const { prefixCls, date, weeks, onChange, panelDate, panelOnChange, disabledDate } = props;\n const panelDays = getMonthDaysArray(panelDate);\n\n const handleClick = (dayCell: typeof panelDays[0]) => {\n if (disabledDate?.(dayCell.date)) return;\n onChange(dayCell.date);\n if (!dayCell.isThisMonth) panelOnChange(dayCell.date);\n };\n\n return (\n <div className={`${prefixCls}__body`}>\n <table className={`${prefixCls}__table`}>\n <thead>\n <tr>\n {weeks.map((week, i) => (\n <th key={i} className={`${prefixCls}__cell-header`}>\n {week}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: panelDays.length / 7 }, (_, row) => (\n <tr key={row}>\n {panelDays.slice(row * 7, row * 7 + 7).map((dayCell, col) => {\n const isDisabled = disabledDate?.(dayCell.date) ?? false;\n const cls = classNames(`${prefixCls}__cell`, {\n [`${prefixCls}__cell_in-view`]: dayCell.isThisMonth,\n [`${prefixCls}__cell_today`]: isToday(dayCell.date),\n [`${prefixCls}__cell_selected`]: date && isSameDate(date, dayCell.date),\n [`${prefixCls}__cell_disabled`]: isDisabled,\n });\n return (\n <td key={col} className={cls} onClick={() => handleClick(dayCell)}>\n <div className={`${prefixCls}__cell-inner`}>\n {dayCell.label}\n </div>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n};\n\nexport default PickerDay;\n","import classNames from 'classnames';\n\nexport type PickerMonthProps = {\n date: Date | null;\n panelDate: Date;\n months: string[];\n onChange: (date: Date) => void;\n prefixCls: string;\n};\n\nconst PickerMonth = ({ date, panelDate, months, onChange, prefixCls }: PickerMonthProps) => {\n const panelYear = panelDate.getFullYear();\n const selectedMonth = date && date.getFullYear() === panelYear ? date.getMonth() : -1;\n const now = new Date();\n const isCurrentYear = now.getFullYear() === panelYear;\n\n return (\n <div className={`${prefixCls}__body`}>\n <table className={`${prefixCls}__table`}>\n <tbody>\n {[0, 1, 2].map((row) => (\n <tr key={row}>\n {[0, 1, 2, 3].map((col) => {\n const monthIdx = row * 4 + col;\n const cls = classNames(`${prefixCls}__cell`, {\n [`${prefixCls}__cell_selected`]: monthIdx === selectedMonth,\n [`${prefixCls}__cell_today`]: isCurrentYear && monthIdx === now.getMonth(),\n });\n return (\n <td\n key={col}\n className={cls}\n onClick={() => onChange(new Date(panelYear, monthIdx, 1))}>\n <div className={`${prefixCls}__cell-inner`}>{months[monthIdx]}</div>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n};\n\nexport default PickerMonth;\n","import classNames from 'classnames';\n\nexport type PickerYearProps = {\n date: Date | null;\n panelDate: Date;\n onChange: (date: Date) => void;\n prefixCls: string;\n};\n\nconst PickerYear = ({ date, panelDate, onChange, prefixCls }: PickerYearProps) => {\n const panelYear = panelDate.getFullYear();\n const startYear = panelYear - (panelYear % 10);\n const selectedYear = date?.getFullYear() ?? -1;\n const now = new Date();\n\n const years: number[] = [];\n for (let i = startYear - 1; i <= startYear + 10; i++) {\n years.push(i);\n }\n\n return (\n <div className={`${prefixCls}__body`}>\n <table className={`${prefixCls}__table`}>\n <tbody>\n {[0, 1, 2].map((row) => (\n <tr key={row}>\n {[0, 1, 2, 3].map((col) => {\n const idx = row * 4 + col;\n const year = years[idx];\n const isOutOfRange = year < startYear || year > startYear + 9;\n const cls = classNames(`${prefixCls}__cell`, {\n [`${prefixCls}__cell_selected`]: year === selectedYear,\n [`${prefixCls}__cell_today`]: year === now.getFullYear(),\n [`${prefixCls}__cell_dim`]: isOutOfRange,\n });\n return (\n <td\n key={col}\n className={cls}\n onClick={() => onChange(new Date(year, panelDate.getMonth(), 1))}>\n <div className={`${prefixCls}__cell-inner`}>{year}</div>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n};\n\nexport default PickerYear;\n","import { useState, useRef, useCallback, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useLocale } from '../_utils/use-locale';\nimport { useClickOutside } from '../_utils/hooks';\nimport Popup from '../popup';\nimport PickerHeader from './picker-header';\nimport PickerDay from './picker-day';\nimport PickerMonth from './picker-month';\nimport PickerYear from './picker-year';\nimport { DatePickerProps, PanelMode } from './types';\n\n\nconst CalendarIcon = () => (\n <svg viewBox=\"64 64 896 896\" width=\"1em\" height=\"1em\" fill=\"currentColor\">\n <path d=\"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zm0-448H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136z\" />\n </svg>\n);\n\nconst ClearIcon = () => (\n <svg viewBox=\"64 64 896 896\" width=\"1em\" height=\"1em\" fill=\"currentColor\">\n <path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\" />\n </svg>\n);\n\nfunction formatDate(date: Date, format: string): string {\n const y = date.getFullYear();\n const m = String(date.getMonth() + 1).padStart(2, '0');\n const d = String(date.getDate()).padStart(2, '0');\n return format\n .replace('YYYY', String(y))\n .replace('MM', m)\n .replace('DD', d);\n}\n\nfunction getFormatByPicker(picker: string, customFormat?: string): string {\n if (customFormat) return customFormat;\n switch (picker) {\n case 'month': return 'YYYY-MM';\n case 'year': return 'YYYY';\n default: return 'YYYY-MM-DD';\n }\n}\n\nconst DatePicker = (props: DatePickerProps) => {\n const {\n defaultValue,\n value,\n open: controlledOpen,\n picker = 'date',\n format: customFormat,\n disabled = false,\n placeholder,\n allowClear = true,\n size = 'md',\n showToday = true,\n inputReadOnly = true,\n disabledDate,\n renderExtraFooter,\n suffixIcon,\n onChange,\n onOpenChange,\n onPanelChange,\n className,\n style,\n prefixCls: customisedCls,\n } = props;\n\n const locale = useLocale();\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('date-picker', configContext.prefixCls, customisedCls);\n const format = getFormatByPicker(picker, customFormat);\n\n const [date, setDate] = useState<Date | null>(value ?? defaultValue ?? null);\n const [panelDate, setPanelDate] = useState<Date>(value ?? defaultValue ?? new Date());\n const [open, setOpen] = useState(false);\n const [mode, setMode] = useState<PanelMode>(picker === 'date' ? 'date' : picker);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const isOpen = controlledOpen ?? open;\n\n // Controlled value\n useEffect(() => {\n if (value !== undefined) {\n setDate(value);\n if (value) setPanelDate(value);\n }\n }, [value]);\n\n useEffect(() => {\n if (controlledOpen !== undefined) setOpen(controlledOpen);\n }, [controlledOpen]);\n\n useClickOutside(wrapperRef.current as HTMLDivElement, () => {\n if (controlledOpen === undefined) setOpen(false);\n onOpenChange?.(false);\n });\n\n const toggleOpen = useCallback((val: boolean) => {\n if (controlledOpen === undefined) setOpen(val);\n onOpenChange?.(val);\n if (val) setMode(picker === 'date' ? 'date' : picker);\n }, [controlledOpen, onOpenChange, picker]);\n\n const fireChange = useCallback((d: Date | null) => {\n if (value === undefined) setDate(d);\n onChange?.(d, d ? formatDate(d, format) : '');\n }, [value, onChange, format]);\n\n const handleDateSelect = useCallback((d: Date) => {\n fireChange(d);\n toggleOpen(false);\n }, [fireChange, toggleOpen]);\n\n const handleMonthSelect = useCallback((d: Date) => {\n if (picker === 'month') {\n fireChange(d);\n toggleOpen(false);\n } else {\n setPanelDate(d);\n setMode('date');\n onPanelChange?.(d, 'date');\n }\n }, [picker, fireChange, toggleOpen, onPanelChange]);\n\n const handleYearSelect = useCallback((d: Date) => {\n if (picker === 'year') {\n fireChange(d);\n toggleOpen(false);\n } else {\n setPanelDate(d);\n setMode(picker === 'month' ? 'month' : 'month');\n onPanelChange?.(d, 'month');\n }\n }, [picker, fireChange, toggleOpen, onPanelChange]);\n\n const handleModeChange = useCallback((m: PanelMode) => {\n setMode(m);\n onPanelChange?.(panelDate, m);\n }, [panelDate, onPanelChange]);\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n fireChange(null);\n toggleOpen(false);\n };\n\n const handleToday = () => {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n fireChange(today);\n setPanelDate(today);\n toggleOpen(false);\n };\n\n const hasValue = date !== null;\n const displayValue = hasValue ? formatDate(date, format) : '';\n const defaultPlaceholder = placeholder ?? (picker === 'month' ? locale.DatePicker.selectMonth : picker === 'year' ? locale.DatePicker.selectYear : locale.DatePicker.selectDate);\n\n const cls = classNames(prefixCls, className, `${prefixCls}_${size}`, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_open`]: isOpen,\n [`${prefixCls}_has-value`]: hasValue,\n });\n\n const renderPanel = () => {\n switch (mode) {\n case 'year':\n return <PickerYear date={date} panelDate={panelDate} onChange={handleYearSelect} prefixCls={prefixCls} />;\n case 'month':\n return <PickerMonth date={date} panelDate={panelDate} months={locale.DatePicker.months} onChange={handleMonthSelect} prefixCls={prefixCls} />;\n default:\n return (\n <PickerDay\n date={date}\n panelDate={panelDate}\n weeks={locale.DatePicker.weeks}\n disabledDate={disabledDate}\n onChange={handleDateSelect}\n panelOnChange={setPanelDate}\n prefixCls={prefixCls}\n />\n );\n }\n };\n\n const renderOverlay = () => (\n <div className={`${prefixCls}__dropdown`}>\n <PickerHeader\n date={panelDate}\n mode={mode}\n months={locale.DatePicker.months}\n onChange={setPanelDate}\n onModeChange={handleModeChange}\n prefixCls={prefixCls}\n />\n {renderPanel()}\n {(showToday && mode === 'date' && picker === 'date') || renderExtraFooter ? (\n <div className={`${prefixCls}__footer`}>\n {renderExtraFooter?.(mode)}\n {showToday && mode === 'date' && picker === 'date' && (\n <a className={`${prefixCls}__today-btn`} onClick={handleToday}>{locale.DatePicker.today}</a>\n )}\n </div>\n ) : null}\n </div>\n );\n\n return (\n <div className={cls} style={style} ref={wrapperRef}>\n <Popup\n trigger=\"manual\"\n placement=\"bottom\"\n arrow={false}\n visible={isOpen}\n content={renderOverlay()}>\n <div className={`${prefixCls}__input`} onClick={() => !disabled && toggleOpen(!isOpen)}>\n <input\n className={`${prefixCls}__input-field`}\n readOnly={inputReadOnly}\n disabled={disabled}\n placeholder={defaultPlaceholder}\n value={displayValue}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n onKeyDown={(e) => {\n if (e.key === 'Escape' && isOpen) toggleOpen(false);\n }}\n />\n <span className={`${prefixCls}__suffix`}>\n {allowClear && hasValue && !disabled ? (\n <button type=\"button\" className={`${prefixCls}__clear`} onClick={handleClear} aria-label=\"Clear date\">\n <ClearIcon />\n </button>\n ) : null}\n <span className={`${prefixCls}__icon`}>\n {suffixIcon ?? <CalendarIcon />}\n </span>\n </span>\n </div>\n </Popup>\n </div>\n );\n};\n\nDatePicker.displayName = 'DatePicker';\n\nexport default DatePicker;\n","import DatePicker from './date-picker';\n\nexport type { DatePickerProps, PanelMode, PickerType } from './types';\nexport default DatePicker;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DescriptionsItemProps } from './types';\n\ntype Props = {\n index: number;\n bordered: boolean;\n colon: boolean;\n type: 'label' | 'content' | 'item';\n prefixCls: string;\n item: React.ReactElement<DescriptionsItemProps>;\n};\n\nconst Col = (props: Props): React.ReactElement => {\n const { item, colon, type, bordered, prefixCls } = props;\n\n const { label, children, span = 1 } = item.props;\n switch (type) {\n case 'item': {\n const labelCls = classNames(`${prefixCls}__item-label`, {\n [`${prefixCls}__item_colon`]: colon,\n });\n if (bordered) {\n return (\n <>\n <th className={labelCls} colSpan={1}>\n {label}\n </th>\n <td className={`${prefixCls}__item-content`} colSpan={span * 2 - 1}>\n {children}\n </td>\n </>\n );\n } else {\n return (\n <td className={`${prefixCls}__item`} colSpan={span}>\n <span className={labelCls}>{label}</span>\n <span className={`${prefixCls}__item-content`}>{children}</span>\n </td>\n );\n }\n }\n case 'label': {\n const cls = classNames(\n { [`${prefixCls}__item`]: !bordered, [`${prefixCls}__item_colon`]: colon },\n `${prefixCls}__item-label`\n );\n return (\n <th className={cls} colSpan={span}>\n {label}\n </th>\n );\n }\n case 'content': {\n const cls = classNames({ [`${prefixCls}__item`]: !bordered }, `${prefixCls}__item-content`);\n return (\n <td className={cls} colSpan={span}>\n {children}\n </td>\n );\n }\n }\n};\n\nexport default Col;\n","import React from 'react';\nimport { DirectionType } from '../_utils/props';\nimport Col from './col';\nimport { DescriptionsItemProps } from './types';\n\ntype Props = {\n index: number;\n bordered: boolean;\n colon: boolean;\n layout: DirectionType;\n prefixCls: string;\n row: React.ReactElement<DescriptionsItemProps>[];\n};\n\nconst Row = (props: Props): React.ReactElement => {\n const { row, index, layout, colon, bordered, prefixCls } = props;\n\n const renderCols = (renderType: 'label' | 'content' | 'item') => {\n return row.map((item, idx) => (\n <Col\n key={idx}\n index={idx}\n prefixCls={prefixCls}\n item={item}\n bordered={bordered}\n colon={colon}\n type={renderType}\n />\n ));\n };\n\n if (layout === 'vertical') {\n return (\n <>\n <tr className={`${prefixCls}__row`} key={`label-${index}`}>\n {renderCols('label')}\n </tr>\n <tr className={`${prefixCls}__row`} key={`content-${index}`}>\n {renderCols('content')}\n </tr>\n </>\n );\n }\n\n return (\n <tr className={`${prefixCls}__row`} key={index}>\n {renderCols('item')}\n </tr>\n );\n};\n\nexport default Row;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { DescriptionsItemProps, DescriptionsProps } from './types';\nimport Row from './row';\n\nconst Descriptions = (props: DescriptionsProps): React.ReactElement => {\n const {\n size = 'md',\n bordered = false,\n column = 3,\n layout = 'horizontal',\n title,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('descriptions', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${size}`, {\n [`${prefixCls}_bordered`]: bordered,\n });\n\n const getRows = (): React.ReactElement<DescriptionsItemProps>[][] => {\n const rows: React.ReactElement<DescriptionsItemProps>[][] = [];\n let columns: React.ReactElement<DescriptionsItemProps>[] | null = null;\n let leftSpans: number;\n\n const numOfChildren = React.Children.count(children);\n React.Children.forEach(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<DescriptionsItemProps>;\n if (childElement.type.displayName === 'DescriptionsItem') {\n let itemNode = childElement;\n\n if (!columns) {\n leftSpans = column;\n columns = [];\n rows.push(columns);\n }\n\n // set last span to align the end of Descriptions\n if (idx === numOfChildren - 1) {\n const props: Partial<DescriptionsItemProps> = { span: leftSpans };\n itemNode = React.cloneElement(childElement, props);\n }\n\n // calculate left fill span\n const { span = 1 } = itemNode.props;\n columns.push(itemNode);\n leftSpans -= span;\n\n if (leftSpans <= 0) {\n columns = null;\n }\n }\n });\n\n return rows;\n };\n\n const rows = getRows();\n const displayColon = 'colon' in props ? (props.colon as boolean) : !bordered;\n // the reason of using a div to wrapper a table is to figure out border radius issue of the table\n return (\n <div {...otherProps} className={cls}>\n {title && <div className={`${prefixCls}__title`}>{title}</div>}\n <div className={`${prefixCls}__body`}>\n <table>\n <tbody>\n {rows.map((row, idx) => (\n <Row\n key={idx}\n index={idx}\n colon={displayColon}\n bordered={bordered}\n prefixCls={prefixCls}\n layout={layout}\n row={row}\n />\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n\nDescriptions.displayName = 'Descriptions';\n\nexport default Descriptions;\n","import { DescriptionsItemProps } from './types';\n\nconst DescriptionsItem = (props: DescriptionsItemProps): JSX.Element => {\n return props.children as JSX.Element;\n};\n\nDescriptionsItem.displayName = 'DescriptionsItem';\n\nexport default DescriptionsItem;\n","import Descriptions from './descriptions';\nimport DescriptionsItem from './descriptions-item';\n\ntype IDesc = typeof Descriptions & {\n Item: typeof DescriptionsItem;\n};\n\nconst DefaultDesc = Descriptions as IDesc;\nDefaultDesc.Item = DescriptionsItem;\n\nexport default DefaultDesc;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { DividerProps } from './types';\n\nconst Divider = React.forwardRef<HTMLDivElement, DividerProps>((props, ref) => {\n const {\n type = 'horizontal',\n dashed = false,\n align = 'center',\n prefixCls: customisedCls,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('divider', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${type}`, `${prefixCls}_${align}`, {\n [`${prefixCls}_${type}-dashed`]: dashed,\n [`${prefixCls}_text`]: children,\n });\n\n return (\n <div {...otherProps} ref={ref} role=\"separator\" className={cls}>\n {children && <span className={`${prefixCls}_inner-text`}>{children}</span>}\n </div>\n );\n});\n\nDivider.displayName = 'Divider';\n\nexport default Divider;\n","import Divider from './divider';\n\nexport default Divider;\n","import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { DropdownProps } from './types';\nimport { MenuProps } from '../menu/types';\nimport Popup from '../popup';\n\nconst Dropdown = (props: DropdownProps): JSX.Element => {\n const {\n trigger = 'hover',\n placement = 'bottom-start',\n disabled = false,\n arrow = false,\n onVisibleChange,\n overlay,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('dropdown', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [popupVisible, setPopupVisible] = useState<boolean>(\n 'visible' in props ? (props.visible as boolean) : false\n );\n const delayDisplayPopupTimer = useRef<number | undefined>(undefined);\n const delayHidePopupTimer = useRef<number | undefined>(undefined);\n\n const displayPopup = useCallback(() => {\n !('visible' in props) && setPopupVisible(true);\n onVisibleChange && onVisibleChange(true);\n }, [props, onVisibleChange]);\n\n const hidePopup = useCallback(() => {\n !('visible' in props) && setPopupVisible(false);\n onVisibleChange && onVisibleChange(false);\n }, [props, onVisibleChange]);\n\n const delayHidePopup = useCallback((): void => {\n delayHidePopupTimer.current = window.setTimeout(() => {\n hidePopup();\n }, 100);\n }, [hidePopup]);\n\n const renderOverlay = (): React.ReactNode => {\n if (!overlay) {\n return null;\n }\n\n const overlayProps: Partial<MenuProps> = {\n overlayClassName: cls,\n mode: 'vertical',\n theme: 'light',\n onMouseEnter: () => {\n if (trigger === 'hover') {\n displayPopup();\n window.clearTimeout(delayHidePopupTimer.current);\n }\n },\n onMouseLeave: () => {\n if (trigger === 'hover') {\n delayHidePopup();\n window.clearTimeout(delayDisplayPopupTimer.current);\n }\n },\n onSelect: (selectedIndex) => {\n const { onSelect } = overlay.props;\n onSelect && onSelect(selectedIndex);\n hidePopup();\n },\n };\n return React.cloneElement(overlay, overlayProps);\n };\n\n const handleTargetOnMouseEnter = () => {\n if (trigger === 'hover') {\n displayPopup();\n window.clearTimeout(delayHidePopupTimer.current);\n }\n };\n\n const handleTargetOnMouseLeave = () => {\n if (trigger === 'hover') {\n delayHidePopup();\n window.clearTimeout(delayDisplayPopupTimer.current);\n }\n };\n\n const handleTargetOnClick = () => {\n if (trigger === 'click') {\n displayPopup();\n }\n };\n\n // Clear timers on unmount\n useEffect(() => {\n return () => {\n window.clearTimeout(delayDisplayPopupTimer.current);\n window.clearTimeout(delayHidePopupTimer.current);\n };\n }, []);\n\n useEffect(() => {\n 'visible' in props && setPopupVisible(props.visible as boolean);\n }, [props]);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape' && popupVisible) {\n hidePopup();\n }\n };\n\n const childrenProps = {\n onMouseEnter: handleTargetOnMouseEnter,\n onMouseLeave: handleTargetOnMouseLeave,\n onClick: handleTargetOnClick,\n onKeyDown: handleKeyDown,\n 'aria-expanded': popupVisible,\n 'aria-haspopup': true as const,\n };\n\n React.Children.only(children);\n return (\n <Popup\n {...otherProps}\n biZoom={false}\n arrow={arrow}\n disabled={disabled}\n placement={placement}\n flip={!('placement' in props)}\n trigger=\"manual\"\n className={cls}\n visible={popupVisible}\n content={renderOverlay()}>\n {React.cloneElement(children, childrenProps)}\n </Popup>\n );\n};\n\nDropdown.displayName = 'Dropdown';\n\nexport default Dropdown;\n","import Dropdown from './dropdown';\n\nexport default Dropdown;\n","import { useContext, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport Portal from '../portal';\nimport { CSSTransition } from 'react-transition-group';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { OverlayProps } from './types';\n\nconst Overlay = (props: OverlayProps): JSX.Element => {\n const {\n isShow = false,\n blurred = false,\n unmountOnExit = true,\n zIndex = 1000,\n type = 'default',\n clickCallback,\n onEnter,\n onEntered,\n onExit,\n onExited,\n children,\n style,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('overlay', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, `${prefixCls}_${type}`, { [`${prefixCls}_blurred`]: blurred });\n const nodeRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (isShow) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n });\n\n return (\n <Portal>\n <CSSTransition\n appear={true}\n nodeRef={nodeRef}\n onEnter={onEnter}\n onEntered={onEntered}\n onExit={onExit}\n onExited={onExited}\n in={isShow}\n mountOnEnter={true}\n unmountOnExit={unmountOnExit}\n classNames={`${prefixCls}_fade`}\n timeout={{ exit: 300, enter: 0 }}>\n <div ref={nodeRef} tabIndex={-1} className={cls} onClick={clickCallback} style={{ zIndex, ...style }}>\n {children}\n </div>\n </CSSTransition>\n </Portal>\n );\n};\n\nOverlay.displayName = 'Overlay';\n\nexport default Overlay;\n","import Overlay from './overlay';\n\nexport default Overlay;\n","import React, { useContext, useEffect, useId, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport Overlay from '../overlay';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { DrawerProps } from './types';\n\nconst Drawer = React.forwardRef<HTMLDivElement, DrawerProps>((props, ref) => {\n const {\n visible,\n placement = 'right',\n size = 256,\n closable = true,\n unmountOnClose = true,\n maskType = 'default',\n maskClosable = true,\n onClose,\n prefixCls: customisedCls,\n afterClose,\n zIndex = 1000,\n header,\n footer,\n className,\n maskStyle,\n style,\n children,\n } = props;\n const [drawerVisible, setDrawerVisible] = useState(visible);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('drawer', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${placement}`);\n const sty: React.CSSProperties =\n placement === 'top' || placement === 'bottom' ? { height: size } : { width: size };\n const nodeRef = useRef<HTMLDivElement>(null);\n const previousFocusRef = useRef<HTMLElement | null>(null);\n const titleId = useId();\n\n // Focus trap + Escape key\n useEffect(() => {\n if (!visible) return;\n previousFocusRef.current = document.activeElement as HTMLElement;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n onClose?.(e as unknown as React.MouseEvent);\n return;\n }\n if (e.key === 'Tab' && nodeRef.current) {\n const focusable = nodeRef.current.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (focusable.length === 0) return;\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n if (e.shiftKey) {\n if (document.activeElement === first) { e.preventDefault(); last.focus(); }\n } else {\n if (document.activeElement === last) { e.preventDefault(); first.focus(); }\n }\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n\n requestAnimationFrame(() => {\n if (nodeRef.current) {\n const focusable = nodeRef.current.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (focusable.length > 0) focusable[0].focus();\n }\n });\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n previousFocusRef.current?.focus();\n };\n }, [visible, onClose]);\n\n return (\n <Overlay\n onEnter={(): void => setDrawerVisible(true)}\n onExit={(): void => setDrawerVisible(false)}\n zIndex={zIndex}\n type={maskType}\n unmountOnExit={unmountOnClose}\n isShow={visible}\n onExited={afterClose}\n clickCallback={(e: React.MouseEvent): void => {\n maskClosable && onClose ? onClose(e) : undefined;\n }}\n style={maskStyle}>\n <div ref={ref} className={cls} style={{ ...style, ...sty }}>\n <CSSTransition\n appear={true}\n nodeRef={nodeRef}\n in={drawerVisible}\n timeout={0}\n classNames={`${prefixCls}__content_move`}>\n <div\n ref={nodeRef}\n className={`${prefixCls}__content`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={header ? titleId : undefined}\n onClick={(e) => e.stopPropagation()}>\n {closable && (\n <button type=\"button\" className={`${prefixCls}__close-btn`} onClick={onClose} aria-label=\"Close\">\n ✕\n </button>\n )}\n {header && <div className={`${prefixCls}__header`} id={titleId}>{header}</div>}\n <div className={`${prefixCls}__body`}>{children}</div>\n {footer && <div className={`${prefixCls}__footer`}>{footer}</div>}\n </div>\n </CSSTransition>\n </div>\n </Overlay>\n );\n});\n\nDrawer.displayName = 'Drawer';\n\nexport default Drawer;\n","import Drawer from './drawer';\n\nexport default Drawer;\n","import React, { ReactNode, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useLocale } from '../_utils/use-locale';\nimport { EmptyProps } from './types';\n\nconst Empty = React.forwardRef<HTMLDivElement, EmptyProps>((props, ref) => {\n const locale = useLocale();\n const {\n description = locale.Empty.description,\n image,\n imageStyle,\n descStyle,\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('empty', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n const renderImage = (): ReactNode => {\n if (React.isValidElement(image)) {\n return image;\n } else if (typeof image === 'string') {\n return <img src={image} alt=\"empty\" style={imageStyle} className={`${prefixCls}__image`} />;\n } else {\n return (\n <svg width=\"61px\" height=\"40px\" viewBox=\"0 0 61 40\" version=\"1.1\">\n <g stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(0.000000, 1.000000)\">\n <ellipse fill=\"#F5F5F5\" cx=\"30.5\" cy=\"30.5\" rx=\"30.5\" ry=\"8.5\" />\n <path\n d=\"M8,14 L16.1016016,14 C17.4262005,14 18.5,15.0737995 18.5,16.3983984 C18.5,17.7229972 19.5737995,18.7967967 20.8983984,18.7967967 L39.1016016,18.7967967 C40.4262005,18.7967967 41.5,17.7229972 41.5,16.3983984 C41.5,15.0737995 42.5737995,14 43.8983984,14 L52,14 C52.5522847,14 53,14.4477153 53,15 L53,29 C53,31.209139 51.209139,33 49,33 L11,33 C8.790861,33 7,31.209139 7,29 L7,15 C7,14.4477153 7.44771525,14 8,14 Z\"\n stroke=\"#D9D9D9\"\n fill=\"#FAFAFA\"\n />\n <path\n d=\"M7.34587252,14.1911631 L14.8857295,1.90750067 C15.6132226,0.722295128 16.9040854,1.14364005e-15 18.2947537,0 L41.70114,0 C43.0918102,8.62632224e-15 44.3826743,0.722296971 45.1101669,1.90750495 L52.65,14.1911631 L52.65,14.1911631 L44.0201775,14.1911631 C42.6922539,14.1911631 41.6157591,15.2676579 41.6157591,16.5955815 C41.6157591,17.9235052 40.5392643,19 39.2113406,19 L20.7845564,19 C19.4566328,19 18.380138,17.9235052 18.380138,16.5955815 C18.380138,15.2676579 17.3036432,14.1911631 15.9757195,14.1911631 L7.34587252,14.1911631 L7.34587252,14.1911631 Z\"\n stroke=\"#D9D9D9\"\n fill=\"#FFFFFF\"\n />\n </g>\n </g>\n </svg>\n );\n }\n };\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n <div className={`${prefixCls}__image-container`}>{renderImage()}</div>\n {typeof props.description === 'boolean' && !description ? null : (\n <p className={`${prefixCls}__desc`} style={descStyle}>\n {description}\n </p>\n )}\n {children && <div className={`${prefixCls}__footer`}>{children}</div>}\n </div>\n );\n});\n\nEmpty.displayName = 'Empty';\n\nexport default Empty;\n","import Empty from './empty';\n\nexport default Empty;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SizeType } from '../_utils/props';\nimport { FlexProps } from './types';\n\nconst gapSizes: Record<SizeType, number> = {\n sm: 8,\n md: 16,\n lg: 24,\n};\n\nconst Flex = React.forwardRef<HTMLElement, FlexProps>(\n (props: FlexProps, ref): JSX.Element => {\n const {\n vertical = false,\n wrap,\n justify,\n align,\n gap,\n flex,\n component: Component = 'div',\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('flex', configContext.prefixCls, customisedCls);\n\n const cls = classNames(prefixCls, className);\n\n const mergedStyle: React.CSSProperties = {\n flexDirection: vertical ? 'column' : undefined,\n flexWrap: wrap,\n justifyContent: justify,\n alignItems: align,\n gap: typeof gap === 'string' && gap in gapSizes ? gapSizes[gap as SizeType] : gap,\n flex,\n ...style,\n };\n\n return (\n <Component {...otherProps} ref={ref} className={cls} style={mergedStyle}>\n {children}\n </Component>\n );\n }\n);\n\nFlex.displayName = 'Flex';\n\nexport default Flex;\n","import Flex from './flex';\n\nexport default Flex;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport warning from '../_utils/warning';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { FlipItemProps, FlipProps } from './types';\n\nconst Flip = (props: FlipProps): React.ReactElement => {\n const {\n direction = 'horizontal',\n reverse = false,\n prefixCls: customisedCls,\n width,\n height,\n className,\n children,\n style,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('flip', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n const innerCls = classNames(`${prefixCls}__inner`, {\n [`${prefixCls}__inner_hor`]: direction === 'horizontal' && !reverse,\n [`${prefixCls}__inner_hor_reverse`]: direction === 'horizontal' && reverse,\n [`${prefixCls}__inner_ver`]: direction === 'vertical' && !reverse,\n [`${prefixCls}__inner_ver_reverse`]: direction === 'vertical' && reverse,\n });\n\n warning(\n !children || React.Children.count(children) !== 2,\n 'Children must contain front and back components.',\n true\n );\n\n return (\n <div {...otherProps} className={cls} style={{ width, height, ...style }}>\n <div className={innerCls}>\n {React.Children.map(children, (child, index: number) => {\n const childElement = child as React.FunctionComponentElement<FlipItemProps>;\n if (childElement.type.displayName === 'FlipItem') {\n const childProps: Partial<FlipItemProps> = {\n className: classNames(\n {\n [`${prefixCls}__item-front`]: index === 0,\n [`${prefixCls}__item-back`]: index === 1,\n [`${prefixCls}__item-back_hor`]:\n index === 1 && direction === 'horizontal' && !reverse,\n [`${prefixCls}__item-back_hor_reverse`]:\n index === 1 && direction === 'horizontal' && reverse,\n [`${prefixCls}__item-back_ver`]:\n index === 1 && direction === 'vertical' && !reverse,\n [`${prefixCls}__item-back_ver_reverse`]:\n index === 1 && direction === 'vertical' && reverse,\n },\n child.props.className\n ),\n };\n return React.cloneElement(childElement, childProps);\n } else {\n return null;\n }\n })}\n </div>\n </div>\n );\n};\n\nFlip.displayName = 'Flip';\n\nexport default Flip;\n","import { FlipItemProps } from './types';\n\nconst FlipItem = (props: FlipItemProps): JSX.Element => {\n const { className, children, ...otherProps } = props;\n return (\n <div {...otherProps} className={className}>\n {children}\n </div>\n );\n};\n\nFlipItem.displayName = 'FlipItem';\n\nexport default FlipItem;\n","import Flip from './flip';\nimport FlipItem from './flip-item';\n\ntype IFlip = typeof Flip & {\n Item: typeof FlipItem;\n};\n\nconst DefaultFlip = Flip as IFlip;\nDefaultFlip.Item = FlipItem;\n\nexport default DefaultFlip;\n","export function isObject(obj: any): boolean {\n return obj !== null && typeof obj === 'object';\n}\n\nexport function deepGet(obj: any, path: string): any {\n const parts = path.split('.');\n const length = parts.length;\n\n for (let i = 0; i < length; i++) {\n if (!isObject(obj)) return undefined;\n obj = obj[parts[i]];\n }\n\n return obj;\n}\n\nexport function deepSet(obj: any, path: string, value: any) {\n if (!isObject(obj)) return obj;\n\n const root = obj;\n const parts = path.split('.');\n const length = parts.length;\n\n for (let i = 0; i < length; i++) {\n const p = parts[i];\n\n if (i === length - 1) {\n obj[p] = value;\n } else if (!isObject(obj[p])) {\n obj[p] = {};\n }\n\n obj = obj[p];\n }\n\n return root;\n}\n\nexport function deepCopy<T>(target: T): T {\n const type = typeof target;\n\n if (target === null || type === 'boolean' || type === 'number' || type === 'string') {\n return target;\n }\n\n if (target instanceof Date) {\n return new Date(target.getTime()) as any;\n }\n\n if (Array.isArray(target)) {\n return target.map((o) => deepCopy(o)) as any;\n }\n\n if (typeof target === 'object') {\n const obj: any = {};\n\n for (const key in target) {\n obj[key] = deepCopy(target[key]);\n }\n\n return obj;\n }\n\n return undefined as any;\n}\n","import React from 'react';\nimport { Rule } from './types';\n\nexport function getPropName(valueProp: string | ((type: any) => string), type: any) {\n return typeof valueProp === 'function' ? valueProp(type) : valueProp;\n}\n\nexport function getValueFromEvent(...args: any[]): any {\n const e = args[0] as React.ChangeEvent<any>;\n return e && e.target ? (e.target.type === 'checkbox' ? e.target.checked : e.target.value) : e;\n}\n\nexport function validate(value: any, rule: Rule): string | undefined {\n const {\n message,\n required,\n max,\n min,\n enum: enumVal,\n len,\n pattern,\n transform,\n type,\n validator,\n whitespace,\n } = rule;\n const val = transform ? transform(value) : value;\n\n if (required && !val) {\n return message || 'The value is required';\n }\n if (type && typeof val !== type) {\n return message || `The value is not a ${type}`;\n }\n if (max || len) {\n const segment = (max || len) as number;\n if (typeof val === 'number' && val > segment) {\n return message || 'The value is greater than the max';\n } else if ((typeof val === 'string' || Array.isArray(val)) && val.length > segment) {\n return message || 'The length of value is greater than the max';\n }\n }\n if (min) {\n if (typeof val === 'number' && val < min) {\n return message || 'The value is less than the max';\n } else if ((typeof val === 'string' || Array.isArray(val)) && val.length < min) {\n return message || 'The length of value is less than the max';\n }\n }\n if (enumVal && !enumVal.includes(val)) {\n return message || 'The value is not in the enum';\n }\n if (pattern && !pattern.test(val)) {\n return message || 'The value does not find a match';\n }\n if (validator) {\n const res = validator(val);\n if (res instanceof Promise ? !res.then(val) : !res) {\n return message || 'The value is validated unsuccessfully';\n }\n }\n if (whitespace && typeof val === 'string' && val.trim().length <= 0) {\n return message || 'The input contains whitespace';\n }\n\n return undefined;\n}\n","import { deepCopy } from '../_utils/object';\nimport { validate } from './form-helper';\nimport { Rule } from './types';\n\nexport type FormValues = { [name: string]: any };\nexport type FormErrors = { [name: string]: string[] };\ntype FormListener = (name: string) => void;\ntype FormRules = { [name: string]: Rule[] };\n\n/**\n * The form state, including errors and rules of each form item\n */\nexport default class FormInstance {\n private readonly initValues: FormValues;\n private values: FormValues;\n private rules: FormRules = {};\n private errors: FormErrors = {};\n private listeners: FormListener[] = [];\n\n constructor(initValues: FormValues = {}) {\n this.initValues = initValues;\n this.values = deepCopy(initValues);\n }\n\n getFieldValues(): FormValues {\n return this.values;\n }\n\n getFieldValue(name: string): any {\n return this.values[name];\n }\n\n setFieldValue(name: string, val: any): void {\n this.values[name] = val;\n this.notify(name);\n }\n\n setFieldValues(values: FormValues = {}): void {\n Object.keys(values).forEach(name => this.setFieldValue(name, values[name]));\n }\n\n getFiledErrors(): FormErrors {\n return this.errors;\n }\n\n getFieldError(name: string): string | undefined {\n return this.errors[name] && this.errors[name].length > 0 ? this.errors[name][0] : undefined;\n }\n\n setFieldError(name: string, errors: string[]): void {\n this.errors[name] = errors;\n }\n\n setFiledRules(name: string, rules: Rule[]): void {\n this.rules[name] = rules;\n }\n\n resetFields(): void {\n this.errors = {};\n this.values = deepCopy(this.initValues);\n this.notify('*');\n }\n\n validateField(name: string): void {\n const rules = this.rules[name];\n const value = this.values[name];\n if (rules) {\n const errMessages: string[] = [];\n rules.forEach(rule => {\n const res = validate(value, rule);\n if (res !== undefined) {\n errMessages.push(res);\n }\n });\n // update filed errors\n this.setFieldError(name, errMessages);\n this.notify(name);\n }\n }\n\n validateFields(): void {\n Object.keys(this.rules).forEach(name => this.validateField(name));\n }\n\n subscribe(listener: FormListener): () => void {\n this.listeners.push(listener);\n\n return (): void => {\n const idx = this.listeners.indexOf(listener);\n idx > -1 && this.listeners.splice(idx, 1);\n };\n }\n\n notify(name: string): void {\n this.listeners.forEach((listener) => listener(name));\n }\n}\n","import React from 'react';\nimport FormInstance from './form-instance';\n\nexport const FormInstanceContext = React.createContext<FormInstance>(new FormInstance());\n","import React from 'react';\nimport { FormOptionsProps } from './types';\n\nexport const FormOptionsContext = React.createContext<FormOptionsProps>({\n labelCol: 8,\n wrapperCol: 16,\n validateTrigger: 'onChange',\n layout: 'horizontal',\n});\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { FormInstanceContext } from './form-instance-context';\nimport { FormOptionsContext } from './form-options-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { FormProps } from './types';\nimport FormInstance from './form-instance';\n\nconst Form = (props: FormProps): JSX.Element => {\n const {\n initialValues = {},\n labelCol = { span: 8, offset: 0 },\n wrapperCol = { span: 16, offset: 0 },\n validateTrigger = 'onChange',\n layout = 'horizontal',\n form,\n onFinish,\n onFinishFailed,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('form', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${layout}`);\n // If you want to control the form outside, namely get the form instance, just pass a form store.\n // Otherwise, the form component will manage the state internally.\n const formRef = React.useRef(form ? form : new FormInstance(initialValues));\n\n const formOnSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n const formIns = formRef.current;\n formIns.validateFields();\n const values = formIns.getFieldValues();\n const errors = formIns.getFiledErrors();\n if (Object.keys(errors).some((key) => errors[key].length > 0)) {\n onFinishFailed && onFinishFailed({ values, errors });\n } else {\n onFinish && onFinish(values);\n }\n };\n\n const formOnReset = () => {\n formRef.current.resetFields();\n };\n\n return (\n <FormInstanceContext.Provider value={formRef.current}>\n <FormOptionsContext.Provider value={{ labelCol, wrapperCol, validateTrigger, layout }}>\n <form {...otherProps} className={cls} onSubmit={formOnSubmit} onReset={formOnReset}>\n {children}\n </form>\n </FormOptionsContext.Provider>\n </FormInstanceContext.Provider>\n );\n};\n\nForm.displayName = 'Form';\n\nexport default Form;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ColProps, RowProps } from './types';\n\nconst Row = React.forwardRef<HTMLDivElement, RowProps>((props, ref) => {\n const {\n gutter = 0,\n gutterSide = false,\n prefixCls: customisedCls,\n align,\n justify,\n className,\n style,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('row', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_align-${align}`]: align,\n [`${prefixCls}_justify-${justify}`]: justify,\n });\n\n const getGutter = (): [number, number] => {\n return Array.isArray(gutter) ? gutter : [gutter, gutter];\n };\n\n const normalisedGutter = getGutter();\n\n const rowGutterStyle = gutter\n ? {\n marginLeft: gutterSide ? 0 : -normalisedGutter[0] / 2,\n marginRight: gutterSide ? 0 : -normalisedGutter[0] / 2,\n rowGap: normalisedGutter[1] || undefined,\n }\n : {};\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={{ ...style, ...rowGutterStyle }}>\n {React.Children.map(children, (child) => {\n const childElement = child as React.FunctionComponentElement<ColProps>;\n if (childElement.type.displayName === 'Col') {\n const gutterStyle = gutter\n ? {\n paddingLeft: normalisedGutter[0] / 2,\n paddingRight: normalisedGutter[0] / 2,\n }\n : {};\n const childProps: Partial<ColProps> = {\n style: {\n ...child.props.style,\n ...gutterStyle,\n },\n };\n return React.cloneElement(childElement, childProps);\n }\n return childElement;\n })}\n </div>\n );\n});\n\nRow.displayName = 'Row';\n\nexport default Row;\n","import React, { useState, useEffect, useContext, useCallback, useRef } from 'react';\nimport classNames from 'classnames';\nimport { FormInstanceContext } from './form-instance-context';\nimport { FormOptionsContext } from './form-options-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { FormItemProps } from './types';\nimport { getPropName, getValueFromEvent } from './form-helper';\nimport Row from '../grid/row';\nimport Col from '../grid/col';\nimport Transition from '../transition';\n\nconst FormItem = (props: FormItemProps): JSX.Element => {\n const {\n colon = true,\n valueGetter = getValueFromEvent,\n valuePropName = 'value',\n name,\n label,\n helper,\n notice,\n rules,\n className,\n style,\n children,\n labelCol: itemLabelCol,\n wrapperCol: itemWrapperCol,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('form-item', configContext.prefixCls, customisedCls);\n const form = React.useContext(FormInstanceContext);\n const { wrapperCol, labelCol, validateTrigger, layout } = React.useContext(FormOptionsContext);\n const [value, setValue] = useState(name ? form.getFieldValue(name) : undefined);\n const [error, setError] = useState<string | undefined>(\n name ? form.getFieldError(name) : undefined\n );\n const [hasErrLabel, setHasErrLabel] = useState(false);\n const errorRef = useRef<HTMLDivElement>(null);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_has-error`]: !!error,\n [`${prefixCls}_with-err-label`]: hasErrLabel,\n });\n const isRequired =\n 'required' in props ? props.required : (rules && rules.some((rule) => rule.required)) || false;\n\n // get onChange event from all components which support onChange callback\n const onChange = useCallback(\n (...args: any[]) => {\n if (name) {\n form.setFieldValue(name, valueGetter(...args));\n validateTrigger === 'onChange' && form.validateField(name);\n }\n },\n [name, form, valueGetter, validateTrigger]\n );\n\n // get onBlur event from input\n const onBlur = useCallback(() => {\n name && validateTrigger === 'onBlur' && form.validateField(name);\n }, [name, form, validateTrigger]);\n\n let child: any = children;\n const prop = getPropName(valuePropName, child && child.type);\n const childProps = { [prop]: value, onChange, onBlur };\n child = React.cloneElement(child, childProps);\n\n const labelCls = classNames({\n [`${prefixCls}__label_required`]: label && isRequired,\n [`${prefixCls}__label_colon`]: label && colon,\n });\n\n const getSpanAndOffset = (col: number | { span: number; offset: number }): [number, number] => {\n if (typeof col === 'number') {\n return [col, 0];\n } else {\n return [col.span, col.offset];\n }\n };\n\n const getCol = (\n col: number | { span: number; offset: number },\n isSelf?: boolean\n ): [number, number] => {\n if (isSelf) {\n return getSpanAndOffset(col);\n }\n\n if (layout === 'vertical') {\n return [24, 0];\n } else {\n return getSpanAndOffset(col);\n }\n };\n\n const [labelSpan, labelOffset] = itemLabelCol ? getCol(itemLabelCol, true) : getCol(labelCol);\n const [wrapperSpan, wrapperOffset] = itemWrapperCol\n ? getCol(itemWrapperCol, true)\n : getCol(wrapperCol);\n\n useEffect(() => {\n if (!name) {\n return;\n }\n\n rules && form.setFiledRules(name, rules);\n\n return form.subscribe((n) => {\n if (name === '*' || n === name || n === '*') {\n setValue(form.getFieldValue(name));\n setError(form.getFieldError(name));\n }\n });\n }, [form, name, rules]);\n\n useEffect(() => {\n if (error) {\n setHasErrLabel(true);\n }\n }, [error]);\n\n return (\n <Row className={cls} style={style}>\n <Col span={labelSpan} offset={labelOffset} className={`${prefixCls}__label`}>\n <label\n htmlFor={name}\n title={typeof label === 'string' ? label : undefined}\n className={labelCls}>\n {label}\n </label>\n </Col>\n <Col span={wrapperSpan} offset={wrapperOffset} className={`${prefixCls}__controls`}>\n <div className={`${prefixCls}__input`}>\n <div className={`${prefixCls}__input-content`}>{child}</div>\n </div>\n {notice && <div className={`${prefixCls}__notice`}>{notice}</div>}\n {helper && <div className={`${prefixCls}__helper`}>{helper}</div>}\n <Transition in={!!error} nodeRef={errorRef} animation=\"slide-down\" onExited={() => setHasErrLabel(false)}>\n <div ref={errorRef} className={`${prefixCls}__error`}>{error}</div>\n </Transition>\n </Col>\n </Row>\n );\n};\n\nFormItem.displayName = 'FormItem';\n\nexport default FormItem;\n","import Form from './form';\nimport FormItem from './form-item';\nimport useForm from './use-form';\nimport FormInstance from './form-instance';\n\ntype IForm = typeof Form & {\n Item: typeof FormItem;\n useForm: typeof useForm;\n FormInstance: typeof FormInstance;\n};\n\nconst DefaultForm = Form as IForm;\nDefaultForm.Item = FormItem;\nDefaultForm.useForm = useForm;\nDefaultForm.FormInstance = FormInstance;\n\nexport default DefaultForm;\n","import FormInstance, { FormValues } from './form-instance';\n\nexport default function useForm(initialValues: FormValues = {}): [FormInstance] {\n return [new FormInstance(initialValues)];\n}\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { IconProps } from './types';\n\nconst Icon = React.forwardRef<HTMLElement, IconProps>((props, ref) => {\n const {\n name,\n color,\n size,\n style,\n spin,\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('icon', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `ty--${name}`, {\n [`${prefixCls}_spin`]: spin,\n });\n return <i ref={ref} className={cls} style={{ color, fontSize: size, ...style }} {...otherProps} />;\n});\n\nIcon.displayName = 'Icon';\n\nexport default Icon;\n","import Icon from './icon';\n\nexport default Icon;\n","import { useContext, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ImageProps } from './types';\n\nconst Image = (props: ImageProps): JSX.Element => {\n const {\n alt = 'image',\n objectFit = 'cover',\n round = false,\n lazy = false,\n src,\n placeholder,\n fallback,\n className,\n style,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('image', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, { [`${prefixCls}_round`]: round });\n const ref = useRef<HTMLImageElement | null>(null);\n\n useEffect(() => {\n if (!lazy || !('IntersectionObserver' in window)) return;\n\n const observer = new IntersectionObserver((entries, obs) => {\n entries.forEach(function (entry) {\n if (entry.isIntersecting) {\n const lazyImage = entry.target as HTMLImageElement;\n lazyImage.src = src || fallback || '';\n obs.unobserve(lazyImage);\n }\n });\n });\n\n const imgNode = ref.current;\n imgNode && observer.observe(imgNode);\n\n return () => {\n observer.disconnect();\n };\n }, [fallback, lazy, src]);\n\n return (\n <img\n {...otherProps}\n ref={ref}\n className={cls}\n style={{ ...style, objectFit }}\n src={lazy ? placeholder : src ? src : fallback}\n alt={alt}\n />\n );\n};\n\nImage.displayName = 'Image';\n\nexport default Image;\n","import Image from './image';\n\nexport default Image;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { InputGroupProps, InputProps } from './types';\nimport { SizeType } from '../_utils/props';\n\nconst InputGroup = (props: InputGroupProps): React.ReactElement => {\n const {\n disabled = false,\n size = 'md',\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('input-group', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const inputSize = props.size || configContext.componentSize || size;\n\n return (\n <div {...otherProps} className={cls}>\n {React.Children.map(children, (child: React.ReactElement) => {\n const childProps: Partial<InputProps> = {\n disabled,\n size: inputSize as SizeType,\n };\n return React.cloneElement(child, childProps);\n })}\n </div>\n );\n};\n\nInputGroup.displayName = 'InputGroup';\n\nexport default InputGroup;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { InputGroupAddonProps, InputProps } from './types';\nimport { SizeType } from '../_utils/props';\n\nconst InputGroupAddon = (props: InputGroupAddonProps): React.ReactElement => {\n const {\n disabled = false,\n size = 'md',\n noBorder,\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('input-group-addon', configContext.prefixCls, customisedCls);\n const inputSize = props.size || configContext.componentSize || size;\n const cls = classNames(prefixCls, className, `${prefixCls}_${inputSize}`, {\n [`${prefixCls}_no-border`]: noBorder,\n });\n\n if (React.isValidElement(children)) {\n return (\n <div className={cls} style={style}>\n {React.Children.map(children, (child: React.ReactElement) => {\n const childProps: Partial<InputProps> = {\n disabled,\n size: inputSize as SizeType,\n };\n return React.cloneElement(child, childProps);\n })}\n </div>\n );\n }\n return (\n <div {...otherProps} className={cls} style={style}>\n {children}\n </div>\n );\n};\n\nInputGroupAddon.displayName = 'InputGroupAddon';\n\nexport default InputGroupAddon;\n","import Input from './input';\nimport InputGroup from './input-group';\nimport InputGroupAddon from './input-group-addon';\n\ntype IInput = typeof Input & {\n Group: typeof InputGroup;\n Addon: typeof InputGroupAddon;\n};\n\nconst DefaultInput = Input as IInput;\nDefaultInput.Group = InputGroup;\nDefaultInput.Addon = InputGroupAddon;\n\nexport default DefaultInput;\n","import React, { useEffect, useState, MouseEvent, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { InputNumberProps } from './types';\nimport { ArrowDown } from '../_utils/components';\n\n/**\n * Valid the string is a number\n * @param val\n */\nconst isValid = (val: string | number): boolean => {\n return !isNaN(+val);\n};\n\nconst toPrecision = (val: number, precision?: number): number => {\n if (precision === undefined) return val;\n return parseFloat(val.toFixed(precision));\n};\n\nconst InputNumber = React.forwardRef<HTMLDivElement, InputNumberProps>((props, ref) => {\n const {\n size = 'md',\n disabled = false,\n defaultValue = 0,\n step = 1,\n precision,\n controls = false,\n min = Number.NEGATIVE_INFINITY,\n max = Number.POSITIVE_INFINITY,\n onChange,\n className,\n prefixCls: customisedCls,\n style,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('input-number', configContext.prefixCls, customisedCls);\n const inputSize = props.size || configContext.componentSize || size;\n const cls = classNames(prefixCls, className, `${prefixCls}_${inputSize}`, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_always-controls`]: controls,\n });\n const [value, setValue] = useState<number>(\n 'value' in props ? (props.value as number) : defaultValue\n );\n\n const inputOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const raw = Number(e.target.value.trim());\n const val = toPrecision(raw, precision);\n !('value' in props) && setValue(val);\n onChange && isValid(val) && onChange(val, e);\n };\n\n const plusOnClick = (e: MouseEvent<HTMLSpanElement>): void => {\n e.stopPropagation();\n if (!disabled && isValid(step)) {\n const val = toPrecision(+value + +step, precision);\n if (val <= max) {\n !('value' in props) && setValue(val);\n onChange && onChange(val, e);\n }\n }\n };\n\n const minusOnClick = (e: MouseEvent<HTMLSpanElement>): void => {\n e.stopPropagation();\n if (!disabled && isValid(step)) {\n const val = toPrecision(+value - +step, precision);\n if (val >= min) {\n !('value' in props) && setValue(val);\n onChange && onChange(val, e);\n }\n }\n };\n\n useEffect(() => {\n 'value' in props && setValue(props.value as number);\n }, [props]);\n\n return (\n <div ref={ref} className={cls} style={style}>\n <input\n autoComplete=\"off\"\n disabled={disabled}\n value={precision !== undefined ? value.toFixed(precision) : value}\n type=\"number\"\n className={`${prefixCls}__input`}\n max={max}\n min={min}\n step={step}\n onChange={inputOnChange}\n aria-valuenow={value}\n aria-valuemax={max}\n aria-valuemin={min}\n aria-disabled={disabled}\n />\n <div className={`${prefixCls}__controls`}>\n <span className={`${prefixCls}__up`} onClick={plusOnClick}>\n <ArrowDown size={8} className={`${prefixCls}__icon ${prefixCls}__icon_reverse`} />\n </span>\n <span className={`${prefixCls}__down`} onClick={minusOnClick}>\n <ArrowDown size={8} className={`${prefixCls}__icon`} />\n </span>\n </div>\n </div>\n );\n});\n\nInputNumber.displayName = 'InputNumber';\n\nexport default InputNumber;\n","import InputNumber from './input-number';\n\nexport default InputNumber;\n","import InputPassword from './input-password';\n\nexport default InputPassword;\n","import React, { useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport Input from '../input';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { InputPasswordProps } from './types';\nimport { Eye, EyeClose } from '../_utils/components';\n\nconst InputPassword = (props: InputPasswordProps): JSX.Element => {\n const {\n suffix = true,\n visibleOnClick,\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('input-pwd', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [visible, setVisible] = useState(false);\n\n const renderSuffix = (): React.ReactElement => (\n <button\n type=\"button\"\n className={`${prefixCls}__suffix`}\n aria-label=\"Toggle password visibility\"\n onClick={(): void => {\n setVisible(!visible);\n visibleOnClick && visibleOnClick();\n }}>\n {visible ? (\n <Eye size={17} className={`${prefixCls}__icon`} />\n ) : (\n <EyeClose size={17} className={`${prefixCls}__icon`} />\n )}\n </button>\n );\n\n return (\n <Input\n {...otherProps}\n className={cls}\n type={visible ? 'text' : 'password'}\n suffix={suffix ? renderSuffix() : null}\n />\n );\n};\n\nexport default InputPassword;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { KeyboardProps } from './types';\n\nconst Keyboard = React.forwardRef<HTMLElement, KeyboardProps>((props: KeyboardProps, ref) => {\n const { prefixCls: customisedCls, className, children, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('kbd', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <kbd {...otherProps} ref={ref} className={cls}>\n {children}\n </kbd>\n );\n});\n\nKeyboard.displayName = 'Keyboard';\n\nexport default Keyboard;\n","import Keyboard from './keyboard';\n\nexport default Keyboard;\n","import React from 'react';\n\ntype Props = {\n addSidebar: () => void;\n removeSidebar: () => void;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\nexport const SidebarContext = React.createContext<Props>({\n addSidebar: noop,\n removeSidebar: noop,\n});\n","import React, { useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport { SidebarContext } from './sidebar-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { LayoutProps } from './types';\n\n/**\n * Layout component\n */\nconst Layout = React.forwardRef<HTMLElement, LayoutProps>(\n (props: LayoutProps, ref): JSX.Element => {\n const { className, children, prefixCls: customisedCls, ...otherProps } = props;\n const [hasSidebar, setHasSidebar] = useState(false);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('layout', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_has-sidebar`]: hasSidebar,\n });\n\n return (\n <SidebarContext.Provider\n value={{\n addSidebar: () => setHasSidebar(true),\n removeSidebar: () => setHasSidebar(false),\n }}>\n <section {...otherProps} ref={ref} className={cls}>\n {children}\n </section>\n </SidebarContext.Provider>\n );\n }\n);\nLayout.displayName = 'Layout';\n\ntype generatorProps = {\n prefixCls: string;\n displayName: string;\n tagName: 'header' | 'footer' | 'main';\n};\n\n/**\n * Generator\n */\nfunction generator(_props: generatorProps) {\n const { tagName, displayName, prefixCls: defaultCls } = _props;\n const SubComponent = React.forwardRef<HTMLDivElement, LayoutProps>(\n (props: LayoutProps, ref): JSX.Element => {\n const { className, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls(defaultCls, configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return React.createElement(tagName, { ref, className: cls, ...otherProps }, children);\n }\n );\n SubComponent.displayName = displayName;\n\n return SubComponent;\n}\n\nconst Header = generator({\n prefixCls: 'layout-header',\n tagName: 'header',\n displayName: 'Header',\n});\nconst Footer = generator({\n prefixCls: 'layout-footer',\n tagName: 'footer',\n displayName: 'Footer',\n});\nconst Content = generator({\n prefixCls: 'layout-content',\n tagName: 'main',\n displayName: 'Content',\n});\n\nexport { Header, Footer, Content };\nexport default Layout;\n","import React from 'react';\nimport { useState, useContext, useEffect } from 'react';\nimport classNames from 'classnames';\nimport Icon from '../icon';\nimport { SidebarContext } from './sidebar-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SidebarProps } from './types';\n\nconst Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>(\n (props: SidebarProps, ref): JSX.Element => {\n const {\n defaultCollapsed = false,\n width = 200,\n collapsedWidth = 70,\n theme = 'light',\n trigger = null,\n collapsible = false,\n onCollapse,\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n\n const [sideCollapsed, setSideCollapsed] = useState(\n 'collapsed' in props ? props.collapsed : defaultCollapsed\n );\n const sidebarContext = useContext(SidebarContext);\n const sidebarWidth = sideCollapsed ? collapsedWidth : width;\n\n const outerStyle = {\n ...style,\n width: sidebarWidth,\n maxWidth: sidebarWidth,\n minWidth: sidebarWidth,\n };\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('layout-sidebar', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_light`]: theme === 'light',\n });\n\n const _collapseBtnOnClick = () => {\n const collapsedVal = !sideCollapsed;\n if (!('collapsed' in props)) {\n setSideCollapsed(collapsedVal);\n }\n onCollapse && onCollapse(collapsedVal);\n };\n\n const renderTrigger = () => {\n if (!collapsible) {\n return null;\n }\n\n if (trigger) {\n return trigger;\n }\n\n return (\n <button type=\"button\" className={`${prefixCls}__trigger`} onClick={_collapseBtnOnClick} aria-label=\"Toggle sidebar\">\n <Icon name=\"left\" className={`${prefixCls}__trigger-icon`} />\n </button>\n );\n };\n\n useEffect(() => {\n 'collapsed' in props && setSideCollapsed(props.collapsed);\n sidebarContext.addSidebar();\n\n return () => {\n sidebarContext.removeSidebar();\n };\n }, [props, sidebarContext]);\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={outerStyle}>\n <div className={`${prefixCls}__children`}>{children}</div>\n {renderTrigger()}\n </div>\n );\n }\n);\n\nSidebar.displayName = 'Sidebar';\n\nexport default Sidebar;\n","import Layout, { Header, Content, Footer } from './layout';\nimport Sidebar from './sidebar';\n\ntype ILayout = typeof Layout & {\n Header: typeof Header;\n Footer: typeof Footer;\n Content: typeof Content;\n Sidebar: typeof Sidebar;\n};\n\nconst DefaultLayout = Layout as ILayout;\nDefaultLayout.Sidebar = Sidebar;\nDefaultLayout.Header = Header;\nDefaultLayout.Content = Content;\nDefaultLayout.Footer = Footer;\n\nexport default DefaultLayout;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { LinkProps } from './types';\n\nconst Link = (props: LinkProps): React.ReactElement => {\n const {\n disabled = false,\n external = true,\n underline = true,\n className,\n style,\n children,\n target,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('link', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_no-underline`]: !underline,\n });\n\n if (disabled) {\n return (\n <span className={cls} style={style} role=\"link\" aria-disabled=\"true\">\n <span>{children}</span>\n </span>\n );\n }\n return (\n <a\n {...otherProps}\n target={target ? target : external ? '_blank' : '_self'}\n className={cls}\n style={style}\n role=\"link\">\n <span>{children}</span>\n </a>\n );\n};\n\nLink.displayName = 'Link';\n\nexport default Link;\n","import Link from './link';\n\nexport default Link;\n","import { useState, useCallback, useMemo } from 'react';\n\nexport interface UseVirtualScrollOptions {\n itemCount: number;\n itemHeight: number;\n containerHeight: number;\n overscan?: number;\n}\n\nexport interface UseVirtualScrollResult {\n visibleRange: [start: number, end: number];\n totalHeight: number;\n offsetY: number;\n onScroll: (e: React.UIEvent<HTMLElement>) => void;\n}\n\nexport function useVirtualScroll(options: UseVirtualScrollOptions): UseVirtualScrollResult {\n const { itemCount, itemHeight, containerHeight, overscan = 3 } = options;\n const [scrollTop, setScrollTop] = useState(0);\n\n const onScroll = useCallback((e: React.UIEvent<HTMLElement>) => {\n setScrollTop(e.currentTarget.scrollTop);\n }, []);\n\n const totalHeight = itemCount * itemHeight;\n\n const visibleRange = useMemo((): [number, number] => {\n if (itemCount === 0) return [0, 0];\n const start = Math.max(0, Math.floor(scrollTop / itemHeight) - overscan);\n const end = Math.min(\n itemCount - 1,\n Math.ceil((scrollTop + containerHeight) / itemHeight) + overscan\n );\n return [start, end];\n }, [scrollTop, itemHeight, containerHeight, overscan, itemCount]);\n\n const offsetY = visibleRange[0] * itemHeight;\n\n return { visibleRange, totalHeight, offsetY, onScroll };\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ArrowDown } from '../_utils/components';\nimport { PaginationProps } from './types';\n\ntype ItemSourceData = {\n type: 'prev' | 'next' | 'jump-prev' | 'jump-next' | 'page';\n disabled?: boolean;\n active?: boolean;\n label: string;\n};\n\nconst Pagination = (props: PaginationProps): JSX.Element => {\n const {\n align = 'center',\n size = 'md',\n current: currentProp,\n defaultCurrent = 1,\n pageSize: pageSizeProp,\n defaultPageSize = 10,\n total = 0,\n disabled = false,\n onChange,\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('pagination', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${align}`]: align,\n [`${prefixCls}_${size}`]: size,\n [`${prefixCls}_disabled`]: disabled,\n });\n const [current, setCurrent] = useState<number>(\n currentProp !== undefined ? currentProp : defaultCurrent\n );\n const [pageSize, setPageSize] = useState<number>(\n pageSizeProp !== undefined ? pageSizeProp : defaultPageSize\n );\n\n const itemOnClick = (item: ItemSourceData): void => {\n // If this item is in active or disabled status, reject the next action.\n if (item.active || item.disabled) {\n return;\n }\n\n const count = Math.ceil(total / pageSize);\n let curr = 0;\n if (item.type === 'page') {\n curr = Number(item.label);\n }\n if (item.type === 'prev') {\n curr = current - 1 > 0 ? current - 1 : 1;\n }\n if (item.type === 'next') {\n curr = current + 1 <= count ? current + 1 : count;\n }\n if (item.type === 'jump-prev' || item.type === 'jump-next') {\n curr = item.type === 'jump-prev' ? current - 5 : current + 5;\n if (curr > count) {\n curr = count;\n }\n if (curr < 1) {\n curr = 1;\n }\n }\n\n currentProp === undefined && setCurrent(curr);\n onChange && onChange(curr, total, pageSize);\n };\n\n const getItems = (): ItemSourceData[] => {\n const count = Math.ceil(total / pageSize);\n const items: ItemSourceData[] = [\n { type: 'prev', label: '<', disabled: disabled || current === 1 },\n ];\n const itemCount = count <= 5 ? count : 5;\n let num = 0;\n let basic = 0;\n if (current > 3 && count > 5) {\n items.push({ disabled, type: 'page', label: '1' });\n }\n if (current > 4 && count > 6) {\n items.push({ disabled, type: 'jump-prev', label: '•••' });\n }\n while (num < itemCount) {\n num += 1;\n if (current > 3 && count > 5) {\n basic = current - 3;\n }\n let label = num + basic;\n if (count - current === 0 && count > 5) {\n label -= 2;\n }\n if (count - current === 1 && count > 5) {\n label -= 1;\n }\n if (label <= count) {\n items.push({ disabled, type: 'page', label: `${label}`, active: current === label });\n }\n }\n if (current + 3 < count && count > 6) {\n items.push({ disabled, type: 'jump-next', label: '•••' });\n }\n if (current + 2 < count && count > 5) {\n items.push({ disabled, type: 'page', label: `${count}` });\n }\n items.push({ type: 'next', label: '>', disabled: disabled || current === count });\n return items;\n };\n\n const renderItem = (item: ItemSourceData): React.ReactNode => {\n const { type, label } = item;\n switch (type) {\n case 'prev':\n return <ArrowDown size={12} className={`${prefixCls}__left-arrow`} />;\n\n case 'next':\n return <ArrowDown size={12} className={`${prefixCls}__right-arrow`} />;\n\n default:\n return label;\n }\n };\n\n useEffect(() => {\n currentProp !== undefined && setCurrent(currentProp);\n pageSizeProp !== undefined && setPageSize(pageSizeProp);\n }, [currentProp, pageSizeProp]);\n\n return (\n <nav {...otherProps} className={cls} aria-label=\"Pagination\">\n <ul className={`${prefixCls}__list`}>\n {getItems().map((item, idx) => {\n const { active, disabled: itemDisabled, type, label } = item;\n const cls = classNames(`${prefixCls}__item`, {\n [`${prefixCls}__item_active`]: active,\n [`${prefixCls}__item_disabled`]: itemDisabled,\n [`${prefixCls}__item_ellipsis`]: type === 'jump-next' || type === 'jump-prev',\n });\n const ariaLabel = type === 'prev' ? 'Previous page' :\n type === 'next' ? 'Next page' :\n type === 'jump-prev' ? 'Jump back 5 pages' :\n type === 'jump-next' ? 'Jump forward 5 pages' :\n `Page ${label}`;\n return (\n <li key={idx} className={cls}>\n <button\n type=\"button\"\n disabled={itemDisabled}\n aria-current={active ? 'page' : undefined}\n aria-label={ariaLabel}\n onClick={(): void => itemOnClick(item)}>\n {renderItem(item)}\n </button>\n </li>\n );\n })}\n </ul>\n </nav>\n );\n};\n\nexport default Pagination;\n","import Pagination from './pagination';\n\nexport default Pagination;\n","import React, { useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useVirtualScroll } from '../_utils/use-virtual-scroll';\nimport Pagination from '../pagination';\nimport { ListProps } from './types';\n\nconst ITEM_HEIGHT_MAP = { sm: 41, md: 49, lg: 57 } as const;\n\nconst List = React.forwardRef<HTMLDivElement, ListProps>((props, ref) => {\n const {\n dataSource = [],\n renderItem,\n header,\n footer,\n loading = false,\n bordered = false,\n split = true,\n size,\n grid,\n locale,\n virtual = false,\n height,\n itemHeight: itemHeightProp,\n pagination,\n prefixCls: customisedCls,\n className,\n style,\n children,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('list', configContext.prefixCls, customisedCls);\n const listSize = size || configContext.componentSize || 'md';\n\n if (virtual && height == null) {\n console.warn('[tiny-ui: List] `height` is required when `virtual` is enabled.');\n }\n if (virtual && grid) {\n console.warn('[tiny-ui: List] `virtual` is not supported with `grid` mode. Falling back to normal rendering.');\n }\n\n const isVirtual = virtual && height != null && !grid;\n\n const [currentPage, setCurrentPage] = useState(1);\n const pageSize = pagination && pagination.pageSize ? pagination.pageSize : 10;\n\n const itemHeight = itemHeightProp ?? ITEM_HEIGHT_MAP[listSize] ?? ITEM_HEIGHT_MAP.md;\n const { visibleRange, totalHeight, offsetY, onScroll } = useVirtualScroll({\n itemCount: dataSource.length,\n itemHeight,\n containerHeight: height ?? 0,\n });\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${listSize}`]: listSize,\n [`${prefixCls}_bordered`]: bordered,\n [`${prefixCls}_split`]: split,\n [`${prefixCls}_loading`]: loading,\n [`${prefixCls}_grid`]: grid,\n });\n\n const paginatedData = () => {\n if (!pagination) return dataSource;\n const page = pagination.current ?? currentPage;\n const start = (page - 1) * pageSize;\n return dataSource.slice(start, start + pageSize);\n };\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n pagination && pagination.onChange?.(page, pageSize);\n };\n\n const renderItems = () => {\n if (isVirtual) {\n if (dataSource.length === 0) {\n return (\n <div className={`${prefixCls}__empty`}>\n {locale?.emptyText ?? 'No Data'}\n </div>\n );\n }\n if (renderItem) {\n const [start, end] = visibleRange;\n const visibleItems = dataSource.slice(start, end + 1).map((item, i) => renderItem(item, start + i));\n return (\n <div style={{ height: totalHeight, position: 'relative' }}>\n <div style={{ position: 'absolute', top: 0, left: 0, right: 0, transform: `translateY(${offsetY}px)` }}>\n {visibleItems}\n </div>\n </div>\n );\n }\n return children;\n }\n\n const items = paginatedData();\n if (items.length === 0 && !children) {\n return (\n <div className={`${prefixCls}__empty`}>\n {locale?.emptyText ?? 'No Data'}\n </div>\n );\n }\n if (renderItem) {\n const rendered = items.map((item, index) => renderItem(item, index));\n if (grid) {\n return (\n <div\n className={`${prefixCls}__grid`}\n style={{\n display: 'grid',\n gridTemplateColumns: `repeat(${grid.column || 3}, 1fr)`,\n gap: grid.gutter ? `${grid.gutter}px` : undefined,\n }}\n >\n {rendered}\n </div>\n );\n }\n return rendered;\n }\n return children;\n };\n\n const showPagination = pagination && !isVirtual;\n const paginationConfig = pagination && typeof pagination === 'object' ? pagination : undefined;\n const totalItems = paginationConfig?.total ?? dataSource.length;\n const activePage = paginationConfig?.current ?? currentPage;\n\n const bodyCls = classNames(`${prefixCls}__body`, {\n [`${prefixCls}__body_virtual`]: isVirtual,\n });\n\n const bodyStyle: React.CSSProperties | undefined = isVirtual\n ? { height, overflowY: 'auto' }\n : undefined;\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n {header && <div className={`${prefixCls}__header`}>{header}</div>}\n <div className={bodyCls} style={bodyStyle} onScroll={isVirtual ? onScroll : undefined}>\n {loading ? (\n <div className={`${prefixCls}__loading`}>Loading...</div>\n ) : (\n renderItems()\n )}\n </div>\n {footer && <div className={`${prefixCls}__footer`}>{footer}</div>}\n {showPagination && (\n <Pagination\n current={activePage}\n total={totalItems}\n pageSize={pageSize}\n align={paginationConfig?.align ?? 'right'}\n size={paginationConfig?.size}\n disabled={paginationConfig?.disabled}\n onChange={(page) => handlePageChange(page)}\n style={{ padding: 16 }}\n />\n )}\n </div>\n );\n});\n\nList.displayName = 'List';\nexport default List;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ListItemProps } from './types';\n\nconst ListItem = React.forwardRef<HTMLDivElement, ListItemProps>((props, ref) => {\n const {\n extra,\n actions,\n prefixCls: customisedCls,\n className,\n style,\n children,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('list-item', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n <div className={`${prefixCls}__main`}>\n <div className={`${prefixCls}__content`}>{children}</div>\n {actions && actions.length > 0 && (\n <ul className={`${prefixCls}__actions`}>\n {actions.map((action, i) => (\n <li key={i} className={`${prefixCls}__action`}>\n {action}\n </li>\n ))}\n </ul>\n )}\n </div>\n {extra && <div className={`${prefixCls}__extra`}>{extra}</div>}\n </div>\n );\n});\n\nListItem.displayName = 'ListItem';\nexport default ListItem;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ListItemMetaProps } from './types';\n\nconst ListItemMeta = (props: ListItemMetaProps): React.ReactElement => {\n const { avatar, title, description, prefixCls: customisedCls, className, style } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('list-item-meta', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <div className={cls} style={style}>\n {avatar && <div className={`${prefixCls}__avatar`}>{avatar}</div>}\n <div className={`${prefixCls}__content`}>\n {title && <div className={`${prefixCls}__title`}>{title}</div>}\n {description && <div className={`${prefixCls}__description`}>{description}</div>}\n </div>\n </div>\n );\n};\n\nListItemMeta.displayName = 'ListItemMeta';\nexport default ListItemMeta;\n","import List from './list';\nimport ListItem from './list-item';\nimport ListItemMeta from './list-item-meta';\n\ntype IList = typeof List & {\n Item: typeof ListItem;\n ItemMeta: typeof ListItemMeta;\n};\n\nconst DefaultList = List as IList;\nDefaultList.Item = ListItem;\nDefaultList.ItemMeta = ListItemMeta;\n\nexport default DefaultList;\n","import React from 'react';\nimport { SizeType } from '../_utils/props';\n\ntype Props = {\n className: string;\n size: SizeType;\n};\n\nconst Indicator = (props: Props): React.ReactElement => {\n const { size, className } = props;\n return (\n <div className={`${className} ${className}_${size}`}>\n <span className={`${className}-dot`} />\n <span className={`${className}-dot`} />\n <span className={`${className}-dot`} />\n <span className={`${className}-dot`} />\n </div>\n );\n};\n\nexport default Indicator;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport Indicator from './indicator';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { LoaderProps } from './types';\n\nconst Loader = React.forwardRef<HTMLDivElement, LoaderProps>((props, ref) => {\n const {\n size = 'md',\n loading = true,\n vertical = false,\n blurred = true,\n indicator,\n tip,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('loader', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${size}`, {\n [`${prefixCls}_spinning`]: loading,\n });\n\n const indicatorCls = classNames(`${prefixCls}__loader-container`, {\n [`${prefixCls}__loader-container_vertical`]: vertical,\n });\n const containerCls = classNames(`${prefixCls}__container`, {\n [`${prefixCls}__container_loading`]: loading,\n [`${prefixCls}__container_blurred`]: loading && blurred,\n });\n\n return (\n <div {...otherProps} ref={ref} className={cls} role=\"status\" aria-busy={loading}>\n {loading && (\n <div className={indicatorCls}>\n {indicator ? indicator : <Indicator className={`${prefixCls}__indicator`} size={size} />}\n {tip && <span className={`${prefixCls}__label`}>{tip}</span>}\n </div>\n )}\n {children && <div className={containerCls}>{children}</div>}\n </div>\n );\n});\n\nLoader.displayName = 'Loader';\n\nexport default Loader;\n","import Loader from './loader';\n\nexport default Loader;\n","import React, { useContext, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { LoadingBarProps } from './types';\n\nconst LoadingBar = (props: LoadingBarProps): React.ReactElement => {\n const { didMount, className, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('loading-bar', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n useEffect(() => {\n didMount && didMount();\n }, [didMount]);\n\n return (\n <div {...otherProps} className={cls} role=\"progressbar\">\n <div id=\"ty-loading-bar\" className={`${prefixCls}__inner`} />\n </div>\n );\n};\n\nLoadingBar.displayName = 'LoadingBar';\n\nexport default LoadingBar;\n","import React from 'react';\nimport { createRoot, Root } from 'react-dom/client';\nimport LoadingBar from './loading-bar';\n\nlet rafId: number | null = null;\nlet loadingBar: HTMLElement | null = null;\nlet outerDiv: HTMLElement | null = null;\nlet root: Root | null = null;\nlet width = 0;\n\nconst reset = (): void => {\n if (root) {\n root.unmount();\n root = null;\n }\n if (outerDiv) {\n document.body.removeChild(outerDiv);\n }\n loadingBar = null;\n outerDiv = null;\n width = 0;\n};\n\nconst move = (): void => {\n if (width < 55) {\n width += .4;\n rafId = requestAnimationFrame(move);\n } else if (width < 90) {\n width += .1;\n rafId = requestAnimationFrame(move);\n }\n\n loadingBar && (loadingBar.style.width = `${width}%`);\n};\n\nconst createComponent = (): void => {\n outerDiv = document.createElement('div');\n document.body.appendChild(outerDiv);\n\n const component = React.createElement(LoadingBar, {\n didMount: () => {\n loadingBar = document.getElementById('ty-loading-bar');\n rafId = requestAnimationFrame(move);\n },\n });\n\n root = createRoot(outerDiv);\n root.render(component);\n};\n\nconst unmountDom = (): void => {\n setTimeout(() => {\n loadingBar && (loadingBar.style.opacity = '0');\n }, 300);\n setTimeout(() => {\n reset();\n }, 700);\n};\n\nconst start = (): void => {\n if (!outerDiv) {\n reset();\n createComponent();\n }\n};\n\nconst succeed = (): void => {\n if (rafId) cancelAnimationFrame(rafId);\n\n if (outerDiv && loadingBar) {\n loadingBar.style.width = '100%';\n unmountDom();\n }\n};\n\nconst fail = (): void => {\n if (rafId) cancelAnimationFrame(rafId);\n\n if (outerDiv && loadingBar) {\n loadingBar.style.width = '100%';\n loadingBar.style.backgroundColor = '#f30';\n unmountDom();\n }\n};\n\nexport default {\n start,\n succeed,\n fail,\n};\n","import React from 'react';\nimport { MenuMode } from './types';\n\ntype Props = {\n index: string;\n mode: MenuMode;\n inlineIndent: number;\n onSelect?: (selectedIndex: string) => void;\n};\n\nexport const MenuContext = React.createContext<Props>({\n index: '0',\n inlineIndent: 20,\n mode: 'horizontal',\n});\n","import React, { useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from './menu-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { MenuItemProps, MenuProps } from './types';\n\nconst Menu = (props: MenuProps): JSX.Element => {\n const {\n defaultIndex = '0',\n mode = 'horizontal',\n theme = 'light',\n inlineIndent = 20,\n onSelect,\n className,\n overlayClassName,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('menu', configContext.prefixCls, customisedCls);\n const cls = classNames(\n prefixCls,\n className,\n `${prefixCls}_root`,\n `${prefixCls}_${theme}`,\n `${prefixCls}_${mode}`\n );\n const [activeIndex, setActiveIndex] = useState<string>(defaultIndex);\n const contextValue = {\n mode,\n inlineIndent,\n index: activeIndex,\n onSelect: (index: string): void => {\n setActiveIndex(index);\n onSelect && onSelect(index);\n },\n };\n\n return (\n <ul {...otherProps} role=\"menu\" aria-orientation={mode === 'horizontal' ? 'horizontal' : 'vertical'} className={cls} style={style}>\n <MenuContext.Provider value={contextValue}>\n {React.Children.map(children, (child, index) => {\n const childElement = child as React.FunctionComponentElement<MenuItemProps>;\n const { displayName } = childElement.type;\n if (\n displayName === 'MenuItem' ||\n displayName === 'SubMenu' ||\n displayName === 'MenuItemGroup' ||\n (displayName === 'MenuDivider' && mode !== 'horizontal')\n ) {\n const childProps = displayName === 'SubMenu' && overlayClassName\n ? { index: `${index}`, overlayClassName }\n : { index: `${index}` };\n return React.cloneElement(childElement, childProps);\n } else {\n console.warn('Menu has a child that is not a MenuItem component.');\n return null;\n }\n })}\n </MenuContext.Provider>\n </ul>\n );\n};\n\nMenu.displayName = 'Menu';\n\nexport default Menu;\n","import React from 'react';\n\ntype Props = {\n level?: number;\n onMenuItemClick?: () => void;\n};\n\nexport const SubMenuContext = React.createContext<Props>({});\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from './menu-context';\nimport { SubMenuContext } from './sub-menu-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { MenuItemProps } from './types';\n\nconst MenuItem = (props: MenuItemProps): JSX.Element => {\n const {\n disabled = false,\n index,\n className,\n style,\n children,\n onClick,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const menuContext = useContext(MenuContext);\n const subMenuContext = useContext(SubMenuContext);\n const { inlineIndent, mode } = menuContext;\n const { level = 1, onMenuItemClick } = subMenuContext;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('menu-item', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_active`]: menuContext.index === index,\n });\n\n const onItemClick = (e: React.MouseEvent): void => {\n if (disabled) {\n return;\n }\n\n onClick && onClick(e);\n onMenuItemClick && onMenuItemClick();\n if (menuContext.onSelect && typeof index === 'string') {\n menuContext.onSelect(index);\n }\n };\n\n return (\n <li\n {...otherProps}\n key={index}\n role=\"menuitem\"\n tabIndex={disabled ? -1 : 0}\n aria-disabled={disabled || undefined}\n className={cls}\n style={{ paddingLeft: mode === 'inline' ? level * inlineIndent : undefined, ...style }}\n onClick={onItemClick}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onItemClick(e as unknown as React.MouseEvent);\n }\n }}>\n {children}\n </li>\n );\n};\n\nMenuItem.displayName = 'MenuItem';\n\nexport default MenuItem;\n","import React, { useContext, useState, useRef } from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from './menu-context';\nimport { SubMenuContext } from './sub-menu-context';\nimport { ArrowDown } from '../_utils/components';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { MenuItemProps, SubMenuProps } from './types';\nimport Popup from '../popup';\nimport CollapseTransition from '../collapse-transition';\n\nconst SubMenu = (props: SubMenuProps): JSX.Element => {\n const {\n index,\n title,\n disabled,\n className,\n overlayClassName,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const menuContext = useContext(MenuContext);\n const { mode, inlineIndent } = menuContext;\n const { level = 1, onMenuItemClick: _onMenuItemClick } = useContext(SubMenuContext);\n const [menuOpen, setMenuOpen] = useState<boolean>(false);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('menu-sub', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const subMenuCls = classNames(`${prefixCls}__list`, {\n [`${prefixCls}__list_open`]: menuOpen,\n [`${prefixCls}__list_popup`]: mode !== 'inline',\n });\n const nonRootSubMenu = index?.includes('-');\n const rightPopupMenu = mode === 'vertical' || (mode === 'horizontal' && nonRootSubMenu);\n const arrowCls = rightPopupMenu\n ? `${prefixCls}__arrow ${prefixCls}__arrow_right`\n : classNames(`${prefixCls}__arrow`, {\n [`${prefixCls}__arrow_reverse`]: menuOpen,\n });\n const menuItemCls = `${configContext.prefixCls ? configContext.prefixCls : 'ty'}-menu-item`;\n const titleCls = classNames(menuItemCls, `${prefixCls}__title`, {\n [`${menuItemCls}_disabled`]: disabled,\n [`${menuItemCls}_active`]: index ? menuContext.index.startsWith(index) : false,\n });\n const titleRef = useRef<HTMLDivElement | null>(null);\n\n const handleOnClick = (e: React.MouseEvent): void => {\n e.preventDefault();\n !disabled && mode === 'inline' && setMenuOpen(!menuOpen);\n };\n\n const timerRef = useRef<number | undefined>(undefined);\n const handleMouse = (e: React.MouseEvent, toggle: boolean): void => {\n e.preventDefault();\n const timer = timerRef.current;\n timer && window.clearTimeout(timer);\n timerRef.current = window.setTimeout(() => {\n setMenuOpen(toggle);\n }, 200);\n };\n\n const handleOnMouseEnter = (e: React.MouseEvent): void => {\n !disabled && mode !== 'inline' && handleMouse(e, true);\n };\n\n const handleOnMouseLeave = (e: React.MouseEvent): void => {\n mode !== 'inline' && handleMouse(e, false);\n };\n\n const onMenuItemClick = () => {\n if (mode !== 'inline') {\n setMenuOpen(false);\n // If this is a sub-subMenu, invoke the onMenuItemClick method to notify\n // its parent to close the menu popup\n _onMenuItemClick && _onMenuItemClick();\n }\n };\n\n const renderChildrenList = () => {\n let minWidth = undefined;\n const titleNode = titleRef.current;\n if (titleNode && !nonRootSubMenu) {\n const { marginLeft, marginRight } = window.getComputedStyle(titleNode);\n minWidth = titleNode.offsetWidth + parseFloat(marginLeft) + parseFloat(marginRight);\n }\n return (\n <ul className={subMenuCls} style={{ minWidth }}>\n {React.Children.map(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<MenuItemProps>;\n const { displayName } = childElement.type;\n const childProps = {\n index: `${index}-${idx}`,\n };\n if (\n displayName === 'MenuItem' ||\n displayName === 'MenuItemGroup' ||\n displayName === 'SubMenu' ||\n displayName === 'MenuDivider'\n ) {\n return React.cloneElement(childElement, childProps);\n } else {\n console.warn('Menu has a child that is not a MenuItem component.');\n return null;\n }\n })}\n </ul>\n );\n };\n\n if (mode === 'inline') {\n return (\n <SubMenuContext.Provider value={{ level: level + 1 }}>\n <li {...otherProps} role=\"menuitem\" key={index} className={cls}>\n <div\n className={titleCls}\n style={{ paddingLeft: inlineIndent * level }}\n onClick={handleOnClick}>\n <span>{title}</span>\n <span className={arrowCls}>\n <ArrowDown size={10} />\n </span>\n </div>\n <CollapseTransition isShow={menuOpen}>{renderChildrenList()}</CollapseTransition>\n </li>\n </SubMenuContext.Provider>\n );\n } else {\n return (\n <SubMenuContext.Provider value={{ onMenuItemClick }}>\n <li\n {...otherProps}\n role=\"menuitem\"\n key={index}\n className={cls}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleOnMouseLeave}>\n <Popup\n flip={false}\n arrow={false}\n className={overlayClassName}\n trigger=\"manual\"\n visible={menuOpen}\n biZoom={rightPopupMenu}\n placement={rightPopupMenu ? 'right-start' : 'bottom-start'}\n content={renderChildrenList()}>\n <div ref={titleRef} className={titleCls} onClick={handleOnClick}>\n <span>{title}</span>\n <span className={arrowCls}>\n <ArrowDown size={10} />\n </span>\n </div>\n </Popup>\n </li>\n </SubMenuContext.Provider>\n );\n }\n};\n\nSubMenu.displayName = 'SubMenu';\n\nexport default SubMenu;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { MenuItemGroupProps, MenuItemProps } from './types';\nimport { MenuContext } from './menu-context';\nimport { SubMenuContext } from './sub-menu-context';\n\nconst MenuItemGroup = (props: MenuItemGroupProps): JSX.Element => {\n const {\n index,\n title,\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const { inlineIndent } = useContext(MenuContext);\n const { level = 1 } = useContext(SubMenuContext);\n const prefixCls = getPrefixCls('menu-item-group', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <li {...otherProps} key={title} className={cls} style={style}>\n <div\n className={`${prefixCls}__title`}\n style={{\n paddingLeft: inlineIndent * level - inlineIndent / 2,\n }}>\n {title}\n </div>\n <ul className={`${prefixCls}__list`}>\n {React.Children.map(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<MenuItemProps>;\n if (childElement.type.displayName === 'MenuItem') {\n const childProps: Partial<MenuItemProps> = {\n index: `${index}-${idx}`,\n };\n return React.cloneElement(childElement, childProps);\n } else {\n console.warn('Menu has a child that is not a MenuItem component.');\n return null;\n }\n })}\n </ul>\n </li>\n );\n};\n\nMenuItemGroup.displayName = 'MenuItemGroup';\n\nexport default MenuItemGroup;\n","import { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BaseProps } from '../_utils/props';\n\nconst MenuDivider = (props: BaseProps): JSX.Element => {\n const { prefixCls: customisedCls, className } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('menu-divider', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return <li className={cls} />;\n};\n\nMenuDivider.displayName = 'MenuDivider';\n\nexport default MenuDivider;\n","import Menu from './menu';\nimport MenuItem from './menu-item';\nimport SubMenu from './sub-menu';\nimport MenuItemGroup from './menu-item-group';\nimport MenuDivider from './menu-divider';\n\ntype IMenu = typeof Menu & {\n Item: typeof MenuItem;\n SubMenu: typeof SubMenu;\n ItemGroup: typeof MenuItemGroup;\n Divider: typeof MenuDivider;\n};\n\nconst DefaultMenu = Menu as IMenu;\nDefaultMenu.Item = MenuItem;\nDefaultMenu.SubMenu = SubMenu;\nDefaultMenu.ItemGroup = MenuItemGroup;\nDefaultMenu.Divider = MenuDivider;\n\nexport default DefaultMenu;\n","import React, { useEffect, useRef, useState, useContext } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport {\n CheckCircle,\n CloseCircle,\n InfoCircle,\n LoadingCircle,\n WarningCircle,\n} from '../_utils/components';\nimport { MessageProps } from './types';\n\nconst Message = (props: MessageProps): JSX.Element => {\n const {\n type,\n icon,\n content,\n duration,\n willUnmount,\n extra,\n className,\n style,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('message', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const ref = useRef<HTMLDivElement | null>(null);\n const [visible, setVisible] = useState(true);\n\n const renderIcon = (): React.ReactNode => {\n if (React.isValidElement(icon)) {\n return icon;\n } else if (typeof type === 'string') {\n switch (type) {\n case 'success':\n return <CheckCircle size={16} className={`${prefixCls}__icon`} />;\n case 'info':\n return <InfoCircle size={16} className={`${prefixCls}__icon`} />;\n case 'warning':\n return <WarningCircle size={16} className={`${prefixCls}__icon`} />;\n case 'error':\n return <CloseCircle size={16} className={`${prefixCls}__icon`} />;\n case 'loading':\n return (\n <LoadingCircle\n size={16}\n className={classNames(`${prefixCls}__icon`, {\n [`${prefixCls}__icon_loading`]: type === 'loading',\n })}\n />\n );\n }\n }\n\n return null;\n };\n\n useEffect(() => {\n const node = ref.current;\n const height = (node && node.offsetHeight) || 0;\n const timer = window.setTimeout(() => {\n setVisible(false);\n willUnmount(height);\n }, duration);\n\n return (): void => {\n window.clearTimeout(timer);\n };\n }, [duration, willUnmount]);\n\n return (\n <CSSTransition nodeRef={ref} in={visible} appear={true} timeout={0} classNames={`${prefixCls}_fade-slide`}>\n <div role=\"alert\" className={cls} style={style} ref={ref}>\n {renderIcon()}\n <span className={`${prefixCls}__content`}>{content}</span>\n {extra && <div className={`${prefixCls}__extra`}>{extra}</div>}\n </div>\n </CSSTransition>\n );\n};\n\nMessage.displayName = 'Message';\n\nexport default Message;\n","import React, { ReactNode } from 'react';\nimport { createRoot, Root } from 'react-dom/client';\nimport Message from './message';\nimport { MessageProps, MessageType } from './types';\n\nconst className = '.ty-message-container';\nconst rootMap = new Map<HTMLElement, Root>();\n\nexport type Options = {\n top?: number;\n offset?: number;\n icon?: ReactNode;\n extra?: ReactNode;\n className?: string;\n};\n\ntype CreateComponent = (\n type: MessageType,\n content: string,\n duration: number,\n onClose: () => void,\n options: Options\n) => void;\n\ntype UnmountDom = (\n containerDiv: HTMLElement,\n top: number,\n height: number,\n onClose?: () => void\n) => void;\n\nlet offset: number;\n\nconst unmountDom: UnmountDom = (containerDiv, top, height, onClose) => {\n const root = rootMap.get(containerDiv);\n if (root) {\n root.unmount();\n rootMap.delete(containerDiv);\n }\n document.body.removeChild(containerDiv);\n requestAnimationFrame(() => {\n const containers = document.querySelectorAll(className);\n const len = containers.length;\n for (let i = 0; i < len; i++) {\n const element = containers[i] as HTMLElement;\n const elementTop = parseInt((element as HTMLElement).style.top || '0', 10);\n elementTop > top && (element.style.top = `${elementTop - height - offset}px`);\n }\n });\n onClose && onClose();\n};\n\nconst createComponent: CreateComponent = (\n type,\n content,\n duration = 3000,\n onClose,\n options: Options = {}\n) => {\n const containers = document.querySelectorAll(className);\n const lastContainer =\n containers.length > 0 ? (containers[containers.length - 1] as HTMLElement) : null;\n\n offset = options.offset || 16;\n const top = lastContainer\n ? parseInt(lastContainer.style.top || '0', 10) + lastContainer.offsetHeight + offset\n : options.top || 15;\n\n const div = document.createElement('div');\n div.className = 'ty-message-container';\n document.body.appendChild(div);\n div.style.top = `${top}px`;\n\n const props: MessageProps = {\n type,\n content,\n duration,\n icon: options.icon,\n extra: options.extra,\n className: options.className,\n willUnmount: (height) => {\n const updatedTop = parseInt(div.style.top || '0', 10);\n unmountDom(div, updatedTop, height, onClose);\n },\n };\n const component = React.createElement(Message, props);\n const root = createRoot(div);\n rootMap.set(div, root);\n root.render(component);\n};\n\nconst messageContainer: any = (\n content: string,\n duration: number,\n onClose: () => void,\n options: Options\n) => {\n createComponent(undefined, content, duration, onClose, options);\n};\n\n['success', 'error', 'warning', 'info', 'loading'].forEach((type) => {\n messageContainer[type] = (\n content: string,\n duration: number,\n onClose: () => void,\n options: Options\n ) => {\n createComponent(type as MessageType, content, duration, onClose, options);\n };\n});\n\nmessageContainer.warn = messageContainer.warning;\n\nexport default messageContainer;\n","import messageContainer from './message-container';\n\nexport type { Options } from './message-container';\nexport default messageContainer;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { NativeSelectGroupProps, NativeSelectOptionProps, NativeSelectProps } from './types';\n\nconst NativeSelect = React.forwardRef<HTMLSelectElement, NativeSelectProps>(\n (props: NativeSelectProps, ref) => {\n const {\n size = 'md',\n disabled = false,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('select-native', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${size}`]: size,\n [`${prefixCls}_disabled`]: disabled,\n });\n\n return (\n <select ref={ref} {...otherProps} className={cls}>\n {React.Children.map(children, (child: React.ReactElement) => {\n const childProps: Partial<NativeSelectOptionProps | NativeSelectGroupProps> = {\n disabled,\n };\n return React.cloneElement(child, childProps);\n })}\n </select>\n );\n }\n);\n\nNativeSelect.displayName = 'NativeSelect';\n\nexport default NativeSelect;\n","import React from 'react';\nimport { NativeSelectOptionProps } from './types';\n\nconst NativeOption = React.forwardRef<HTMLOptionElement, NativeSelectOptionProps>(\n (props: NativeSelectOptionProps, ref): React.ReactElement => {\n return <option ref={ref} {...props} />;\n }\n);\n\nNativeOption.displayName = 'NativeOption';\n\nexport default NativeOption;\n","import React from 'react';\nimport { NativeSelectGroupProps } from './types';\n\nconst NativeOptGroup = React.forwardRef<HTMLOptGroupElement, NativeSelectGroupProps>(\n (props: NativeSelectGroupProps, ref): React.ReactElement => {\n return (\n <optgroup ref={ref} {...props}>\n {props.children}\n </optgroup>\n );\n }\n);\n\nNativeOptGroup.displayName = 'NativeSelectOptGroup';\n\nexport default NativeOptGroup;\n","import NativeSelect from './native-select';\nimport NativeOption from './native-option';\nimport NativeOptGroup from './native-opt-group';\n\ntype ISelect = typeof NativeSelect & {\n Option: typeof NativeOption;\n OptGroup: typeof NativeOptGroup;\n};\n\nconst DefaultSelect = NativeSelect as ISelect;\nDefaultSelect.Option = NativeOption;\nDefaultSelect.OptGroup = NativeOptGroup;\n\nexport default DefaultSelect;\n","import Row from '../grid/row';\n\nexport default Row;\n","import React, { useContext, useEffect, useId, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport Overlay from '../overlay';\nimport { Button, Flex } from '..';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useLocale } from '../_utils/use-locale';\nimport { ModalProps } from './types';\n\nconst Modal = React.forwardRef<HTMLDivElement, ModalProps>((props, ref) => {\n const locale = useLocale();\n const {\n visible = false,\n width = 520,\n centered = false,\n closable = true,\n unmountOnClose = true,\n maskType = 'default',\n maskClosable = true,\n confirmText = locale.Modal.okText,\n cancelText = locale.Modal.cancelText,\n confirmLoading = false,\n animation = 'slide',\n zIndex = 1000,\n onConfirm,\n onCancel: onCancelProp,\n onClose: onCloseProp,\n top,\n header,\n footer,\n afterClose,\n confirmButtonProps,\n cancelButtonProps,\n className,\n children,\n style,\n maskStyle,\n headerStyle,\n bodyStyle,\n footerStyle,\n prefixCls: customisedCls,\n } = props;\n const onCancel = onCloseProp ?? onCancelProp;\n const [modalVisible, setModalVisible] = useState(visible);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('modal', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, { [`${prefixCls}_centered`]: centered });\n const nodeRef = useRef<HTMLDivElement>(null);\n const previousFocusRef = useRef<HTMLElement | null>(null);\n const titleId = useId();\n\n // Focus trap + Escape key\n useEffect(() => {\n if (!visible) return;\n previousFocusRef.current = document.activeElement as HTMLElement;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n onCancel?.(e as unknown as React.MouseEvent);\n return;\n }\n if (e.key === 'Tab' && nodeRef.current) {\n const focusable = nodeRef.current.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (focusable.length === 0) return;\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n if (e.shiftKey) {\n if (document.activeElement === first) { e.preventDefault(); last.focus(); }\n } else {\n if (document.activeElement === last) { e.preventDefault(); first.focus(); }\n }\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n\n // Focus first focusable element\n requestAnimationFrame(() => {\n if (nodeRef.current) {\n const focusable = nodeRef.current.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (focusable.length > 0) focusable[0].focus();\n }\n });\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n previousFocusRef.current?.focus();\n };\n }, [visible, onCancel]);\n\n const renderFooter = (): React.ReactNode => {\n if (React.isValidElement(footer)) {\n return footer;\n } else if (footer === null) {\n return null;\n } else {\n return (\n <Flex gap=\"sm\" justify='end' className={`${prefixCls}__footer`} style={footerStyle}>\n <Button onClick={onCancel} className={`${prefixCls}__footer-btn`} {...cancelButtonProps}>\n {cancelText}\n </Button>\n <Button\n loading={confirmLoading}\n onClick={onConfirm}\n btnType=\"primary\"\n className={`${prefixCls}__footer-btn`}\n {...confirmButtonProps}>\n {confirmText}\n </Button>\n </Flex>\n );\n }\n };\n\n return (\n <Overlay\n onEnter={(): void => setModalVisible(true)}\n onExit={(): void => setModalVisible(false)}\n zIndex={zIndex}\n type={maskType}\n unmountOnExit={unmountOnClose}\n isShow={visible}\n onExited={afterClose}\n clickCallback={(e: React.MouseEvent): void => {\n maskClosable && onCancel ? onCancel(e) : undefined;\n }}\n style={maskStyle}>\n <div ref={ref} className={cls} style={{ top }}>\n <div style={{ width, ...style }}>\n <CSSTransition\n appear={true}\n nodeRef={nodeRef}\n in={modalVisible}\n classNames={`${prefixCls}__content_${animation}`}\n timeout={0}>\n <div\n ref={nodeRef}\n className={`${prefixCls}__content`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={header ? titleId : undefined}\n onClick={(e): void => e.stopPropagation()}>\n {closable && (\n <button type=\"button\" className={`${prefixCls}__close-btn`} onClick={onCancel} aria-label=\"Close\">\n ✕\n </button>\n )}\n {header && (\n <div className={`${prefixCls}__header`} style={headerStyle}>\n <div className={`${prefixCls}__title`} id={titleId}>{header}</div>\n </div>\n )}\n <div className={`${prefixCls}__body`} style={bodyStyle}>\n {children}\n </div>\n {renderFooter()}\n </div>\n </CSSTransition>\n </div>\n </div>\n </Overlay>\n );\n});\n\nModal.displayName = 'Modal';\n\nexport default Modal;\n","import React, { createContext, useCallback, useContext, useMemo, useReducer } from 'react';\n\n// --- Reducer ---\n\ntype ModalState = Record<string, boolean>;\n\ntype ModalAction =\n | { type: 'SHOW'; id: string }\n | { type: 'HIDE'; id: string }\n | { type: 'TOGGLE'; id: string }\n | { type: 'PURGE' };\n\nfunction modalReducer(state: ModalState, action: ModalAction): ModalState {\n switch (action.type) {\n case 'SHOW':\n return state[action.id] === true ? state : { ...state, [action.id]: true };\n case 'HIDE':\n return state[action.id] === false ? state : { ...state, [action.id]: false };\n case 'TOGGLE':\n return { ...state, [action.id]: !state[action.id] };\n case 'PURGE':\n return {};\n default:\n return state;\n }\n}\n\n// --- Context ---\n\ninterface ModalContextValue {\n modals: ModalState;\n dispatch: React.Dispatch<ModalAction>;\n}\n\nconst ModalContext = createContext<ModalContextValue | null>(null);\n\n// --- Provider ---\n\ninterface ModalProviderProps {\n modals?: ModalState;\n dispatch?: React.Dispatch<ModalAction>;\n children: React.ReactNode;\n}\n\nfunction ModalProvider({ modals: controlledModals, dispatch: controlledDispatch, children }: ModalProviderProps) {\n const [internalModals, internalDispatch] = useReducer(modalReducer, {});\n\n const modals = controlledModals ?? internalModals;\n const dispatch = controlledDispatch ?? internalDispatch;\n\n const value = useMemo(() => ({ modals, dispatch }), [modals, dispatch]);\n\n return <ModalContext.Provider value={value}>{children}</ModalContext.Provider>;\n}\n\n// --- Hook ---\n\ninterface UseModalReturn {\n visible: boolean;\n show: () => void;\n close: () => void;\n toggle: () => void;\n}\n\nfunction useModal(id: string): UseModalReturn {\n const ctx = useContext(ModalContext);\n if (!ctx) {\n throw new Error('useModal must be used within a <Modal.Provider>');\n }\n\n const { modals, dispatch } = ctx;\n const visible = !!modals[id];\n\n const show = useCallback(() => dispatch({ type: 'SHOW', id }), [dispatch, id]);\n const close = useCallback(() => dispatch({ type: 'HIDE', id }), [dispatch, id]);\n const toggle = useCallback(() => dispatch({ type: 'TOGGLE', id }), [dispatch, id]);\n\n return useMemo(() => ({ visible, show, close, toggle }), [visible, show, close, toggle]);\n}\n\nexport { ModalProvider, useModal, modalReducer };\nexport type { ModalState, ModalAction, ModalProviderProps, UseModalReturn };\n","import Modal from './modal';\nimport { ModalProvider, useModal } from './modal-context';\nimport type { ModalProviderProps, UseModalReturn } from './modal-context';\n\ntype ModalComponent = typeof Modal & {\n Provider: typeof ModalProvider;\n useModal: typeof useModal;\n};\n\nconst ModalWithContext = Modal as ModalComponent;\nModalWithContext.Provider = ModalProvider;\nModalWithContext.useModal = useModal;\n\nexport default ModalWithContext;\nexport type { ModalProviderProps, UseModalReturn };\n","import React, { useContext, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CheckCircle, CloseCircle, InfoCircle, WarningCircle } from '../_utils/components';\nimport { NotificationProps } from './types';\n\nconst Notification = (props: NotificationProps): JSX.Element => {\n const {\n duration = 4500,\n title,\n description,\n footer,\n type,\n icon,\n willUnmount,\n didMount,\n onClick,\n onClose,\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('notification', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const ref = useRef<HTMLDivElement | null>(null);\n const timerRef = useRef<number>();\n const height = useRef(0);\n\n const closeBtnOnClick = (e: React.MouseEvent): void => {\n timerRef.current && window.clearTimeout(timerRef.current);\n willUnmount(height.current);\n onClose && onClose(e);\n };\n\n const renderIcon = (): React.ReactNode => {\n if (React.isValidElement(icon)) {\n return icon;\n } else if (typeof type === 'string') {\n const iconSize = 40;\n switch (type) {\n case 'success':\n return <CheckCircle size={iconSize} className={`${prefixCls}__icon`} />;\n case 'info':\n return <InfoCircle size={iconSize} className={`${prefixCls}__icon`} />;\n case 'warning':\n return <WarningCircle size={iconSize} className={`${prefixCls}__icon`} />;\n case 'error':\n return <CloseCircle size={iconSize} className={`${prefixCls}__icon`} />;\n }\n }\n\n return null;\n };\n\n useEffect(() => {\n didMount();\n const node = ref.current;\n height.current = node ? node.offsetHeight : 0;\n\n if (duration !== 0) {\n timerRef.current = window.setTimeout(() => {\n willUnmount(height.current);\n }, duration);\n }\n }, [didMount, duration, willUnmount]);\n\n return (\n <div {...otherProps} className={cls} onClick={onClick} ref={ref}>\n {renderIcon()}\n <div>\n <div className={`${prefixCls}__title`}>{title}</div>\n {description}\n {footer}\n <button type=\"button\" className={`${prefixCls}__close`} onClick={closeBtnOnClick} aria-label=\"Close\">\n ✕\n </button>\n </div>\n </div>\n );\n};\n\nexport default Notification;\n","import React, { ReactNode, MouseEventHandler } from 'react';\nimport { createRoot, Root } from 'react-dom/client';\nimport Notification from './notification';\nimport { camelCaseToDash } from '../_utils/general';\nimport { NotificationProps, NotificationType } from './types';\n\nconst className = 'ty-notification-container';\nconst rootMap = new Map<HTMLElement, Root>();\n\ntype Direction = 'top' | 'bottom';\ntype NotificationPlacement = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';\ntype Options = {\n margin?: number;\n offset?: number;\n title?: ReactNode;\n description?: ReactNode;\n footer?: ReactNode;\n duration?: number;\n placement?: NotificationPlacement;\n onClose?: MouseEventHandler;\n onClick?: MouseEventHandler;\n icon?: ReactNode;\n};\ntype UnmountDom = (\n queryName: string,\n containerDiv: HTMLElement,\n position: number,\n height: number,\n direction: Direction\n) => void;\n\nlet offset: number;\n\nconst unmountDom: UnmountDom = (queryName, containerDiv, position, height, direction) => {\n const root = rootMap.get(containerDiv);\n if (root) {\n root.unmount();\n rootMap.delete(containerDiv);\n }\n document.body.removeChild(containerDiv);\n requestAnimationFrame(() => {\n const containers = document.querySelectorAll(`.${queryName}`);\n const len = containers.length;\n for (let i = 0; i < len; i++) {\n const element = containers[i] as HTMLElement;\n const elementPosition = parseInt((element as HTMLElement).style[direction] || '0', 10);\n elementPosition > position &&\n (element.style[direction] = `${elementPosition - height - offset}px`);\n }\n });\n};\n\nconst createComponent = (options: Options, type: NotificationType) => {\n const placement = options.placement || 'topRight';\n const queryName = `${className}_${camelCaseToDash(placement)}`;\n const containers = document.querySelectorAll(`.${queryName}`);\n const lastContainer =\n containers.length > 0 ? (containers[containers.length - 1] as HTMLElement) : null;\n\n const div = document.createElement('div');\n div.className = `${className} ${queryName}`;\n document.body.appendChild(div);\n\n offset = options.offset || 24;\n const direction: Direction = placement.includes('top') ? 'top' : 'bottom';\n const position = lastContainer\n ? parseInt(lastContainer.style[direction] || '0', 10) + lastContainer.offsetHeight + offset\n : options.margin || 16;\n div.style[direction] = `${position}px`;\n\n const props: NotificationProps = {\n type,\n title: options.title,\n description: options.description,\n footer: options.footer,\n duration: options.duration,\n onClose: options.onClose,\n onClick: options.onClick,\n icon: options.icon,\n didMount: () => {\n placement.includes('Right') ? (div.style.right = `0px`) : (div.style.left = `0px`);\n },\n willUnmount: (height) => {\n const updatedPosition = parseInt(div.style[direction] || '0', 10);\n unmountDom(queryName, div, updatedPosition, height, direction);\n },\n };\n const element = React.createElement(Notification, props);\n const root = createRoot(div);\n rootMap.set(div, root);\n root.render(element);\n};\n\nconst open = (options: Options) => {\n createComponent(options, undefined);\n};\n\nconst notificationContainer: any = {};\n\n['success', 'error', 'warning', 'info'].forEach((type) => {\n notificationContainer[type] = (options: Options) => {\n createComponent(options, type as NotificationType);\n };\n});\n\nnotificationContainer.open = open;\nnotificationContainer.warn = notificationContainer.warning;\n\nexport default notificationContainer;\n","import notificationContainer from './notification-container';\n\nexport default notificationContainer;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport Popup from '../popup';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { PopoverProps } from './types';\n\nconst Popover = React.forwardRef<HTMLDivElement, PopoverProps>((props, ref) => {\n const {\n theme = 'light',\n role = 'tooltip',\n prefixCls: customisedCls,\n title,\n content,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('popover', configContext.prefixCls, customisedCls);\n const cls = classNames(className, prefixCls, `${prefixCls}_${theme}`);\n\n const renderContent = (): React.ReactElement => (\n <div role={role} className={`${prefixCls}__inner`}>\n {title && <div className={`${prefixCls}__title`}>{title}</div>}\n {content && <div className={`${prefixCls}__content`}>{content}</div>}\n </div>\n );\n\n return (\n <Popup {...otherProps} className={cls} theme={theme} content={renderContent()}>\n {children}\n </Popup>\n );\n});\n\nPopover.displayName = 'Popover';\n\nexport default Popover;\n","import Popover from './popover';\n\nexport default Popover;\n","import React, { useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport Popover from '../popover';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useLocale } from '../_utils/use-locale';\nimport { WarningCircle } from '../_utils/components';\nimport { PopConfirmProps } from './types';\n\nconst PopConfirm = (props: PopConfirmProps): JSX.Element => {\n const locale = useLocale();\n const {\n placement = 'top',\n confirmText = locale.PopConfirm.okText,\n cancelText = locale.PopConfirm.cancelText,\n title,\n icon,\n onConfirm,\n onCancel,\n onVisibleChange,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('pop-confirm', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [visible, setVisible] = useState(false);\n\n const cancelOnClick = (e: React.MouseEvent): void => {\n setVisible(false);\n onCancel && onCancel(e);\n };\n\n const confirmOnClick = (e: React.MouseEvent): void => {\n setVisible(false);\n onConfirm && onConfirm(e);\n };\n\n const overlay = (): React.ReactElement => {\n return (\n <div className={`${prefixCls}__overlay`}>\n <div className={`${prefixCls}__messages`}>\n {icon ? icon : <WarningCircle size={14} />}\n <span className={`${prefixCls}__title`}>{title}</span>\n </div>\n <div className={`${prefixCls}__buttons`}>\n <Button size=\"sm\" onClick={cancelOnClick}>\n {cancelText}\n </Button>\n <Button size=\"sm\" btnType=\"primary\" onClick={confirmOnClick}>\n {confirmText}\n </Button>\n </div>\n </div>\n );\n };\n\n return (\n <Popover\n {...otherProps}\n className={cls}\n role=\"alertdialog\"\n visible={visible}\n onVisibleChange={(val: boolean): void => {\n setVisible(val);\n onVisibleChange && onVisibleChange(val);\n }}\n content={overlay()}\n placement={placement}>\n {children}\n </Popover>\n );\n};\n\nPopConfirm.displayName = 'PopConfirm';\n\nexport default PopConfirm;\n","import PopConfirm from './pop-confirm';\n\nexport default PopConfirm;\n","import React from 'react';\nimport { BaseProps } from '../_utils/props';\n\nexport type strokeLineCaps = 'round' | 'square';\n\nexport const strokePresetColors = ['primary', 'blue', 'green', 'yellow', 'red'];\n\nexport type BarBackgroundType = 'impulse' | 'striped';\n\nexport interface BarProps extends BaseProps, React.PropsWithoutRef<JSX.IntrinsicElements['div']> {\n percent?: number;\n /** Customise label style for both outer and inner label */\n format?: (percent: number) => React.ReactNode;\n /** Determine display the label */\n showInfo?: boolean;\n strokeLinecap?: strokeLineCaps;\n strokeColor?: string | string[];\n strokeWidth?: number;\n /** Determine display the label in the bar or right of bar */\n innerText?: boolean;\n backgroundType?: BarBackgroundType;\n children?: React.ReactNode;\n}\n\nexport interface CircleProps\n extends BaseProps,\n React.PropsWithoutRef<JSX.IntrinsicElements['div']> {\n percent?: number;\n /** Customise label style for both outer and inner label */\n format?: (percent: number) => React.ReactNode;\n width?: number;\n strokeWidth?: number;\n strokeLinecap?: strokeLineCaps;\n strokeColor?: string;\n reverse?: boolean;\n prefixCls?: string;\n textStyle?: React.CSSProperties;\n children?: React.ReactNode;\n}\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CircleProps, strokePresetColors } from './types';\n\nconst Circle = (props: CircleProps): React.ReactElement => {\n const {\n percent = 0,\n strokeWidth = 8,\n width = 120,\n strokeLinecap = 'round',\n strokeColor = 'primary',\n reverse = false,\n prefixCls: customisedCls,\n format,\n className,\n style,\n textStyle,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('progress-circle', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n let percentage: number = percent > 100 ? 100 : percent;\n percentage = percentage < 0 ? 0 : percentage;\n\n const strokeBgCls = classNames(`${prefixCls}__path`, {\n [`${prefixCls}__path_${strokeColor}`]: strokePresetColors.includes(strokeColor),\n });\n\n const relativeStrokeWidth = (): string => {\n return ((strokeWidth / width) * 100).toFixed(1);\n };\n\n const trackPath = (): string => {\n const radius: number = 50 - parseFloat(relativeStrokeWidth()) / 2;\n return `M 50 50 m 0 -${radius} a ${radius} ${radius}\n 0 1 1 0 ${radius * 2} a ${radius} ${radius} 0 1 1 0 -${radius * 2}`;\n };\n\n const _perimeter = (): number => {\n const radius: number = 50 - parseFloat(relativeStrokeWidth()) / 2;\n return 2 * Math.PI * radius;\n };\n\n const _circlePathStyle = (): React.CSSProperties => {\n const perimeter = _perimeter();\n const strokeDash = reverse ? percentage / 100 + 1 : 1 - percentage / 100;\n return {\n strokeDasharray: `${perimeter}px, ${perimeter}px`,\n strokeDashoffset: strokeDash * perimeter + 'px',\n };\n };\n\n const renderLabel = (): React.ReactNode => {\n return (\n <div className={`${prefixCls}__text`} style={textStyle}>\n {format ? format(percent) : `${percentage}%`}\n </div>\n );\n };\n\n return (\n <div\n {...otherProps}\n role=\"progressbar\"\n className={cls}\n style={{ width, height: width, ...style }}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={percentage}>\n <svg viewBox=\"0 0 100 100\" width={width} height={width}>\n <path className={`${prefixCls}__bg`} d={trackPath()} strokeWidth={relativeStrokeWidth()} />\n <path\n className={strokeBgCls}\n d={trackPath()}\n strokeLinecap={strokeLinecap}\n strokeWidth={relativeStrokeWidth()}\n style={_circlePathStyle()}\n />\n </svg>\n {renderLabel()}\n </div>\n );\n};\n\nCircle.displayName = 'Circle';\n\nexport default Circle;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BarProps, strokePresetColors } from './types';\n\nconst Bar = (props: BarProps): React.ReactElement => {\n const {\n percent = 0,\n showInfo = true,\n strokeWidth = 8,\n strokeLinecap = 'round',\n strokeColor = 'primary',\n innerText = false,\n prefixCls: customisedCls,\n format,\n backgroundType,\n className,\n style,\n ...otherProps\n } = props;\n let percentage: number = percent > 100 ? 100 : percent;\n percentage = percentage < 0 ? 0 : percentage;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('progress-bar', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${strokeLinecap}`);\n\n const strokeBgCls = classNames(`${prefixCls}__bg`, {\n [`${prefixCls}__bg_${strokeColor}`]:\n !Array.isArray(strokeColor) && strokePresetColors.includes(strokeColor),\n });\n\n const background = Array.isArray(strokeColor)\n ? `linear-gradient(to right, ${strokeColor.join(',')})`\n : strokePresetColors.includes(strokeColor)\n ? ''\n : strokeColor;\n\n const effectCls = classNames(`${prefixCls}__effect`, {\n [`${prefixCls}__effect_${backgroundType}`]: backgroundType,\n });\n\n const _renderLabel = () => {\n if (showInfo && !innerText) {\n return format ? (\n format(percentage)\n ) : (\n <span className={`${prefixCls}__text`}>{percentage}%</span>\n );\n }\n return null;\n };\n\n const _renderInnerLabel = () => {\n if (showInfo && innerText) {\n return format ? (\n format(percentage)\n ) : (\n <div className={`${prefixCls}__inner-text`} style={{ lineHeight: `${strokeWidth}px` }}>\n {percentage}%\n </div>\n );\n }\n return null;\n };\n\n return (\n <div\n {...otherProps}\n role=\"progressbar\"\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={percentage}\n className={cls}\n style={style}>\n <div className={`${prefixCls}__inner`} style={{ height: strokeWidth }}>\n <div\n className={strokeBgCls}\n style={{\n width: `${percentage}%`,\n background,\n }}>\n <div className={effectCls} />\n {_renderInnerLabel()}\n </div>\n </div>\n {_renderLabel()}\n </div>\n );\n};\n\nBar.displayName = 'Bar';\n\nexport default Bar;\n","import Circle from './circle';\nimport Bar from './bar';\n\nconst Progress = {\n Circle,\n Bar,\n};\n\nexport default Progress;\n","import React from 'react';\n\ntype Props = {\n value?: number | string;\n name?: string;\n disabled?: boolean;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n};\n\nexport const RadioGroupContext = React.createContext<Props>({});\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { RadioGroupContext } from './radio-group-context';\nimport { RadioProps } from './types';\n\nconst Radio = React.forwardRef<HTMLLabelElement, RadioProps>(\n (props: RadioProps, ref): React.ReactElement => {\n const {\n defaultChecked = false,\n radioRef,\n name,\n value,\n onChange,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const radioGroupContext = useContext(RadioGroupContext);\n const initialChecked = 'checked' in props ? (props.checked as boolean) : defaultChecked;\n const [checked, setChecked] = useState<boolean>(\n 'value' in radioGroupContext ? radioGroupContext.value === value : initialChecked\n );\n const prefixCls = getPrefixCls('radio', configContext.prefixCls, customisedCls);\n const disabled =\n 'disabled' in props\n ? props.disabled\n : 'disabled' in radioGroupContext\n ? radioGroupContext.disabled\n : false;\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_checked`]: checked,\n [`${prefixCls}_disabled`]: disabled,\n });\n\n const radioOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled) {\n !('checked' in props) && setChecked(e.currentTarget.checked);\n onChange && onChange(e);\n radioGroupContext.onChange && radioGroupContext.onChange(e);\n }\n };\n\n useEffect(() => {\n 'value' in radioGroupContext && setChecked(value === radioGroupContext.value);\n 'checked' in props && typeof props.checked !== 'undefined' && setChecked(props.checked);\n }, [props, radioGroupContext, value]);\n\n return (\n <label {...otherProps} ref={ref} className={cls}>\n <input\n ref={radioRef}\n role=\"radio\"\n aria-checked={checked}\n name={radioGroupContext.name || name}\n disabled={disabled}\n value={value}\n className={`${prefixCls}__native`}\n type=\"radio\"\n checked={checked}\n onChange={radioOnChange}\n />\n <span className={`${prefixCls}__inner`} />\n <span>{children}</span>\n </label>\n );\n }\n);\n\nRadio.displayName = 'Radio';\n\nexport default Radio;\n","import React, { useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { RadioGroupContext } from './radio-group-context';\nimport { RadioGroupProps } from './types';\n\nconst RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n (props: RadioGroupProps, ref): JSX.Element => {\n const {\n defaultValue = '',\n disabled = false,\n name,\n onChange,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('radio-group', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [value, setValue] = useState<number | string>(\n 'value' in props ? (props.value as number | string) : defaultValue\n );\n\n const radioOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled) {\n const val = e.currentTarget.value;\n !('value' in props) && setValue(val);\n onChange && onChange(val);\n }\n };\n\n useEffect(() => {\n 'value' in props && setValue(props.value as number | string);\n }, [props]);\n\n return (\n <RadioGroupContext.Provider\n value={{\n name,\n disabled,\n value,\n onChange: radioOnChange,\n }}>\n <div {...otherProps} ref={ref} role=\"radiogroup\" className={cls}>\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n }\n);\n\nRadioGroup.displayName = 'RadioGroup';\n\nexport default RadioGroup;\n","import Radio from './radio';\nimport RadioGroup from './radio-group';\n\ntype IRadio = typeof Radio & {\n Group: typeof RadioGroup;\n};\n\nconst DefaultRadio = Radio as IRadio;\nDefaultRadio.Group = RadioGroup;\n\nexport default DefaultRadio;\n","import React, { ReactNode } from 'react';\n\ntype ItemProps = {\n half: boolean;\n color: string;\n value: number;\n prefixCls: string;\n index: number;\n onMouseEnter: (index: number) => void;\n character?: ReactNode;\n onClick: React.MouseEventHandler;\n};\n\nconst RateItem = (props: ItemProps): React.ReactElement => {\n const { half, color, value, character, prefixCls, index, onMouseEnter, onClick } = props;\n const getColor = (curr: number, max: number): string => {\n const val = half ? curr : Math.round(curr);\n return val <= max ? color : '#e8e8e8';\n };\n\n return (\n <li className={`${prefixCls}__item`} onClick={onClick}>\n <div\n style={{ color: getColor(index - 0.5, value) }}\n className={`${prefixCls}__item-first`}\n onMouseEnter={(): void => onMouseEnter(index - 0.5)}>\n {character}\n </div>\n <div\n style={{ color: getColor(index, value) }}\n className={`${prefixCls}__item-second`}\n onMouseEnter={(): void => onMouseEnter(index)}>\n {character}\n </div>\n </li>\n );\n};\n\nRateItem.displayName = 'RateItem';\n\nexport default RateItem;\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport Icon from '../icon';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { RateProps } from './types';\nimport RateItem from './rate-item';\n\nconst Rate = React.forwardRef<HTMLUListElement, RateProps>(\n (props: RateProps, ref): JSX.Element => {\n const {\n color = '#FADB14',\n character = <Icon name=\"star-fill\" size={20} />,\n clearable = true,\n half = false,\n count = 5,\n defaultValue = 0,\n disabled = false,\n onChange,\n className,\n style,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('rate', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [value, setValue] = useState<number>(\n 'value' in props ? (props.value as number) : defaultValue\n );\n // tepValue is for setting the value when the mouse is hovering the bar\n const [tmpValue, setTmpValue] = useState<number>(\n 'value' in props ? (props.value as number) : defaultValue\n );\n\n /**\n * Callback when the mouse enters each star item\n * @param index\n */\n const onMouseEnter = (index: number): void => {\n !disabled && setTmpValue(index);\n };\n\n const onClick = (): void => {\n if (!disabled && clearable) {\n const val = tmpValue === value ? 0 : tmpValue;\n setTmpValue(val);\n !('value' in props) && setValue(val);\n onChange && onChange(val);\n } else {\n !('value' in props) && setValue(tmpValue);\n onChange && onChange(tmpValue);\n }\n };\n\n /**\n * When the mouse leaves the rate component\n */\n const onMouseLeave = (): void => {\n setTmpValue(value);\n };\n\n useEffect(() => {\n 'value' in props && setValue(props.value as number);\n }, [props]);\n\n return (\n <ul\n {...otherProps}\n ref={ref}\n className={cls}\n style={style}\n role=\"radiogroup\"\n aria-label=\"Rating\"\n tabIndex={disabled ? -1 : 0}\n onMouseLeave={onMouseLeave}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (disabled) return;\n if (e.key === 'ArrowRight' || e.key === 'ArrowUp') {\n e.preventDefault();\n const step = half ? 0.5 : 1;\n const newVal = Math.min(tmpValue + step, count);\n setTmpValue(newVal);\n !('value' in props) && setValue(newVal);\n onChange?.(newVal);\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowDown') {\n e.preventDefault();\n const step = half ? 0.5 : 1;\n const newVal = Math.max(tmpValue - step, 0);\n setTmpValue(newVal);\n !('value' in props) && setValue(newVal);\n onChange?.(newVal);\n }\n }}>\n {Array(count)\n .fill(0)\n .map((_, idx) => (\n <RateItem\n key={idx}\n index={idx + 1}\n half={half}\n character={character}\n prefixCls={prefixCls}\n onMouseEnter={onMouseEnter}\n onClick={onClick}\n value={half ? tmpValue : Math.round(tmpValue)}\n color={color}\n />\n ))}\n </ul>\n );\n }\n);\n\nRate.displayName = 'Rate';\n\nexport default Rate;\n","import Rate from './rate';\n\nexport default Rate;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport {\n CheckCircle,\n CloseCircle,\n InfoCircle,\n LoadingCircle,\n WarningCircle,\n} from '../_utils/components';\nimport { ResultProps } from './types';\n\nconst Result = React.forwardRef<HTMLDivElement, ResultProps>((props: ResultProps, ref) => {\n const {\n status = 'info',\n prefixCls: customisedCls,\n title,\n subtitle,\n icon,\n extra,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('result', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${status}`);\n\n const renderIcon = (): React.ReactNode => {\n if (React.isValidElement(icon)) {\n return icon;\n } else {\n const iconSize = 80;\n switch (status) {\n case 'success':\n return <CheckCircle size={iconSize} />;\n case 'info':\n return <InfoCircle size={iconSize} />;\n case 'warning':\n return <WarningCircle size={iconSize} />;\n case 'error':\n return <CloseCircle size={iconSize} />;\n case 'loading':\n return <LoadingCircle size={iconSize} className={`${prefixCls}__icon`} />;\n }\n }\n\n return null;\n };\n\n return (\n <div {...otherProps} ref={ref} className={cls}>\n <div className={`${prefixCls}__icon-container`}>{renderIcon()}</div>\n {title && <div className={`${prefixCls}__title`}>{title}</div>}\n {subtitle && <div className={`${prefixCls}__subtitle`}>{subtitle}</div>}\n {extra && <div className={`${prefixCls}__extra`}>{extra}</div>}\n {children && <div className={`${prefixCls}__content`}>{children}</div>}\n </div>\n );\n});\n\nResult.displayName = 'Result';\n\nexport default Result;\n","import Result from './result';\n\nexport default Result;\n","import React, { useCallback, useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport { Target, getScroll, getNodeScrollHeight, getNodeHeight } from '../_utils/dom';\nimport { useEventListener } from '../_utils/hooks';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ScrollIndicatorProps } from './types';\n\nconst ScrollIndicator = (props: ScrollIndicatorProps): React.ReactElement => {\n const { prefixCls: customisedCls, fixed = true, target, className, style, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('scroll-indicator', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_fixed`]: fixed,\n });\n const [width, setWidth] = useState('0%');\n\n const handleScroll = useCallback(\n (e: Event) => {\n let container = e.target;\n // If the container is not provided, the target will be the root element. So set it as Window\n // if the container is not determined.\n if (container !== (target && target())) {\n container = window;\n }\n if (container) {\n const el = container as Target;\n const scrollTop = getScroll(el, true);\n const height = getNodeScrollHeight(el) - getNodeHeight(el);\n const scrolled = (scrollTop / height) * 100;\n setWidth(`${scrolled}%`);\n }\n },\n [target]\n );\n\n const element = target ? (target() ? target() : window) : window;\n useEventListener('scroll', handleScroll, element);\n\n const numericWidth = parseFloat(width) || 0;\n return <div {...otherProps} className={cls} style={{ ...style, width }} role=\"progressbar\" aria-valuenow={Math.round(numericWidth)} aria-valuemin={0} aria-valuemax={100} />;\n};\n\nScrollIndicator.displayName = 'ScrollIndicator';\n\nexport default ScrollIndicator;\n","import ScrollIndicator from './scroll-indicator';\n\nexport default ScrollIndicator;\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SegmentedProps, SegmentedOption, SegmentedValue } from './types';\n\nconst normalizeOptions = (\n options: (string | number | SegmentedOption)[]\n): SegmentedOption[] => {\n return options.map((opt) => {\n if (typeof opt === 'string' || typeof opt === 'number') {\n return { label: String(opt), value: opt };\n }\n return opt;\n });\n};\n\nconst Segmented = React.forwardRef<HTMLDivElement, SegmentedProps>((props, ref) => {\n const {\n options,\n defaultValue,\n block = false,\n disabled = false,\n size,\n prefixCls: customisedCls,\n className,\n style,\n onChange,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('segmented', configContext.prefixCls, customisedCls);\n const segSize = size || configContext.componentSize || 'md';\n\n const normalizedOptions = normalizeOptions(options);\n const [selected, setSelected] = useState<SegmentedValue>(\n 'value' in props\n ? (props.value as SegmentedValue)\n : defaultValue ?? normalizedOptions[0]?.value\n );\n\n useEffect(() => {\n if ('value' in props) {\n setSelected(props.value as SegmentedValue);\n }\n }, [props.value]);\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${segSize}`]: segSize,\n [`${prefixCls}_block`]: block,\n [`${prefixCls}_disabled`]: disabled,\n });\n\n const handleClick = (value: SegmentedValue, optDisabled?: boolean) => {\n if (disabled || optDisabled) return;\n if (!('value' in props)) {\n setSelected(value);\n }\n onChange?.(value);\n };\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cls}\n style={style}\n role=\"radiogroup\"\n >\n {normalizedOptions.map((opt) => {\n const isActive = opt.value === selected;\n const itemCls = classNames(`${prefixCls}__item`, {\n [`${prefixCls}__item_active`]: isActive,\n [`${prefixCls}__item_disabled`]: opt.disabled,\n });\n return (\n <label\n key={opt.value}\n className={itemCls}\n onClick={() => handleClick(opt.value, opt.disabled)}\n >\n <input\n type=\"radio\"\n className={`${prefixCls}__input`}\n checked={isActive}\n disabled={disabled || opt.disabled}\n onChange={() => handleClick(opt.value, opt.disabled)}\n value={opt.value}\n />\n {opt.icon && <span className={`${prefixCls}__icon`}>{opt.icon}</span>}\n <span className={`${prefixCls}__label`}>{opt.label}</span>\n </label>\n );\n })}\n </div>\n );\n});\n\nSegmented.displayName = 'Segmented';\nexport default Segmented;\n","import Segmented from './segmented';\n\nexport default Segmented;\n","import React from 'react';\n\ntype Props = {\n value?: string | string[];\n mode?: 'multiple' | 'tags';\n searchValue?: string;\n onSelect: (value: string) => void;\n prefixCls?: string;\n};\n\nexport const SelectContext = React.createContext<Props>({\n value: '',\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onSelect: () => {},\n});\n","import React, { useContext, useEffect, useId, useRef, useState, useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { useClickOutside } from '../_utils/hooks';\nimport { useCombobox } from '../_utils/useCombobox';\nimport { ArrowDown, Close, CloseCircle, LoadingCircle, Check } from '../_utils/components';\nimport { SelectContext } from './select-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SelectOptionItem, SelectOptionsProps, SelectProps, SelectValue } from './types';\nimport Popup from '../popup';\n\nconst Select = (props: SelectProps): React.ReactElement => {\n const {\n defaultOpen = false,\n disabled = false,\n defaultValue,\n prefixCls: customisedCls,\n value,\n mode,\n showSearch = false,\n filterOption = true,\n onSearch,\n allowClear = false,\n loading = false,\n size,\n maxTagCount,\n notFoundContent,\n options: optionsProp,\n onChange,\n onSelect,\n onDropdownVisibleChange,\n optionRender,\n labelRender,\n placeholder,\n className,\n children,\n dropdownStyle,\n ...otherProps\n } = props;\n\n const isMultiple = mode === 'multiple' || mode === 'tags';\n const defaultVal = defaultValue ?? (isMultiple ? [] : '');\n\n const [selectVal, setSelectVal] = useState<SelectValue>(\n 'value' in props ? (value as SelectValue) : defaultVal\n );\n const [searchValue, setSearchValue] = useState('');\n\n const ref = useRef<HTMLDivElement | null>(null);\n const searchInputRef = useRef<HTMLInputElement | null>(null);\n const listboxId = useId();\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('select', configContext.prefixCls, customisedCls);\n const selectSize = size || configContext.componentSize || 'md';\n\n const hasSomeValue = isMultiple\n ? Array.isArray(selectVal) && selectVal.length > 0\n : selectVal !== '' && selectVal !== undefined;\n\n // Build flat option list from children or options prop\n const flatOptions = useMemo((): SelectOptionItem[] => {\n if (optionsProp) return optionsProp;\n const result: SelectOptionItem[] = [];\n const extractFromChildren = (nodes: React.ReactNode): void => {\n React.Children.forEach(nodes, (child) => {\n const el = child as React.FunctionComponentElement<SelectOptionsProps>;\n if (!el?.type) return;\n if (el.type.displayName === 'SelectOption') {\n result.push({\n value: el.props.value,\n label: el.props.label ?? el.props.children,\n disabled: !!el.props.disabled,\n });\n } else if (el.type.displayName === 'SelectOptGroup') {\n extractFromChildren(el.props.children);\n }\n });\n };\n extractFromChildren(children);\n return result;\n }, [optionsProp, children]);\n\n // Handle option select\n const handleSelect = useCallback(\n (optValue: string): void => {\n if (isMultiple) {\n const arr = Array.isArray(selectVal) ? selectVal : [];\n let newVal: string[];\n if (arr.includes(optValue)) {\n newVal = arr.filter((v) => v !== optValue);\n } else {\n newVal = [...arr, optValue];\n }\n if (!('value' in props)) {\n setSelectVal(newVal);\n }\n onChange?.(newVal, flatOptions.filter((o) => newVal.includes(o.value)));\n onSelect?.(newVal);\n setSearchValue('');\n } else {\n if (!('value' in props)) {\n setSelectVal(optValue);\n }\n onChange?.(optValue, flatOptions.find((o) => o.value === optValue));\n onSelect?.(optValue);\n combo.closeDropdown();\n setSearchValue('');\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isMultiple, selectVal, flatOptions, onChange, onSelect, props]\n );\n\n const handleComboSelect = useCallback(\n (item: SelectOptionItem) => {\n if (!item.disabled) handleSelect(item.value);\n },\n [handleSelect]\n );\n\n const combo = useCombobox<SelectOptionItem>({\n items: flatOptions,\n searchValue,\n filterOption,\n isOpen: 'open' in props ? props.open : undefined,\n defaultOpen,\n disabled,\n defaultActiveFirstOption: false,\n onOpenChange: onDropdownVisibleChange,\n onSelect: handleComboSelect,\n });\n\n const cls = classNames(prefixCls, className, `${prefixCls}_${selectSize}`, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_open`]: combo.isOpen,\n [`${prefixCls}_multiple`]: isMultiple,\n [`${prefixCls}_showSearch`]: showSearch,\n [`${prefixCls}_has-value`]: allowClear && hasSomeValue && !disabled,\n });\n\n const arrowCls = classNames(`${prefixCls}__arrow`, {\n [`${prefixCls}__arrow_reverse`]: combo.isOpen,\n });\n\n useClickOutside(ref.current as HTMLDivElement, () => {\n if (!('open' in props)) {\n combo.closeDropdown();\n }\n setSearchValue('');\n });\n\n // Get display label for a value\n const getLabelForValue = useCallback(\n (val: string): React.ReactNode => {\n const opt = flatOptions.find((o) => o.value === val);\n const label = opt?.label ?? val;\n if (labelRender && opt) {\n return labelRender({ label, value: val });\n }\n return label;\n },\n [flatOptions, labelRender]\n );\n\n // Remove tag\n const handleRemoveTag = (val: string, e: React.MouseEvent): void => {\n e.stopPropagation();\n if (disabled) return;\n const arr = Array.isArray(selectVal) ? selectVal : [];\n const newVal = arr.filter((v) => v !== val);\n if (!('value' in props)) {\n setSelectVal(newVal);\n }\n onChange?.(newVal, flatOptions.filter((o) => newVal.includes(o.value)));\n onSelect?.(newVal);\n };\n\n // Clear all\n const handleClear = (e: React.MouseEvent): void => {\n e.stopPropagation();\n if (disabled) return;\n const newVal = isMultiple ? [] : '';\n if (!('value' in props)) {\n setSelectVal(newVal);\n }\n onChange?.(newVal);\n onSelect?.(newVal);\n setSearchValue('');\n };\n\n // Search input change\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const val = e.target.value;\n setSearchValue(val);\n onSearch?.(val);\n if (!combo.isOpen) {\n combo.openDropdown();\n }\n };\n\n // Selector click\n const handleSelectorClick = (): void => {\n if (disabled) return;\n if (combo.isOpen && !showSearch) {\n combo.closeDropdown();\n } else {\n combo.openDropdown();\n setTimeout(() => searchInputRef.current?.focus(), 0);\n }\n };\n\n // Keyboard — wrap hook's handler with Select-specific keys\n const handleKeyDown = (e: React.KeyboardEvent): void => {\n if (disabled) return;\n\n if (e.key === 'Backspace' && isMultiple && !searchValue) {\n const arr = Array.isArray(selectVal) ? selectVal : [];\n if (arr.length > 0) {\n const newVal = arr.slice(0, -1);\n if (!('value' in props)) setSelectVal(newVal);\n onChange?.(newVal, flatOptions.filter((o) => newVal.includes(o.value)));\n onSelect?.(newVal);\n }\n return;\n }\n\n if (e.key === ' ') {\n if (!combo.isOpen) {\n e.preventDefault();\n combo.openDropdown();\n } else if (combo.focusedIndex >= 0 && combo.focusedIndex < combo.filteredItems.length) {\n e.preventDefault();\n const opt = combo.filteredItems[combo.focusedIndex];\n if (!opt.disabled) handleSelect(opt.value);\n }\n return;\n }\n\n combo.handleKeyDown(e);\n };\n\n // Controlled value\n const hasValueProp = 'value' in props;\n useEffect(() => {\n if (hasValueProp) setSelectVal(value as SelectValue);\n }, [hasValueProp, value]);\n\n // Reset focused index when search changes\n useEffect(() => {\n combo.setFocusedIndex(-1);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchValue]);\n\n const hasValue = hasSomeValue;\n\n // Context value\n const contextValue = useMemo(\n () => ({\n value: selectVal,\n mode,\n searchValue,\n onSelect: handleSelect,\n prefixCls,\n }),\n [selectVal, mode, searchValue, handleSelect, prefixCls]\n );\n\n // Filter children for dropdown\n const filterChildren = (nodes: React.ReactNode): React.ReactNode => {\n return React.Children.map(nodes, (child) => {\n const el = child as React.FunctionComponentElement<SelectOptionsProps>;\n if (!el?.type) return null;\n if (el.type.displayName === 'SelectOption') {\n const opt: SelectOptionItem = {\n value: el.props.value,\n label: el.props.label ?? el.props.children,\n disabled: !!el.props.disabled,\n };\n if (!combo.matchesFilter(opt)) return null;\n return React.cloneElement(el, el.props);\n }\n if (el.type.displayName === 'SelectOptGroup') {\n const filteredGroupChildren = filterChildren(el.props.children);\n const hasVisibleChildren = React.Children.toArray(filteredGroupChildren).some(Boolean);\n if (!hasVisibleChildren) return null;\n return React.cloneElement(el, { ...el.props, children: filteredGroupChildren });\n }\n return null;\n });\n };\n\n // Render dropdown\n const renderDropdownContent = (): React.ReactNode => {\n if (loading) {\n return (\n <div className={`${prefixCls}__loading`}>\n <LoadingCircle size={20} />\n </div>\n );\n }\n\n let content: React.ReactNode;\n\n if (optionsProp) {\n const filtered = combo.filteredItems;\n if (filtered.length === 0) {\n content = null;\n } else {\n content = filtered.map((opt, index) => {\n const isSelected = isMultiple\n ? Array.isArray(selectVal) && selectVal.includes(opt.value)\n : selectVal === opt.value;\n const optCls = classNames(`${prefixCls}-option`, {\n [`${prefixCls}-option_selected`]: isSelected,\n [`${prefixCls}-option_active`]: index === combo.focusedIndex,\n [`${prefixCls}-option_disabled`]: opt.disabled,\n });\n\n const label = opt.label ?? opt.value;\n const renderedContent = optionRender ? optionRender(opt, { index }) : label;\n\n return (\n <li\n key={opt.value}\n role=\"option\"\n className={optCls}\n aria-selected={isSelected}\n aria-disabled={opt.disabled}\n onClick={() => !opt.disabled && handleSelect(opt.value)}\n onMouseEnter={() => combo.setFocusedIndex(index)}>\n <span className={`${prefixCls}-option__content`}>{renderedContent}</span>\n {isMultiple && isSelected && (\n <span className={`${prefixCls}-option__check`}>\n <Check size={14} />\n </span>\n )}\n </li>\n );\n });\n }\n } else {\n content = filterChildren(children);\n }\n\n const contentArray = React.Children.toArray(content);\n if (!contentArray || contentArray.length === 0) {\n return (\n <div className={`${prefixCls}__empty`}>\n {notFoundContent ?? 'No data'}\n </div>\n );\n }\n\n return content;\n };\n\n const renderOverlay = (): React.ReactElement => {\n const selectorWidth = ref.current?.offsetWidth;\n return (\n <SelectContext.Provider value={contextValue}>\n <ul\n className={`${prefixCls}__dropdown`}\n style={{ minWidth: selectorWidth || undefined, ...dropdownStyle }}\n role=\"listbox\"\n id={listboxId}>\n {renderDropdownContent()}\n </ul>\n </SelectContext.Provider>\n );\n };\n\n // Render selector content\n const renderSelectorContent = (): React.ReactNode => {\n if (isMultiple) {\n const arr = Array.isArray(selectVal) ? selectVal : [];\n const displayTags =\n maxTagCount !== undefined && arr.length > maxTagCount\n ? arr.slice(0, maxTagCount)\n : arr;\n const remaining =\n maxTagCount !== undefined && arr.length > maxTagCount\n ? arr.length - maxTagCount\n : 0;\n\n return (\n <>\n {displayTags.map((val) => (\n <span key={val} className={`${prefixCls}__tag`}>\n <span className={`${prefixCls}__tag-content`}>{getLabelForValue(val)}</span>\n <span\n className={`${prefixCls}__tag-close`}\n onClick={(e) => handleRemoveTag(val, e)}\n aria-label=\"Remove\">\n <Close size={10} />\n </span>\n </span>\n ))}\n {remaining > 0 && (\n <span className={`${prefixCls}__tag ${prefixCls}__tag_max`}>\n +{remaining}...\n </span>\n )}\n {showSearch && (\n <input\n ref={searchInputRef}\n className={`${prefixCls}__search`}\n value={searchValue}\n onChange={handleSearchChange}\n placeholder={arr.length === 0 ? placeholder : undefined}\n autoComplete=\"off\"\n disabled={disabled}\n />\n )}\n {arr.length === 0 && !searchValue && !showSearch && (\n <span className={`${prefixCls}__placeholder`}>{placeholder}</span>\n )}\n </>\n );\n }\n\n // Single mode\n if (showSearch && combo.isOpen) {\n return (\n <input\n ref={searchInputRef}\n className={`${prefixCls}__search`}\n value={searchValue}\n onChange={handleSearchChange}\n placeholder={hasValue ? undefined : placeholder}\n autoComplete=\"off\"\n disabled={disabled}\n />\n );\n }\n\n if (hasValue) {\n return (\n <span className={`${prefixCls}__selection-text`}>\n {getLabelForValue(Array.isArray(selectVal) ? selectVal[0] : (selectVal as string))}\n </span>\n );\n }\n\n return <span className={`${prefixCls}__placeholder`}>{placeholder}</span>;\n };\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cls}\n role=\"combobox\"\n aria-expanded={combo.isOpen}\n aria-haspopup=\"listbox\"\n aria-owns={combo.isOpen ? listboxId : undefined}\n onKeyDown={handleKeyDown}\n tabIndex={disabled ? undefined : 0}>\n <Popup\n trigger=\"manual\"\n placement=\"bottom\"\n arrow={false}\n visible={combo.isOpen}\n content={renderOverlay()}>\n <div className={`${prefixCls}__selector`} onClick={handleSelectorClick}>\n <div className={`${prefixCls}__selection`}>{renderSelectorContent()}</div>\n <div className={`${prefixCls}__suffix`}>\n <span className={arrowCls}>\n <ArrowDown size={10} />\n </span>\n {allowClear && hasValue && !disabled && (\n <button type=\"button\" className={`${prefixCls}__clear`} onClick={handleClear} aria-label=\"Clear\">\n <CloseCircle size={14} color=\"currentColor\" />\n </button>\n )}\n </div>\n </div>\n </Popup>\n </div>\n );\n};\n\nSelect.displayName = 'Select';\n\nexport default Select;\n","import React, { useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport { Check } from '../_utils/components';\nimport { SelectContext } from './select-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SelectOptionsProps } from './types';\n\nconst SelectOption = (props: SelectOptionsProps): React.ReactElement => {\n const {\n disabled = false,\n prefixCls: customisedCls,\n value,\n label,\n className,\n children,\n ...otherProps\n } = props;\n const context = useContext(SelectContext);\n const isMultiple = context.mode === 'multiple' || context.mode === 'tags';\n const isSelected = isMultiple\n ? Array.isArray(context.value) && context.value.includes(value)\n : context.value === value;\n const [active, setActive] = useState(false);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('select-option', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_selected`]: isSelected,\n [`${prefixCls}_active`]: active,\n [`${prefixCls}_disabled`]: disabled,\n });\n\n const onClick = (): void => {\n !disabled && context.onSelect(value);\n };\n\n const displayContent = label ?? children;\n\n return (\n <li\n {...otherProps}\n key={value}\n role=\"option\"\n className={cls}\n onClick={onClick}\n onMouseEnter={() => setActive(true)}\n onMouseLeave={() => setActive(false)}\n aria-selected={isSelected}\n aria-disabled={disabled}>\n <span className={`${prefixCls}__content`}>{displayContent}</span>\n {isMultiple && isSelected && (\n <span className={`${prefixCls}__check`}>\n <Check size={14} />\n </span>\n )}\n </li>\n );\n};\n\nSelectOption.displayName = 'SelectOption';\n\nexport default SelectOption;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SelectOptGroupProps, SelectOptionsProps } from './types';\n\nconst SelectOptGroup = (props: SelectOptGroupProps): React.ReactElement => {\n const { prefixCls: customisedCls, label, className, children, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('select-group', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <li {...otherProps} key={label} className={cls}>\n <div className={`${prefixCls}__title`}>{label}</div>\n <ul className={`${prefixCls}__list`}>\n {React.Children.map(children, (child) => {\n const childElement = child as React.FunctionComponentElement<SelectOptionsProps>;\n if (childElement.type.displayName === 'SelectOption') {\n const childProps = {\n ...childElement.props,\n };\n return React.cloneElement(childElement, childProps);\n } else {\n console.warn(\n 'Select has a child that is not neither SelectOption nor SelectOptGroup component.'\n );\n return null;\n }\n })}\n </ul>\n </li>\n );\n};\n\nSelectOptGroup.displayName = 'SelectOptGroup';\n\nexport default SelectOptGroup;\n","import Select from './select';\nimport SelectOption from './option';\nimport SelectOptGroup from './opt-group';\n\ntype ISelect = typeof Select & {\n Option: typeof SelectOption;\n OptGroup: typeof SelectOptGroup;\n};\n\nconst DefaultSelect = Select as ISelect;\nDefaultSelect.Option = SelectOption;\nDefaultSelect.OptGroup = SelectOptGroup;\n\nexport default DefaultSelect;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SkeletonProps } from './types';\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n (props: SkeletonProps, ref): JSX.Element => {\n const {\n active = false,\n rounded = false,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_active`]: configContext.shimmer || active,\n [`${prefixCls}_rounded`]: rounded,\n });\n\n return (\n <div ref={ref} {...otherProps} className={cls} role=\"status\" aria-busy=\"true\">\n {children}\n </div>\n );\n }\n);\n\nSkeleton.displayName = 'Skeleton';\n\nexport default Skeleton;\n","import Skeleton from './skeleton';\n\nexport default Skeleton;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport Popup from '../popup';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TooltipProps } from './types';\n\nconst Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>((props, ref) => {\n const {\n trigger = 'hover',\n prefixCls: customisedCls,\n title,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tooltip', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n const renderContent = (): React.ReactElement => (\n <div role=\"tooltip\" className={`${prefixCls}__inner`}>\n {title}\n </div>\n );\n\n return (\n <Popup {...otherProps} className={cls} theme=\"dark\" trigger={trigger} content={renderContent()}>\n {children}\n </Popup>\n );\n});\n\nTooltip.displayName = 'Tooltip';\n\nexport default Tooltip;\n","import Tooltip from './tooltip';\n\nexport default Tooltip;\n","import React, { useContext, useRef, useState, ReactNode, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport Tooltip from '../tooltip';\nimport { SliderProps } from './types';\n\nconst Slider = React.forwardRef<HTMLDivElement, SliderProps>(\n (props: SliderProps, ref): JSX.Element => {\n const {\n defaultValue = 0,\n min = 0,\n max = 100,\n direction = 'horizontal',\n dots = false,\n step = 1,\n disabled = false,\n track = true,\n tooltipPlacement = 'top',\n tooltipVisible,\n tipFormatter,\n marks,\n onChange,\n onClick,\n onAfterChange,\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('slider', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${direction}`, {\n [`${prefixCls}-with-marks`]: marks,\n [`${prefixCls}_disabled`]: disabled,\n });\n const [sliderValues, setSliderValues] = useState<number[]>(\n ('value' in props\n ? Array.isArray(props.value)\n ? props.value\n : [props.value]\n : Array.isArray(defaultValue)\n ? defaultValue\n : [defaultValue]) as number[]\n );\n const [isHovering, setHovering] = useState(false);\n const railRef = useRef<HTMLDivElement | null>(null);\n const trackRef = useRef<HTMLDivElement | null>(null);\n const thumbIdx = useRef(0);\n const isDragging = useRef(false);\n const mouseStartPos = useRef(0);\n const trackStartPos = useRef(0);\n const currVal = useRef(0);\n const isVertical = direction === 'vertical';\n const railNode = railRef.current;\n const trackNode = trackRef.current;\n\n const getValueToPercent = (value: number): number => {\n return ((value - min) * 100) / (max - min);\n };\n\n const calculateTrackStyle = (): React.CSSProperties => {\n const trackStyle: React.CSSProperties = { left: '0%', right: '100%' };\n if (sliderValues.length === 1) {\n trackStyle.right = `${100 - getValueToPercent(sliderValues[0])}%`;\n } else {\n const leftValue = sliderValues[0] > sliderValues[1] ? sliderValues[1] : sliderValues[0];\n const rightValue = sliderValues[0] > sliderValues[1] ? sliderValues[0] : sliderValues[1];\n trackStyle.left = `${getValueToPercent(leftValue)}%`;\n trackStyle.right = `${100 - getValueToPercent(rightValue)}%`;\n }\n return trackStyle;\n };\n\n const getRangeValue = (val: number): number[] => {\n if (sliderValues.length === 1) {\n return [val];\n }\n\n const values = sliderValues;\n const val1 = values[0];\n const val2 = values[1];\n if ((val1 < val2 && val1 > val) || (val1 > val2 && val1 < val)) {\n values[0] = val as number;\n }\n if ((val1 < val2 && val2 < val) || (val1 > val2 && val2 > val)) {\n values[1] = val as number;\n }\n\n if (val1 > val && val2 < val) {\n const half = val2 + (val1 - val2) / 2;\n if (half >= val) {\n values[1] = val as number;\n }\n if (half < val) {\n values[0] = val as number;\n }\n }\n if (val2 > val && val1 < val) {\n const half = val1 + (val2 - val1) / 2;\n if (half >= val) {\n values[0] = val as number;\n }\n if (half < val) {\n values[1] = val as number;\n }\n }\n return values;\n };\n\n const handleOnChange = (value: number[]): void => {\n !('value' in props) && setSliderValues([...value]);\n onChange &&\n onChange(sliderValues.length === 1 ? sliderValues[0] : [sliderValues[0], sliderValues[1]]);\n };\n\n const getWidthToValue = (width: number): number => {\n const numOfSteps = (max - min) / step;\n let percent = 0;\n if (railNode) {\n percent = (width / railNode[isVertical ? 'clientHeight' : 'clientWidth']) * 100;\n }\n\n if (percent <= 0) {\n percent = 0;\n }\n if (percent >= 100) {\n percent = 100;\n }\n\n // add 0.5 for step movement\n const num = numOfSteps * (percent / 100) + 0.5;\n const val = Math.floor(num) * step + min;\n return isVertical ? 100 - val : val;\n };\n\n const sliderOnClick = (e: React.MouseEvent<HTMLDivElement>): void => {\n if (isDragging.current || disabled) {\n return;\n }\n if (railNode) {\n const markOffset = railNode.getBoundingClientRect();\n const value = getWidthToValue(\n e[isVertical ? 'clientY' : 'clientX'] - markOffset[isVertical ? 'y' : 'x']\n );\n handleOnChange(getRangeValue(value));\n }\n onClick && onClick(e);\n };\n\n const handleThumbOnDragging = (e: MouseEvent): void => {\n if (!isDragging.current) {\n return;\n }\n const sliderVal = getWidthToValue(\n e[isVertical ? 'clientY' : 'clientX'] - mouseStartPos.current + trackStartPos.current\n );\n const val = sliderValues;\n if (sliderVal !== currVal.current) {\n val[thumbIdx.current] = sliderVal;\n\n handleOnChange(val);\n currVal.current = sliderVal;\n }\n };\n\n const handleThumbOnDragEnd = (): void => {\n isDragging.current = false;\n window.removeEventListener('mousemove', handleThumbOnDragging);\n window.removeEventListener('mouseup', handleThumbOnDragEnd);\n onAfterChange &&\n onAfterChange(\n sliderValues.length === 1 ? sliderValues[0] : [sliderValues[0], sliderValues[1]]\n );\n };\n\n /**\n * Get track width info when click down the thumb button\n */\n const handleThumbOnMouseDown = (idx: number, e: React.MouseEvent<HTMLDivElement>): void => {\n if (disabled) {\n return;\n }\n\n thumbIdx.current = idx;\n isDragging.current = true;\n mouseStartPos.current = e[isVertical ? 'clientY' : 'clientX'];\n if (trackNode) {\n trackStartPos.current = isVertical ? trackNode.offsetTop : trackNode.clientWidth;\n\n // handle when it is a dual slider\n if (sliderValues.length > 1) {\n const trackOffset = trackNode[isVertical ? 'offsetTop' : 'offsetLeft'];\n trackStartPos.current =\n (idx === 1 && sliderValues[1] > sliderValues[0]) ||\n (idx !== 1 && sliderValues[0] > sliderValues[1])\n ? isVertical\n ? trackOffset\n : trackStartPos.current + trackOffset\n : isVertical\n ? trackNode.clientHeight + trackOffset\n : trackOffset;\n }\n }\n\n window.addEventListener('mousemove', handleThumbOnDragging, { capture: true });\n window.addEventListener('mouseup', handleThumbOnDragEnd, { capture: true });\n };\n\n /**\n * Get dot values\n */\n const getSteps = (): number[] => {\n const numOfSteps = (max - min) / step;\n const stepWidth = (100 * step) / (max - min);\n const res = [0];\n for (let i = 1; i < numOfSteps; i += 1) {\n res.push(i * stepWidth);\n }\n res.push(100);\n return res;\n };\n\n /**\n * Determine dot's border style\n * @param dotVal: dot value\n */\n const isDotActive = (dotVal: number): boolean => {\n if (sliderValues.length === 1) {\n return dotVal < sliderValues[0];\n } else {\n const [left, right] =\n sliderValues[0] < sliderValues[1]\n ? [sliderValues[0], sliderValues[1]]\n : [sliderValues[1], sliderValues[0]];\n return dotVal < right && dotVal > left;\n }\n };\n\n const handleThumbOnMouseEnter = (idx: number): void => {\n thumbIdx.current = idx;\n setHovering(true);\n };\n\n const handleThumbOnMouseLeave = (): void => {\n setHovering(false);\n };\n\n const renderMark = (mark: string): ReactNode => {\n if (marks && marks[mark] && (marks[mark] as any).label) {\n const { label, style } = marks[mark] as any;\n return <div style={style}>{label}</div>;\n } else if (marks && marks[mark]) {\n return marks[mark] as ReactNode;\n } else {\n return mark;\n }\n };\n\n useEffect(() => {\n 'value' in props && setSliderValues(sliderValues);\n }, [props, sliderValues]);\n\n const trackStyle = calculateTrackStyle();\n return (\n <div ref={ref} {...otherProps} className={cls} onClick={sliderOnClick}>\n <div ref={railRef} className={`${prefixCls}__rail`} />\n <div\n ref={trackRef}\n className={classNames(`${prefixCls}__track`, {\n [`${prefixCls}__track_invisible`]: !track,\n })}\n style={{\n [isVertical ? 'bottom' : 'left']: trackStyle.left,\n [isVertical ? 'top' : 'right']: trackStyle.right,\n }}\n />\n {sliderValues.map((value, idx) => {\n const percent = getValueToPercent(value);\n return (\n <div\n key={idx}\n tabIndex={0}\n role=\"slider\"\n aria-valuemax={max}\n aria-valuemin={min}\n aria-valuenow={value}\n aria-disabled={disabled}\n className={classNames(`${prefixCls}__thumb-container`, {\n [`${prefixCls}__thumb-container_hovering`]: idx === thumbIdx.current && isHovering,\n [`${prefixCls}__thumb-container_dragging`]:\n idx === thumbIdx.current && isDragging.current,\n })}\n style={{\n zIndex: idx === thumbIdx.current && (isDragging.current || isHovering) ? 2 : 1,\n transform: isVertical ? 'translate(-50%, 50%)' : 'translate(-50%, -50%)',\n [isVertical ? 'bottom' : 'left']: `${percent}%`,\n }}\n onMouseEnter={(): void => handleThumbOnMouseEnter(idx)}\n onMouseLeave={handleThumbOnMouseLeave}\n onMouseDown={(e): void => handleThumbOnMouseDown(idx, e)}>\n <Tooltip\n trigger=\"manual\"\n visible={\n 'tooltipVisible' in props\n ? tooltipVisible\n : idx === thumbIdx.current && (isDragging.current || isHovering)\n }\n usePortal={false}\n placement={tooltipPlacement}\n title={tipFormatter ? tipFormatter(value) : value}>\n <div className={`${prefixCls}__thumb`} />\n </Tooltip>\n </div>\n );\n })}\n {dots && (\n <div className={`${prefixCls}__dots`}>\n {getSteps().map((val, idx) => {\n const stepVal = idx * step + min;\n return (\n <div\n key={idx}\n style={{\n [isVertical ? 'bottom' : 'left']: `${val}%`,\n }}\n className={classNames(`${prefixCls}__dot`, {\n [`${prefixCls}__dot_active`]: isDotActive(stepVal),\n })}\n />\n );\n })}\n </div>\n )}\n {marks && (\n <div className={`${prefixCls}__marks`}>\n {Object.keys(marks).map((mark: string, idx) => {\n const percent = getValueToPercent(parseFloat(mark));\n return (\n <div\n key={idx}\n style={{\n [isVertical ? 'bottom' : 'left']: `${percent}%`,\n }}\n className={`${prefixCls}__mark`}>\n {renderMark(mark)}\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n }\n);\n\nSlider.displayName = 'Slider';\n\nexport default Slider;\n","import Slider from './slider';\n\nexport default Slider;\n","import React, { useContext, MouseEventHandler } from 'react';\nimport classNames from 'classnames';\nimport { BaseProps, DirectionType } from '../_utils/props';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\n\nexport interface ResizerProps\n extends BaseProps,\n React.PropsWithoutRef<JSX.IntrinsicElements['div']> {\n size: number;\n mode: DirectionType;\n onResizerMouseDown: MouseEventHandler<HTMLDivElement>;\n}\n\nconst Resizer = (props: ResizerProps): JSX.Element => {\n const {\n size,\n onResizerMouseDown,\n prefixCls: customisedCls,\n mode,\n className,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('split-bar', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${mode}`]: mode,\n });\n\n const style: React.CSSProperties = mode === 'vertical' ? { width: size } : { height: size };\n\n const onMouseDown = (e: React.MouseEvent<HTMLDivElement>) => {\n props.onMouseDown && props.onMouseDown(e);\n onResizerMouseDown(e);\n };\n\n return (\n <div\n {...otherProps}\n role=\"separator\"\n tabIndex={0}\n aria-orientation={mode === 'vertical' ? 'vertical' : 'horizontal'}\n className={cls}\n style={style}\n onMouseDown={(e): void => onMouseDown(e)}\n onKeyDown={(e) => {\n const step = 10;\n if (mode === 'vertical' && (e.key === 'ArrowLeft' || e.key === 'ArrowRight')) {\n e.preventDefault();\n const delta = e.key === 'ArrowRight' ? step : -step;\n const synthetic = { clientX: (e.target as HTMLElement).getBoundingClientRect().left + delta, clientY: 0 } as MouseEvent;\n onResizerMouseDown(e as unknown as React.MouseEvent<HTMLDivElement>);\n window.dispatchEvent(new MouseEvent('mousemove', { clientX: synthetic.clientX }));\n window.dispatchEvent(new MouseEvent('mouseup'));\n }\n if (mode === 'horizontal' && (e.key === 'ArrowUp' || e.key === 'ArrowDown')) {\n e.preventDefault();\n const delta = e.key === 'ArrowDown' ? step : -step;\n const synthetic = { clientY: (e.target as HTMLElement).getBoundingClientRect().top + delta, clientX: 0 } as MouseEvent;\n onResizerMouseDown(e as unknown as React.MouseEvent<HTMLDivElement>);\n window.dispatchEvent(new MouseEvent('mousemove', { clientY: synthetic.clientY }));\n window.dispatchEvent(new MouseEvent('mouseup'));\n }\n }}>\n <div className={`${prefixCls}__icon`} />\n </div>\n );\n};\n\nResizer.displayName = 'Resizer';\n\nexport default Resizer;\n","import React from 'react';\nimport { DirectionType } from '../_utils/props';\n\ntype Props = {\n mode: DirectionType;\n};\n\nexport const SplitContext = React.createContext<Props>({ mode: 'vertical' });\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { BaseProps } from '../_utils/props';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SplitContext } from './split-context';\n\nexport interface SplitPaneProps\n extends BaseProps,\n React.PropsWithRef<JSX.IntrinsicElements['div']> {\n size?: number;\n}\n\nconst SplitPane = React.forwardRef<HTMLDivElement, SplitPaneProps>(\n (props: SplitPaneProps, ref): JSX.Element => {\n const { size, className, style, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('split-pane', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const { mode } = useContext(SplitContext);\n\n const paneStyle: React.CSSProperties = {\n ...style,\n };\n if (mode === 'vertical') {\n paneStyle.width = size;\n } else {\n paneStyle.height = size;\n }\n\n return (\n <div ref={ref} {...otherProps} className={cls} style={paneStyle}>\n {children}\n </div>\n );\n }\n);\n\nSplitPane.displayName = 'SplitPane';\n\nexport default SplitPane;\n","import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport Resizer from './resizer';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport Pane from './split-pane';\nimport warning from '../_utils/warning';\nimport { SplitContext } from './split-context';\nimport { SplitProps } from './types';\n\nconst Split = (props: SplitProps): JSX.Element => {\n const {\n mode = 'vertical',\n disabled = false,\n min = 50,\n max = 50,\n resizerSize = 6,\n defaultSize,\n step,\n onChange,\n onDragStarted,\n onDragFinished,\n prefixCls: customisedCls,\n style: defaultStyle,\n resizerProps,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('split', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${mode}`]: mode,\n [`${prefixCls}_disabled`]: disabled,\n });\n const [pane1Size, setPane1Size] = useState<number | undefined>(undefined);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const paneRef = useRef<HTMLDivElement | null>(null);\n const isActiveMove = useRef(false);\n const lastPosition = useRef(0);\n const wrapper = wrapperRef.current;\n\n const getSizeNumber = useCallback(\n (size: number | string): number => {\n if (typeof size === 'string') {\n if (wrapper) {\n const { width, height } = wrapper.getBoundingClientRect();\n return ((mode === 'vertical' ? width : height) * parseFloat(size)) / 100;\n }\n } else {\n return size;\n }\n return 0;\n },\n [mode, wrapper]\n );\n const minSize = getSizeNumber(min);\n let maxSize = getSizeNumber(max);\n if (wrapper) {\n const { width, height } = wrapper.getBoundingClientRect();\n maxSize = (mode === 'vertical' ? width : height) - maxSize - resizerSize;\n }\n\n const onResizerMouseDown = (e: React.MouseEvent<HTMLElement>): void => {\n isActiveMove.current = true;\n lastPosition.current = e[mode === 'vertical' ? 'clientX' : 'clientY'];\n onDragStarted && onDragStarted();\n };\n\n const onMouseMove = useCallback(\n (e: MouseEvent): void => {\n if (!disabled && isActiveMove.current) {\n const pane = paneRef.current;\n if (pane) {\n if (pane.getBoundingClientRect) {\n const width = pane.getBoundingClientRect().width;\n const height = pane.getBoundingClientRect().height;\n const current = e[mode === 'vertical' ? 'clientX' : 'clientY'];\n const size = mode === 'vertical' ? width : height;\n let offset = lastPosition.current - current;\n if (step) {\n if (Math.abs(offset) < step) {\n return;\n }\n offset = Math.round((offset / step) * step);\n }\n\n let newSize = size - offset;\n const newPosition = lastPosition.current - offset;\n\n if (newSize < minSize) {\n newSize = minSize;\n } else if (newSize > maxSize) {\n newSize = maxSize;\n } else {\n lastPosition.current = newPosition;\n }\n\n !('size' in props) && setPane1Size(newSize);\n onChange && onChange(newSize);\n }\n }\n }\n },\n [props, disabled, maxSize, minSize, mode, onChange, step]\n );\n\n const onMouseUp = useCallback((): void => {\n isActiveMove.current = false;\n onDragFinished && onDragFinished();\n }, [onDragFinished]);\n\n let style: React.CSSProperties;\n if (mode === 'vertical') {\n style = {\n ...defaultStyle,\n };\n } else {\n style = {\n ...defaultStyle,\n minHeight: '100%',\n width: '100%',\n };\n }\n\n useEffect(() => {\n window.addEventListener('mousemove', onMouseMove);\n window.addEventListener('mouseup', onMouseUp);\n\n return (): void => {\n window.removeEventListener('mousemove', onMouseMove);\n window.removeEventListener('mouseup', onMouseUp);\n };\n }, [onMouseMove, onMouseUp]);\n\n useEffect(() => {\n const initialSize = getSizeNumber(props.size || defaultSize || minSize);\n setPane1Size(initialSize);\n }, [getSizeNumber, props.size, defaultSize, minSize]);\n\n useEffect(() => {\n if ('size' in props) {\n const size = getSizeNumber(props.size as number | string);\n setPane1Size(size);\n }\n }, [props, getSizeNumber]);\n\n warning(React.Children.count(children) > 2, 'There are more than 2 children inside Split.');\n const childrenList = React.Children.toArray(children).filter((child) => child);\n\n return (\n <SplitContext.Provider value={{ mode }}>\n <div ref={wrapperRef} {...otherProps} className={cls} style={style}>\n <Pane ref={paneRef} size={pane1Size} style={{ flex: '0 0 auto' }}>\n {childrenList[0]}\n </Pane>\n <Resizer\n {...resizerProps}\n size={resizerSize}\n mode={mode}\n onResizerMouseDown={onResizerMouseDown}\n />\n <Pane style={{ flex: '1 1 0%' }}>{childrenList[1]}</Pane>\n </div>\n </SplitContext.Provider>\n );\n};\n\nSplit.displayName = 'Split';\n\nexport default Split;\n","import Split from './split';\n\nexport default Split;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ArrowDown } from '../_utils/components';\nimport { SplitButtonProps } from './types';\nimport ButtonGroup from '../button/button-group';\nimport Button from '../button/button';\nimport Dropdown from '../dropdown';\n\nconst SplitButton = (props: SplitButtonProps): React.ReactElement => {\n const {\n size = 'md',\n btnType = 'default',\n disabled = false,\n loading = false,\n dropdownPlacement = 'bottom-end',\n dropdownTrigger = 'hover',\n onClick,\n overlay,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('split-button', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <ButtonGroup {...otherProps} className={cls} btnType={btnType} disabled={disabled} size={size}>\n <Button onClick={onClick} loading={loading}>\n {children}\n </Button>\n <Dropdown overlay={overlay} trigger={dropdownTrigger} placement={dropdownPlacement}>\n <Button\n className={`${prefixCls}__dropdown-btn`}\n btnType={btnType}\n disabled={disabled}\n size={size}>\n <ArrowDown size={10} />\n </Button>\n </Dropdown>\n </ButtonGroup>\n );\n};\n\nSplitButton.displayName = 'SplitButton';\n\nexport default SplitButton;\n","import SplitButton from './split-button';\n\nexport default SplitButton;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SizeType } from '../_utils/props';\nimport { SpaceProps } from './types';\n\nconst spaceSize = {\n sm: 8,\n md: 16,\n lg: 24,\n};\n\nconst Space = React.forwardRef<HTMLDivElement, SpaceProps>(\n (props: SpaceProps, ref): JSX.Element => {\n const {\n direction = 'horizontal',\n align = 'center',\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('space', configContext.prefixCls, customisedCls);\n const size = props.size || configContext.space || 'sm';\n const cls = classNames(\n prefixCls,\n className,\n `${prefixCls}_${direction}`,\n `${prefixCls}_${align}`\n );\n\n const getItemStyle = (idx: number): React.CSSProperties => {\n if (React.Children.count(children) - 1 !== idx) {\n return {\n [direction === 'vertical' ? 'marginBottom' : 'marginRight']:\n typeof props.size === 'number' ? size : spaceSize[size as SizeType],\n };\n }\n return {};\n };\n\n return (\n <div {...otherProps} ref={ref} className={cls}>\n {React.Children.map(children, (child, idx) => (\n <div key={idx} className={`${prefixCls}__item`} style={getItemStyle(idx)}>\n {child}\n </div>\n ))}\n </div>\n );\n }\n);\n\nSpace.displayName = 'Space';\n\nexport default Space;\n","import Space from './space';\n\nexport default Space;\n","import { createContext } from 'react';\nimport { SpeedDialDirection } from './types';\n\nexport interface SpeedDialContextProps {\n direction: SpeedDialDirection;\n}\n\nexport const SpeedDialContext = createContext<SpeedDialContextProps>({\n direction: 'up',\n});\n","import React, { useCallback, useContext, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useClickOutside } from '../_utils/hooks';\nimport { SpeedDialProps } from './types';\nimport { SpeedDialContext } from './speed-dial-context';\n\nconst SpeedDial = React.forwardRef<HTMLDivElement, SpeedDialProps>(\n (props, ref): JSX.Element => {\n const {\n icon,\n openIcon,\n direction = 'up',\n open,\n trigger = 'hover',\n onOpen,\n onClose,\n disabled = false,\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('speed-dial', configContext.prefixCls, customisedCls);\n\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? open : internalOpen;\n\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n const handleOpen = useCallback(() => {\n if (disabled) return;\n if (!isControlled) setInternalOpen(true);\n onOpen?.();\n }, [disabled, isControlled, onOpen]);\n\n const handleClose = useCallback(() => {\n if (!isControlled) setInternalOpen(false);\n onClose?.();\n }, [isControlled, onClose]);\n\n const handleToggle = useCallback(() => {\n if (isOpen) {\n handleClose();\n } else {\n handleOpen();\n }\n }, [isOpen, handleOpen, handleClose]);\n\n useClickOutside(containerRef.current as HTMLDivElement, () => {\n if (trigger === 'click' && isOpen) {\n handleClose();\n }\n });\n\n const cls = classNames(prefixCls, className, `${prefixCls}_${direction}`);\n\n const buttonCls = classNames(`${prefixCls}__button`, {\n [`${prefixCls}__button_open`]: isOpen,\n [`${prefixCls}__button_disabled`]: disabled,\n });\n\n const actionsCls = classNames(`${prefixCls}__actions`, {\n [`${prefixCls}__actions_open`]: isOpen,\n });\n\n const hoverProps =\n trigger === 'hover' && !disabled\n ? { onMouseEnter: handleOpen, onMouseLeave: handleClose }\n : {};\n\n const handleButtonClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) return;\n if (trigger === 'click') {\n handleToggle();\n }\n // Stop propagation so useClickOutside doesn't immediately close\n e.stopPropagation();\n };\n\n const renderIcon = () => {\n if (isOpen && openIcon) return openIcon;\n if (icon) return icon;\n return <span className={`${prefixCls}__icon-default`} />;\n };\n\n return (\n <div\n {...otherProps}\n ref={(node) => {\n containerRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }}\n className={cls}\n style={style}\n {...hoverProps}\n >\n <button\n className={buttonCls}\n type=\"button\"\n onClick={handleButtonClick}\n disabled={disabled}\n aria-expanded={isOpen}\n aria-label=\"SpeedDial\"\n >\n {renderIcon()}\n </button>\n <SpeedDialContext.Provider value={{ direction }}>\n <div className={actionsCls} role=\"menu\">\n {children}\n </div>\n </SpeedDialContext.Provider>\n </div>\n );\n }\n);\n\nSpeedDial.displayName = 'SpeedDial';\n\nexport default SpeedDial;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SpeedDialActionProps } from './types';\nimport { SpeedDialContext } from './speed-dial-context';\n\nconst getDefaultTooltipPlacement = (direction: string): 'left' | 'right' | 'top' | 'bottom' => {\n if (direction === 'left' || direction === 'right') return 'top';\n return 'left';\n};\n\nconst SpeedDialAction = React.forwardRef<HTMLButtonElement, SpeedDialActionProps>(\n (props, ref): JSX.Element => {\n const {\n icon,\n tooltip,\n tooltipPlacement,\n disabled = false,\n className,\n style,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const { direction } = useContext(SpeedDialContext);\n const prefixCls = getPrefixCls('speed-dial', configContext.prefixCls, customisedCls);\n const placement = tooltipPlacement || getDefaultTooltipPlacement(direction);\n\n const cls = classNames(`${prefixCls}__action`, className, {\n [`${prefixCls}__action_disabled`]: disabled,\n });\n\n const tooltipCls = classNames(\n `${prefixCls}__action-tooltip`,\n `${prefixCls}__action-tooltip_${placement}`\n );\n\n return (\n <div className={`${prefixCls}__action-wrapper`}>\n <button\n {...otherProps}\n ref={ref}\n className={cls}\n style={style}\n disabled={disabled}\n type=\"button\"\n >\n {icon}\n </button>\n {tooltip && <span className={tooltipCls}>{tooltip}</span>}\n </div>\n );\n }\n);\n\nSpeedDialAction.displayName = 'SpeedDialAction';\n\nexport default SpeedDialAction;\n","import SpeedDial from './speed-dial';\nimport SpeedDialAction from './speed-dial-action';\n\ntype ISpeedDial = typeof SpeedDial & {\n Action: typeof SpeedDialAction;\n};\n\nconst DefaultSpeedDial = SpeedDial as ISpeedDial;\nDefaultSpeedDial.Action = SpeedDialAction;\n\nexport default DefaultSpeedDial;\n","import React from 'react';\nimport { StepsStatus } from './types';\nimport { DirectionType } from '../_utils/props';\n\ntype Props = {\n current: number;\n labelPlacement: DirectionType;\n status: StepsStatus;\n clickable: boolean;\n onClick?: (current: number) => void;\n};\n\nexport const StepsContext = React.createContext<Props>({\n current: 0,\n labelPlacement: 'vertical',\n status: 'process',\n clickable: false,\n});\n","import React, { useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { StepsContext } from './steps-context';\nimport { StepsItemProps, StepsProps } from './types';\n\nconst Steps = React.forwardRef<HTMLDivElement, StepsProps>(\n (props: StepsProps, ref): React.ReactElement => {\n const {\n defaultCurrent = 0,\n status = 'process',\n direction = 'horizontal',\n labelPlacement = 'vertical',\n onChange,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('steps', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${direction}`);\n const [current, setCurrent] = useState<number>(\n 'current' in props ? (props.current as number) : defaultCurrent\n );\n\n const itemOnClick = (curr: number) => {\n !('current' in props) && setCurrent(curr);\n onChange && onChange(curr);\n };\n\n useEffect(() => {\n 'current' in props && setCurrent(props.current as number);\n }, [props]);\n\n return (\n <StepsContext.Provider\n value={{\n current,\n labelPlacement,\n status,\n clickable: 'onChange' in props,\n onClick: itemOnClick,\n }}>\n <div {...otherProps} ref={ref} className={cls}>\n {React.Children.map(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<StepsItemProps>;\n if (childElement.type.displayName === 'StepsItem') {\n const childProps: Partial<StepsItemProps> = {\n stepIndex: idx,\n };\n return React.cloneElement(childElement, childProps);\n } else {\n console.warn('Steps has a child that is not a Step component.');\n return null;\n }\n })}\n </div>\n </StepsContext.Provider>\n );\n }\n);\n\nSteps.displayName = 'Steps';\n\nexport default Steps;\n","import React, { useContext, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { StepsContext } from './steps-context';\nimport { Check, Close } from '../_utils/components';\nimport { StepsItemProps } from './types';\n\nconst StepsItem = React.forwardRef<HTMLDivElement, StepsItemProps>(\n (props: StepsItemProps, ref): React.ReactElement => {\n const {\n stepIndex = 0,\n disabled = false,\n status,\n title,\n description,\n icon,\n onClick,\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('steps-item', configContext.prefixCls, customisedCls);\n const stepsContext = useContext(StepsContext);\n const getStatus = () => {\n const { current } = stepsContext;\n if (status === 'error') {\n return 'error';\n } else if (current > stepIndex) {\n return 'finish';\n } else if (current === stepIndex) {\n return stepsContext.status;\n } else {\n return 'wait';\n }\n };\n const stepStatus = 'status' in props ? props.status : getStatus();\n const cls = classNames(\n prefixCls,\n className,\n `${prefixCls}_${stepStatus}`,\n `${prefixCls}_label-${stepsContext.labelPlacement}`,\n {\n [`${prefixCls}_disabled`]: disabled,\n }\n );\n\n const stepItemOnClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!disabled && stepsContext.clickable) {\n onClick && onClick(e);\n stepsContext.onClick && stepsContext.onClick(stepIndex);\n }\n };\n\n const renderIcon = (): React.ReactNode => {\n if (icon) {\n return icon;\n }\n\n let iconNode: ReactNode = stepIndex + 1;\n if (stepStatus === 'finish') {\n iconNode = <Check />;\n } else if (stepStatus === 'error') {\n iconNode = <Close />;\n }\n\n return iconNode;\n };\n\n return (\n <div\n {...otherProps}\n role={stepsContext.clickable ? 'button' : undefined}\n tabIndex={stepsContext.clickable && !disabled ? 0 : undefined}\n ref={ref}\n className={cls}\n onClick={stepItemOnClick}\n onKeyDown={(e: React.KeyboardEvent) => {\n if ((e.key === 'Enter' || e.key === ' ') && stepsContext.clickable) {\n e.preventDefault();\n stepItemOnClick(e as unknown as React.MouseEvent<HTMLDivElement>);\n }\n }}>\n <div className={`${prefixCls}__head`}>\n <div\n className={classNames(`${prefixCls}__icon`, { [`${prefixCls}__icon_has-icon`]: icon })}>\n {renderIcon()}\n </div>\n <div className={`${prefixCls}__tail`} />\n </div>\n <div className={`${prefixCls}__content`}>\n <div className={`${prefixCls}__title`}>{title}</div>\n <div className={`${prefixCls}__desc`}>{description}</div>\n </div>\n </div>\n );\n }\n);\n\nStepsItem.displayName = 'StepsItem';\n\nexport default StepsItem;\n","import Steps from './steps';\nimport StepsItem from './steps-item';\n\ntype ISteps = typeof Steps & {\n Step: typeof StepsItem;\n};\n\nconst DefaultSteps = Steps as ISteps;\nDefaultSteps.Step = StepsItem;\n\nexport default DefaultSteps;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { StatisticProps } from './types';\n\nconst formatValue = (\n value: number | string | undefined,\n precision?: number,\n groupSeparator?: string\n): string => {\n if (value === undefined) return '';\n if (typeof value === 'string') return value;\n\n let val = precision !== undefined ? value.toFixed(precision) : String(value);\n\n if (groupSeparator) {\n const parts = val.split('.');\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator);\n val = parts.join('.');\n }\n\n return val;\n};\n\nconst Statistic = React.forwardRef<HTMLDivElement, StatisticProps>((props, ref) => {\n const {\n title,\n value,\n precision,\n prefix,\n suffix,\n groupSeparator = ',',\n valueStyle,\n formatter,\n prefixCls: customisedCls,\n className,\n style,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('statistic', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n const renderValue = () => {\n if (formatter) {\n return formatter(value ?? '');\n }\n return formatValue(value, precision, groupSeparator);\n };\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n {title && <div className={`${prefixCls}__title`}>{title}</div>}\n <div className={`${prefixCls}__content`} style={valueStyle}>\n {prefix && <span className={`${prefixCls}__prefix`}>{prefix}</span>}\n <span className={`${prefixCls}__value`}>{renderValue()}</span>\n {suffix && <span className={`${prefixCls}__suffix`}>{suffix}</span>}\n </div>\n </div>\n );\n});\n\nStatistic.displayName = 'Statistic';\nexport default Statistic;\n","import Statistic from './statistic';\n\nexport default Statistic;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { StrengthIndicatorProps } from './types';\n\nconst StrengthIndicator = React.forwardRef<HTMLDivElement, StrengthIndicatorProps>(\n (props: StrengthIndicatorProps, ref): React.ReactElement => {\n const {\n current = 0,\n blocks = 3,\n colors = ['#f44336', '#ff9800', '#52c41a'],\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('strength-indicator', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const displayLabels: React.ReactNode[] = Array.isArray(props.labels)\n ? props.labels\n : ['Weak', 'Medium', 'Strong'];\n\n return (\n <div {...otherProps} className={cls} ref={ref} role=\"progressbar\" aria-valuenow={current} aria-valuemin={0} aria-valuemax={blocks}>\n {Array.from(new Array(blocks)).map((item, idx) => {\n const itemCls = classNames(`${prefixCls}__item`, {\n [`${prefixCls}__item_active`]: idx < current,\n });\n const bgColor = idx < current ? colors[current - 1] : undefined;\n return (\n <div key={idx} className={itemCls}>\n <div className={`${prefixCls}__inner`} style={{ backgroundColor: bgColor }} />\n {'labels' in props && (\n <div className={`${prefixCls}__label`}>{displayLabels[idx]}</div>\n )}\n </div>\n );\n })}\n </div>\n );\n }\n);\n\nStrengthIndicator.displayName = 'StrengthIndicator';\n\nexport default StrengthIndicator;\n","import StrengthIndicator from './strength-indicator';\n\nexport default StrengthIndicator;\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SwitchProps } from './types';\n\nconst Switch = React.forwardRef<HTMLLabelElement, SwitchProps>(\n (props: SwitchProps, ref): JSX.Element => {\n const {\n size = 'md',\n defaultChecked = true,\n disabled,\n loading,\n onChange,\n checkedText,\n uncheckedText,\n className,\n onClick,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const [checked, setChecked] = useState<boolean>(\n 'checked' in props ? (props.checked as boolean) : defaultChecked\n );\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('switch', configContext.prefixCls, customisedCls);\n const switchSize = props.size || configContext.componentSize || size;\n const cls = classNames(prefixCls, className, `${prefixCls}_${switchSize}`, {\n [`${prefixCls}_checked`]: checked,\n [`${prefixCls}_loading`]: loading,\n [`${prefixCls}_disabled`]: loading || disabled,\n });\n\n const labelOnClick = (e: React.MouseEvent<HTMLLabelElement>): void => {\n const val = !checked;\n onClick && onClick(val, e);\n if (!(disabled || loading)) {\n onChange && onChange(val, e);\n !('checked' in props) && setChecked(val);\n }\n };\n\n useEffect(() => {\n 'checked' in props && typeof props.checked !== 'undefined' && setChecked(props.checked);\n }, [props]);\n\n return (\n <label\n {...otherProps}\n ref={ref}\n className={cls}\n role=\"switch\"\n aria-checked={checked}\n tabIndex={disabled || loading ? -1 : 0}\n onClick={labelOnClick}\n onKeyDown={(e: React.KeyboardEvent<HTMLLabelElement>) => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n labelOnClick(e as unknown as React.MouseEvent<HTMLLabelElement>);\n }\n }}>\n <span className={`${prefixCls}__bg`}>\n <span className={`${prefixCls}__thumb`} />\n <span className={`${prefixCls}__label`}>{checked ? checkedText : uncheckedText}</span>\n </span>\n </label>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport default Switch;\n","import Switch from './switch';\n\nexport default Switch;\n","import React, { useState, useEffect, useContext, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useVirtualScroll } from '../_utils/use-virtual-scroll';\nimport Pagination from '../pagination';\nimport { TableProps, ColumnType, SortOrder } from './types';\n\nconst ROW_HEIGHT_MAP = { sm: 40, md: 48, lg: 56 } as const;\n\nconst getRowKey = <T,>(record: T, rowKey: string | ((record: T) => React.Key), index: number): React.Key => {\n if (typeof rowKey === 'function') return rowKey(record);\n const key = (record as any)[rowKey];\n return key !== undefined ? key : index;\n};\n\nconst getValue = <T,>(record: T, dataIndex: string): any => {\n return (record as any)[dataIndex];\n};\n\nconst Table = React.forwardRef<HTMLDivElement, TableProps>((props, ref) => {\n const {\n columns,\n dataSource = [],\n rowKey = 'key',\n loading = false,\n bordered = false,\n size,\n scroll,\n virtual = false,\n height,\n itemHeight: itemHeightProp,\n rowSelection,\n pagination,\n onChange,\n emptyText = 'No Data',\n showHeader = true,\n rowClassName,\n onRow,\n prefixCls: customisedCls,\n className,\n style,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('table', configContext.prefixCls, customisedCls);\n const tableSize = size || configContext.componentSize || 'md';\n\n if (virtual && height == null) {\n console.warn('[tiny-ui: Table] `height` is required when `virtual` is enabled.');\n }\n\n const isVirtual = virtual && height != null;\n\n // Sorting\n const [sortField, setSortField] = useState<string | undefined>();\n const [sortOrder, setSortOrder] = useState<SortOrder>(null);\n\n // Pagination\n const [currentPage, setCurrentPage] = useState(1);\n const pageSize = pagination && pagination.pageSize ? pagination.pageSize : 10;\n\n // Selection\n const [selectedKeys, setSelectedKeys] = useState<React.Key[]>(\n rowSelection?.selectedRowKeys ?? []\n );\n\n useEffect(() => {\n if (rowSelection?.selectedRowKeys) {\n setSelectedKeys(rowSelection.selectedRowKeys);\n }\n }, [rowSelection?.selectedRowKeys]);\n\n // Initialize default sort\n useEffect(() => {\n for (const col of columns) {\n if (col.defaultSortOrder) {\n setSortField(col.dataIndex);\n setSortOrder(col.defaultSortOrder);\n break;\n }\n }\n }, []);\n\n const sortedData = useMemo(() => {\n if (!sortField || !sortOrder) return [...dataSource];\n const col = columns.find((c) => c.dataIndex === sortField);\n if (!col?.sorter) return [...dataSource];\n const sorted = [...dataSource];\n const sorterFn =\n typeof col.sorter === 'function'\n ? col.sorter\n : (a: any, b: any) => {\n const va = getValue(a, sortField);\n const vb = getValue(b, sortField);\n if (va < vb) return -1;\n if (va > vb) return 1;\n return 0;\n };\n sorted.sort((a, b) => {\n const result = sorterFn(a, b);\n return sortOrder === 'descend' ? -result : result;\n });\n return sorted;\n }, [dataSource, sortField, sortOrder, columns]);\n\n const rowHeight = itemHeightProp ?? ROW_HEIGHT_MAP[tableSize] ?? ROW_HEIGHT_MAP.md;\n const { visibleRange, totalHeight, offsetY, onScroll } = useVirtualScroll({\n itemCount: sortedData.length,\n itemHeight: rowHeight,\n containerHeight: height ?? 0,\n });\n\n const paginatedData = useMemo(() => {\n if (isVirtual) return sortedData;\n if (pagination === false) return sortedData;\n const page = pagination?.current ?? currentPage;\n const start = (page - 1) * pageSize;\n return sortedData.slice(start, start + pageSize);\n }, [sortedData, pagination, currentPage, pageSize, isVirtual]);\n\n const paginationConfig = pagination && typeof pagination === 'object' ? pagination : undefined;\n const totalItems = paginationConfig?.total ?? dataSource.length;\n const activePage = paginationConfig?.current ?? currentPage;\n\n const handleSort = (col: ColumnType) => {\n if (!col.sorter) return;\n let newOrder: SortOrder;\n if (sortField !== col.dataIndex) {\n newOrder = 'ascend';\n } else if (sortOrder === 'ascend') {\n newOrder = 'descend';\n } else if (sortOrder === 'descend') {\n newOrder = null;\n } else {\n newOrder = 'ascend';\n }\n setSortField(newOrder ? col.dataIndex : undefined);\n setSortOrder(newOrder);\n onChange?.({ current: activePage, pageSize }, { field: col.dataIndex, order: newOrder });\n };\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n pagination && pagination.onChange?.(page, pageSize);\n onChange?.({ current: page, pageSize }, { field: sortField, order: sortOrder });\n };\n\n const handleSelectAll = () => {\n if (!rowSelection) return;\n const allKeys = paginatedData.map((record, i) => getRowKey(record, rowKey, i));\n const allSelected = allKeys.every((k) => selectedKeys.includes(k));\n const newKeys = allSelected ? [] : allKeys;\n if (!rowSelection.selectedRowKeys) {\n setSelectedKeys(newKeys);\n }\n const newRows = allSelected ? [] : paginatedData;\n rowSelection.onChange?.(newKeys, newRows);\n };\n\n const handleSelectRow = (record: any, key: React.Key) => {\n if (!rowSelection) return;\n const isRadio = rowSelection.type === 'radio';\n let newKeys: React.Key[];\n if (isRadio) {\n newKeys = [key];\n } else {\n newKeys = selectedKeys.includes(key)\n ? selectedKeys.filter((k) => k !== key)\n : [...selectedKeys, key];\n }\n if (!rowSelection.selectedRowKeys) {\n setSelectedKeys(newKeys);\n }\n const newRows = dataSource.filter((r, i) => newKeys.includes(getRowKey(r, rowKey, i)));\n rowSelection.onChange?.(newKeys, newRows);\n };\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_bordered`]: bordered,\n [`${prefixCls}_${tableSize}`]: tableSize,\n [`${prefixCls}_loading`]: loading,\n });\n\n const tableStyle: React.CSSProperties = {};\n if (scroll?.x) tableStyle.minWidth = scroll.x;\n\n const wrapperStyle: React.CSSProperties = {};\n if (isVirtual) {\n wrapperStyle.height = height;\n wrapperStyle.overflowY = 'auto';\n } else if (scroll?.y) {\n wrapperStyle.maxHeight = scroll.y;\n wrapperStyle.overflowY = 'auto';\n }\n\n const allPageKeys = paginatedData.map((r, i) => getRowKey(r, rowKey, i));\n const allSelected = allPageKeys.length > 0 && allPageKeys.every((k) => selectedKeys.includes(k));\n const someSelected = allPageKeys.some((k) => selectedKeys.includes(k));\n\n const colCount = columns.length + (rowSelection ? 1 : 0);\n\n const renderRow = (record: any, rowIndex: number) => {\n const key = getRowKey(record, rowKey, rowIndex);\n const isSelected = selectedKeys.includes(key);\n const rowCls = classNames(`${prefixCls}__row`, {\n [`${prefixCls}__row_selected`]: isSelected,\n }, typeof rowClassName === 'function' ? rowClassName(record, rowIndex) : rowClassName);\n const rowProps = onRow?.(record, rowIndex) ?? {};\n return (\n <tr key={key} className={rowCls} {...rowProps}>\n {rowSelection && (\n <td className={`${prefixCls}__cell ${prefixCls}__selection-col`}>\n <input\n type={rowSelection.type === 'radio' ? 'radio' : 'checkbox'}\n checked={isSelected}\n onChange={() => handleSelectRow(record, key)}\n aria-label={`Select row ${rowIndex + 1}`}\n />\n </td>\n )}\n {columns.map((col, colIndex) => {\n const colKey = col.key ?? col.dataIndex ?? colIndex;\n const value = getValue(record, col.dataIndex);\n const tdCls = classNames(`${prefixCls}__cell`, col.className, {\n [`${prefixCls}__cell_ellipsis`]: col.ellipsis,\n [`${prefixCls}__cell_align-${col.align}`]: col.align,\n });\n return (\n <td key={colKey} className={tdCls} style={{ width: col.width }}>\n {col.render ? col.render(value, record, rowIndex) : value}\n </td>\n );\n })}\n </tr>\n );\n };\n\n const renderTbody = () => {\n if (loading) {\n return (\n <tr>\n <td\n className={`${prefixCls}__cell ${prefixCls}__loading-cell`}\n colSpan={colCount}\n >\n Loading...\n </td>\n </tr>\n );\n }\n\n if (isVirtual) {\n if (sortedData.length === 0) {\n return (\n <tr>\n <td className={`${prefixCls}__cell ${prefixCls}__empty-cell`} colSpan={colCount}>\n {emptyText}\n </td>\n </tr>\n );\n }\n const [start, end] = visibleRange;\n const topHeight = offsetY;\n const bottomHeight = totalHeight - offsetY - (end - start + 1) * rowHeight;\n return (\n <>\n {topHeight > 0 && (\n <tr className={`${prefixCls}__row_spacer`}>\n <td colSpan={colCount} style={{ height: topHeight }} />\n </tr>\n )}\n {sortedData.slice(start, end + 1).map((record, i) => renderRow(record, start + i))}\n {bottomHeight > 0 && (\n <tr className={`${prefixCls}__row_spacer`}>\n <td colSpan={colCount} style={{ height: Math.max(0, bottomHeight) }} />\n </tr>\n )}\n </>\n );\n }\n\n if (paginatedData.length === 0) {\n return (\n <tr>\n <td\n className={`${prefixCls}__cell ${prefixCls}__empty-cell`}\n colSpan={colCount}\n >\n {emptyText}\n </td>\n </tr>\n );\n }\n\n return paginatedData.map((record, rowIndex) => renderRow(record, rowIndex));\n };\n\n const theadCls = classNames(`${prefixCls}__thead`, {\n [`${prefixCls}__thead_sticky`]: isVirtual,\n });\n\n const showPagination = pagination !== false && !isVirtual;\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n <div\n className={`${prefixCls}__wrapper`}\n style={wrapperStyle}\n onScroll={isVirtual ? onScroll : undefined}\n >\n <table className={`${prefixCls}__table`} style={tableStyle}>\n {showHeader && (\n <thead className={theadCls}>\n <tr>\n {rowSelection && (\n <th className={`${prefixCls}__cell ${prefixCls}__selection-col`}>\n {rowSelection.type !== 'radio' && (\n <input\n type=\"checkbox\"\n checked={allSelected}\n ref={(el) => { if (el) el.indeterminate = someSelected && !allSelected; }}\n onChange={handleSelectAll}\n aria-label=\"Select all\"\n />\n )}\n </th>\n )}\n {columns.map((col, i) => {\n const key = col.key ?? col.dataIndex ?? i;\n const thCls = classNames(`${prefixCls}__cell`, col.className, {\n [`${prefixCls}__cell_sortable`]: !!col.sorter,\n [`${prefixCls}__cell_align-${col.align}`]: col.align,\n });\n return (\n <th\n key={key}\n className={thCls}\n style={{ width: col.width }}\n onClick={() => handleSort(col)}\n >\n <span className={`${prefixCls}__col-title`}>{col.title}</span>\n {col.sorter && (\n <span className={`${prefixCls}__sorter`}>\n <span className={classNames(`${prefixCls}__sorter-icon`, {\n [`${prefixCls}__sorter-icon_active`]: sortField === col.dataIndex && sortOrder === 'ascend',\n })}>▲</span>\n <span className={classNames(`${prefixCls}__sorter-icon`, {\n [`${prefixCls}__sorter-icon_active`]: sortField === col.dataIndex && sortOrder === 'descend',\n })}>▼</span>\n </span>\n )}\n </th>\n );\n })}\n </tr>\n </thead>\n )}\n <tbody className={`${prefixCls}__tbody`}>\n {renderTbody()}\n </tbody>\n </table>\n </div>\n {showPagination && (\n <Pagination\n current={activePage}\n total={totalItems}\n pageSize={pageSize}\n align={paginationConfig?.align ?? 'right'}\n size={paginationConfig?.size}\n disabled={paginationConfig?.disabled}\n onChange={(page) => handlePageChange(page)}\n style={{ padding: '16px 0' }}\n />\n )}\n </div>\n );\n});\n\nTable.displayName = 'Table';\nexport default Table;\n","import Table from './table';\n\nexport default Table;\n","import React, { useContext, useId, useRef, useState, useEffect, useCallback, CSSProperties } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TabsProps, TabItem, TabPanelProps } from './types';\n\nconst Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n (props: TabsProps, ref): React.ReactElement => {\n const {\n type = 'line',\n tabPosition = 'top',\n size = 'md',\n animated = true,\n centered = false,\n destroyInactiveTabPane = false,\n hideAdd = false,\n activeKey,\n defaultActiveKey,\n items,\n tabBarExtraContent,\n tabBarGutter,\n tabBarStyle,\n onChange,\n onTabClick,\n onEdit,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tabs', configContext.prefixCls, customisedCls);\n\n // Resolve items from either `items` prop or `children`\n const resolvedItems: TabItem[] = items ?? resolveItemsFromChildren(children);\n\n const getDefaultKey = (): string => {\n if (defaultActiveKey !== undefined) return defaultActiveKey;\n const first = resolvedItems.find((item) => !item.disabled);\n return first?.key ?? '';\n };\n\n const [currentKey, setCurrentKey] = useState<string>(activeKey ?? getDefaultKey());\n const [inkStyle, setInkStyle] = useState<CSSProperties>({});\n const baseId = useId();\n const [scrollOffset, setScrollOffset] = useState(0);\n const [showNav, setShowNav] = useState(false);\n const navWrapRef = useRef<HTMLDivElement>(null);\n const navListRef = useRef<HTMLDivElement>(null);\n const tabRefs = useRef<Map<string, HTMLDivElement>>(new Map());\n\n const isHorizontal = tabPosition === 'top' || tabPosition === 'bottom';\n\n // Controlled mode\n useEffect(() => {\n if (activeKey !== undefined) {\n setCurrentKey(activeKey);\n }\n }, [activeKey]);\n\n // Update ink indicator\n const updateInk = useCallback(() => {\n if (type !== 'line') return;\n const el = tabRefs.current.get(currentKey);\n if (!el) return;\n\n if (isHorizontal) {\n setInkStyle({\n width: el.offsetWidth,\n transform: `translate3d(${el.offsetLeft}px, 0, 0)`,\n });\n } else {\n setInkStyle({\n height: el.offsetHeight,\n transform: `translate3d(0, ${el.offsetTop}px, 0)`,\n });\n }\n }, [currentKey, type, isHorizontal]);\n\n // Check overflow for scroll arrows\n const checkOverflow = useCallback(() => {\n const wrap = navWrapRef.current;\n const list = navListRef.current;\n if (!wrap || !list) return;\n setShowNav(\n isHorizontal\n ? list.scrollWidth > wrap.clientWidth\n : list.scrollHeight > wrap.clientHeight\n );\n }, [isHorizontal]);\n\n useEffect(() => {\n updateInk();\n checkOverflow();\n }, [updateInk, checkOverflow]);\n\n const handleTabClick = (key: string, disabled: boolean | undefined, e: React.MouseEvent) => {\n if (disabled) return;\n onTabClick?.(key, e);\n if (activeKey === undefined) {\n setCurrentKey(key);\n }\n onChange?.(key);\n };\n\n const handleRemove = (key: string, e: React.MouseEvent) => {\n e.stopPropagation();\n onEdit?.(key, 'remove');\n };\n\n const handleAdd = (e: React.MouseEvent) => {\n onEdit?.(e, 'add');\n };\n\n const handleTabKeyDown = (e: React.KeyboardEvent, itemIndex: number) => {\n const enabledItems = resolvedItems.filter((item) => !item.disabled);\n const currentEnabledIdx = enabledItems.findIndex((item) => item.key === resolvedItems[itemIndex].key);\n let targetItem: TabItem | undefined;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n e.preventDefault();\n const prevIdx = currentEnabledIdx <= 0 ? enabledItems.length - 1 : currentEnabledIdx - 1;\n targetItem = enabledItems[prevIdx];\n } else if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n e.preventDefault();\n const nextIdx = currentEnabledIdx >= enabledItems.length - 1 ? 0 : currentEnabledIdx + 1;\n targetItem = enabledItems[nextIdx];\n } else if (e.key === 'Home') {\n e.preventDefault();\n targetItem = enabledItems[0];\n } else if (e.key === 'End') {\n e.preventDefault();\n targetItem = enabledItems[enabledItems.length - 1];\n }\n\n if (targetItem) {\n const el = tabRefs.current.get(targetItem.key);\n el?.focus();\n handleTabClick(targetItem.key, targetItem.disabled, e as unknown as React.MouseEvent);\n }\n };\n\n // Scroll navigation\n const scrollStep = 200;\n const getMaxScroll = () => {\n const wrap = navWrapRef.current;\n const list = navListRef.current;\n if (!wrap || !list) return 0;\n return isHorizontal\n ? list.scrollWidth - wrap.clientWidth\n : list.scrollHeight - wrap.clientHeight;\n };\n\n const scrollPrev = () => setScrollOffset((prev) => Math.max(0, prev - scrollStep));\n const scrollNext = () => setScrollOffset((prev) => Math.min(getMaxScroll(), prev + scrollStep));\n\n // Ensure active tab is scrolled into view\n useEffect(() => {\n const el = tabRefs.current.get(currentKey);\n const wrap = navWrapRef.current;\n if (!el || !wrap || !showNav) return;\n\n if (isHorizontal) {\n const elLeft = el.offsetLeft;\n const elRight = elLeft + el.offsetWidth;\n if (elLeft < scrollOffset) {\n setScrollOffset(elLeft);\n } else if (elRight > scrollOffset + wrap.clientWidth) {\n setScrollOffset(elRight - wrap.clientWidth);\n }\n }\n }, [currentKey, showNav, isHorizontal, scrollOffset]);\n\n // Extra content\n const isExtraObj = tabBarExtraContent != null\n && typeof tabBarExtraContent === 'object'\n && !React.isValidElement(tabBarExtraContent)\n && ('left' in tabBarExtraContent || 'right' in tabBarExtraContent);\n const extraLeft: React.ReactNode = isExtraObj\n ? (tabBarExtraContent as { left?: React.ReactNode }).left ?? null\n : null;\n const extraRight: React.ReactNode = isExtraObj\n ? (tabBarExtraContent as { right?: React.ReactNode }).right ?? null\n : (tabBarExtraContent as React.ReactNode) ?? null;\n\n // Class names\n const isVertical = !isHorizontal;\n const cls = classNames(prefixCls, className, `${prefixCls}_${size}`, {\n [`${prefixCls}_${tabPosition}`]: true,\n [`${prefixCls}_${type}`]: true,\n [`${prefixCls}_vertical`]: isVertical,\n [`${prefixCls}_centered`]: centered,\n });\n\n const navScrollStyle: CSSProperties = isHorizontal\n ? { transform: `translate3d(${-scrollOffset}px, 0, 0)` }\n : { transform: `translate3d(0, ${-scrollOffset}px, 0)` };\n\n const prevDisabled = scrollOffset === 0;\n const nextDisabled = scrollOffset >= getMaxScroll();\n\n return (\n <div {...otherProps} ref={ref} className={cls}>\n {tabPosition === 'bottom' && (\n <div className={`${prefixCls}__content`}>\n {renderPanels(resolvedItems, currentKey, prefixCls, animated, isHorizontal, destroyInactiveTabPane, baseId)}\n </div>\n )}\n <div\n className={classNames(`${prefixCls}__nav`, {\n [`${prefixCls}__nav_overflow`]: showNav,\n })}\n style={tabBarStyle}\n role=\"tablist\">\n {extraLeft && <div className={`${prefixCls}__nav-extra_left`}>{extraLeft}</div>}\n {showNav && (\n <button\n className={classNames(`${prefixCls}__nav-prev`, {\n [`${prefixCls}__nav-btn_disabled`]: prevDisabled,\n })}\n disabled={prevDisabled}\n onClick={scrollPrev}\n type=\"button\"\n aria-label=\"Previous tabs\">\n ‹\n </button>\n )}\n <div className={`${prefixCls}__nav-wrap`} ref={navWrapRef}>\n <div\n className={`${prefixCls}__nav-list`}\n ref={navListRef}\n style={showNav ? navScrollStyle : undefined}>\n {resolvedItems.map((item, idx) => {\n const isActive = item.key === currentKey;\n const tabCls = classNames(`${prefixCls}__tab`, {\n [`${prefixCls}__tab_active`]: isActive,\n [`${prefixCls}__tab_disabled`]: item.disabled,\n });\n const gutter = tabBarGutter !== undefined ? { marginRight: tabBarGutter } : undefined;\n return (\n <div\n key={item.key}\n ref={(el) => {\n if (el) tabRefs.current.set(item.key, el);\n else tabRefs.current.delete(item.key);\n }}\n className={tabCls}\n style={gutter}\n role=\"tab\"\n id={`${baseId}-tab-${item.key}`}\n aria-selected={isActive}\n aria-disabled={item.disabled}\n aria-controls={`${baseId}-panel-${item.key}`}\n tabIndex={isActive ? 0 : -1}\n onClick={(e) => handleTabClick(item.key, item.disabled, e)}\n onKeyDown={(e) => handleTabKeyDown(e, idx)}>\n {item.icon && <span className={`${prefixCls}__tab-icon`}>{item.icon}</span>}\n <span className={`${prefixCls}__tab-label`}>{item.label}</span>\n {type === 'editable-card' && item.closable !== false && (\n <span\n className={`${prefixCls}__tab-remove`}\n onClick={(e) => handleRemove(item.key, e)}\n role=\"button\"\n aria-label=\"Remove tab\">\n ✕\n </span>\n )}\n </div>\n );\n })}\n {type === 'line' && (\n <div className={`${prefixCls}__ink-bar`} style={inkStyle} />\n )}\n </div>\n </div>\n {showNav && (\n <button\n className={classNames(`${prefixCls}__nav-next`, {\n [`${prefixCls}__nav-btn_disabled`]: nextDisabled,\n })}\n disabled={nextDisabled}\n onClick={scrollNext}\n type=\"button\"\n aria-label=\"Next tabs\">\n ›\n </button>\n )}\n {type === 'editable-card' && !hideAdd && (\n <button\n className={`${prefixCls}__nav-add`}\n onClick={handleAdd}\n type=\"button\"\n aria-label=\"Add tab\">\n +\n </button>\n )}\n {extraRight && <div className={`${prefixCls}__nav-extra_right`}>{extraRight}</div>}\n </div>\n {tabPosition !== 'bottom' && (\n <div className={`${prefixCls}__content`}>\n {renderPanels(resolvedItems, currentKey, prefixCls, animated, isHorizontal, destroyInactiveTabPane, baseId)}\n </div>\n )}\n </div>\n );\n }\n);\n\nfunction resolveItemsFromChildren(children: React.ReactNode): TabItem[] {\n const items: TabItem[] = [];\n React.Children.forEach(children, (child, idx) => {\n if (!React.isValidElement<TabPanelProps>(child)) return;\n const { tab, tabKey, disabled, closable, forceRender, children: content } = child.props;\n items.push({\n key: tabKey ?? String(idx),\n label: tab,\n children: content,\n disabled,\n closable,\n forceRender,\n });\n });\n return items;\n}\n\nfunction renderPanels(\n items: TabItem[],\n currentKey: string,\n prefixCls: string,\n animated: boolean,\n isHorizontal: boolean,\n destroyInactive: boolean,\n baseId?: string\n): React.ReactNode {\n const activeIdx = items.findIndex((item) => item.key === currentKey);\n const containerStyle: CSSProperties = animated && isHorizontal\n ? { transform: `translate3d(${-activeIdx * 100}%, 0, 0)` }\n : {};\n\n const containerCls = classNames(`${prefixCls}__content-inner`, {\n [`${prefixCls}__content-inner_animated`]: animated && isHorizontal,\n });\n\n return (\n <div className={containerCls} style={containerStyle}>\n {items.map((item) => {\n const isActive = item.key === currentKey;\n const panelCls = classNames(`${prefixCls}__panel`, {\n [`${prefixCls}__panel_active`]: isActive,\n });\n\n if (destroyInactive && !isActive && !item.forceRender) {\n return <div key={item.key} className={panelCls} role=\"tabpanel\" id={baseId ? `${baseId}-panel-${item.key}` : undefined} aria-labelledby={baseId ? `${baseId}-tab-${item.key}` : undefined} />;\n }\n\n return (\n <div key={item.key} className={panelCls} role=\"tabpanel\" id={baseId ? `${baseId}-panel-${item.key}` : undefined} aria-labelledby={baseId ? `${baseId}-tab-${item.key}` : undefined}>\n {item.children}\n </div>\n );\n })}\n </div>\n );\n}\n\nTabs.displayName = 'Tabs';\n\nexport default Tabs;\n","import { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TabPanelProps } from './types';\n\nconst TabPanel = (props: TabPanelProps): React.ReactElement => {\n const {\n active,\n forceRender,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tabs-panel', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_active`]: active,\n });\n\n if (!active && !forceRender) {\n return <div className={cls} />;\n }\n\n return (\n <div className={cls} role=\"tabpanel\" {...otherProps}>\n {children}\n </div>\n );\n};\n\nTabPanel.displayName = 'TabPanel';\n\nexport default TabPanel;\n","import Tabs from './tabs';\nimport TabPanel from './tab-panel';\n\nexport type { TabsProps, TabItem, TabType, TabPosition, TabPanelProps } from './types';\n\ntype ITabs = typeof Tabs & {\n Panel: typeof TabPanel;\n};\n\nconst DefaultTabs = Tabs as ITabs;\nDefaultTabs.Panel = TabPanel;\n\nexport default DefaultTabs;\n","import React from 'react';\nimport { BaseProps } from '../_utils/props';\n\nexport interface CheckableTagProps extends BaseProps {\n defaultChecked?: boolean;\n checked?: boolean;\n onChange?: (checked: boolean, e: React.MouseEvent) => void;\n children?: React.ReactNode;\n}\n\nexport const PresetColors = [\n 'magenta',\n 'red',\n 'volcano',\n 'orange',\n 'gold',\n 'lime',\n 'green',\n 'cyan',\n 'blue',\n 'geekblue',\n 'purple',\n];\n\nexport interface TagProps extends BaseProps, React.PropsWithoutRef<JSX.IntrinsicElements['div']> {\n color?: string;\n closable?: boolean;\n onClose?: React.MouseEventHandler;\n onClick?: React.MouseEventHandler;\n defaultVisible?: boolean;\n visible?: boolean;\n children?: React.ReactNode;\n}\n","import React, { useState, useEffect, MouseEvent, useContext, forwardRef } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { PresetColors, TagProps } from './types';\n\nconst Tag = forwardRef<HTMLDivElement, TagProps>((props, ref) => {\n const {\n closable = false,\n defaultVisible = true,\n prefixCls: customisedCls,\n color,\n onClose,\n onClick,\n className,\n style,\n children,\n ...otherProps\n } = props;\n const [visible, setVisible] = useState<boolean>(\n 'visible' in props ? (props.visible as boolean) : defaultVisible\n );\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tag', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${color}`]: color && PresetColors.includes(color),\n [`${prefixCls}_visible`]: visible,\n [`${prefixCls}_closeable`]: closable,\n });\n\n /**\n * Callback when the close button is clicked.\n * @param e\n */\n const closeBtnOnClick = (e: MouseEvent<HTMLSpanElement>): void => {\n onClose && onClose(e);\n if (e.defaultPrevented) {\n return;\n }\n !('visible' in props) && setVisible(false);\n };\n\n const tagStyle: React.CSSProperties = {\n backgroundColor: color ? (PresetColors.includes(color) ? undefined : color) : undefined,\n borderColor: color ? (PresetColors.includes(color) ? undefined : color) : undefined,\n color: color ? (PresetColors.includes(color) ? undefined : '#fff') : undefined,\n ...style,\n };\n\n useEffect(() => {\n 'visible' in props && setVisible(props.visible as boolean);\n }, [props]);\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={tagStyle} onClick={onClick}>\n {children}\n {closable && (\n <button type=\"button\" className={`${prefixCls}__close-btn`} onClick={closeBtnOnClick} aria-label=\"Remove\">\n ✕\n </button>\n )}\n </div>\n );\n});\n\nTag.displayName = 'Tag';\n\nexport default Tag;\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CheckableTagProps } from './types';\nimport Tag from './index';\n\nconst CheckableTag = (props: CheckableTagProps): JSX.Element => {\n const {\n defaultChecked = true,\n prefixCls: customisedCls,\n onChange,\n className,\n style,\n children,\n } = props;\n const [checked, setChecked] = useState<boolean>(\n 'checked' in props ? (props.checked as boolean) : defaultChecked\n );\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('checkable-tag', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_checked`]: checked,\n });\n\n /**\n * Callback when the tag itself is clicked.\n */\n const itemOnClick = (e: React.MouseEvent): void => {\n const state = !checked;\n !('checked' in props) && setChecked(state);\n onChange && onChange(state, e);\n };\n\n useEffect(() => {\n 'checked' in props && setChecked(props.checked as boolean);\n }, [props]);\n\n return (\n <Tag className={cls} style={style} onClick={itemOnClick}>\n {children}\n </Tag>\n );\n};\n\nCheckableTag.displayName = 'CheckableTag';\n\nexport default CheckableTag;\n","import Tag from './tag';\nimport CheckableTag from './checkable-tag';\n\ntype ITag = typeof Tag & {\n CheckableTag: typeof CheckableTag;\n};\n\nconst DefaultTag = Tag as ITag;\nDefaultTag.CheckableTag = CheckableTag;\n\nexport default DefaultTag;\n","import React, { useContext, useState, forwardRef } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TextareaProps } from './types';\n\nconst Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>((props, ref) => {\n const {\n disabled = false,\n prefixCls: customisedCls,\n limit,\n counter,\n defaultValue,\n value,\n rows,\n onChange,\n className,\n style,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('textarea', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_disabled`]: disabled,\n });\n const [count, setCount] = useState(0);\n\n const textareaOnChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setCount(e.currentTarget.value.length);\n onChange && onChange(e.currentTarget.value, e);\n };\n\n if (limit || counter) {\n return (\n <span className={`${prefixCls}-container`}>\n <textarea\n {...otherProps}\n ref={ref}\n maxLength={limit}\n rows={rows}\n value={value}\n defaultValue={defaultValue}\n disabled={disabled}\n className={cls}\n style={style}\n onChange={textareaOnChange}\n />\n <span className={`${prefixCls}__counter`}>\n {counter && typeof counter === 'function' ? counter(count) : `${count}/${limit}`}\n </span>\n </span>\n );\n } else {\n return (\n <textarea\n {...props}\n ref={ref}\n rows={rows}\n value={value}\n defaultValue={defaultValue}\n disabled={disabled}\n className={cls}\n style={style}\n onChange={textareaOnChange}\n />\n );\n }\n});\n\nTextarea.displayName = 'Textarea';\n\nexport default Textarea;\n","import Textarea from './textarea';\n\nexport default Textarea;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TimelineItemProps, TimelineProps } from './types';\n\nconst Timeline = React.forwardRef<HTMLUListElement, TimelineProps>((props, ref) => {\n const { position = 'left', prefixCls: customisedCls, className, children, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('timeline', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${position}`]: position,\n });\n\n return (\n <ul {...otherProps} ref={ref} className={cls}>\n {React.Children.map(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<TimelineItemProps>;\n if (childElement.type.displayName === 'TimelineItem') {\n const childProps: Partial<TimelineItemProps> = {\n className:\n position === 'center'\n ? idx % 2 === 0\n ? `${prefixCls}-item_left`\n : `${prefixCls}-item_right`\n : childElement.props.className,\n };\n return React.cloneElement(childElement, childProps);\n } else {\n return null;\n }\n })}\n </ul>\n );\n});\n\nTimeline.displayName = 'Timeline';\n\nexport default Timeline;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TimelineItemProps } from './types';\n\nconst TimelineItem = React.forwardRef<HTMLLIElement, TimelineItemProps>((props, ref) => {\n const { dot, dotStyle, className, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('timeline-item', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <li {...otherProps} ref={ref} className={cls}>\n <div className={`${prefixCls}__head`}>\n <div className={`${prefixCls}__dot-container`}>\n {dot || <span className={`${prefixCls}__dot`} style={dotStyle} />}\n </div>\n </div>\n <div className={`${prefixCls}__content`}>{children}</div>\n </li>\n );\n});\n\nTimelineItem.displayName = 'TimelineItem';\n\nexport default TimelineItem;\n","import Timeline from './timeline';\nimport TimelineItem from './timeline-item';\n\ntype ITimeline = typeof Timeline & {\n Item: typeof TimelineItem;\n};\n\nconst DefaultTimeline = Timeline as ITimeline;\nDefaultTimeline.Item = TimelineItem;\n\nexport default DefaultTimeline;\n","import { useRef, useEffect, useCallback } from 'react';\nimport classNames from 'classnames';\n\nexport interface TimePanelProps {\n value: number;\n items: number[];\n disabledItems?: number[];\n onChange: (num: number) => void;\n prefixCls: string;\n}\n\nconst TimePanel = (props: TimePanelProps): React.ReactElement => {\n const { prefixCls, value, items, disabledItems = [], onChange } = props;\n const panelRef = useRef<HTMLDivElement>(null);\n const itemRefs = useRef<Map<number, HTMLLIElement>>(new Map());\n\n const scrollToItem = useCallback((val: number, smooth = false) => {\n const el = itemRefs.current.get(val);\n if (el && panelRef.current) {\n panelRef.current.scrollTo({\n top: el.offsetTop,\n behavior: smooth ? 'smooth' : 'auto',\n });\n }\n }, []);\n\n useEffect(() => {\n scrollToItem(value);\n }, [value, scrollToItem]);\n\n const handleClick = (num: number) => {\n if (disabledItems.includes(num)) return;\n onChange(num);\n scrollToItem(num, true);\n };\n\n return (\n <div className={`${prefixCls}__column`} ref={panelRef}>\n <ul className={`${prefixCls}__column-list`}>\n {items.map((num) => {\n const isDisabled = disabledItems.includes(num);\n const cls = classNames(`${prefixCls}__cell`, {\n [`${prefixCls}__cell_selected`]: num === value,\n [`${prefixCls}__cell_disabled`]: isDisabled,\n });\n return (\n <li\n key={num}\n ref={(el) => {\n if (el) itemRefs.current.set(num, el);\n }}\n className={cls}\n onClick={() => handleClick(num)}>\n {String(num).padStart(2, '0')}\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n\nexport default TimePanel;\n","import { useEffect, useState, useRef, useCallback, useContext, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useLocale } from '../_utils/use-locale';\nimport { useClickOutside } from '../_utils/hooks';\nimport Popup from '../popup';\nimport TimePanel from './time-panel';\nimport { TimePickerProps } from './types';\n\nconst ClockIcon = () => (\n <svg viewBox=\"64 64 896 896\" width=\"1em\" height=\"1em\" fill=\"currentColor\">\n <path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" />\n <path d=\"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z\" />\n </svg>\n);\n\nconst ClearIcon = () => (\n <svg viewBox=\"64 64 896 896\" width=\"1em\" height=\"1em\" fill=\"currentColor\">\n <path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\" />\n </svg>\n);\n\nfunction formatTime(date: Date, format: string, use12Hours: boolean): string {\n let h = date.getHours();\n const m = String(date.getMinutes()).padStart(2, '0');\n const s = String(date.getSeconds()).padStart(2, '0');\n let period = '';\n\n if (use12Hours) {\n period = h >= 12 ? ' PM' : ' AM';\n h = h % 12 || 12;\n }\n\n return format\n .replace('HH', String(h).padStart(2, '0'))\n .replace('H', String(h))\n .replace('mm', m)\n .replace('ss', s) + period;\n}\n\nfunction generateSteps(count: number, step: number): number[] {\n const items: number[] = [];\n for (let i = 0; i < count; i += step) {\n items.push(i);\n }\n return items;\n}\n\nfunction showsSeconds(format: string): boolean {\n return format.includes('ss') || format.includes('s');\n}\n\nfunction showsMinutes(format: string): boolean {\n return format.includes('mm') || format.includes('m');\n}\n\nconst TimePicker = (props: TimePickerProps): React.ReactElement => {\n const locale = useLocale();\n const {\n defaultValue,\n value,\n open: controlledOpen,\n format = 'HH:mm:ss',\n use12Hours = false,\n hourStep = 1,\n minuteStep = 1,\n secondStep = 1,\n disabled = false,\n placeholder = locale.TimePicker.selectTime,\n allowClear = true,\n size = 'md',\n inputReadOnly = true,\n disabledTime,\n hideDisabledOptions = false,\n renderExtraFooter,\n suffixIcon,\n onChange,\n onOpenChange,\n className,\n style,\n prefixCls: customisedCls,\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('time-picker', configContext.prefixCls, customisedCls);\n\n const [date, setDate] = useState<Date | null>(value ?? defaultValue ?? null);\n const [open, setOpen] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const isOpen = controlledOpen ?? open;\n\n // Controlled value\n useEffect(() => {\n if (value !== undefined) setDate(value);\n }, [value]);\n\n useEffect(() => {\n if (controlledOpen !== undefined) setOpen(controlledOpen);\n }, [controlledOpen]);\n\n useClickOutside(wrapperRef.current as HTMLDivElement, () => {\n if (controlledOpen === undefined) setOpen(false);\n onOpenChange?.(false);\n });\n\n const toggleOpen = useCallback((val: boolean) => {\n if (controlledOpen === undefined) setOpen(val);\n onOpenChange?.(val);\n }, [controlledOpen, onOpenChange]);\n\n const updateTime = useCallback((type: 'h' | 'm' | 's', num: number) => {\n const base = date ? new Date(date) : new Date();\n if (type === 'h') base.setHours(num);\n else if (type === 'm') base.setMinutes(num);\n else base.setSeconds(num);\n\n if (value === undefined) setDate(base);\n onChange?.(base);\n }, [date, value, onChange]);\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (value === undefined) setDate(null);\n onChange?.(null);\n toggleOpen(false);\n };\n\n // Disabled time calculation\n const disabled12 = useMemo(() => disabledTime?.() ?? {}, [disabledTime]);\n const disabledHours = useMemo(() => disabled12.disabledHours?.() ?? [], [disabled12]);\n const currentHour = date?.getHours() ?? 0;\n const disabledMinutes = useMemo(\n () => disabled12.disabledMinutes?.(currentHour) ?? [],\n [disabled12, currentHour]\n );\n const currentMinute = date?.getMinutes() ?? 0;\n const disabledSeconds = useMemo(\n () => disabled12.disabledSeconds?.(currentHour, currentMinute) ?? [],\n [disabled12, currentHour, currentMinute]\n );\n\n const hours = generateSteps(24, hourStep);\n const minutes = generateSteps(60, minuteStep);\n const seconds = generateSteps(60, secondStep);\n\n const filteredHours = hideDisabledOptions ? hours.filter((h) => !disabledHours.includes(h)) : hours;\n const filteredMinutes = hideDisabledOptions ? minutes.filter((m) => !disabledMinutes.includes(m)) : minutes;\n const filteredSeconds = hideDisabledOptions ? seconds.filter((s) => !disabledSeconds.includes(s)) : seconds;\n\n const hasValue = date !== null;\n const displayValue = hasValue ? formatTime(date, format, use12Hours) : '';\n\n const cls = classNames(prefixCls, className, `${prefixCls}_${size}`, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_open`]: isOpen,\n [`${prefixCls}_has-value`]: hasValue,\n });\n\n const renderOverlay = () => (\n <div className={`${prefixCls}__dropdown`}>\n <div className={`${prefixCls}__panel`}>\n <TimePanel\n prefixCls={prefixCls}\n value={date?.getHours() ?? 0}\n items={filteredHours}\n disabledItems={hideDisabledOptions ? [] : disabledHours}\n onChange={(h) => updateTime('h', h)}\n />\n {showsMinutes(format) && (\n <TimePanel\n prefixCls={prefixCls}\n value={date?.getMinutes() ?? 0}\n items={filteredMinutes}\n disabledItems={hideDisabledOptions ? [] : disabledMinutes}\n onChange={(m) => updateTime('m', m)}\n />\n )}\n {showsSeconds(format) && (\n <TimePanel\n prefixCls={prefixCls}\n value={date?.getSeconds() ?? 0}\n items={filteredSeconds}\n disabledItems={hideDisabledOptions ? [] : disabledSeconds}\n onChange={(s) => updateTime('s', s)}\n />\n )}\n </div>\n {renderExtraFooter && (\n <div className={`${prefixCls}__footer`}>\n {renderExtraFooter()}\n </div>\n )}\n </div>\n );\n\n return (\n <div className={cls} style={style} ref={wrapperRef}>\n <Popup\n trigger=\"manual\"\n placement=\"bottom\"\n arrow={false}\n visible={isOpen}\n content={renderOverlay()}>\n <div\n className={`${prefixCls}__input`}\n onClick={() => !disabled && toggleOpen(!isOpen)}>\n <input\n className={`${prefixCls}__input-field`}\n readOnly={inputReadOnly}\n disabled={disabled}\n placeholder={placeholder}\n value={displayValue}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n onKeyDown={(e) => {\n if (e.key === 'Escape' && isOpen) toggleOpen(false);\n }}\n />\n <span className={`${prefixCls}__suffix`}>\n {allowClear && hasValue && !disabled ? (\n <button type=\"button\" className={`${prefixCls}__clear`} onClick={handleClear} aria-label=\"Clear time\">\n <ClearIcon />\n </button>\n ) : null}\n <span className={`${prefixCls}__icon`}>\n {suffixIcon ?? <ClockIcon />}\n </span>\n </span>\n </div>\n </Popup>\n </div>\n );\n};\n\nTimePicker.displayName = 'TimePicker';\n\nexport default TimePicker;\n","import TimePicker from './time-picker';\n\nexport type { TimePickerProps, DisabledTime } from './types';\nexport type { TimePanelProps } from './time-panel';\n\nexport default TimePicker;\n","import React, { ChangeEvent, ReactNode, useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BaseProps } from '../_utils/props';\nimport { TransferItem } from './types';\nimport Checkbox from '../checkbox/checkbox';\nimport CheckboxGroup from '../checkbox/checkbox-group';\nimport Empty from '../empty';\nimport Input from '../input/input';\n\nexport interface TransferPanelProps\n extends BaseProps,\n Omit<React.PropsWithRef<JSX.IntrinsicElements['div']>, 'title' | 'onChange'> {\n dataSource: TransferItem[];\n checkedKeys: string[];\n onChange: (checkedKeys: string[]) => void;\n disabled: boolean;\n title?: ReactNode;\n footer?: ReactNode;\n placeholder?: string;\n showSearch?: boolean;\n renderItem?: (item: TransferItem) => ReactNode;\n filterOption?: (input: string, item: TransferItem) => boolean;\n}\n\nconst TransferPanel = React.forwardRef<HTMLDivElement, TransferPanelProps>(\n (props: TransferPanelProps, ref): React.ReactElement => {\n const {\n dataSource,\n checkedKeys,\n title,\n placeholder,\n footer,\n showSearch,\n className,\n onChange,\n renderItem,\n filterOption,\n disabled: allDisabled,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('transfer-panel', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [query, setQuery] = useState('');\n\n const getFilteredData = (): TransferItem[] => {\n return dataSource.filter((item) => {\n if (typeof filterOption === 'function') {\n return filterOption(query, item);\n } else if (query.trim().length > 0) {\n const label = item.label;\n return label.toLowerCase().includes(query.toLowerCase());\n } else {\n return true;\n }\n });\n };\n\n const filteredData = getFilteredData();\n const checkableData = filteredData.filter((item) => !item.disabled);\n const isAllChecked = checkableData.length > 0 && checkedKeys.length === checkableData.length;\n const isIndeterminate = checkedKeys.length > 0 && checkedKeys.length < checkableData.length;\n\n /**\n * Footer checkbox onChange event\n */\n const handleAllCheckedChange = (e: ChangeEvent<HTMLInputElement>) => {\n const isChecked = e.currentTarget.checked;\n const checkedKeys = isChecked ? checkableData.map((item) => item.key) : [];\n onChange(checkedKeys);\n };\n\n const checkedSummary = (): string => {\n if (isIndeterminate || isAllChecked) {\n return `${checkedKeys.length} / ${filteredData.length} checked`;\n }\n return `${filteredData.length} items`;\n };\n\n return (\n <div {...otherProps} className={cls} ref={ref}>\n {title && <div className={`${prefixCls}__header`}>{title}</div>}\n <div className={`${prefixCls}__body`}>\n {showSearch && (\n <div className={`${prefixCls}__input-container`}>\n <Input\n clearable\n size=\"sm\"\n placeholder={placeholder}\n value={query}\n onChange={(e) => {\n setQuery(e.currentTarget.value);\n }}\n onClearClick={() => setQuery('')}\n />\n </div>\n )}\n <div className={`${prefixCls}__list-container`}>\n {filteredData.length > 0 ? (\n <CheckboxGroup\n value={checkedKeys}\n onChange={(values) => onChange(values)}\n className={`${prefixCls}__list`}>\n {filteredData.map((item) => {\n const { key, label, disabled } = item;\n return (\n <Checkbox\n key={key}\n value={key}\n disabled={allDisabled || disabled}\n className={`${prefixCls}__list-item`}>\n {renderItem ? renderItem(item) : label}\n </Checkbox>\n );\n })}\n </CheckboxGroup>\n ) : (\n <Empty className={`${prefixCls}__not-found`} />\n )}\n </div>\n </div>\n <div className={`${prefixCls}__footer`}>\n <Checkbox\n disabled={allDisabled}\n checked={isAllChecked}\n onChange={handleAllCheckedChange}\n indeterminate={isIndeterminate}>\n {checkedSummary()}\n </Checkbox>\n {footer}\n </div>\n </div>\n );\n }\n);\n\nTransferPanel.displayName = 'TransferPanel';\n\nexport default TransferPanel;\n","import React, { useCallback, useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ArrowDown } from '../_utils/components';\nimport { TransferProps, TransferItem } from './types';\nimport TransferPanel from './transfer-panel';\nimport Button from '../button/button';\n\nconst Transfer = React.forwardRef<HTMLDivElement, TransferProps>(\n (props: TransferProps, ref): React.ReactElement => {\n const {\n dataSource = [],\n defaultValue = [],\n buttonTexts = [],\n showSearch = false,\n disabled = false,\n value,\n titles,\n placeholders,\n className,\n onChange,\n renderItem,\n filterOption,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('transfer', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n const getDataKeys = useCallback((): [TransferItem[], TransferItem[]] => {\n const rightKeys: string[] = 'value' in props ? (value as string[]) : defaultValue;\n const rightData: TransferItem[] = dataSource.filter((item) => rightKeys.includes(item.key));\n const leftData: TransferItem[] = dataSource.filter((item) => !rightKeys.includes(item.key));\n return [leftData, rightData];\n }, [props, value, dataSource, defaultValue]);\n\n const [leftData, rightData] = getDataKeys();\n const [sourceData, setSourceData] = useState<TransferItem[]>(leftData);\n const [targetData, setTargetData] = useState<TransferItem[]>(rightData);\n const [leftCheckedKeys, setLeftCheckedKeys] = useState<string[]>([]);\n const [rightCheckedKeys, setRightCheckedKeys] = useState<string[]>([]);\n\n const addToLeft = () => {\n const leftKeys = sourceData.map((item) => item.key);\n const currKeys = leftKeys.slice();\n rightCheckedKeys.forEach((key) => {\n if (!leftKeys.includes(key)) {\n currKeys.push(key);\n }\n });\n\n const targetData = dataSource.filter((item) => !currKeys.includes(item.key));\n if (!('value' in props)) {\n setRightCheckedKeys([]);\n setSourceData([...dataSource.filter((item) => currKeys.includes(item.key))]);\n setTargetData([...targetData]);\n }\n const targetKey = targetData.map((item) => item.key);\n onChange && onChange(targetKey, 'left', rightCheckedKeys);\n };\n\n const addToRight = () => {\n const rightKeys = targetData.map((item) => item.key);\n const currKeys = rightKeys.slice();\n leftCheckedKeys.forEach((key) => {\n if (!rightKeys.includes(key)) {\n currKeys.push(key);\n }\n });\n\n if (!('value' in props)) {\n setLeftCheckedKeys([]);\n setSourceData([...dataSource.filter((item) => !currKeys.includes(item.key))]);\n setTargetData([...dataSource.filter((item) => currKeys.includes(item.key))]);\n }\n onChange && onChange(currKeys, 'right', leftCheckedKeys);\n };\n\n useEffect(() => {\n if ('value' in props) {\n const rightKeys = props.value as string[];\n const rightData: TransferItem[] = dataSource.filter((item) => rightKeys.includes(item.key));\n const leftData: TransferItem[] = dataSource.filter((item) => !rightKeys.includes(item.key));\n setSourceData(leftData);\n setTargetData(rightData);\n setLeftCheckedKeys([]);\n setRightCheckedKeys([]);\n }\n }, [props, dataSource]);\n\n return (\n <div {...otherProps} className={cls} ref={ref}>\n <TransferPanel\n title={titles && titles[0]}\n placeholder={(placeholders && placeholders[0]) || 'search'}\n showSearch={showSearch}\n dataSource={sourceData}\n checkedKeys={leftCheckedKeys}\n disabled={disabled}\n onChange={(keys: string[]) => setLeftCheckedKeys(keys)}\n renderItem={renderItem}\n filterOption={filterOption}\n />\n <div className={`${prefixCls}__buttons`}>\n <Button\n btnType=\"primary\"\n size=\"sm\"\n onClick={addToRight}\n disabled={leftCheckedKeys.length === 0}>\n <ArrowDown size={12} className={`${prefixCls}__left-arrow`} />\n {buttonTexts && buttonTexts[0] !== undefined && <span>{buttonTexts[0]}</span>}\n </Button>\n <Button\n btnType=\"primary\"\n size=\"sm\"\n onClick={addToLeft}\n disabled={rightCheckedKeys.length === 0}>\n {buttonTexts && buttonTexts[1] !== undefined && <span>{buttonTexts[1]}</span>}\n <ArrowDown size={12} className={`${prefixCls}__right-arrow`} />\n </Button>\n </div>\n <TransferPanel\n title={titles && titles[1]}\n placeholder={(placeholders && placeholders[1]) || 'search'}\n showSearch={showSearch}\n dataSource={targetData}\n checkedKeys={rightCheckedKeys}\n disabled={disabled}\n onChange={(keys: string[]) => setRightCheckedKeys(keys)}\n renderItem={renderItem}\n filterOption={filterOption}\n />\n </div>\n );\n }\n);\n\nTransfer.displayName = 'Transfer';\n\nexport default Transfer;\n","import Transfer from './transfer';\n\nexport default Transfer;\n","import React from 'react';\nimport { TreeData } from './types';\n\nexport type Node = {\n // data source key provided by user\n key?: string;\n // unique key managed by TreeInstance. x-x-x\n uniqueKey: string;\n title: React.ReactNode;\n checked: boolean;\n indeterminate: boolean;\n expanded: boolean;\n disabled: boolean;\n disableCheckbox: boolean;\n parentKey: string;\n icon?: (isExpanded: boolean) => React.ReactNode;\n children?: Node[];\n};\n\nexport class TreeInstance {\n private readonly treeNodes: Node[];\n\n constructor(\n data: TreeData[],\n defaultCheckedKeys: string[],\n defaultExpandedKeys: string[],\n defaultExpandAll: boolean\n ) {\n this.treeNodes = this.handleTreeNode(\n data,\n defaultCheckedKeys,\n defaultExpandedKeys,\n defaultExpandAll,\n ''\n );\n }\n\n private handleTreeNode(\n data: TreeData[],\n defaultCheckedKeys: string[],\n defaultExpandedKeys: string[],\n defaultExpandAll: boolean,\n parentKey: string\n ): Node[] {\n return data.map((item, idx) => {\n const { key, title, children, disableCheckbox, disabled, ...otherProps } = item;\n const uniqueKey = parentKey ? parentKey + `-${idx}` : `${idx}`;\n const node: Node = {\n ...otherProps,\n key,\n uniqueKey,\n title: title || '---',\n disabled: disabled || false,\n disableCheckbox: disableCheckbox || false,\n checked: key ? defaultCheckedKeys.includes(key) : false,\n indeterminate: false,\n expanded: defaultExpandAll || (key ? defaultExpandedKeys.includes(key) : false),\n parentKey,\n };\n\n if (children) {\n node.children = this.handleTreeNode(\n children,\n defaultCheckedKeys,\n defaultExpandedKeys,\n defaultExpandAll,\n uniqueKey\n );\n const indeterminate = this.isIndeterminate(node);\n return {\n ...node,\n indeterminate,\n };\n }\n return node;\n });\n }\n\n get nodes(): Node[] {\n return this.treeNodes;\n }\n\n getNodeByUniqueKey(uniqueKey: string): Node | undefined {\n const keys = uniqueKey.split('-').map((item) => parseInt(item));\n\n let curr: Node[] | undefined = this.treeNodes;\n let target: Node | undefined = undefined;\n for (const key of keys) {\n if (curr) {\n target = curr[key];\n curr = target?.children;\n }\n }\n\n return target;\n }\n\n isIndeterminate(node: Node): boolean {\n if (node.children) {\n if (node.children.some((n) => n.indeterminate)) {\n return true;\n }\n const numOfChecked = node.children.filter((n) => n.checked).length;\n return numOfChecked > 0 && numOfChecked < node.children.length;\n }\n return false;\n }\n\n checkChildren(children: Node[], isChecked: boolean): void {\n children.forEach((child) => {\n if (child.disabled) {\n return;\n }\n\n child.checked = isChecked;\n child.indeterminate = this.isIndeterminate(child);\n if (child.children) {\n this.checkChildren(child.children, isChecked);\n }\n });\n }\n\n checkParent(node: Node): void {\n if (node.disabled) {\n return;\n }\n\n const children = node.children as Node[];\n const numOfChecked = children.filter((n) => n.checked).length;\n node.checked = numOfChecked === children.length;\n node.indeterminate = this.isIndeterminate(node);\n const parentNode = this.getNodeByUniqueKey(node.parentKey);\n if (parentNode) {\n this.checkParent(parentNode);\n }\n }\n\n setNodeChecked(uniqueKey: string, isChecked: boolean): void {\n const node = this.getNodeByUniqueKey(uniqueKey);\n if (node) {\n node.checked = isChecked;\n // update children node\n // if children are existing, make them all checked\n if (node.children) {\n this.checkChildren(node.children, isChecked);\n }\n node.indeterminate = this.isIndeterminate(node);\n // check parent node\n // if siblings of current node are all checked, set the parent node checked\n const parentNode = this.getNodeByUniqueKey(node.parentKey);\n if (parentNode) {\n this.checkParent(parentNode);\n }\n }\n }\n\n setNodeExpanded(uniqueKey: string, isExpanded: boolean): void {\n const node = this.getNodeByUniqueKey(uniqueKey);\n if (node) {\n node.expanded = isExpanded;\n }\n }\n\n /**\n * Check whether the value of a specific prop is true\n */\n private isPropValueTrue(node: Node, prop: string, list: string[]): void {\n const { key, uniqueKey, children } = node;\n if ((node as any)[prop]) {\n list.push(key ? key : uniqueKey);\n }\n if (children) {\n children.forEach((child) => {\n this.isPropValueTrue(child, prop, list);\n });\n }\n }\n\n getCheckedKeys(): string[] {\n const keys: string[] = [];\n this.nodes.forEach((node) => this.isPropValueTrue(node, 'checked', keys));\n return keys;\n }\n\n getExpandedKeys(): string[] {\n const keys: string[] = [];\n this.nodes.forEach((node) => this.isPropValueTrue(node, 'expanded', keys));\n return keys;\n }\n}\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BaseProps } from '../_utils/props';\nimport { TreeArrow } from '../_utils/components';\nimport CollapseTransition from '../collapse-transition';\nimport Checkbox from '../checkbox/checkbox';\nimport { Node } from './tree-instance';\n\ninterface TreeNodeProps extends BaseProps {\n node: Node;\n level: number;\n treeClassName: string;\n onCheckboxChange: (uniqueKey: string, e: React.ChangeEvent<HTMLInputElement>) => void;\n onExpandChange: (key: string, isExpanded: boolean, e: React.MouseEvent) => void;\n // tree props\n indent: number;\n blockNode: boolean;\n checkable: boolean;\n disabled: boolean;\n icon?: (isExpanded: boolean) => React.ReactNode;\n}\n\nconst TreeNode = (props: TreeNodeProps): JSX.Element => {\n const {\n indent,\n blockNode,\n level,\n node,\n checkable,\n className,\n treeClassName,\n onCheckboxChange,\n onExpandChange,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tree-node', configContext.prefixCls, customisedCls);\n const { title, checked, icon, expanded, disableCheckbox, indeterminate } = node;\n const nodeIcon = icon || props.icon;\n const disabled = node.disabled || props.disabled;\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_block`]: blockNode,\n [`${prefixCls}_disabled`]: disabled,\n });\n\n const switcherOnClick = (e: React.MouseEvent<HTMLSpanElement>) => {\n e.stopPropagation();\n onExpandChange(node.uniqueKey, !expanded, e);\n };\n\n const checkboxOnChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n e.stopPropagation();\n onCheckboxChange(node.uniqueKey, e);\n };\n\n return (\n <li className={cls} role=\"treeitem\" aria-expanded={node.children ? expanded : undefined}>\n <div className={`${prefixCls}__title`} style={{ paddingLeft: indent * level }}>\n <span className={`${prefixCls}__switcher`} onClick={switcherOnClick}>\n {node.children &&\n (nodeIcon ? (\n nodeIcon(expanded)\n ) : (\n <TreeArrow\n className={classNames(`${prefixCls}__arrow`, {\n [`${prefixCls}__arrow_active`]: expanded,\n })}\n />\n ))}\n </span>\n {checkable && (\n <Checkbox\n checked={checked}\n indeterminate={indeterminate}\n onChange={checkboxOnChange}\n disabled={disabled || disableCheckbox}\n />\n )}\n <span className={`${prefixCls}__label`} onClick={switcherOnClick}>\n {title}\n </span>\n </div>\n {node.children && (\n <CollapseTransition isShow={expanded}>\n <ul className={treeClassName} role=\"group\" aria-level={level + 1}>\n {node.children &&\n node.children.map((node) => (\n <TreeNode {...props} key={node.uniqueKey} node={node} level={level + 1} />\n ))}\n </ul>\n </CollapseTransition>\n )}\n </li>\n );\n};\n\nTreeNode.displayName = 'TreeNode';\n\nexport default TreeNode;\n","import React, { useContext, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TreeProps } from './types';\nimport { TreeInstance } from './tree-instance';\nimport TreeNode from './tree-node';\n\nconst Tree = React.forwardRef<HTMLUListElement, TreeProps>(\n (props: TreeProps, ref): JSX.Element => {\n const {\n data = [],\n defaultCheckedKeys = [],\n defaultExpandedKeys = [],\n defaultExpandAll = false,\n indent = 20,\n blockNode = true,\n checkable = false,\n disabled = false,\n onCheck,\n onExpand,\n className,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tree', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const treeInstance = useRef(\n new TreeInstance(data, defaultCheckedKeys, defaultExpandedKeys, defaultExpandAll)\n );\n const [treeNodes, setTreeNodes] = useState(treeInstance.current.nodes);\n\n const onCheckboxChange = (key: string, e: React.ChangeEvent<HTMLInputElement>) => {\n const tree = treeInstance.current;\n tree.setNodeChecked(key, e.currentTarget.checked);\n setTreeNodes([...treeInstance.current.nodes]);\n onCheck && onCheck(tree.getCheckedKeys(), e);\n };\n\n const onExpandChange = (key: string, isExpanded: boolean, e: React.MouseEvent) => {\n const tree = treeInstance.current;\n tree.setNodeExpanded(key, isExpanded);\n setTreeNodes([...treeInstance.current.nodes]);\n onExpand && onExpand(tree.getExpandedKeys(), e);\n };\n\n return (\n <ul className={cls} ref={ref} role=\"tree\" aria-level={0}>\n {treeNodes.map((item) => (\n <TreeNode\n {...props}\n key={item.uniqueKey}\n node={item}\n level={0}\n indent={indent}\n blockNode={blockNode}\n checkable={checkable}\n disabled={disabled}\n treeClassName={cls}\n onCheckboxChange={onCheckboxChange}\n onExpandChange={onExpandChange}\n />\n ))}\n </ul>\n );\n }\n);\n\nTree.displayName = 'Tree';\n\nexport default Tree;\n","import Tree from './tree';\n\nexport default Tree;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TypographyProps } from './types';\n\nconst Typography = React.forwardRef<HTMLParagraphElement, TypographyProps>(\n (props: TypographyProps, ref): JSX.Element => {\n const { className, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('typography', configContext.prefixCls, customisedCls);\n const cls = classNames(className, prefixCls);\n return (\n <div ref={ref} className={cls} {...otherProps}>\n {children}\n </div>\n );\n }\n);\n\nTypography.displayName = 'Typography';\n\nexport default Typography;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ParagraphProps } from './types';\n\nconst Paragraph = React.forwardRef<HTMLParagraphElement, ParagraphProps>(\n (props: ParagraphProps, ref): JSX.Element => {\n const { className, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('typography', configContext.prefixCls, customisedCls);\n const cls = classNames(className, prefixCls);\n return (\n <p ref={ref} className={cls} {...otherProps}>\n {children}\n </p>\n );\n }\n);\n\nParagraph.displayName = 'Paragraph';\n\nexport default Paragraph;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TextProps } from './types';\n\nconst tagGenerator = (\n isRequired: boolean,\n tag: string,\n element: React.ReactNode\n): React.ReactNode => {\n if (!isRequired) return element;\n return React.createElement(tag, {}, element);\n};\n\nconst Text = (props: TextProps): JSX.Element => {\n const {\n code = false,\n del = false,\n underline = false,\n strong = false,\n italic = false,\n mark = false,\n sub = false,\n sup = false,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n\n let Node = tagGenerator(code, 'code', children);\n Node = tagGenerator(del, 'del', Node);\n Node = tagGenerator(underline, 'u', Node);\n Node = tagGenerator(strong, 'strong', Node);\n Node = tagGenerator(italic, 'i', Node);\n Node = tagGenerator(mark, 'mark', Node);\n Node = tagGenerator(sub, 'sub', Node);\n Node = tagGenerator(sup, 'sup', Node);\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('typography', configContext.prefixCls, customisedCls);\n const cls = classNames(className, prefixCls);\n\n return (\n <span {...otherProps} className={cls}>\n {Node}\n </span>\n );\n};\n\nexport default Text;\n","import Heading from './heading';\nimport Typography from './typography';\nimport Paragraph from './paragraph';\nimport Text from './text';\n\ntype ITypography = typeof Typography & {\n Heading: typeof Heading;\n Paragraph: typeof Paragraph;\n Text: typeof Text;\n};\n\nconst DefaultTypo = Typography as ITypography;\nDefaultTypo.Heading = Heading;\nDefaultTypo.Paragraph = Paragraph;\nDefaultTypo.Text = Text;\n\nexport default DefaultTypo;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { HeadingProps } from './types';\n\nconst headingGenerator = (htmlType: string, displayName: string) => {\n const Component = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n (props: HeadingProps, ref): JSX.Element => {\n const { prefixCls: customisedCls, className, children, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('typography', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return React.createElement(\n htmlType,\n {\n ...otherProps,\n ref,\n className: cls,\n },\n children\n );\n }\n );\n\n Component.displayName = displayName;\n\n return Component;\n};\n\nconst Heading = (props: HeadingProps): JSX.Element | null => {\n const { level = 1, ...otherProps } = props;\n if (level < 1 || level > 6) {\n console.warn('The heading level parameter is invalid.');\n return null;\n }\n const Component = headingGenerator(`h${level}`, `H${level}`);\n return <Component {...otherProps} />;\n};\n\nexport default Heading;\n","type AjaxOption = {\n action: string;\n file: File;\n filename: string;\n method: string;\n onProgress: (percent: number) => void;\n onSuccess: (e: ProgressEvent) => void;\n onError: (e: ProgressEvent) => void;\n headers?: { [key: string]: string };\n withCredentials?: boolean;\n data?: { [key: string]: string };\n};\n\nexport default function ajax(option: AjaxOption): XMLHttpRequest {\n const { action, file, filename, method, onProgress, onSuccess, onError, headers, withCredentials, data } = option;\n const xhr = new XMLHttpRequest();\n xhr.open(method, action, true);\n xhr.onerror = onError;\n xhr.onload = onSuccess;\n if (xhr.upload) {\n xhr.upload.onprogress = function progress(e: ProgressEvent): void {\n if (e.total > 0) {\n const percent = (e.loaded / e.total) * 100;\n onProgress(percent);\n }\n };\n }\n\n if (withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n const formData = new FormData();\n formData.append(filename, file);\n // Add extra data\n if (data) {\n Object.keys(data).forEach((key) => {\n formData.append(key, data[key]);\n });\n }\n\n if (headers) {\n for (const item in headers) {\n if (headers[item]) {\n xhr.setRequestHeader(item, headers[item]);\n }\n }\n }\n\n xhr.send(formData);\n return xhr;\n}\n","import { CheckCircle, CloseCircle, LoadingCircle, PaperClip } from '../_utils/components';\nimport Progress from '../progress';\nimport { UploadFile } from './types';\n\ntype UploadListProps = {\n prefixCls: string;\n fileList: UploadFile[];\n onRemove: (file: UploadFile) => void;\n};\n\nconst UploadList = (props: UploadListProps): JSX.Element => {\n const { prefixCls, fileList, onRemove } = props;\n\n return (\n <ul className={`${prefixCls}__upload-list`}>\n {fileList.map((file) => {\n const { uid, name, status, percent } = file;\n return (\n <li key={uid} className={`${prefixCls}__upload-list-item`}>\n <div className={`${prefixCls}__upload-list-item-container`}>\n <PaperClip size={11} color=\"rgba(0, 0, 0, 0.45)\" />\n <span className={`${prefixCls}__upload-list-item-name`}>{name}</span>\n <span className={`${prefixCls}__upload-list-item-status`}>\n {status === 'done' && <CheckCircle size={16} />}\n {status === 'error' && <CloseCircle size={16} />}\n {status === 'uploading' && (\n <LoadingCircle\n style={{ animation: 'ty-rotate 1s linear infinite' }}\n color=\"#1890ff\"\n size={16}\n />\n )}\n </span>\n <span\n className={`${prefixCls}__upload-list-item-delete`}\n onClick={(): void => onRemove && onRemove(file)}>\n ✕\n </span>\n </div>\n {status === 'uploading' && (\n <Progress.Bar\n strokeColor=\"blue\"\n percent={percent}\n showInfo={false}\n style={{ marginTop: 5 }}\n strokeWidth={2}\n />\n )}\n </li>\n );\n })}\n </ul>\n );\n};\n\nUploadList.displayName = 'UploadList';\n\nexport default UploadList;\n","import React, { useState } from 'react';\nimport classNames from 'classnames';\n\nexport interface DraggerCoverProps {\n onFile: (files: FileList) => void;\n disabled: boolean;\n prefixCls?: string;\n children?: React.ReactNode;\n}\n\nconst DraggerCover = (props: DraggerCoverProps): JSX.Element => {\n const { onFile, disabled, prefixCls, children } = props;\n const [dragOver, setDragOver] = useState(false);\n const cls = classNames(`${prefixCls}__dragger-cover`, {\n [`${prefixCls}__dragger-cover_dragover`]: dragOver,\n [`${prefixCls}__dragger-cover_disabled`]: disabled,\n });\n\n const handleDragOver = (e: React.DragEvent<HTMLDivElement>, isOver: boolean): void => {\n e.preventDefault();\n if (!disabled) {\n setDragOver(isOver);\n }\n };\n\n const handleDrop = (e: React.DragEvent<HTMLDivElement>): void => {\n e.preventDefault();\n if (!disabled) {\n setDragOver(false);\n onFile(e.dataTransfer.files);\n }\n };\n\n return (\n <div\n className={cls}\n onDragOver={(e): void => handleDragOver(e, true)}\n onDragLeave={(e): void => handleDragOver(e, false)}\n onDrop={handleDrop}>\n {children}\n </div>\n );\n};\n\nDraggerCover.displayName = 'DraggerCover';\n\nexport default DraggerCover;\n","import React, { useContext, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport ajax from './ajax';\nimport UploadList from './upload-list';\nimport DraggerCover from './dragger-cover';\nimport { UploadFile, UploadProps } from './types';\n\nconst Upload = React.forwardRef<HTMLDivElement, UploadProps>((props, ref) => {\n const {\n defaultFileList = [],\n httpRequest = ajax,\n disabled = false,\n method = 'post',\n headers,\n withCredentials,\n accept,\n action,\n multiple,\n name,\n data,\n drag,\n beforeUpload,\n limit,\n onExceed,\n onProgress,\n onSuccess,\n onError,\n onChange,\n onRemove,\n tip,\n className,\n style,\n children,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('upload', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_disabled`]: disabled,\n });\n const fileRef = useRef<HTMLInputElement | null>(null);\n const [fileList, setFileList] = useState<UploadFile[]>(\n 'fileList' in props && Array.isArray(props.fileList) ? props.fileList : defaultFileList\n );\n\n const updateFileList = (updateFile: UploadFile, targetObj: Partial<UploadFile>): void => {\n setFileList((prevState) =>\n prevState.map((file: UploadFile) => {\n if (file.uid === updateFile.uid) {\n return { ...file, ...targetObj };\n } else {\n return file;\n }\n })\n );\n };\n\n const xhrOnProgress = (percent: number, uploadFile: UploadFile): void => {\n const updateObj: Partial<UploadFile> = { percent, status: 'uploading' };\n updateFileList(uploadFile, updateObj);\n onProgress && onProgress(percent, { ...uploadFile, ...updateObj }, fileList);\n };\n\n const xhrOnComplete = (e: ProgressEvent, uploadFile: UploadFile): void => {\n const updateObj: Partial<UploadFile> = { status: 'done' };\n updateFileList(uploadFile, updateObj);\n const updatedUploadFile = { ...uploadFile, ...updateObj };\n onSuccess && onSuccess(e, updatedUploadFile, fileList);\n onChange && onChange(updatedUploadFile, fileList);\n };\n\n const xhrOnError = (e: ProgressEvent, uploadFile: UploadFile): void => {\n const updateObj: Partial<UploadFile> = { status: 'error' };\n updateFileList(uploadFile, { status: 'error' });\n const updatedUploadFile = { ...uploadFile, ...updateObj };\n onError && onError(e, updatedUploadFile, fileList);\n onChange && onChange(updatedUploadFile, fileList);\n };\n\n const postRequest = (file: File): void => {\n // Create a upload file instance\n const uploadFile: UploadFile = {\n uid: 'file-' + Date.now(),\n name: file.name,\n status: 'ready',\n percent: 0,\n };\n setFileList((prevState) => [uploadFile, ...prevState]);\n\n httpRequest({\n headers,\n withCredentials,\n file,\n data,\n filename: name || file.name,\n method,\n action,\n onProgress: (percent: number) => xhrOnProgress(percent, uploadFile),\n onSuccess: (e: ProgressEvent) => xhrOnComplete(e, uploadFile),\n onError: (e: ProgressEvent) => xhrOnError(e, uploadFile),\n });\n };\n\n const uploadFiles = (files: FileList): void => {\n if (limit && fileList.length + files.length > limit) {\n onExceed && onExceed(files, fileList);\n return;\n }\n\n const postFiles = Array.from(files);\n postFiles.forEach((file) => {\n if (!beforeUpload) {\n postRequest(file);\n } else {\n const res = beforeUpload(file);\n if (res && res instanceof Promise) {\n res.then((processedFile: File) => postRequest(processedFile));\n } else if (res !== false) {\n postRequest(file);\n }\n }\n });\n };\n\n const handleTriggerOnClick = (): void => {\n if (!disabled) {\n if (fileRef.current) {\n (fileRef.current as HTMLInputElement).click();\n }\n }\n };\n\n const handleFileOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const files = e.currentTarget.files;\n if (!files) {\n return;\n }\n uploadFiles(files);\n if (fileRef.current) {\n (fileRef.current as HTMLInputElement).value = '';\n }\n };\n\n const handleOnRemove = (uploadFile: UploadFile): void => {\n setFileList((prevState) => prevState.filter((file) => file.uid !== uploadFile.uid));\n onRemove && onRemove(uploadFile);\n };\n\n return (\n <>\n <div ref={ref} className={cls} style={style} onClick={handleTriggerOnClick}>\n {drag ? (\n <DraggerCover prefixCls={prefixCls} onFile={uploadFiles} disabled={disabled}>\n {children}\n </DraggerCover>\n ) : (\n children\n )}\n {tip && <div className={`${prefixCls}__tip`}>{tip}</div>}\n <input\n ref={fileRef}\n accept={accept}\n multiple={multiple}\n type=\"file\"\n style={{ display: 'none' }}\n onChange={handleFileOnChange}\n />\n </div>\n <UploadList prefixCls={prefixCls} fileList={fileList} onRemove={handleOnRemove} />\n </>\n );\n});\n\nUpload.displayName = 'Upload';\n\nexport default Upload;\n","import Upload from './upload';\n\nexport default Upload;\n","import { useContext, ComponentType } from 'react';\nimport { Locale } from '../locale/types';\nimport IntlContext from './intl-context';\n\nexport function withLocale<T extends { locale?: Locale }>(WrappedComponent: ComponentType<T>) {\n const WithLocale = (props: T) => {\n const locale = useContext(IntlContext);\n return <WrappedComponent {...props} locale={locale} />;\n };\n WithLocale.displayName = `withLocale(${WrappedComponent.displayName || WrappedComponent.name || 'Component'})`;\n return WithLocale;\n}\n","import { Locale } from './types';\n\nconst zh_CN: Locale = {\n locale: 'zh_CN',\n DatePicker: {\n weeks: ['日', '一', '二', '三', '四', '五', '六'],\n months: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n today: '今天',\n selectDate: '请选择日期',\n selectMonth: '请选择月份',\n selectYear: '请选择年份',\n },\n TimePicker: {\n selectTime: '请选择时间',\n },\n Modal: {\n okText: '确定',\n cancelText: '取消',\n },\n PopConfirm: {\n okText: '确定',\n cancelText: '取消',\n },\n Empty: {\n description: '暂无数据',\n },\n Table: {\n sortAscend: '升序排列',\n sortDescend: '降序排列',\n cancelSort: '取消排序',\n selectAll: '全选',\n selectNone: '取消全选',\n emptyText: '暂无数据',\n },\n ColorPicker: {\n hex: 'HEX',\n rgb: 'RGB',\n hsb: 'HSB',\n },\n};\n\nexport default zh_CN;\n","import { useSyncExternalStore, useCallback } from 'react';\n\nexport type ThemeMode = 'light' | 'dark' | 'system';\n\nconst STORAGE_KEY = 'ty-theme';\n\nfunction getSystemTheme(): 'light' | 'dark' {\n if (typeof window === 'undefined') return 'light';\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n}\n\nfunction applyTheme(mode: ThemeMode): void {\n if (typeof document === 'undefined') return;\n const html = document.documentElement;\n if (mode === 'system') {\n html.removeAttribute('data-theme');\n } else {\n html.setAttribute('data-theme', mode);\n }\n}\n\nfunction readStoredTheme(): ThemeMode {\n if (typeof localStorage === 'undefined') return 'system';\n return (localStorage.getItem(STORAGE_KEY) as ThemeMode) || 'system';\n}\n\n// ---- Shared store ----\nlet currentMode: ThemeMode = readStoredTheme();\nconst listeners = new Set<() => void>();\n\nfunction getSnapshot(): ThemeMode {\n return currentMode;\n}\n\nfunction getServerSnapshot(): ThemeMode {\n return 'system';\n}\n\nfunction subscribe(cb: () => void): () => void {\n listeners.add(cb);\n return () => listeners.delete(cb);\n}\n\nfunction setThemeMode(next: ThemeMode): void {\n currentMode = next;\n localStorage.setItem(STORAGE_KEY, next);\n applyTheme(next);\n listeners.forEach((cb) => cb());\n}\n\n// Listen for system preference changes at module level\nif (typeof window !== 'undefined') {\n window\n .matchMedia('(prefers-color-scheme: dark)')\n .addEventListener('change', () => {\n if (currentMode === 'system') {\n // Force re-render for all subscribers so resolvedTheme updates\n listeners.forEach((cb) => cb());\n }\n });\n}\n\n// ---- Hook ----\nexport function useTheme() {\n const mode = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n const resolvedTheme: 'light' | 'dark' = mode === 'system' ? getSystemTheme() : mode;\n\n const setMode = useCallback((newMode: ThemeMode) => {\n setThemeMode(newMode);\n }, []);\n\n const toggle = useCallback(() => {\n const resolved = currentMode === 'system' ? getSystemTheme() : currentMode;\n setThemeMode(resolved === 'light' ? 'dark' : 'light');\n }, []);\n\n return { mode, resolvedTheme, setMode, toggle };\n}\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__442__","__WEBPACK_EXTERNAL_MODULE__3__","m","createRoot","hydrateRoot","f","k","Symbol","for","l","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","Fragment","jsx","jsxs","hasOwn","classNames","classes","i","arguments","length","arg","appendClass","parseValue","Array","isArray","apply","toString","includes","value","newClass","default","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","definition","o","defineProperty","enumerable","get","obj","prop","r","toStringTag","ConfigContext","React","prefixCls","componentSize","shimmer","space","getPrefixCls","suffixCls","contextPrefix","customisedCls","ArrowDown","size","color","otherProps","_jsx","width","height","viewBox","children","fill","PaperClip","CheckCircle","CloseCircle","WarningCircle","InfoCircle","LoadingCircle","Check","Close","_jsxs","Eye","EyeClose","TreeArrow","_extends","assign","bind","t","_objectWithoutPropertiesLoose","indexOf","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","create","constructor","replaceClassName","origClass","classToRemove","replace","RegExp","forceReflow","node","scrollTop","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","context","_this","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","state","status","nextCallback","getDerivedStateFromProps","_ref","prevState","_proto","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","timeout","mounting","nodeRef","performEnter","performExit","setState","_this2","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","onEnter","safeSetState","onEntering","onTransitionEnd","onEntered","_this3","onExit","onExiting","onExited","cancel","nextState","callback","setNextCallback","_this4","active","event","handler","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","setTimeout","render","_this$props","childProps","TransitionGroupContext","Provider","only","noop","contextType","propTypes","removeClass","split","forEach","element","className","classList","remove","setAttribute","baseVal","CSSTransition","_len","args","_key","concat","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","add","contains","hasClass","_addClass","_this$appliedClasses$","base","done","prefix","animation","wrapper","displayName","Alert","forwardedRef","iconSize","title","icon","closeText","closable","afterClose","onClose","style","isShow","setShow","useState","useRef","configContext","useContext","cls","closeIcon","onClick","borderTopWidth","paddingTop","marginTop","paddingBottom","borderBottomWidth","marginBottom","role","renderIcon","AnchorContext","getScroll","isVertical","window","elementProp","getRect","getBoundingClientRect","top","left","bottom","right","document","documentElement","clientWidth","clientHeight","getNodeHeight","innerHeight","Sticky","offsetTop","offsetBottom","container","onChange","placeholderRef","stickyRef","stickyStyle","setStickyStyle","placeholderStyle","setPlaceholderStyle","stickyContainer","setStickyContainer","stickyMode","getStickyMode","mode","offset","getOffset","useCallback","placeholderNode","rect","containerRect","containerScrollTop","containerScrollLeft","updateStickyStyle","stuck","updatePlaceholderStyle","updateNodePosition","stickyNode","placeholderOffset","containerHeight","placeholderHeight","offsetHeight","stickyHeight","position","useEffect","addEventListener","removeEventListener","Anchor","affix","getContainer","activeId","setActiveId","anchorRef","inkBallRef","linksRef","Set","registerLink","href","unregisterLink","delete","updateInk","anchorEl","activeNodes","getElementsByClassName","inkEl","linkNode","targetEl","querySelector","anchorRect","targetRect","getScrollContainer","scrollToAnchor","anchorName","getElementById","elementRect","scrollIntoView","handleLinkClick","location","url","pathname","protocol","host","history","pushState","path","initHashScroll","search","anchor","URLSearchParams","hash","handleScroll","links","containerTop","newActiveId","maxTop","firstId","firstTop","Infinity","id","el","elTop","prev","scrollTarget","contextValue","useMemo","anchorContent","map","child","childElement","AnchorLink","anchorContext","isActive","preventDefault","target","DefaultAnchor","Link","AspectRatio","ratio","useClickOutside","listener","useCombobox","options","items","searchValue","filterOption","isOpen","controlledOpen","defaultOpen","disabled","defaultActiveFirstOption","onOpenChange","onSelect","isControlled","internalOpen","setInternalOpen","focusedIndex","setFocusedIndex","matchesFilter","item","label","String","toLowerCase","filteredItems","filter","openDropdown","closeDropdown","handleKeyDown","dir","next","KeyCode","Input","clearable","defaultValue","suffix","onEnterPress","onKeyDown","onClearClick","inputSize","prefixRef","suffixRef","setValue","inputPadding","setInputPadding","paddingLeft","paddingRight","prefixNode","suffixNode","prefixWidth","offsetWidth","suffixWidth","padding","val","currentTarget","keyCode","ENTER","getWindow","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","Math","max","min","round","getUAString","uaData","navigator","userAgentData","brands","brand","version","join","userAgent","isLayoutViewport","test","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","x","offsetLeft","y","getWindowScroll","win","scrollLeft","pageXOffset","pageYOffset","getNodeName","nodeName","getDocumentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","abs","getParentNode","assignedSlot","parentNode","getScrollParent","body","listScrollParents","list","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","css","transform","perspective","contain","willChange","getContainingBlock","auto","basePlacements","start","end","viewport","popper","variationPlacements","reduce","acc","placement","modifierPhases","order","modifiers","Map","visited","result","sort","modifier","name","requires","requiresIfExists","dep","has","depModifier","push","set","DEFAULT_OPTIONS","strategy","areValidElements","some","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","fn","pending","orderedModifiers","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","merged","orderModifiers","existing","data","keys","enabled","_ref$options","effect","cleanupFn","update","forceUpdate","_state$elements","rects","reset","index","_state$orderedModifie","_state$orderedModifie2","_options","Promise","resolve","then","destroy","onFirstUpdate","passive","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","getOppositePlacement","matched","getOppositeVariationPlacement","parent","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getClippingRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","axis","within","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$scroll","_options$resize","resize","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","removeAttribute","initialStyles","margin","property","attribute","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","find","slice","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","v","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","ReactDOM","trigger","defaultVisible","flip","theme","usePortal","mouseEnterDelay","mouseLeaveDelay","biZoom","content","visible","onVisibleChange","popupVisible","setPopupVisible","targetRef","popupRef","delayDisplayPopupTimer","delayHidePopupTimer","popperRef","elementProps","displayPopup","hidePopup","delayDisplayPopup","delayHidePopup","handlePopupOnMouseEnter","clearTimeout","handlePopupOnMouseLeave","handleTargetOnMouseEnter","handleTargetOnMouseLeave","documentOnClick","popup","handleTargetOnMouseClick","transitionOnEnter","createPopper","transitionOnExited","popperInstance","renderContent","_Fragment","Portal","AutoComplete","placeholder","allowClear","notFoundContent","onSearch","onFocus","onBlur","autoCompleteSize","inputValue","setInputValue","wrapperRef","inputRef","handleOptionSelect","opt","combo","open","setWrapperRef","dropdownContent","optCls","onMouseEnter","showDropdown","Popup","renderOverlay","selectorWidth","minWidth","handleClear","Avatar","shape","presence","alt","src","outerEl","textEl","scale","setScale","fontSize","lineHeight","textElWidth","outerElWidth","renderChildren","textStyle","transformString","msTransform","WebkitTransform","AvatarGroup","gap","idx","marginLeft","DefaultAvatar","Group","visibilityHeight","setVisible","getDistanceFromTop","targetNode","setScrollToTop","handleOnScroll","startTime","Date","now","step","time","easeInOutCubic","cc","requestAnimationFrame","Badge","count","dot","processing","showZero","badgeStyle","dotCls","backgroundColor","Breadcrumb","separator","BreadcrumbItem","DefaultBreadcrumb","Item","Button","btnType","loading","block","btnSize","ButtonGroup","DefaultButton","locale","DatePicker","weeks","months","today","selectDate","selectMonth","selectYear","TimePicker","selectTime","Modal","okText","cancelText","PopConfirm","Empty","description","Table","sortAscend","sortDescend","cancelSort","selectAll","selectNone","emptyText","ColorPicker","hex","rgb","hsb","en_US","useLocale","config","intl","IntlContext","TODAY","THIS_YEAR","getFullYear","THIS_MONTH","getMonth","THIS_DAY","getDate","getMonthDays","year","month","day","isLeapYear","getMonthDaysArray","date","dayArrays","days","preYear","preMonth","getPrevMonthAndYear","preDays","thisMonthFirstDayInWeek","getWeekday","getDay","isThisMonth","isSameDate","dateA","dateB","dateAYear","dateAMonth","dateADate","dateBYear","dateBMonth","dateBDate","isToday","MONTH_NAMES_EN","Calendar","fullscreen","disabledDate","dateCellRender","monthCellRender","headerRender","defaultMode","onPanelChange","_value","_mode","selectedDate","setSelectedDate","panelDate","setPanelDate","setMode","handleDateSelect","handlePanelChange","newDate","newMode","handleModeChange","goPrev","getPrevMonthDate","getPrevYearDate","goNext","getNextMonthDate","getNextYearDate","renderHeader","onModeChange","monthName","renderMonthPanel","panelDays","week","scope","from","_","row","dayCell","col","isDisabled","cellCls","monthLabel","monthDate","isCurrentMonth","handleMonthSelect","Card","bordered","hoverable","extra","header","headerStyle","actions","footer","footerStyle","CardContent","DefaultCard","Content","Carousel","forwardRef","dots","arrows","autoplay","autoplaySpeed","dotPlacement","easing","speed","infinite","draggable","waitForAnimate","beforeChange","afterChange","slideCount","slides","toArray","trackRef","outerRef","setCurrent","isAnimating","setIsAnimating","animatingRef","dragStartX","dragDelta","isDragging","isFade","goTo","dontAnimate","useImperativeHandle","handleTransitionEnd","timer","setInterval","clearInterval","handleDragStart","touches","clientX","handleDragMove","handleDragEnd","threshold","paused","setPaused","showDots","dotsClassName","isVerticalDot","tabIndex","onMouseLeave","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","opacity","transition","renderScrollxTrack","pct","trackStyle","CarouselItem","DefaultCarousel","getOptionsByValue","found","Cascader","expandTrigger","displayRender","changeOnSelect","onDropdownVisibleChange","cascaderSize","dropdownRef","setOpen","dropdownStyle","setDropdownStyle","selectedValue","setSelectedValue","activeColumns","setActiveColumns","hoveredPath","setHoveredPath","cols","scrollY","scrollX","zIndex","handleClickOutside","selectedOptions","labels","displayText","dropdown","createPortal","columnOptions","level","option","hasChildren","itemCls","newPath","isLeaf","handleOptionHover","toggleOpen","stopPropagation","CheckboxGroupContext","Checkbox","defaultChecked","indeterminate","checkboxRef","checkboxGroupContext","initialChecked","checked","setChecked","CheckboxGroup","newValue","DefaultCheckbox","ConfigProvider","IntlProvider","fallbackCopy","textArea","createElement","appendChild","select","execCommand","removeChild","CopyToClipboard","text","async","clipboard","writeText","copy","ScreenTypes","Col","span","sizeClassObj","sizeProps","propSize","CollapseContext","activeKeys","activeKey","Collapse","showArrow","deletable","accordion","defaultActiveKey","currentActiveKey","activeItems","setActiveItems","onItemClick","itemKey","splice","updateActiveItems","itemProps","CollapseTransition","leaveTimerRef","enterTimerRef","beforeEnter","display","afterEnter","beforeLeave","afterLeave","leave","triggerChange","isCollapsed","enterTimer","leaveTimer","richNode","CollapsePanel","onHeaderOnClick","itemRef","panelId","useId","headerId","headerOnClick","removeItem","headerCls","arrowCls","DefaultCollapse","Panel","hexToHsb","parseInt","hue","saturation","brightness","s","hsbToHex","bNorm","bl","toHex","padStart","formatColor","format","toFixed","hsbToRgb","parseColor","input","startsWith","rgbMatch","match","parseFloat","presets","showAlpha","defaultFormat","onFormatChange","setColor","setFormat","dragging","setDragging","spectrumRef","hueRef","alphaRef","emitChange","formatted","updateColor","updates","newColor","updateSpectrumFromEvent","clientY","updateHueFromEvent","updateAlphaFromEvent","handleMove","handleUp","hexColor","hueColor","nativeEvent","ev","background","handleFormatChange","formats","toUpperCase","preset","handlePresetClick","Countdown","millisec","onFinish","setDate","hour","sec","timerRef","startInterval","getTime","floor","millisecond","PickerHeader","startDecade","unit","yearUnit","panelOnChange","handleClick","PickerMonth","panelYear","selectedMonth","isCurrentYear","monthIdx","PickerYear","startYear","selectedYear","years","isOutOfRange","CalendarIcon","ClearIcon","formatDate","picker","customFormat","showToday","inputReadOnly","renderExtraFooter","suffixIcon","getFormatByPicker","fireChange","handleYearSelect","hasValue","displayValue","defaultPlaceholder","renderPanel","PickerDay","handleToday","setHours","readOnly","colon","labelCls","colSpan","layout","renderCols","renderType","Descriptions","column","rows","getRows","leftSpans","columns","numOfChildren","itemNode","displayColon","Row","DescriptionsItem","DefaultDesc","Divider","dashed","align","Dropdown","overlay","childrenProps","handleTargetOnClick","overlayProps","overlayClassName","selectedIndex","Overlay","blurred","clickCallback","Drawer","unmountOnClose","maskType","maskClosable","maskStyle","drawerVisible","setDrawerVisible","sty","previousFocusRef","titleId","activeElement","focusable","querySelectorAll","first","last","shiftKey","focus","image","imageStyle","descStyle","stroke","strokeWidth","fillRule","cx","cy","rx","ry","gapSizes","sm","md","lg","Flex","vertical","wrap","justify","flex","component","Component","mergedStyle","flexDirection","flexWrap","justifyContent","alignItems","Flip","reverse","innerCls","FlipItem","DefaultFlip","deepCopy","getValueFromEvent","FormInstance","rules","errors","listeners","initValues","values","getFieldValues","getFieldValue","setFieldValue","notify","setFieldValues","getFiledErrors","getFieldError","setFieldError","setFiledRules","resetFields","validateField","errMessages","rule","res","message","required","enum","enumVal","pattern","validator","whitespace","segment","trim","validate","validateFields","subscribe","FormInstanceContext","FormOptionsContext","labelCol","wrapperCol","validateTrigger","Form","initialValues","form","onFinishFailed","formRef","onSubmit","formIns","onReset","formOnReset","gutter","gutterSide","normalisedGutter","rowGutterStyle","marginRight","rowGap","gutterStyle","FormItem","valueGetter","valuePropName","helper","notice","itemLabelCol","itemWrapperCol","error","setError","hasErrLabel","setHasErrLabel","errorRef","isRequired","valueProp","getSpanAndOffset","getCol","isSelf","labelSpan","labelOffset","wrapperSpan","wrapperOffset","htmlFor","DefaultForm","useForm","Icon","spin","Image","objectFit","lazy","fallback","observer","IntersectionObserver","entries","obs","entry","isIntersecting","lazyImage","unobserve","imgNode","observe","disconnect","InputGroup","InputGroupAddon","noBorder","DefaultInput","Addon","isValid","isNaN","toPrecision","precision","InputNumber","controls","Number","NEGATIVE_INFINITY","POSITIVE_INFINITY","autoComplete","raw","visibleOnClick","Keyboard","SidebarContext","addSidebar","removeSidebar","Layout","hasSidebar","setHasSidebar","generator","_props","tagName","defaultCls","SubComponent","Header","Footer","Sidebar","defaultCollapsed","collapsedWidth","collapsible","onCollapse","sideCollapsed","setSideCollapsed","collapsed","sidebarContext","sidebarWidth","outerStyle","maxWidth","_collapseBtnOnClick","collapsedVal","DefaultLayout","external","underline","useVirtualScroll","itemCount","itemHeight","overscan","setScrollTop","onScroll","totalHeight","visibleRange","ceil","offsetY","currentProp","defaultCurrent","pageSize","pageSizeProp","defaultPageSize","total","setPageSize","renderItem","getItems","num","basic","itemDisabled","ariaLabel","curr","itemOnClick","ITEM_HEIGHT_MAP","List","dataSource","grid","virtual","itemHeightProp","pagination","listSize","console","warn","isVirtual","currentPage","setCurrentPage","showPagination","paginationConfig","totalItems","activePage","bodyCls","bodyStyle","renderItems","visibleItems","paginatedData","rendered","gridTemplateColumns","Pagination","page","handlePageChange","ListItem","action","ListItemMeta","avatar","DefaultList","ItemMeta","Loader","indicator","tip","indicatorCls","containerCls","Indicator","LoadingBar","didMount","rafId","loadingBar","outerDiv","unmount","move","unmountDom","createComponent","succeed","cancelAnimationFrame","fail","MenuContext","inlineIndent","Menu","defaultIndex","activeIndex","setActiveIndex","SubMenuContext","MenuItem","menuContext","subMenuContext","onMenuItemClick","_createElement","SubMenu","_onMenuItemClick","menuOpen","setMenuOpen","subMenuCls","nonRootSubMenu","rightPopupMenu","menuItemCls","titleCls","titleRef","handleOnClick","handleMouse","toggle","renderChildrenList","titleNode","MenuItemGroup","MenuDivider","DefaultMenu","ItemGroup","Message","duration","willUnmount","rootMap","containers","lastContainer","div","updatedTop","containerDiv","elementTop","messageContainer","warning","NativeSelect","NativeOption","NativeOptGroup","DefaultSelect","Option","OptGroup","centered","confirmText","confirmLoading","onConfirm","onCancel","onCancelProp","onCloseProp","confirmButtonProps","cancelButtonProps","modalVisible","setModalVisible","modalReducer","ModalContext","createContext","ModalWithContext","modals","controlledModals","dispatch","controlledDispatch","internalModals","internalDispatch","useReducer","useModal","ctx","Error","show","close","queryName","str","word","updatedPosition","elementPosition","Notification","notificationContainer","Popover","strokePresetColors","Circle","percent","strokeLinecap","strokeColor","percentage","strokeBgCls","relativeStrokeWidth","trackPath","radius","_circlePathStyle","perimeter","_perimeter","PI","strokeDasharray","strokeDashoffset","Bar","showInfo","innerText","backgroundType","effectCls","RadioGroupContext","Radio","radioRef","radioGroupContext","RadioGroup","DefaultRadio","RateItem","half","character","getColor","Rate","tmpValue","setTmpValue","newVal","Result","subtitle","ScrollIndicator","fixed","setWidth","useEventListener","eventName","savedHandler","eventListener","numericWidth","Segmented","segSize","normalizedOptions","normalizeOptions","selected","setSelected","optDisabled","SelectContext","Select","showSearch","maxTagCount","optionsProp","optionRender","labelRender","isMultiple","defaultVal","selectVal","setSelectVal","setSearchValue","searchInputRef","listboxId","selectSize","hasSomeValue","flatOptions","extractFromChildren","nodes","handleSelect","optValue","arr","handleComboSelect","getLabelForValue","handleSearchChange","hasValueProp","filterChildren","filteredGroupChildren","Boolean","renderDropdownContent","filtered","isSelected","renderedContent","contentArray","handleSelectorClick","renderSelectorContent","displayTags","remaining","handleRemoveTag","SelectOption","setActive","displayContent","SelectOptGroup","Skeleton","rounded","Tooltip","Slider","track","tooltipPlacement","tooltipVisible","tipFormatter","marks","onAfterChange","sliderValues","setSliderValues","isHovering","setHovering","railRef","thumbIdx","mouseStartPos","trackStartPos","currVal","railNode","trackNode","getValueToPercent","handleOnChange","getWidthToValue","numOfSteps","handleThumbOnDragging","sliderVal","handleThumbOnDragEnd","isDotActive","dotVal","handleThumbOnMouseLeave","renderMark","mark","calculateTrackStyle","leftValue","rightValue","markOffset","val1","val2","getRangeValue","handleThumbOnMouseEnter","handleThumbOnMouseDown","trackOffset","capture","getSteps","stepWidth","stepVal","Resizer","onResizerMouseDown","delta","synthetic","dispatchEvent","MouseEvent","SplitContext","SplitPane","paneStyle","Split","resizerSize","defaultSize","onDragStarted","onDragFinished","defaultStyle","resizerProps","pane1Size","setPane1Size","paneRef","isActiveMove","lastPosition","getSizeNumber","minSize","maxSize","pane","newSize","newPosition","minHeight","initialSize","childrenList","Pane","SplitButton","dropdownPlacement","dropdownTrigger","spaceSize","Space","getItemStyle","SpeedDialContext","SpeedDial","openIcon","onOpen","containerRef","handleOpen","handleClose","handleToggle","buttonCls","actionsCls","hoverProps","SpeedDialAction","tooltip","getDefaultTooltipPlacement","tooltipCls","DefaultSpeedDial","Action","StepsContext","labelPlacement","clickable","Steps","stepIndex","StepsItem","stepsContext","stepStatus","getStatus","stepItemOnClick","iconNode","DefaultSteps","Step","Statistic","groupSeparator","valueStyle","formatter","formatValue","parts","StrengthIndicator","blocks","colors","displayLabels","bgColor","Switch","checkedText","uncheckedText","switchSize","labelOnClick","ROW_HEIGHT_MAP","getRowKey","record","rowKey","getValue","dataIndex","rowSelection","showHeader","rowClassName","onRow","tableSize","sortField","setSortField","sortOrder","setSortOrder","selectedKeys","setSelectedKeys","selectedRowKeys","defaultSortOrder","sortedData","sorter","sorted","sorterFn","va","vb","rowHeight","tableStyle","wrapperStyle","maxHeight","allPageKeys","allSelected","someSelected","colCount","renderRow","rowIndex","rowCls","rowProps","handleSelectRow","isRadio","newKeys","newRows","colIndex","colKey","tdCls","ellipsis","theadCls","handleSelectAll","allKeys","thCls","newOrder","field","handleSort","renderTbody","topHeight","bottomHeight","Tabs","tabPosition","animated","destroyInactiveTabPane","hideAdd","tabBarExtraContent","tabBarGutter","tabBarStyle","onTabClick","onEdit","resolvedItems","tab","tabKey","forceRender","resolveItemsFromChildren","currentKey","setCurrentKey","getDefaultKey","inkStyle","setInkStyle","baseId","scrollOffset","setScrollOffset","showNav","setShowNav","navWrapRef","navListRef","tabRefs","isHorizontal","checkOverflow","handleTabClick","getMaxScroll","elLeft","elRight","isExtraObj","extraLeft","extraRight","navScrollStyle","prevDisabled","nextDisabled","renderPanels","scrollPrev","tabCls","handleTabKeyDown","itemIndex","enabledItems","currentEnabledIdx","findIndex","targetItem","handleRemove","scrollNext","destroyInactive","activeIdx","containerStyle","panelCls","TabPanel","DefaultTabs","PresetColors","Tag","tagStyle","borderColor","defaultPrevented","CheckableTag","DefaultTag","Textarea","limit","counter","setCount","textareaOnChange","maxLength","Timeline","TimelineItem","dotStyle","DefaultTimeline","disabledItems","panelRef","itemRefs","scrollToItem","smooth","scrollTo","behavior","ClockIcon","generateSteps","showsSeconds","showsMinutes","use12Hours","hourStep","minuteStep","secondStep","disabledTime","hideDisabledOptions","updateTime","setMinutes","setSeconds","disabled12","disabledHours","currentHour","getHours","disabledMinutes","currentMinute","getMinutes","disabledSeconds","hours","minutes","seconds","filteredHours","filteredMinutes","filteredSeconds","getSeconds","period","formatTime","TimePanel","TransferPanel","checkedKeys","allDisabled","query","setQuery","filteredData","checkableData","isAllChecked","isIndeterminate","Transfer","buttonTexts","titles","placeholders","getDataKeys","rightKeys","rightData","leftData","sourceData","setSourceData","targetData","setTargetData","leftCheckedKeys","setLeftCheckedKeys","rightCheckedKeys","setRightCheckedKeys","addToRight","currKeys","addToLeft","leftKeys","targetKey","TreeInstance","defaultCheckedKeys","defaultExpandedKeys","defaultExpandAll","treeNodes","handleTreeNode","parentKey","disableCheckbox","uniqueKey","expanded","getNodeByUniqueKey","numOfChecked","checkChildren","isChecked","checkParent","setNodeChecked","setNodeExpanded","isExpanded","isPropValueTrue","getCheckedKeys","getExpandedKeys","TreeNode","indent","blockNode","checkable","treeClassName","onCheckboxChange","onExpandChange","nodeIcon","switcherOnClick","Tree","onCheck","onExpand","treeInstance","setTreeNodes","tree","Typography","Paragraph","tagGenerator","tag","DefaultTypo","Heading","headingGenerator","htmlType","Text","code","del","strong","italic","sub","sup","Node","ajax","file","filename","method","onProgress","onSuccess","onError","headers","withCredentials","xhr","XMLHttpRequest","onerror","onload","upload","onprogress","loaded","formData","FormData","append","setRequestHeader","send","UploadList","fileList","onRemove","uid","Progress","DraggerCover","onFile","dragOver","setDragOver","handleDragOver","isOver","onDragOver","onDragLeave","onDrop","dataTransfer","files","Upload","defaultFileList","httpRequest","accept","multiple","drag","beforeUpload","onExceed","fileRef","setFileList","updateFileList","updateFile","targetObj","postRequest","uploadFile","xhrOnProgress","updateObj","xhrOnComplete","updatedUploadFile","xhrOnError","uploadFiles","processedFile","handleTriggerOnClick","click","withLocale","WrappedComponent","WithLocale","STORAGE_KEY","getSystemTheme","matchMedia","matches","currentMode","localStorage","getItem","getSnapshot","getServerSnapshot","cb","setThemeMode","setItem","applyTheme","useTheme","useSyncExternalStore","resolvedTheme"],"sourceRoot":""}
1
+ {"version":3,"file":"tiny.min.js","mappings":"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","sources":["webpack://tiny/webpack/universalModuleDefinition","webpack://tiny/./node_modules/react-dom/client.js","webpack://tiny/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://tiny/./node_modules/react/jsx-runtime.js","webpack://tiny/external umd {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://tiny/external umd {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack://tiny/./node_modules/classnames/index.js","webpack://tiny/webpack/bootstrap","webpack://tiny/webpack/runtime/compat get default export","webpack://tiny/webpack/runtime/define property getters","webpack://tiny/webpack/runtime/hasOwnProperty shorthand","webpack://tiny/webpack/runtime/make namespace object","webpack://tiny/./components/config-provider/config-context.tsx","webpack://tiny/./components/_utils/general.ts","webpack://tiny/./components/_utils/components.tsx","webpack://tiny/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://tiny/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://tiny/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://tiny/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://tiny/./node_modules/dom-helpers/esm/removeClass.js","webpack://tiny/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://tiny/./node_modules/react-transition-group/esm/utils/reflow.js","webpack://tiny/./node_modules/react-transition-group/esm/Transition.js","webpack://tiny/./node_modules/react-transition-group/esm/CSSTransition.js","webpack://tiny/./node_modules/dom-helpers/esm/addClass.js","webpack://tiny/./node_modules/dom-helpers/esm/hasClass.js","webpack://tiny/./components/transition/transition.tsx","webpack://tiny/./components/transition/index.tsx","webpack://tiny/./components/alert/alert.tsx","webpack://tiny/./components/alert/index.tsx","webpack://tiny/./components/anchor/anchor-context.ts","webpack://tiny/./components/_utils/dom.ts","webpack://tiny/./components/sticky/sticky.tsx","webpack://tiny/./components/sticky/index.tsx","webpack://tiny/./components/anchor/anchor.tsx","webpack://tiny/./components/anchor/anchor-link.tsx","webpack://tiny/./components/anchor/index.tsx","webpack://tiny/./components/aspect-ratio/aspect-ratio.tsx","webpack://tiny/./components/aspect-ratio/index.tsx","webpack://tiny/./components/_utils/hooks.tsx","webpack://tiny/./components/_utils/useCombobox.ts","webpack://tiny/./components/_utils/enum.ts","webpack://tiny/./components/input/input.tsx","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/math.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://tiny/./node_modules/@popperjs/core/lib/enums.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://tiny/./node_modules/@popperjs/core/lib/createPopper.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/within.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://tiny/./node_modules/@popperjs/core/lib/popper.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://tiny/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://tiny/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://tiny/./components/portal/index.tsx","webpack://tiny/./components/portal/portal.tsx","webpack://tiny/./components/popup/index.tsx","webpack://tiny/./components/popup/popup.tsx","webpack://tiny/./components/auto-complete/auto-complete.tsx","webpack://tiny/./components/avatar/avatar.tsx","webpack://tiny/./components/avatar/avatar-group.tsx","webpack://tiny/./components/avatar/index.tsx","webpack://tiny/./components/back-top/index.tsx","webpack://tiny/./components/back-top/back-top.tsx","webpack://tiny/./components/badge/badge.tsx","webpack://tiny/./components/badge/index.tsx","webpack://tiny/./components/breadcrumb/breadcrumb.tsx","webpack://tiny/./components/breadcrumb/breadcrumb-item.tsx","webpack://tiny/./components/breadcrumb/index.tsx","webpack://tiny/./components/button/button.tsx","webpack://tiny/./components/button/button-group.tsx","webpack://tiny/./components/button/index.tsx","webpack://tiny/./components/locale/en_US.ts","webpack://tiny/./components/intl-provider/intl-context.tsx","webpack://tiny/./components/_utils/use-locale.ts","webpack://tiny/./components/date-picker/utils.ts","webpack://tiny/./components/calendar/calendar.tsx","webpack://tiny/./components/calendar/index.tsx","webpack://tiny/./components/card/card.tsx","webpack://tiny/./components/card/card-content.tsx","webpack://tiny/./components/card/index.tsx","webpack://tiny/./components/carousel/carousel.tsx","webpack://tiny/./components/carousel/carousel-item.tsx","webpack://tiny/./components/carousel/index.tsx","webpack://tiny/./components/cascader/cascader.tsx","webpack://tiny/./components/cascader/index.tsx","webpack://tiny/./components/checkbox/checkbox-group-context.ts","webpack://tiny/./components/checkbox/checkbox.tsx","webpack://tiny/./components/checkbox/checkbox-group.tsx","webpack://tiny/./components/checkbox/index.tsx","webpack://tiny/./components/intl-provider/index.tsx","webpack://tiny/./components/intl-provider/intl-provider.tsx","webpack://tiny/./components/config-provider/config-provider.tsx","webpack://tiny/./components/config-provider/index.tsx","webpack://tiny/./components/copy-to-clipboard/copy-to-clipboard.tsx","webpack://tiny/./components/copy-to-clipboard/index.tsx","webpack://tiny/./components/grid/col.tsx","webpack://tiny/./components/col/index.tsx","webpack://tiny/./components/collapse/collapse-context.ts","webpack://tiny/./components/collapse/collapse.tsx","webpack://tiny/./components/collapse-transition/collapse-transition.tsx","webpack://tiny/./components/collapse-transition/index.tsx","webpack://tiny/./components/collapse/collapse-panel.tsx","webpack://tiny/./components/collapse/index.tsx","webpack://tiny/./components/color-picker/utils.ts","webpack://tiny/./components/color-picker/color-picker.tsx","webpack://tiny/./components/color-picker/index.tsx","webpack://tiny/./components/countdown/countdown.tsx","webpack://tiny/./components/countdown/index.tsx","webpack://tiny/./components/date-picker/picker-header.tsx","webpack://tiny/./components/date-picker/picker-day.tsx","webpack://tiny/./components/date-picker/picker-month.tsx","webpack://tiny/./components/date-picker/picker-year.tsx","webpack://tiny/./components/date-picker/date-picker.tsx","webpack://tiny/./components/date-picker/index.tsx","webpack://tiny/./components/descriptions/col.tsx","webpack://tiny/./components/descriptions/row.tsx","webpack://tiny/./components/descriptions/descriptions.tsx","webpack://tiny/./components/descriptions/descriptions-item.tsx","webpack://tiny/./components/descriptions/index.tsx","webpack://tiny/./components/divider/divider.tsx","webpack://tiny/./components/divider/index.tsx","webpack://tiny/./components/dropdown/dropdown.tsx","webpack://tiny/./components/dropdown/index.tsx","webpack://tiny/./components/overlay/overlay.tsx","webpack://tiny/./components/overlay/index.tsx","webpack://tiny/./components/drawer/drawer.tsx","webpack://tiny/./components/drawer/index.tsx","webpack://tiny/./components/empty/empty.tsx","webpack://tiny/./components/empty/index.tsx","webpack://tiny/./components/flex/flex.tsx","webpack://tiny/./components/flex/index.tsx","webpack://tiny/./components/flip/flip.tsx","webpack://tiny/./components/flip/flip-item.tsx","webpack://tiny/./components/flip/index.tsx","webpack://tiny/./components/_utils/object.ts","webpack://tiny/./components/form/form-helper.ts","webpack://tiny/./components/form/form-instance.ts","webpack://tiny/./components/form/form-instance-context.ts","webpack://tiny/./components/form/form-options-context.ts","webpack://tiny/./components/form/form.tsx","webpack://tiny/./components/grid/row.tsx","webpack://tiny/./components/form/form-item.tsx","webpack://tiny/./components/form/index.tsx","webpack://tiny/./components/form/use-form.ts","webpack://tiny/./components/icon/icon.tsx","webpack://tiny/./components/icon/index.tsx","webpack://tiny/./components/image/image.tsx","webpack://tiny/./components/image/index.tsx","webpack://tiny/./components/input/input-group.tsx","webpack://tiny/./components/input/input-group-addon.tsx","webpack://tiny/./components/input/index.tsx","webpack://tiny/./components/input-number/input-number.tsx","webpack://tiny/./components/input-number/index.tsx","webpack://tiny/./components/input-password/index.tsx","webpack://tiny/./components/input-password/input-password.tsx","webpack://tiny/./components/keyboard/keyboard.tsx","webpack://tiny/./components/keyboard/index.tsx","webpack://tiny/./components/layout/sidebar-context.ts","webpack://tiny/./components/layout/layout.tsx","webpack://tiny/./components/layout/sidebar.tsx","webpack://tiny/./components/layout/index.tsx","webpack://tiny/./components/link/link.tsx","webpack://tiny/./components/link/index.tsx","webpack://tiny/./components/_utils/use-virtual-scroll.ts","webpack://tiny/./components/pagination/pagination.tsx","webpack://tiny/./components/pagination/index.tsx","webpack://tiny/./components/list/list.tsx","webpack://tiny/./components/list/list-item.tsx","webpack://tiny/./components/list/list-item-meta.tsx","webpack://tiny/./components/list/index.tsx","webpack://tiny/./components/loader/indicator.tsx","webpack://tiny/./components/loader/loader.tsx","webpack://tiny/./components/loader/index.tsx","webpack://tiny/./components/loading-bar/loading-bar.tsx","webpack://tiny/./components/loading-bar/index.ts","webpack://tiny/./components/menu/menu-context.ts","webpack://tiny/./components/menu/menu.tsx","webpack://tiny/./components/menu/sub-menu-context.ts","webpack://tiny/./components/menu/menu-item.tsx","webpack://tiny/./components/menu/sub-menu.tsx","webpack://tiny/./components/menu/menu-item-group.tsx","webpack://tiny/./components/menu/menu-divider.tsx","webpack://tiny/./components/menu/index.tsx","webpack://tiny/./components/message/message.tsx","webpack://tiny/./components/message/message-container.tsx","webpack://tiny/./components/message/index.tsx","webpack://tiny/./components/native-select/native-select.tsx","webpack://tiny/./components/native-select/native-option.tsx","webpack://tiny/./components/native-select/native-opt-group.tsx","webpack://tiny/./components/native-select/index.tsx","webpack://tiny/./components/row/index.tsx","webpack://tiny/./components/modal/modal.tsx","webpack://tiny/./components/modal/modal-context.tsx","webpack://tiny/./components/modal/index.tsx","webpack://tiny/./components/notification/notification.tsx","webpack://tiny/./components/notification/notification-container.tsx","webpack://tiny/./components/notification/index.tsx","webpack://tiny/./components/popover/popover.tsx","webpack://tiny/./components/popover/index.tsx","webpack://tiny/./components/pop-confirm/pop-confirm.tsx","webpack://tiny/./components/pop-confirm/index.tsx","webpack://tiny/./components/progress/types.ts","webpack://tiny/./components/progress/circle.tsx","webpack://tiny/./components/progress/bar.tsx","webpack://tiny/./components/progress/index.tsx","webpack://tiny/./components/radio/radio-group-context.ts","webpack://tiny/./components/radio/radio.tsx","webpack://tiny/./components/radio/radio-group.tsx","webpack://tiny/./components/radio/index.tsx","webpack://tiny/./components/rate/rate-item.tsx","webpack://tiny/./components/rate/rate.tsx","webpack://tiny/./components/rate/index.tsx","webpack://tiny/./components/result/result.tsx","webpack://tiny/./components/result/index.tsx","webpack://tiny/./components/scroll-indicator/scroll-indicator.tsx","webpack://tiny/./components/scroll-indicator/index.tsx","webpack://tiny/./components/segmented/segmented.tsx","webpack://tiny/./components/segmented/index.tsx","webpack://tiny/./components/select/select-context.tsx","webpack://tiny/./components/select/select.tsx","webpack://tiny/./components/select/option.tsx","webpack://tiny/./components/select/opt-group.tsx","webpack://tiny/./components/select/index.tsx","webpack://tiny/./components/skeleton/skeleton.tsx","webpack://tiny/./components/skeleton/index.tsx","webpack://tiny/./components/tooltip/tooltip.tsx","webpack://tiny/./components/tooltip/index.tsx","webpack://tiny/./components/slider/slider.tsx","webpack://tiny/./components/slider/index.tsx","webpack://tiny/./components/split/resizer.tsx","webpack://tiny/./components/split/split-context.ts","webpack://tiny/./components/split/split-pane.tsx","webpack://tiny/./components/split/split.tsx","webpack://tiny/./components/split/index.tsx","webpack://tiny/./components/split-button/split-button.tsx","webpack://tiny/./components/split-button/index.tsx","webpack://tiny/./components/space/space.tsx","webpack://tiny/./components/space/index.tsx","webpack://tiny/./components/speed-dial/speed-dial-context.ts","webpack://tiny/./components/speed-dial/speed-dial.tsx","webpack://tiny/./components/speed-dial/speed-dial-action.tsx","webpack://tiny/./components/speed-dial/index.tsx","webpack://tiny/./components/steps/steps-context.ts","webpack://tiny/./components/steps/steps.tsx","webpack://tiny/./components/steps/steps-item.tsx","webpack://tiny/./components/steps/index.tsx","webpack://tiny/./components/statistic/statistic.tsx","webpack://tiny/./components/statistic/index.tsx","webpack://tiny/./components/strength-indicator/strength-indicator.tsx","webpack://tiny/./components/strength-indicator/index.tsx","webpack://tiny/./components/switch/switch.tsx","webpack://tiny/./components/switch/index.tsx","webpack://tiny/./components/table/table.tsx","webpack://tiny/./components/table/index.tsx","webpack://tiny/./components/tabs/tabs.tsx","webpack://tiny/./components/tabs/tab-panel.tsx","webpack://tiny/./components/tabs/index.tsx","webpack://tiny/./components/tag/types.ts","webpack://tiny/./components/tag/tag.tsx","webpack://tiny/./components/tag/checkable-tag.tsx","webpack://tiny/./components/tag/index.tsx","webpack://tiny/./components/textarea/textarea.tsx","webpack://tiny/./components/textarea/index.tsx","webpack://tiny/./components/timeline/timeline.tsx","webpack://tiny/./components/timeline/timeline-item.tsx","webpack://tiny/./components/timeline/index.tsx","webpack://tiny/./components/time-picker/time-panel.tsx","webpack://tiny/./components/time-picker/time-picker.tsx","webpack://tiny/./components/time-picker/index.tsx","webpack://tiny/./components/transfer/transfer-panel.tsx","webpack://tiny/./components/transfer/transfer.tsx","webpack://tiny/./components/transfer/index.tsx","webpack://tiny/./components/tree/tree-instance.ts","webpack://tiny/./components/tree/tree-node.tsx","webpack://tiny/./components/tree/tree.tsx","webpack://tiny/./components/tree/index.tsx","webpack://tiny/./components/typography/typography.tsx","webpack://tiny/./components/typography/paragraph.tsx","webpack://tiny/./components/typography/text.tsx","webpack://tiny/./components/typography/index.tsx","webpack://tiny/./components/typography/heading.tsx","webpack://tiny/./components/upload/ajax.ts","webpack://tiny/./components/upload/upload-list.tsx","webpack://tiny/./components/upload/dragger-cover.tsx","webpack://tiny/./components/upload/upload.tsx","webpack://tiny/./components/upload/index.tsx","webpack://tiny/./components/intl-provider/with-locale.tsx","webpack://tiny/./components/locale/zh_CN.ts","webpack://tiny/./components/_utils/use-theme.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"tiny\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"tiny\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__442__, __WEBPACK_EXTERNAL_MODULE__3__) {\nreturn ","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__442__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React from 'react';\nimport { SizeType } from '../_utils/props';\nimport { SpaceSize } from '../space/types';\nimport { Locale } from '../locale/types';\n\nexport type ThemeMode = 'light' | 'dark' | 'system';\n\nexport interface ConfigContextProps {\n prefixCls?: string;\n componentSize?: SizeType;\n shimmer?: boolean;\n space?: SpaceSize;\n theme?: ThemeMode;\n locale?: Locale;\n}\n\nexport const ConfigContext = React.createContext<ConfigContextProps>({\n prefixCls: 'ty',\n componentSize: 'md',\n shimmer: false,\n space: 'sm',\n});\n","/**\n * Check whether the target is in the array\n * @param target\n * @param array\n */\nexport const isOneOf = (target: string, array: string | string[]) => {\n if (Array.isArray(array)) {\n return array.includes(target);\n }\n\n return array === target;\n};\n\n/**\n * Transfer camel char to dash format\n * @param str\n */\nexport const camelCaseToDash = (str: string) => {\n const regex = /[A-Z]/g;\n return str.replace(regex, (word: string) => {\n return '-' + word.toLowerCase();\n });\n};\n\n/**\n * Covert hex color to rgb color including alpha channel\n * @param color: hex color\n * @param opacity: max 1\n */\nexport const convertHexToRGBA = (color: string, opacity = 1): string => {\n if (/^#[0-9A-F]{6}$/i.test(color)) {\n const hex = color.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n\n return `rgba(${r},${g},${b},${opacity})`;\n }\n return color;\n};\n\n/**\n * Get class name from combining context prefix and customised class\n * @param suffixCls\n * @param contextPrefix\n * @param customisedCls\n */\nexport const getPrefixCls = (suffixCls: string, contextPrefix?: string, customisedCls?: string): string => {\n if (customisedCls) {\n return customisedCls;\n }\n return contextPrefix ? `${contextPrefix}-${suffixCls}` : `ty-${suffixCls}`;\n};\n","import React from 'react';\n\ntype IconProps = {\n className?: string;\n style?: React.CSSProperties;\n size?: number | string;\n color?: string;\n};\nexport const ArrowDown = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M472.064 751.552 72.832 352.32c-22.08-22.08-22.08-57.792 0-79.872 22.016-22.016 57.792-22.08 79.872 0L512 631.744l359.296-359.296c22.016-22.016 57.792-22.08 79.872 0 22.08 22.08 22.016 57.792 0 79.872l-399.232 399.232C529.856 773.568 494.144 773.568 472.064 751.552z\"\n />\n </svg>\n );\n};\n\nexport const PaperClip = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M596.600738 77.483387C707.652076-15.699749 863.952233-17.103951 945.87122 80.523296 1025.33565 175.225316 1000.817463 322.788809 897.886159 416.55918L500.872884 750.033876C428.941403 810.391556 330.343483 819.035113 279.34144 758.253245 228.350653 697.484792 254.004524 601.845857 325.904469 541.51464L549.255103 354.101205C568.4844 337.965909 597.16161 340.484261 613.234234 359.638868L613.234234 359.638868C629.339635 378.832538 626.827441 407.455341 607.577908 423.607617L384.227274 611.021052C346.503334 642.675196 335.433548 683.943896 348.847852 699.93044 362.276678 715.934291 404.796072 712.206837 442.550079 680.527464L829.892107 355.508911C905.161842 292.350105 923.282829 194.760822 876.364807 138.846101 829.422073 82.901929 730.238566 83.792991 654.923543 146.9898L207.957862 522.038537C112.028875 602.532515 99.523634 745.608046 180.046565 841.571538 260.588409 937.557569 403.622296 950.081865 499.571887 869.570599L901.909406 531.969334C921.04904 515.909275 949.653556 518.488625 965.72618 537.643231L965.72618 537.643231C981.831581 556.836901 979.334768 585.446798 960.232211 601.475747L557.894692 939.077011C423.555518 1051.800962 223.290899 1034.265449 110.540153 899.894342 0.612214 768.887326 14.525852 575.161364 139.830689 461.101188L596.600738 77.483387Z\"\n />\n </svg>\n );\n};\n\nexport const CheckCircle = (props: IconProps): React.ReactElement => {\n const { size = 20, color = '#52c41a', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m193.5 301.7l-210.6 292c-12.7 17.7-39 17.7-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\"\n />\n </svg>\n );\n};\n\nexport const CloseCircle = (props: IconProps): React.ReactElement => {\n const { size = 20, color = '#f44336', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m165.4 618.2l-66-0.3L512 563.4l-99.3 118.4-66.1 0.3c-4.4 0-8-3.5-8-8 0-1.9 0.7-3.7 1.9-5.2l130.1-155L340.5 359c-1.2-1.5-1.9-3.3-1.9-5.2 0-4.4 3.6-8 8-8l66.1 0.3L512 464.6l99.3-118.4 66-0.3c4.4 0 8 3.5 8 8 0 1.9-0.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\"\n />\n </svg>\n );\n};\n\nexport const WarningCircle = (props: IconProps): React.ReactElement => {\n const { size = 20, color = '#ff9800', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296z m32 440c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"\n />\n </svg>\n );\n};\n\nexport const InfoCircle = (props: IconProps): React.ReactElement => {\n const { size = 20, color = '#1890ff', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272z m-32-344c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"\n />\n </svg>\n );\n};\n\nexport const LoadingCircle = (props: IconProps): React.ReactElement => {\n const { size = 20, color = '#1890ff', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M512.064 963.296c-96.16 0-189.344-30.816-267.68-89.472-95.744-71.712-157.856-176.48-174.848-294.912C52.544 460.448 82.688 342.464 154.4 246.688c148.096-197.76 429.44-238.08 627.136-90.08 82.88 62.08 142.016 151.584 166.56 252 4.192 17.184-6.336 34.496-23.488 38.688-17.152 4.064-34.496-6.304-38.688-23.488-20.992-86.048-71.68-162.752-142.752-215.968-169.376-126.88-410.56-92.288-537.536 77.216-61.472 82.08-87.296 183.2-72.704 284.736 14.56 101.536 67.808 191.296 149.888 252.736 169.536 127.04 410.688 92.384 537.6-77.12 33.216-44.384 56-94.112 67.648-147.84 3.776-17.28 20.896-28.256 38.048-24.512 17.28 3.744 28.256 20.8 24.512 38.048-13.664 62.784-40.224 120.832-78.976 172.672-71.712 95.744-176.48 157.888-294.976 174.848a449.402 449.402 0 0 1-64.608 4.672z\"\n />\n </svg>\n );\n};\n\nexport const QuestionCircle = (props: IconProps): React.ReactElement => {\n const { size = 20, color = '#ff9800', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64z m0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z m62.9-219.5c-18.5 7.1-30.9 25.1-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z\"\n />\n </svg>\n );\n};\n\nexport const Check = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M887.904 298.208c-12.864-12.064-33.152-11.488-45.216 1.408L415.936 753.984l-233.12-229.696c-12.608-12.416-32.864-12.288-45.28 0.32-12.416 12.576-12.256 32.864 0.352 45.248l256.48 252.672c0.096 0.096 0.224 0.128 0.32 0.224s0.128 0.224 0.224 0.32c2.016 1.92 4.448 3.008 6.784 4.288 1.152 0.672 2.144 1.664 3.36 2.144 3.776 1.472 7.776 2.24 11.744 2.24 4.192 0 8.384-0.832 12.288-2.496 1.312-0.544 2.336-1.664 3.552-2.368 2.4-1.408 4.896-2.592 6.944-4.672 0.096-0.096 0.128-0.256 0.224-0.352 0.064-0.096 0.192-0.128 0.288-0.224L889.28 343.424c12.16-12.832 11.488-33.088-1.376-45.216z\"\n />\n </svg>\n );\n};\n\nexport const Close = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M782.426059 824.924989l-584.588225-584.727395c-11.987009-11.990079-11.984962-31.42778 0.005116-43.414789 11.990079-11.987009 31.42778-11.984962 43.414789 0.005117l584.588225 584.727395c11.987009 11.990079 11.984962 31.42778-0.005116 43.414788-11.989055 11.988032-31.42778 11.984962-43.414789-0.005116z\"\n />\n <path\n fill={color}\n d=\"M197.768249 824.856427c-11.987009-11.990079-11.984962-31.42778 0.005117-43.414788l584.727394-584.589249c11.990079-11.987009 31.42778-11.984962 43.414789 0.005117 11.987009 11.990079 11.984962 31.42778-0.005116 43.414788l-584.727395 584.589249c-11.990079 11.987009-31.42778 11.984962-43.414789-0.005117z\"\n />\n </svg>\n );\n};\n\nexport const Eye = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3-7.7 16.2-7.7 35.2 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766z\"\n />\n <path\n fill={color}\n d=\"M508 336c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176z m0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\"\n />\n </svg>\n );\n};\n\nexport const EyeClose = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path\n fill={color}\n d=\"M942.3 486.4l-0.1-0.1-0.1-0.1c-36.4-76.7-80-138.7-130.7-186L760.7 351c43.7 40.2 81.5 93.7 114.1 160.9C791.5 684.2 673.4 766 512 766c-51.3 0-98.3-8.3-141.2-25.1l-54.7 54.7C374.6 823.8 439.8 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0.1-51.3zM878.3 154.2l-42.4-42.4c-3.1-3.1-8.2-3.1-11.3 0L707.8 228.5C649.4 200.2 584.2 186 512 186c-192.2 0-335.4 100.5-430.2 300.3v0.1c-7.7 16.2-7.7 35.2 0 51.5 36.4 76.7 80 138.7 130.7 186.1L111.8 824.5c-3.1 3.1-3.1 8.2 0 11.3l42.4 42.4c3.1 3.1 8.2 3.1 11.3 0l712.8-712.8c3.1-3 3.1-8.1 0-11.2zM398.9 537.4c-1.9-8.2-2.9-16.7-2.9-25.4 0-61.9 50.1-112 112-112 8.7 0 17.3 1 25.4 2.9L398.9 537.4z m184.5-184.5C560.5 342.1 535 336 508 336c-97.2 0-176 78.8-176 176 0 27 6.1 52.5 16.9 75.4L263.3 673c-43.7-40.2-81.5-93.7-114.1-160.9C232.6 339.8 350.7 258 512 258c51.3 0 98.3 8.3 141.2 25.1l-69.8 69.8z\"\n />\n <path\n fill={color}\n d=\"M508 624c-6.4 0-12.7-0.5-18.8-1.6l-51.1 51.1c21.4 9.3 45.1 14.4 69.9 14.4 97.2 0 176-78.8 176-176 0-24.8-5.1-48.5-14.4-69.9l-51.1 51.1c1 6.1 1.6 12.4 1.6 18.8C620 573.9 569.9 624 508 624z\"\n />\n </svg>\n );\n};\n\nexport const TreeArrow = (props: IconProps): React.ReactElement => {\n const { size = 20, color = 'currentcolor', ...otherProps } = props;\n return (\n <svg {...otherProps} width={size} height={size} viewBox=\"0 0 1024 1024\">\n <path fill={color} d=\"M726.652801 429.305603 297.347199 429.305603 512.193405 638.156258Z\" />\n </svg>\n );\n};\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { CSSTransitionProps } from 'react-transition-group/CSSTransition';\n\nexport type AnimationName =\n | 'zoom-center-top'\n | 'zoom-center-bottom'\n | 'zoom-center-left'\n | 'zoom-center-right'\n | 'zoom-top-start'\n | 'zoom-top'\n | 'zoom-top-end'\n | 'zoom-bottom-start'\n | 'zoom-bottom'\n | 'zoom-bottom-end'\n | 'zoom-left-start'\n | 'zoom-left'\n | 'zoom-left-end'\n | 'zoom-right-start'\n | 'zoom-right'\n | 'zoom-right-end'\n | 'slide-up'\n | 'slide-down';\n\nexport type TransitionProps = {\n /** Animation prefix */\n prefix?: string;\n\n /** Preset animation name */\n animation?: AnimationName;\n\n /** Prevent the transition conflict with the inner component */\n wrapper?: boolean;\n children?: React.ReactNode;\n} & Partial<CSSTransitionProps<HTMLElement>>;\n\nconst Transition = (props: TransitionProps): React.ReactElement => {\n const {\n timeout = 300,\n unmountOnExit = true,\n appear = true,\n prefix = 'ty',\n animation,\n classNames,\n nodeRef,\n children,\n wrapper,\n ...otherProps\n } = props;\n\n return (\n <CSSTransition\n {...(otherProps as CSSTransitionProps<HTMLElement>)}\n timeout={timeout}\n appear={appear}\n unmountOnExit={unmountOnExit}\n nodeRef={nodeRef}\n classNames={classNames ? classNames : `${prefix}-${animation}`}>\n {wrapper ? <div>{children}</div> : (children as React.ReactElement)}\n </CSSTransition>\n );\n};\n\nTransition.displayName = 'Transition';\n\nexport default Transition;\n","import Transition from './transition';\n\nexport type { AnimationName, TransitionProps } from './transition';\nexport default Transition;\n","import React, { useState, useRef, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CheckCircle, CloseCircle, InfoCircle, WarningCircle } from '../_utils/components';\nimport { AlertProps } from './types';\nimport Transition from '../transition';\n\nconst setClosedStyle = (node: HTMLElement): void => {\n node.style.borderTopWidth = '0';\n node.style.paddingTop = '0';\n node.style.marginTop = '0';\n node.style.height = '0';\n node.style.paddingBottom = '0';\n node.style.borderBottomWidth = '0';\n node.style.marginBottom = '0';\n};\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>((props, forwardedRef) => {\n const {\n type = 'info',\n iconSize = 14,\n prefixCls: customisedCls,\n title,\n icon,\n closeText,\n closable,\n afterClose,\n onClose,\n children,\n className,\n style,\n ...otherProps\n } = props;\n const [isShow, setShow] = useState(true);\n const ref = useRef<HTMLDivElement | null>(null);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('alert', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, [`${prefixCls}_${type}`]);\n\n const closeBtnOnClick = (e: React.MouseEvent<HTMLSpanElement>): void => {\n ref.current && setClosedStyle(ref.current as HTMLDivElement);\n setShow(false);\n onClose && onClose(e);\n };\n\n // Setting close text attribute also allows to be closable\n const closeIcon = (closable || closeText) && (\n <button type=\"button\" className={`${prefixCls}__close-btn`} onClick={closeBtnOnClick} aria-label=\"Close\">\n {closeText || '✕'}\n </button>\n );\n\n const renderIcon = (): React.ReactNode => {\n if (typeof icon === 'boolean') {\n switch (type) {\n case 'success':\n return <CheckCircle size={iconSize} className={`${prefixCls}__icon`} />;\n case 'info':\n return <InfoCircle size={iconSize} className={`${prefixCls}__icon`} />;\n case 'warning':\n return <WarningCircle size={iconSize} className={`${prefixCls}__icon`} />;\n case 'error':\n return <CloseCircle size={iconSize} className={`${prefixCls}__icon`} />;\n }\n }\n\n return icon;\n };\n\n return (\n <Transition timeout={300} in={isShow} nodeRef={ref} onExited={afterClose}>\n <div {...otherProps} role=\"alert\" className={cls} style={style} ref={(node) => {\n ref.current = node;\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef) forwardedRef.current = node;\n }}>\n {icon && renderIcon()}\n <div>\n {title && <p className={`${prefixCls}__title`}>{title}</p>}\n {children}\n </div>\n {closeIcon}\n </div>\n </Transition>\n );\n});\n\nAlert.displayName = 'Alert';\n\nexport default Alert;\n","import Alert from './alert';\n\nexport default Alert;\n","import React from 'react';\n\ntype Props = {\n activeId?: string;\n onClick?: (e: React.MouseEvent<HTMLAnchorElement>, anchorName: string) => void;\n registerLink?: (href: string) => void;\n unregisterLink?: (href: string) => void;\n};\n\nexport const AnchorContext = React.createContext<Props>({});\n","export type Target = HTMLElement | Window;\n\nexport const getScroll = (node: Target, isVertical = true): number => {\n if (typeof window === 'undefined') {\n return 0;\n }\n const windowProp = isVertical ? 'pageYOffset' : 'pageXOffset';\n const elementProp = isVertical ? 'scrollTop' : 'scrollLeft';\n return node === window ? (node as Window)[windowProp] : (node as HTMLElement)[elementProp];\n};\n\nexport const getRect = (node: Target = window) => {\n return node !== window\n ? (node as HTMLElement).getBoundingClientRect()\n : {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: window.document.documentElement.clientWidth,\n height: window.document.documentElement.clientHeight,\n };\n};\n\n/**\n * Get element absolute position relative to the root\n * @param node\n */\nexport const getAbsolutePosition = (node: Target = window): { x: number; y: number } => {\n if (node === window) {\n return { x: 0, y: 0 };\n }\n const x =\n (node as HTMLElement).getBoundingClientRect().left + document.documentElement.scrollLeft;\n const y = (node as HTMLElement).getBoundingClientRect().top + document.documentElement.scrollTop;\n return { x, y };\n};\n\nexport const getNodeHeight = (node: Target): number => {\n if (!node) {\n return 0;\n }\n if (node === window) {\n return window.innerHeight;\n }\n return (node as HTMLElement).clientHeight;\n};\n\nexport const getNodeScrollHeight = (node: Target): number => {\n if (!node) {\n return 0;\n }\n\n if (node === window) {\n return window.document.documentElement.scrollHeight;\n }\n return (node as HTMLElement).scrollHeight;\n};\n","import { CSSProperties, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { getRect, getScroll, getNodeHeight } from '../_utils/dom';\nimport { StickyProps } from './types';\n\nconst Sticky = (props: StickyProps): JSX.Element => {\n const {\n offsetTop,\n offsetBottom,\n container = () => window,\n onChange,\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('sticky', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const placeholderRef = useRef<HTMLDivElement | null>(null);\n const stickyRef = useRef<HTMLDivElement | null>(null);\n const [stickyStyle, setStickyStyle] = useState<CSSProperties>({});\n const [placeholderStyle, setPlaceholderStyle] = useState<CSSProperties>({});\n const [stickyContainer, setStickyContainer] = useState(container());\n\n const getStickyMode = () => {\n const mode = {\n top: false,\n bottom: false,\n offset: 0,\n };\n\n if (typeof offsetTop !== 'number' && typeof offsetBottom !== 'number') {\n mode.top = true;\n } else if (typeof offsetTop === 'number') {\n mode.top = true;\n mode.bottom = false;\n mode.offset = offsetTop || 0;\n } else if (typeof offsetBottom === 'number') {\n mode.bottom = true;\n mode.top = false;\n mode.offset = offsetBottom || 0;\n }\n\n return mode;\n };\n const [stickyMode] = useState(getStickyMode());\n\n const getOffset = useCallback((placeholderNode: HTMLElement, stickyContainer: HTMLElement | Window): {\n top: number;\n left: number;\n width: number;\n height: number;\n } => {\n const rect = placeholderNode.getBoundingClientRect();\n const containerRect = getRect(stickyContainer);\n const containerScrollTop = getScroll(stickyContainer, true);\n const containerScrollLeft = getScroll(stickyContainer, false);\n\n return {\n top: rect.top - containerRect.top + containerScrollTop,\n left: rect.left - containerRect.left + containerScrollLeft,\n width: rect.width,\n height: rect.height,\n };\n }, []);\n\n const updateStickyStyle = useCallback(\n (stickyStyle: CSSProperties, stuck = false) => {\n setStickyStyle({ ...stickyStyle });\n\n if (stuck) {\n onChange && onChange(true);\n } else if (!stickyStyle) {\n onChange && onChange(false);\n }\n },\n [onChange]\n );\n\n const updatePlaceholderStyle = (placeholderStyle: CSSProperties) => {\n setPlaceholderStyle({ ...placeholderStyle });\n };\n\n const updateNodePosition = useCallback(() => {\n const placeholderNode = placeholderRef.current;\n const stickyNode = stickyRef.current;\n if (!placeholderNode || !stickyContainer || !stickyNode) {\n return;\n }\n\n const containerScrollTop = getScroll(stickyContainer, true);\n const placeholderOffset = getOffset(placeholderNode, stickyContainer);\n const containerHeight = getNodeHeight(stickyContainer);\n const placeholderHeight = placeholderNode.offsetHeight;\n const containerRect = getRect(stickyContainer);\n const stickyHeight = stickyNode.offsetHeight;\n\n const stickyStyle: CSSProperties = {\n width: placeholderOffset.width,\n };\n const placeholderStyle: CSSProperties = {\n width: placeholderOffset.width,\n height: stickyHeight,\n };\n if (stickyMode.top && containerScrollTop > placeholderOffset.top - stickyMode.offset) {\n // sticky top\n stickyStyle.position = 'fixed';\n stickyStyle.top = stickyMode.offset + containerRect.top;\n updateStickyStyle(stickyStyle, true);\n updatePlaceholderStyle(placeholderStyle);\n } else if (\n stickyMode.bottom &&\n containerScrollTop <\n placeholderOffset.top + placeholderHeight + stickyMode.offset - containerHeight\n ) {\n // sticky bottom\n stickyStyle.height = placeholderHeight;\n stickyStyle.position = 'fixed';\n stickyStyle.bottom = stickyMode.offset;\n\n updateStickyStyle(stickyStyle, true);\n updatePlaceholderStyle(placeholderStyle);\n } else {\n updateStickyStyle({});\n updatePlaceholderStyle({});\n }\n }, [stickyContainer, updateStickyStyle, stickyMode, getOffset]);\n\n /**\n * If the container is changed, update the listeners\n */\n useEffect(() => {\n const stickyContainer = container();\n if (!stickyContainer) {\n return;\n }\n setStickyContainer(stickyContainer);\n\n stickyContainer.addEventListener('scroll', updateNodePosition);\n stickyContainer.addEventListener('resize', updateNodePosition);\n\n return () => {\n stickyContainer.removeEventListener('scroll', updateNodePosition);\n stickyContainer.removeEventListener('resize', updateNodePosition);\n };\n }, [updateNodePosition, container]);\n\n useEffect(() => {\n updateNodePosition();\n }, [updateNodePosition]);\n\n return (\n <div ref={placeholderRef} style={placeholderStyle}>\n <div {...otherProps} className={cls} ref={stickyRef} style={{ ...stickyStyle, ...style }}>\n {children}\n </div>\n </div>\n );\n};\n\nSticky.displayName = 'Sticky';\n\nexport default Sticky;\n","import Sticky from './sticky';\n\nexport default Sticky;\n","import React, { useContext, useState, useCallback, useEffect, useRef, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { AnchorLinkProps, AnchorProps } from './types';\nimport { AnchorContext } from './anchor-context';\nimport Sticky from '../sticky';\n\nconst Anchor = (props: AnchorProps): JSX.Element => {\n const {\n affix = false,\n offsetTop = 0,\n offsetBottom,\n type = 'dot',\n getContainer,\n onChange,\n onClick,\n className,\n style,\n children,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('anchor', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, { [`${prefixCls}_line`]: type === 'line' }, className);\n const [activeId, setActiveId] = useState('');\n const anchorRef = useRef<HTMLUListElement | null>(null);\n const inkBallRef = useRef<HTMLDivElement | null>(null);\n const linksRef = useRef<Set<string>>(new Set());\n\n const registerLink = useCallback((href: string) => {\n linksRef.current.add(href);\n }, []);\n\n const unregisterLink = useCallback((href: string) => {\n linksRef.current.delete(href);\n }, []);\n\n const updateInk = useCallback(() => {\n const anchorEl = anchorRef.current;\n if (!anchorEl) return;\n const activeNodes = anchorEl.getElementsByClassName(`${prefixCls}__link_active`);\n const inkEl = inkBallRef.current;\n // Use the last (deepest) active link so the ink ball targets the child, not the parent\n const linkNode = activeNodes[activeNodes.length - 1];\n if (linkNode && inkEl) {\n // Use the <a> title element, not the <li> (which includes nested children)\n const titleEl = linkNode.querySelector(`.${prefixCls}__link-title`);\n const targetEl = titleEl || linkNode;\n const anchorRect = anchorEl.getBoundingClientRect();\n const targetRect = targetEl.getBoundingClientRect();\n if (type === 'line') {\n inkEl.style.top = `${targetRect.top - anchorRect.top}px`;\n inkEl.style.height = `${targetEl.clientHeight}px`;\n } else {\n inkEl.style.top = `${targetRect.top - anchorRect.top + targetEl.clientHeight / 2 - 4.5}px`;\n }\n }\n }, [prefixCls, type]);\n\n const getScrollContainer = useCallback((): HTMLElement | Window => {\n return getContainer ? getContainer() : window;\n }, [getContainer]);\n\n const scrollToAnchor = useCallback(\n (anchorName: string): void => {\n const element = document.getElementById(anchorName);\n if (!element) return;\n\n if (getContainer) {\n const container = getContainer();\n const containerRect = container.getBoundingClientRect();\n const elementRect = element.getBoundingClientRect();\n container.scrollTop += elementRect.top - containerRect.top;\n } else {\n element.scrollIntoView(true);\n }\n },\n [getContainer]\n );\n\n const handleLinkClick = (e: React.MouseEvent<HTMLAnchorElement>, anchorName: string) => {\n onClick?.(e, { title: anchorName, href: `#${anchorName}` });\n const { location } = window;\n let url;\n // if it is a HashRouter mode, prevent the default event and update the query.\n if (location.pathname.includes('/#/')) {\n url = location.protocol + '//' + location.host + location.pathname + `?anchor=${anchorName}`;\n } else {\n url = location.protocol + '//' + location.host + location.pathname + `#${anchorName}`;\n }\n window.history.pushState({ path: url }, '', url);\n scrollToAnchor(anchorName);\n };\n\n /**\n * If the url contains the hash, check whether there is an element can be scrolled into\n */\n const initHashScroll = useCallback(() => {\n const { location } = window;\n if (location.search) {\n const urlParams = new URLSearchParams(location.search);\n const anchor = urlParams.get('anchor');\n !!anchor && scrollToAnchor(anchor);\n } else if (location.hash) {\n const anchor = location.hash.replace('#', '');\n !!anchor && scrollToAnchor(anchor);\n }\n }, [scrollToAnchor]);\n\n const handleScroll = useCallback(() => {\n const links = linksRef.current;\n if (links.size === 0) return;\n\n const container = getContainer?.();\n const containerTop = container\n ? container.getBoundingClientRect().top\n : 0;\n\n let newActiveId = '';\n let maxTop = -Infinity;\n let firstId = '';\n let firstTop = Infinity;\n links.forEach((href) => {\n const id = href.replace('#', '');\n const el = document.getElementById(id);\n if (!el) return;\n const elTop = el.getBoundingClientRect().top - containerTop;\n if (elTop < firstTop) {\n firstTop = elTop;\n firstId = id;\n }\n if (elTop <= offsetTop && elTop > maxTop) {\n maxTop = elTop;\n newActiveId = id;\n }\n });\n if (!newActiveId && firstId) {\n newActiveId = firstId;\n }\n\n setActiveId((prev) => {\n if (prev !== newActiveId) {\n onChange?.(`#${newActiveId}`);\n }\n return newActiveId;\n });\n }, [onChange, getContainer, offsetTop]);\n\n useEffect(() => {\n updateInk();\n }, [activeId, updateInk]);\n\n useEffect(() => {\n initHashScroll();\n }, [initHashScroll]);\n\n useEffect(() => {\n const scrollTarget = getScrollContainer();\n scrollTarget.addEventListener('scroll', handleScroll);\n handleScroll();\n return () => {\n scrollTarget.removeEventListener('scroll', handleScroll);\n };\n }, [handleScroll, getScrollContainer]);\n\n const contextValue = useMemo(\n () => ({ activeId, onClick: handleLinkClick, registerLink, unregisterLink }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeId, registerLink, unregisterLink]\n );\n\n const anchorContent = (\n <ul className={cls} style={style} ref={anchorRef}>\n <div className={`${prefixCls}__ink`}>\n <div className={`${prefixCls}__ink-ball`} ref={inkBallRef} />\n </div>\n {React.Children.map(children, (child) => {\n const childElement = child as React.FunctionComponentElement<AnchorLinkProps>;\n if (childElement.type.displayName === 'AnchorLink') {\n const childProps: Partial<AnchorLinkProps> = {\n prefixCls,\n };\n return React.cloneElement(childElement, childProps);\n }\n return null;\n })}\n </ul>\n );\n\n return (\n <AnchorContext.Provider value={contextValue}>\n {affix ? (\n <Sticky offsetTop={offsetTop} offsetBottom={offsetBottom}>\n {anchorContent}\n </Sticky>\n ) : (\n anchorContent\n )}\n </AnchorContext.Provider>\n );\n};\n\nAnchor.displayName = 'Anchor';\n\nexport default Anchor;\n","import React, { useContext, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { AnchorLinkProps } from './types';\nimport { AnchorContext } from './anchor-context';\n\nconst AnchorLink = React.forwardRef<HTMLAnchorElement, AnchorLinkProps>(\n (props: AnchorLinkProps, ref): JSX.Element => {\n const { href, title, children, prefixCls, ...otherProps } = props;\n const anchorContext = useContext(AnchorContext);\n\n useEffect(() => {\n anchorContext.registerLink?.(href);\n return () => anchorContext.unregisterLink?.(href);\n }, [href, anchorContext]);\n\n const activeHref = `#${anchorContext.activeId}`;\n const isActive = activeHref === href;\n\n const cls = classNames(`${prefixCls}__link`, {\n [`${prefixCls}__link_active`]: isActive,\n });\n\n const onLinkClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault();\n const { onClick } = anchorContext;\n onClick && onClick(e, href.replace('#', ''));\n };\n\n return (\n <li title={title} className={cls}>\n <a\n {...otherProps}\n className={`${prefixCls}__link-title`}\n ref={ref}\n href={href}\n onClick={onLinkClick}\n target={'target' in props ? props.target : undefined}>\n {title}\n </a>\n {children && (\n <ul className={prefixCls}>\n {React.Children.map(children, (child) => (\n <AnchorLink {...child.props} prefixCls={prefixCls} />\n ))}\n </ul>\n )}\n </li>\n );\n }\n);\n\nAnchorLink.displayName = 'AnchorLink';\n\nexport default AnchorLink;\n","import Anchor from './anchor';\nimport AnchorLink from './anchor-link';\n\ntype IAnchor = typeof Anchor & {\n Link: typeof AnchorLink;\n};\n\nconst DefaultAnchor = Anchor as IAnchor;\nDefaultAnchor.Link = AnchorLink;\n\nexport default DefaultAnchor;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { AspectRatioProps } from './types';\n\nconst AspectRatio = React.forwardRef<HTMLDivElement, AspectRatioProps>((props, ref) => {\n const {\n ratio = 1,\n width = '100%',\n prefixCls: customisedCls,\n className,\n style,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('aspect-ratio', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={{ ...style, width }}>\n <div className={`${prefixCls}__padding`} style={{ paddingTop: `${(1 / ratio) * 100}%` }} />\n <div className={`${prefixCls}__inside`}>{children}</div>\n </div>\n );\n});\n\nAspectRatio.displayName = 'AspectRatio';\n\nexport default AspectRatio;\n","import AspectRatio from './aspect-ratio';\n\nexport default AspectRatio;\n","import { useEffect, useRef, useState } from 'react';\nimport { Target } from './dom';\n\nexport const useEventListener = (\n eventName: keyof HTMLElementEventMap,\n handler: EventListener,\n target: Target = window\n): void => {\n const savedHandler = useRef<EventListener>();\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = target && target.addEventListener;\n if (!isSupported) return;\n\n const eventListener = (event: Event): void =>\n savedHandler.current && savedHandler.current(event);\n target.addEventListener(eventName, eventListener);\n return (): void => {\n target.removeEventListener(eventName, eventListener);\n };\n }, [eventName, target]);\n};\n\nexport const useClickOutside = (target: HTMLElement, handler: (event: MouseEvent) => void): void => {\n useEffect(() => {\n const listener = (event: MouseEvent): void => {\n if (!target || target.contains(event.target as HTMLElement)) {\n return;\n }\n handler(event);\n };\n document.addEventListener('click', listener);\n return (): void => {\n document.removeEventListener('click', listener);\n };\n }, [target, handler]);\n};\n\nexport function useDebounce<T>(value: T, delay = 300): [T] {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = window.setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return (): void => {\n window.clearTimeout(handler);\n };\n }, [value, delay]);\n\n return [debouncedValue];\n}\n","import { useState, useCallback, useMemo, useEffect } from 'react';\n\ninterface ComboboxItem {\n value: string;\n label?: React.ReactNode;\n disabled?: boolean;\n}\n\ninterface UseComboboxOptions<T extends ComboboxItem> {\n items: T[];\n searchValue: string;\n filterOption?: boolean | ((input: string, item: T) => boolean);\n isOpen?: boolean;\n defaultOpen?: boolean;\n disabled?: boolean;\n defaultActiveFirstOption?: boolean;\n onOpenChange?: (open: boolean) => void;\n onSelect?: (item: T) => void;\n}\n\nexport function useCombobox<T extends ComboboxItem>(options: UseComboboxOptions<T>) {\n const {\n items,\n searchValue,\n filterOption = true,\n isOpen: controlledOpen,\n defaultOpen = false,\n disabled = false,\n defaultActiveFirstOption = true,\n onOpenChange,\n onSelect,\n } = options;\n\n const isControlled = controlledOpen !== undefined;\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isOpen = isControlled ? controlledOpen : internalOpen;\n\n const [focusedIndex, setFocusedIndex] = useState(-1);\n\n useEffect(() => {\n if (isControlled) setInternalOpen(controlledOpen);\n }, [isControlled, controlledOpen]);\n\n const matchesFilter = useCallback(\n (item: T): boolean => {\n if (!searchValue) return true;\n if (filterOption === false) return true;\n if (typeof filterOption === 'function') return filterOption(searchValue, item);\n const label = typeof item.label === 'string' ? item.label : String(item.value);\n return label.toLowerCase().includes(searchValue.toLowerCase());\n },\n [searchValue, filterOption]\n );\n\n const filteredItems = useMemo(\n () => items.filter(matchesFilter),\n [items, matchesFilter]\n );\n\n useEffect(() => {\n if (defaultActiveFirstOption && filteredItems.length > 0) {\n setFocusedIndex(0);\n } else {\n setFocusedIndex(-1);\n }\n }, [filteredItems.length, defaultActiveFirstOption]);\n\n const openDropdown = useCallback(() => {\n if (!isControlled) setInternalOpen(true);\n onOpenChange?.(true);\n }, [isControlled, onOpenChange]);\n\n const closeDropdown = useCallback(() => {\n if (!isControlled) setInternalOpen(false);\n onOpenChange?.(false);\n }, [isControlled, onOpenChange]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n\n if (e.key === 'Escape') {\n closeDropdown();\n return;\n }\n\n if (e.key === 'Enter') {\n if (isOpen && focusedIndex >= 0 && focusedIndex < filteredItems.length) {\n e.preventDefault();\n const item = filteredItems[focusedIndex];\n if (!item.disabled) onSelect?.(item);\n }\n return;\n }\n\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n if (!isOpen) {\n openDropdown();\n setFocusedIndex(0);\n return;\n }\n const dir = e.key === 'ArrowDown' ? 1 : -1;\n setFocusedIndex((prev) => {\n let next = prev + dir;\n if (next < 0) next = filteredItems.length - 1;\n if (next >= filteredItems.length) next = 0;\n return next;\n });\n }\n },\n [disabled, isOpen, focusedIndex, filteredItems, closeDropdown, openDropdown, onSelect]\n );\n\n return {\n isOpen,\n focusedIndex,\n filteredItems,\n matchesFilter,\n openDropdown,\n closeDropdown,\n setFocusedIndex,\n handleKeyDown,\n };\n}\n","export enum KeyCode {\n BACKSPACE = 8,\n COMMA = 188,\n DELETE = 46,\n DOWN = 40,\n END = 35,\n ENTER = 13,\n ESCAPE = 27,\n HOME = 36,\n LEFT = 37,\n NUMPAD_ADD = 107,\n NUMPAD_DECIMAL = 110,\n NUMPAD_DIVIDE = 111,\n NUMPAD_ENTER = 108,\n NUMPAD_MULTIPLY = 106,\n NUMPAD_SUBTRACT = 109,\n PAGE_DOWN = 34,\n PAGE_UP = 33,\n PERIOD = 190,\n RIGHT = 39,\n SPACE = 32,\n TAB = 9,\n UP = 38\n}\n","import React, { useRef, useEffect, useState, ReactNode, useContext } from 'react';\nimport classNames from 'classnames';\nimport { KeyCode } from '../_utils/enum';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CloseCircle } from '../_utils/components';\nimport { InputProps } from './types';\n\nconst DEFAULT_MARGIN = 16; // 8px * 2\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (props: InputProps, ref): JSX.Element => {\n const {\n size = 'md',\n disabled = false,\n clearable = false,\n defaultValue = '',\n prefix,\n suffix,\n onChange,\n onEnterPress,\n onKeyDown,\n className,\n style,\n onClearClick,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('input', configContext.prefixCls, customisedCls);\n const inputSize = props.size || configContext.componentSize || size;\n const cls = classNames(prefixCls, className, `${prefixCls}_${inputSize}`, {\n [`${prefixCls}_disabled`]: disabled,\n });\n const prefixRef = useRef<HTMLDivElement | null>(null);\n const suffixRef = useRef<HTMLDivElement | null>(null);\n const [value, setValue] = useState<string>(\n 'value' in props ? (props.value as string) : defaultValue\n );\n const [inputPadding, setInputPadding] = useState({ paddingLeft: '7px', paddingRight: '7px' });\n\n const inputOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const val = e.currentTarget.value;\n !('value' in props) && setValue(val);\n onChange && onChange(e);\n };\n\n const inputOnKeydown = (e: React.KeyboardEvent<HTMLInputElement>): void => {\n if (e.keyCode === KeyCode.ENTER) {\n onEnterPress && onEnterPress(e);\n }\n onKeyDown && onKeyDown(e);\n };\n\n const clearBtnOnClick = (e: React.MouseEvent<HTMLSpanElement>): void => {\n !('value' in props) && setValue('');\n onClearClick && onClearClick(e);\n };\n\n const renderClearButton = (): ReactNode => {\n if (clearable && value && value.length > 0) {\n return (\n <span className={`${prefixCls}__clear-btn`} onClick={clearBtnOnClick}>\n <CloseCircle size={16} color=\"#BFBFBF\" />\n </span>\n );\n }\n return null;\n };\n\n useEffect(() => {\n const prefixNode = prefixRef.current;\n const suffixNode = suffixRef.current;\n\n const prefixWidth = prefixNode && prefixNode.offsetWidth;\n const suffixWidth = suffixNode && suffixNode.offsetWidth;\n const padding = { ...inputPadding };\n\n if (prefixWidth) {\n padding.paddingLeft = prefixWidth + DEFAULT_MARGIN + 'px';\n }\n if (suffixWidth) {\n padding.paddingRight = suffixWidth + DEFAULT_MARGIN + 'px';\n }\n\n if (\n padding.paddingLeft !== inputPadding.paddingLeft ||\n padding.paddingRight !== inputPadding.paddingRight\n ) {\n setInputPadding(padding);\n }\n }, [inputPadding]);\n\n useEffect(() => {\n 'value' in props && typeof props.value !== 'undefined' && setValue(props.value);\n }, [props]);\n\n return (\n <div className={cls} style={style}>\n {prefix && (\n <div ref={prefixRef} className={`${prefixCls}__prefix`}>\n {prefix}\n </div>\n )}\n <input\n {...otherProps}\n ref={ref}\n value={value}\n disabled={disabled}\n className={`${prefixCls}__input`}\n style={{ paddingLeft: inputPadding.paddingLeft, paddingRight: inputPadding.paddingRight }}\n onChange={inputOnChange}\n onKeyDown={inputOnKeydown}\n />\n {(suffix || clearable) && (\n <div ref={suffixRef} className={`${prefixCls}__suffix`}>\n {renderClearButton()}\n {suffix}\n </div>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport default Input;\n","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import Portal from './portal';\n\nexport default Portal;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nexport interface PortalProps {\n container?: HTMLElement;\n children?: React.ReactNode;\n}\n\nconst Portal = (props: PortalProps): React.ReactPortal => {\n const { container = document.body, children } = props;\n return ReactDOM.createPortal(children, container);\n};\n\nexport default Portal;\n","import Popup from './popup';\n\nexport default Popup;\n","import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { createPopper, Instance } from '@popperjs/core';\nimport Transition, { AnimationName } from '../transition';\nimport Portal from '../portal';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { Placement, PopupProps } from './types';\n\nconst Popup = (props: PopupProps): JSX.Element => {\n const {\n disabled = false,\n trigger = 'click',\n placement = 'top',\n defaultVisible = false,\n arrow = true,\n flip = true,\n offset = 0,\n theme = 'light',\n usePortal = true,\n mouseEnterDelay = 100,\n mouseLeaveDelay = 100,\n biZoom = true,\n prefixCls: customisedCls,\n content,\n visible,\n onVisibleChange,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('popup', configContext.prefixCls, customisedCls);\n const cls = classNames(\n className,\n prefixCls,\n `${prefixCls}_${placement}`,\n `${prefixCls}_${theme}`\n );\n const [popupVisible, setPopupVisible] = useState('visible' in props ? visible : defaultVisible);\n const targetRef = useRef<HTMLElement | null>(null);\n const popupRef = useRef<HTMLDivElement | null>(null);\n const delayDisplayPopupTimer = useRef<number | undefined>(undefined);\n const delayHidePopupTimer = useRef<number | undefined>(undefined);\n const popperRef = useRef<Instance | undefined>(undefined);\n const elementProps = {\n ref: (ref: HTMLElement | null) => (targetRef.current = ref),\n };\n\n const displayPopup = useCallback(() => {\n setPopupVisible(true);\n onVisibleChange && onVisibleChange(true);\n }, [onVisibleChange]);\n\n const hidePopup = useCallback(() => {\n setPopupVisible(false);\n onVisibleChange && onVisibleChange(false);\n }, [onVisibleChange]);\n\n const delayDisplayPopup = useCallback((): void => {\n delayDisplayPopupTimer.current = window.setTimeout(() => {\n displayPopup();\n }, mouseEnterDelay);\n }, [mouseEnterDelay, displayPopup]);\n\n const delayHidePopup = useCallback((): void => {\n delayHidePopupTimer.current = window.setTimeout(() => {\n hidePopup();\n }, mouseLeaveDelay);\n }, [mouseLeaveDelay, hidePopup]);\n\n const handlePopupOnMouseEnter = (): void => {\n if (trigger === 'hover') {\n displayPopup();\n window.clearTimeout(delayHidePopupTimer.current);\n }\n };\n\n const handlePopupOnMouseLeave = (): void => {\n if (trigger === 'hover') {\n delayHidePopup();\n window.clearTimeout(delayDisplayPopupTimer.current);\n }\n };\n\n const handleTargetOnMouseEnter = useCallback((): void => {\n delayDisplayPopup();\n window.clearTimeout(delayHidePopupTimer.current);\n }, [delayDisplayPopup]);\n\n const handleTargetOnMouseLeave = useCallback((): void => {\n delayHidePopup();\n window.clearTimeout(delayDisplayPopupTimer.current);\n }, [delayHidePopup]);\n\n const documentOnClick = useCallback(\n (e: Event): void => {\n const target = targetRef.current;\n const popup = popupRef.current;\n if (\n !target ||\n target.contains(e.target as HTMLElement) ||\n !popup ||\n popup.contains(e.target as HTMLElement)\n )\n return;\n\n hidePopup();\n },\n [targetRef, hidePopup]\n );\n\n const handleTargetOnMouseClick = useCallback(\n (e: MouseEvent): void => {\n e.preventDefault();\n if (popupVisible) {\n hidePopup();\n } else {\n displayPopup();\n document.addEventListener('click', documentOnClick, true);\n }\n },\n [popupVisible, hidePopup, displayPopup, documentOnClick]\n );\n\n const transitionOnEnter = (): void => {\n const instance = createPopper(\n targetRef.current as HTMLElement,\n popupRef.current as HTMLElement,\n {\n placement: placement as Placement,\n modifiers: [\n {\n name: 'flip',\n enabled: flip,\n },\n {\n name: 'offset',\n options: {\n offset: [0, arrow ? 10 + offset : 3 + offset],\n },\n },\n {\n name: 'computeStyles',\n options: {\n gpuAcceleration: false,\n adaptive: false,\n },\n },\n ],\n }\n );\n if (trigger === 'hover') {\n instance.state.elements.popper.addEventListener('mouseenter', handlePopupOnMouseEnter);\n instance.state.elements.popper.addEventListener('mouseleave', handlePopupOnMouseLeave);\n }\n popperRef.current = instance;\n };\n\n const transitionOnExited = (): void => {\n const popperInstance = popperRef.current;\n if (popperInstance) {\n if (trigger === 'hover') {\n popperInstance.state.elements.popper.removeEventListener(\n 'mouseenter',\n handlePopupOnMouseEnter\n );\n popperInstance.state.elements.popper.removeEventListener(\n 'mouseleave',\n handlePopupOnMouseLeave\n );\n }\n popperInstance.destroy();\n }\n };\n\n const getAnimationName = () => {\n const mapping = {\n 'top-start': biZoom ? 'top-start' : 'center-top',\n top: biZoom ? 'top' : 'center-top',\n 'top-end': biZoom ? 'top-end' : 'center-top',\n 'bottom-start': biZoom ? 'bottom-start' : 'center-bottom',\n bottom: biZoom ? 'bottom' : 'center-bottom',\n 'bottom-end': biZoom ? 'bottom-end' : 'center-bottom',\n 'left-start': biZoom ? 'bottom-end' : 'center-left',\n left: biZoom ? 'left' : 'center-left',\n 'left-end': biZoom ? 'top-end' : 'center-left',\n 'right-start': biZoom ? 'bottom-start' : 'center-right',\n right: biZoom ? 'right' : 'center-right',\n 'right-end': biZoom ? 'top-start' : 'center-right',\n };\n return `zoom-${mapping[placement]}` as AnimationName;\n };\n\n useEffect(() => {\n if (disabled) return;\n\n const target = targetRef.current;\n if (!target) return;\n\n if (trigger === 'hover') {\n target.addEventListener('mouseenter', handleTargetOnMouseEnter);\n target.addEventListener('mouseleave', handleTargetOnMouseLeave);\n } else if (trigger === 'click') {\n target.addEventListener('click', handleTargetOnMouseClick);\n } else if (trigger === 'focus') {\n if (target.nodeName === 'INPUT' || target.nodeName === 'TEXTAREA') {\n target.addEventListener('focus', displayPopup);\n target.addEventListener('blur', hidePopup);\n } else {\n target.addEventListener('mousedown', displayPopup);\n target.addEventListener('mouseup', hidePopup);\n }\n } else if (trigger === 'contextmenu') {\n target.addEventListener('contextmenu', handleTargetOnMouseClick);\n } else if (trigger === 'manual') {\n setPopupVisible(props.visible);\n }\n\n return (): void => {\n target.removeEventListener('mouseenter', handleTargetOnMouseEnter);\n target.removeEventListener('mouseleave', handleTargetOnMouseLeave);\n target.removeEventListener('click', handleTargetOnMouseClick);\n target.removeEventListener('focus', displayPopup);\n target.removeEventListener('blur', hidePopup);\n target.removeEventListener('mousedown', displayPopup);\n target.removeEventListener('mouseup', hidePopup);\n target.removeEventListener('contextmenu', handleTargetOnMouseClick);\n };\n }, [\n props.visible,\n disabled,\n targetRef,\n trigger,\n handleTargetOnMouseClick,\n handleTargetOnMouseEnter,\n handleTargetOnMouseLeave,\n displayPopup,\n hidePopup,\n ]);\n\n useEffect(() => {\n if ('visible' in props) {\n props.visible ? displayPopup() : hidePopup();\n }\n }, [props, displayPopup, hidePopup]);\n\n const renderContent = () => (\n <Transition\n in={popupVisible}\n nodeRef={popupRef}\n onEnter={transitionOnEnter}\n onExited={transitionOnExited}\n animation={getAnimationName()}>\n <div {...otherProps} className={cls} ref={popupRef}>\n {content && arrow && <div data-popper-arrow className={`${prefixCls}__arrow`} />}\n {content}\n </div>\n </Transition>\n );\n\n return (\n <>\n {React.cloneElement(children, elementProps)}\n {usePortal ? <Portal>{renderContent()}</Portal> : renderContent()}\n </>\n );\n};\n\nexport default Popup;\n","import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { useClickOutside } from '../_utils/hooks';\nimport { useCombobox } from '../_utils/useCombobox';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { AutoCompleteOption, AutoCompleteProps } from './types';\nimport Input from '../input/input';\nimport Popup from '../popup';\n\nconst AutoComplete = React.forwardRef<HTMLDivElement, AutoCompleteProps>(\n (props, ref) => {\n const {\n options = [],\n defaultValue = '',\n placeholder,\n disabled = false,\n allowClear = false,\n defaultActiveFirstOption = true,\n defaultOpen = false,\n notFoundContent,\n size,\n filterOption = true,\n onChange,\n onSelect,\n onSearch,\n onFocus,\n onBlur,\n className,\n style,\n prefixCls: customisedCls,\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('auto-complete', configContext.prefixCls, customisedCls);\n const autoCompleteSize = size || configContext.componentSize || 'md';\n\n const [inputValue, setInputValue] = useState(\n 'value' in props ? (props.value as string) : defaultValue\n );\n\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const handleOptionSelect = useCallback(\n (opt: AutoCompleteOption) => {\n if (opt.disabled) return;\n if (!('value' in props)) setInputValue(opt.value);\n onChange?.(opt.value);\n onSelect?.(opt.value, opt);\n combo.closeDropdown();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onChange, onSelect, props]\n );\n\n const combo = useCombobox<AutoCompleteOption>({\n items: options,\n searchValue: inputValue,\n filterOption,\n isOpen: 'open' in props ? (props.open as boolean) : undefined,\n defaultOpen,\n disabled,\n defaultActiveFirstOption,\n onSelect: handleOptionSelect,\n });\n\n // Merge refs\n const setWrapperRef = useCallback(\n (node: HTMLDivElement | null) => {\n wrapperRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [ref]\n );\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_open`]: combo.isOpen,\n });\n\n // Click outside to close\n useClickOutside(wrapperRef.current as HTMLDivElement, () => {\n if (!('open' in props)) {\n combo.closeDropdown();\n }\n });\n\n // Controlled value\n useEffect(() => {\n if ('value' in props) setInputValue(props.value as string);\n }, [props.value]);\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n if (!('value' in props)) setInputValue(val);\n onChange?.(val);\n onSearch?.(val);\n combo.openDropdown();\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n combo.openDropdown();\n onFocus?.(e);\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(e);\n };\n\n const handleClear = () => {\n if (!('value' in props)) setInputValue('');\n onChange?.('');\n onSearch?.('');\n };\n\n const renderDropdown = () => {\n if (combo.filteredItems.length === 0) {\n if (notFoundContent) {\n return <div className={`${prefixCls}__empty`}>{notFoundContent}</div>;\n }\n return null;\n }\n\n return combo.filteredItems.map((opt, index) => {\n const optCls = classNames(`${prefixCls}-option`, {\n [`${prefixCls}-option_active`]: index === combo.focusedIndex,\n [`${prefixCls}-option_disabled`]: opt.disabled,\n });\n return (\n <li\n key={opt.value}\n role=\"option\"\n className={optCls}\n aria-selected={index === combo.focusedIndex}\n aria-disabled={opt.disabled}\n onClick={() => handleOptionSelect(opt)}\n onMouseEnter={() => combo.setFocusedIndex(index)}>\n {opt.label ?? opt.value}\n </li>\n );\n });\n };\n\n const dropdownContent = renderDropdown();\n const showDropdown = combo.isOpen && dropdownContent !== null;\n\n const renderOverlay = () => {\n const selectorWidth = wrapperRef.current?.offsetWidth;\n return (\n <ul\n className={`${prefixCls}__dropdown`}\n style={{ minWidth: selectorWidth || undefined }}\n role=\"listbox\">\n {dropdownContent}\n </ul>\n );\n };\n\n return (\n <div\n ref={setWrapperRef}\n className={cls}\n style={style}\n onKeyDown={combo.handleKeyDown}>\n <Popup\n trigger=\"manual\"\n placement=\"bottom\"\n arrow={false}\n visible={showDropdown}\n content={renderOverlay()}>\n <Input\n ref={inputRef}\n size={autoCompleteSize}\n placeholder={placeholder}\n disabled={disabled}\n value={inputValue}\n clearable={allowClear}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onClearClick={handleClear}\n />\n </Popup>\n </div>\n );\n }\n);\n\nAutoComplete.displayName = 'AutoComplete';\n\nexport default AutoComplete;\n","import React, { useRef, useEffect, useState, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { AvatarProps } from './types';\n\nconst Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>((props, ref) => {\n const {\n size = 38,\n shape = 'circle',\n presence = undefined,\n alt = 'avatar',\n icon,\n src,\n children,\n className,\n style,\n onClick,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const outerEl = useRef<HTMLSpanElement | null>(null);\n const textEl = useRef<HTMLSpanElement | null>(null);\n const [scale, setScale] = useState(1);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('avatar', configContext.prefixCls, customisedCls);\n\n const cls = classNames(prefixCls, className, `${prefixCls}_${shape}`, {\n [`${prefixCls}_clickable`]: onClick,\n });\n\n const renderChildren = () => {\n if (typeof children === 'string') {\n let textStyle: React.CSSProperties = {};\n if (textEl.current) {\n const transformString = `scale(${scale}) translateX(-50%)`;\n textStyle = {\n msTransform: transformString,\n WebkitTransform: transformString,\n transform: transformString,\n };\n }\n return (\n <span ref={textEl} className={`${prefixCls}__text`} style={textStyle}>\n {children}\n </span>\n );\n } else {\n return children;\n }\n };\n\n const renderItem = (): React.ReactNode => {\n if (children) {\n return renderChildren();\n } else if (src) {\n return <img src={src} alt={alt} className={`${prefixCls}__img`} />;\n } else {\n return icon;\n }\n };\n\n const renderPresence = (): React.ReactElement => {\n return <i className={`${prefixCls}__presence ${prefixCls}__presence_${presence}`} />;\n };\n\n const styles: React.CSSProperties = {\n width: size,\n height: size,\n fontSize: size / 2,\n lineHeight: `${size - 4}px`,\n ...style,\n };\n\n useEffect(() => {\n if (outerEl.current && textEl.current && textEl.current!.className === `${prefixCls}__text`) {\n const textElWidth = textEl.current!.offsetWidth;\n const outerElWidth = outerEl.current!.offsetWidth;\n // leave 4px padding for left and right side\n if (outerElWidth - 8 < textElWidth) {\n setScale((outerElWidth - 8) / textElWidth);\n } else {\n setScale(1);\n }\n }\n });\n\n return (\n <span {...otherProps} ref={(node) => {\n outerEl.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n }} className={cls} style={styles}>\n {renderItem()}\n {presence && renderPresence()}\n </span>\n );\n});\n\nAvatar.displayName = 'Avatar';\n\nexport default Avatar;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { AvatarProps, AvatarGroupProps } from './types';\n\nconst AvatarGroup = (props: AvatarGroupProps): JSX.Element => {\n const { gap = -15, className, style, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('avatar-group', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <span {...otherProps} className={cls} style={style}>\n {React.Children.map(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<AvatarProps>;\n if (childElement.type.displayName === 'Avatar') {\n const childProps: Partial<AvatarProps> = {\n style: {\n ...childElement.props.style,\n marginLeft: idx === 0 ? 0 : gap,\n },\n };\n return React.cloneElement(childElement, childProps);\n }\n return child;\n })}\n </span>\n );\n};\n\nAvatarGroup.displayName = 'AvatarGroup';\n\nexport default AvatarGroup;\n","import Avatar from './avatar';\nimport AvatarGroup from './avatar-group';\n\ntype IAvatar = typeof Avatar & {\n Group: typeof AvatarGroup;\n};\n\nconst DefaultAvatar = Avatar as IAvatar;\nDefaultAvatar.Group = AvatarGroup;\n\nexport default DefaultAvatar;\n","import BackTop from './back-top';\n\nexport default BackTop;\n","import React, { useCallback, useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { Target } from '../_utils/dom';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BackTopProps } from './types';\n\nconst easeInOutCubic = (t: number, b: number, c: number, d: number): number => {\n const cc = c - b;\n t /= d / 2;\n if (t < 1) {\n return (cc / 2) * t * t * t + b;\n } else {\n return (cc / 2) * ((t -= 2) * t * t + 2) + b;\n }\n};\n\nconst BackTop = (props: BackTopProps): JSX.Element | null => {\n const {\n visibilityHeight = 300,\n target = (): Target => window,\n prefixCls: customisedCls,\n onClick,\n className,\n style,\n children,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('back-top', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_custom`]: !!children,\n });\n const [visible, setVisible] = useState(true);\n\n const getDistanceFromTop = useCallback((): number => {\n const targetNode = target();\n if (targetNode === window) {\n return window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\n }\n return (targetNode as HTMLElement).scrollTop;\n }, [target]);\n\n const setScrollToTop = (distance: number): void => {\n const targetNode = target();\n if (targetNode === window) {\n document.body.scrollTop = distance;\n document.documentElement.scrollTop = distance;\n } else {\n (targetNode as HTMLElement).scrollTop = distance;\n }\n };\n\n const scrollToTop = (e: React.MouseEvent<HTMLButtonElement>): void => {\n const scrollTop = getDistanceFromTop();\n const startTime = Date.now();\n const step = (): void => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n setScrollToTop(easeInOutCubic(time, scrollTop, 0, 450));\n if (time < 450) {\n requestAnimationFrame(step);\n } else {\n setScrollToTop(0);\n }\n };\n requestAnimationFrame(step);\n onClick && onClick(e);\n };\n\n const handleOnScroll = useCallback(() => {\n if (getDistanceFromTop() > visibilityHeight) {\n !visible && setVisible(true);\n } else if (visible) {\n setVisible(false);\n }\n }, [getDistanceFromTop, visible, visibilityHeight]);\n\n useEffect(() => {\n const targetNode = target();\n targetNode.addEventListener('scroll', handleOnScroll);\n handleOnScroll();\n\n return (): void => {\n targetNode.removeEventListener('scroll', handleOnScroll);\n };\n }, [target, handleOnScroll]);\n\n if (visible) {\n return (\n <button type=\"button\" className={cls} style={style} onClick={scrollToTop} aria-label=\"Back to top\">\n {children || (\n <svg viewBox=\"0 0 1024 1024\" width=\"18\" height=\"18\">\n <path\n d=\"M563.2 379.757048 563.2 972.755371C563.2 1001.056998 540.219441 1024 512 1024\n 483.723021 1024 460.8 1001.019181 460.8 972.755371L460.8 379.740842 272.093167\n 568.447675C252.13208 588.408762 219.700711 588.340711 199.746554 568.386554 179.75171\n 548.39171 179.766716 515.958656 199.685432 496.039941L473.973319 221.752055C483.353204\n 211.343458 496.929524 204.8 512 204.8 527.198527 204.8 540.850334 211.438998 550.227358\n 221.968936L824.32552 496.0671C844.244236 515.985815 844.259243 548.418868 824.2644\n 568.413712 804.310241 588.367871 771.878874 588.435921 751.917786 568.474834L563.2\n 379.757048ZM0 51.2C0 22.923021 22.82342 0 51.130666 0L972.869334 0C1001.108021 0 1024\n 22.980559 1024 51.2 1024 79.476979 1001.17658 102.4 972.869334 102.4L51.130666\n 102.4C22.891979 102.4 0 79.419441 0 51.2Z\"\n fill=\"#ffffff\"\n />\n </svg>\n )}\n </button>\n );\n }\n\n return null;\n};\n\nexport default BackTop;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport warning from '../_utils/warning';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BadgeProps } from './types';\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {\n const {\n count,\n color = '#f2453d',\n max = 99,\n dot = false,\n processing = false,\n showZero = false,\n prefixCls: customisedCls,\n title,\n className,\n badgeStyle,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('badge', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, { [`${prefixCls}_no-wrap`]: !children });\n const dotCls = classNames(`${prefixCls}__dot`, { [`${prefixCls}__dot_wave`]: processing });\n\n warning(!dot && processing, 'only dot badge has the processing effect');\n\n const renderCount = () => {\n if (typeof count === 'number' || typeof count === 'string') {\n if (count === 0 && !showZero) {\n return null;\n }\n return (\n <sup\n title={title}\n className={`${prefixCls}__count`}\n style={{ backgroundColor: color, ...badgeStyle }}>\n {typeof count === 'number' && count > max ? `${max}+` : count}\n </sup>\n );\n } else {\n return <span className={`${prefixCls}__custom`}>{count}</span>;\n }\n };\n\n return (\n <span\n {...otherProps}\n ref={ref}\n className={cls}\n aria-label={typeof count === 'number' ? `${count > max ? `${max}+` : count} notifications` : undefined}>\n {children}\n {dot ? (\n <sup title={title} className={dotCls} style={{ backgroundColor: color, ...badgeStyle }} />\n ) : (\n renderCount()\n )}\n </span>\n );\n});\n\nBadge.displayName = 'Badge';\n\nexport default Badge;\n","import Badge from './badge';\n\nexport default Badge;\n","import React, { ReactElement, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BreadcrumbItemProps, BreadcrumbProps } from './types';\n\nconst Breadcrumb = (props: BreadcrumbProps): React.ReactElement => {\n const { separator = '/', prefixCls: customisedCls, className, style, children } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('breadcrumb', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <nav className={cls} style={style} aria-label=\"Breadcrumb\">\n <ol className={`${prefixCls}__ol`}>\n {React.Children.map(children, (child: ReactElement<BreadcrumbItemProps>) => {\n const childProps: Partial<BreadcrumbItemProps> = { separator };\n return React.cloneElement(child, childProps);\n })}\n </ol>\n </nav>\n );\n};\n\nBreadcrumb.displayName = 'Breadcrumb';\n\nexport default Breadcrumb;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BreadcrumbItemProps } from './types';\n\nconst BreadcrumbItem = (props: BreadcrumbItemProps): React.ReactElement => {\n const { separator, className, style, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('breadcrumb-item', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <li {...otherProps} className={cls} style={style}>\n {children}\n <span className={`${prefixCls}__separator`}>{separator}</span>\n </li>\n );\n};\n\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\nexport default BreadcrumbItem;\n","import Breadcrumb from './breadcrumb';\nimport BreadcrumbItem from './breadcrumb-item';\n\ntype IBreadcrumb = typeof Breadcrumb & {\n Item: typeof BreadcrumbItem;\n};\n\nconst DefaultBreadcrumb = Breadcrumb as IBreadcrumb;\nDefaultBreadcrumb.Item = BreadcrumbItem;\n\nexport default DefaultBreadcrumb;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ButtonProps } from './types';\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>((props: ButtonProps, ref) => {\n const {\n size = 'md',\n btnType = 'default',\n loading = false,\n disabled = false,\n block = false,\n onClick,\n icon,\n round,\n children,\n className,\n style,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('btn', configContext.prefixCls, customisedCls);\n const btnSize = props.size || configContext.componentSize || size;\n const cls = classNames(\n prefixCls,\n `${prefixCls}_${btnSize}`,\n {\n [`${prefixCls}_${btnType}`]: btnType,\n [`${prefixCls}_block`]: block,\n [`${prefixCls}_round`]: round,\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_loading`]: loading,\n },\n className\n );\n\n const btnOnClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled || loading) {\n return;\n }\n onClick && onClick(e);\n };\n\n const renderIcon = (): React.ReactElement | null => {\n if (loading) {\n return <span className={`${prefixCls}__loader`} />;\n } else if (icon) {\n return <span className={`${prefixCls}__icon-container`}>{icon}</span>;\n } else {\n return null;\n }\n };\n\n return (\n <button\n {...otherProps}\n ref={ref}\n role=\"button\"\n className={cls}\n disabled={disabled}\n onClick={btnOnClick}\n style={style}>\n {renderIcon()}\n {children && <span className={`${prefixCls}__children`}>{children}</span>}\n </button>\n );\n});\n\nButton.displayName = 'Button';\n\nexport default Button;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ButtonGroupProps, ButtonProps, ButtonType } from './types';\nimport { SizeType } from '../_utils/props';\n\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n (props: ButtonGroupProps, ref) => {\n const {\n size = 'md',\n btnType = 'default',\n disabled = false,\n round = false,\n prefixCls: customisedCls,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('btn-group', configContext.prefixCls, customisedCls);\n const btnSize = props.size || configContext.componentSize || size;\n const cls = classNames(\n prefixCls,\n {\n [`${prefixCls}_round`]: round,\n [`${prefixCls}_${btnType}`]: btnType,\n },\n className\n );\n return (\n <div {...otherProps} className={cls} ref={ref}>\n {React.Children.map(children, (child) => {\n const childElement = child as React.FunctionComponentElement<ButtonProps>;\n const { displayName } = childElement.type;\n if (displayName === 'Button') {\n const childProps: Partial<ButtonProps> = {\n btnType: btnType as ButtonType,\n size: btnSize as SizeType,\n disabled: 'disabled' in childElement.props ? childElement.props.disabled : disabled,\n };\n return React.cloneElement(childElement, childProps);\n } else {\n return child;\n }\n })}\n </div>\n );\n }\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n\nexport default ButtonGroup;\n","import Button from './button';\nimport ButtonGroup from './button-group';\n\ntype IButton = typeof Button & {\n Group: typeof ButtonGroup;\n};\n\nconst DefaultButton = Button as IButton;\nDefaultButton.Group = ButtonGroup;\n\nexport default DefaultButton;\n","import { Locale } from './types';\n\nconst en_US: Locale = {\n locale: 'en_US',\n DatePicker: {\n weeks: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n today: 'Today',\n selectDate: 'Select date',\n selectMonth: 'Select month',\n selectYear: 'Select year',\n },\n TimePicker: {\n selectTime: 'Select time',\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n },\n PopConfirm: {\n okText: 'Yes',\n cancelText: 'No',\n },\n Empty: {\n description: 'No Data',\n },\n Table: {\n sortAscend: 'Sort ascending',\n sortDescend: 'Sort descending',\n cancelSort: 'Cancel sort',\n selectAll: 'Select all',\n selectNone: 'Select none',\n emptyText: 'No Data',\n },\n ColorPicker: {\n hex: 'HEX',\n rgb: 'RGB',\n hsb: 'HSB',\n },\n};\n\nexport default en_US;\n","import React from 'react';\nimport { Locale } from '../locale/types';\nimport en_US from '../locale/en_US';\n\nexport default React.createContext<Locale>(en_US);\n","import { useContext } from 'react';\nimport { Locale } from '../locale/types';\nimport { ConfigContext } from '../config-provider/config-context';\nimport IntlContext from '../intl-provider/intl-context';\n\nexport function useLocale(): Locale {\n const config = useContext(ConfigContext);\n const intl = useContext(IntlContext);\n return config.locale ?? intl;\n}\n","export const WEEKS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\nexport const MONTHS = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n];\n\nconst TODAY = new Date();\nexport const THIS_YEAR = TODAY.getFullYear();\nexport const THIS_MONTH = TODAY.getMonth();\nexport const THIS_DAY = TODAY.getDate();\n\nexport const isLeapYear = (year: number): boolean => {\n if (year % 4 === 0 && year % 100 !== 0) {\n return true;\n } else if (year % 400 === 0) {\n return true;\n }\n return false;\n};\n\n/**\n * (int) Number days in a month for a given year from 28 - 31\n * @param month\n * @param year\n */\nexport const getMonthDays = (year: number = THIS_YEAR, month: number = THIS_MONTH): number => {\n const day = year && isLeapYear(year) ? 29 : 28;\n return [31, day, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n};\n\nexport const getWeekday = (\n year: number = THIS_YEAR,\n month: number = THIS_MONTH,\n date: number = THIS_DAY\n): number => {\n return new Date(year, month, date).getDay();\n};\n\ntype DayCell = {\n label: number;\n date: Date;\n isThisMonth: boolean;\n};\n\nexport const getMonthDaysArray = (date: Date = TODAY): DayCell[] => {\n const year = date.getFullYear();\n const month = date.getMonth();\n const dayArrays: DayCell[] = [];\n const days = getMonthDays(year, month);\n const [preYear, preMonth] = getPrevMonthAndYear(year, month);\n const preDays = getMonthDays(preYear, preMonth);\n const thisMonthFirstDayInWeek = getWeekday(year, month, 1);\n\n // last month days\n for (let i = 0; i < thisMonthFirstDayInWeek; i++) {\n const day = preDays - thisMonthFirstDayInWeek + i + 1;\n dayArrays.push({\n label: day,\n date: new Date(preYear, preMonth, day),\n isThisMonth: false,\n });\n }\n\n // this month days\n for (let i = 1; i <= days; i++) {\n dayArrays.push({\n label: i,\n date: new Date(year, month, i),\n isThisMonth: true,\n });\n }\n\n // next month days\n for (let i = 1; i <= 42 - days - thisMonthFirstDayInWeek; i++) {\n dayArrays.push({\n label: i,\n date: new Date(year, month + 1, i),\n isThisMonth: false,\n });\n }\n\n return dayArrays;\n};\n\nexport const isSameDate = (dateA: Date, dateB: Date): boolean => {\n const dateAYear = dateA.getFullYear();\n const dateAMonth = dateA.getMonth();\n const dateADate = dateA.getDate();\n const dateBYear = dateB.getFullYear();\n const dateBMonth = dateB.getMonth();\n const dateBDate = dateB.getDate();\n return dateAYear === dateBYear && dateAMonth === dateBMonth && dateADate === dateBDate;\n};\n\nexport const isToday = (date: Date): boolean => {\n return isSameDate(new Date(), date);\n};\n\n/**\n * (bool) Checks if a value is a date - this is just a simple check\n * @param date\n */\nexport const isDate = (date: Date): boolean => {\n const isPrototypeDate = Object.prototype.toString.call(date) === '[object Date]';\n const isValidDate = date && !Number.isNaN(date.valueOf());\n\n return isPrototypeDate && isValidDate;\n};\n\nexport const getPrevMonthDate = (date: Date = TODAY): Date => {\n const month = date.getMonth();\n const year = date.getFullYear();\n const prevMonth = month > 0 ? month - 1 : 11;\n const prevYear = month > 0 ? year : year - 1;\n\n return new Date(prevYear, prevMonth, date.getDate());\n};\n\nexport const getPrevMonthAndYear = (\n year: number = THIS_YEAR,\n month: number = THIS_MONTH\n): [number, number] => {\n const prevMonth = month > 0 ? month - 1 : 11;\n const prevYear = month > 0 ? year : year - 1;\n\n return [prevYear, prevMonth];\n};\n\nexport const getNextMonthDate = (date: Date = TODAY): Date => {\n const month = date.getMonth();\n const year = date.getFullYear();\n const nextMonth = month < 11 ? month + 1 : 0;\n const nextYear = month < 11 ? year : year + 1;\n\n return new Date(nextYear, nextMonth, date.getDate());\n};\n\nexport const getPrevYearDate = (date: Date = TODAY): Date => {\n return new Date(date.getFullYear() - 1, date.getMonth(), date.getDate());\n};\n\nexport const getNextYearDate = (date: Date = TODAY): Date => {\n return new Date(date.getFullYear() + 1, date.getMonth(), date.getDate());\n};\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useLocale } from '../_utils/use-locale';\nimport {\n getMonthDaysArray,\n isSameDate,\n isToday,\n getPrevMonthDate,\n getNextMonthDate,\n getPrevYearDate,\n getNextYearDate,\n} from '../date-picker/utils';\nimport { CalendarProps, CalendarMode } from './types';\n\nconst MONTH_NAMES_EN = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n];\n\nconst Calendar = React.forwardRef<HTMLDivElement, CalendarProps>((props, ref) => {\n const {\n defaultValue,\n fullscreen = true,\n disabledDate,\n dateCellRender,\n monthCellRender,\n headerRender,\n defaultMode = 'month',\n prefixCls: customisedCls,\n className,\n style,\n onChange,\n onSelect,\n onPanelChange,\n value: _value,\n mode: _mode,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('calendar', configContext.prefixCls, customisedCls);\n const locale = useLocale();\n\n const [selectedDate, setSelectedDate] = useState<Date>(\n 'value' in props ? (props.value as Date) : (defaultValue ?? new Date())\n );\n const [panelDate, setPanelDate] = useState<Date>(selectedDate);\n const [mode, setMode] = useState<CalendarMode>(\n 'mode' in props ? (props.mode as CalendarMode) : defaultMode\n );\n\n useEffect(() => {\n if ('value' in props && props.value) {\n setSelectedDate(props.value);\n setPanelDate(props.value);\n }\n }, [props.value]);\n\n useEffect(() => {\n if ('mode' in props) {\n setMode(props.mode as CalendarMode);\n }\n }, [props.mode]);\n\n const weeks = locale?.DatePicker?.weeks ?? ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n const months = locale?.DatePicker?.months ?? [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',\n ];\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_fullscreen`]: fullscreen,\n [`${prefixCls}_card`]: !fullscreen,\n });\n\n const handleDateSelect = (date: Date) => {\n if (disabledDate?.(date)) return;\n if (!('value' in props)) {\n setSelectedDate(date);\n }\n setPanelDate(date);\n onSelect?.(date);\n onChange?.(date);\n };\n\n const handlePanelChange = (newDate: Date, newMode?: CalendarMode) => {\n setPanelDate(newDate);\n const m = newMode ?? mode;\n onPanelChange?.(newDate, m);\n };\n\n const handleModeChange = (newMode: CalendarMode) => {\n if (!('mode' in props)) {\n setMode(newMode);\n }\n onPanelChange?.(panelDate, newMode);\n };\n\n const handleMonthSelect = (month: number) => {\n const newDate = new Date(panelDate.getFullYear(), month, 1);\n handleDateSelect(newDate);\n handleModeChange('month');\n };\n\n const goPrev = () => {\n const newDate = mode === 'month' ? getPrevMonthDate(panelDate) : getPrevYearDate(panelDate);\n handlePanelChange(newDate);\n };\n\n const goNext = () => {\n const newDate = mode === 'month' ? getNextMonthDate(panelDate) : getNextYearDate(panelDate);\n handlePanelChange(newDate);\n };\n\n const renderHeader = () => {\n if (headerRender) {\n return headerRender({\n value: panelDate,\n mode,\n onChange: (date) => handlePanelChange(date),\n onModeChange: handleModeChange,\n });\n }\n\n const year = panelDate.getFullYear();\n const month = panelDate.getMonth();\n const monthName = locale?.locale === 'zh_CN'\n ? `${months[month]}`\n : MONTH_NAMES_EN[month];\n\n return (\n <div className={`${prefixCls}__header`}>\n <button type=\"button\" className={`${prefixCls}__nav-btn`} onClick={goPrev} aria-label=\"Previous\">\n ‹\n </button>\n <span className={`${prefixCls}__title`}>\n <button\n type=\"button\"\n className={`${prefixCls}__title-btn`}\n onClick={() => handleModeChange(mode === 'month' ? 'year' : 'month')}\n >\n {mode === 'month' ? `${monthName} ${year}` : year}\n </button>\n </span>\n <button type=\"button\" className={`${prefixCls}__nav-btn`} onClick={goNext} aria-label=\"Next\">\n ›\n </button>\n </div>\n );\n };\n\n const renderMonthPanel = () => {\n const panelDays = getMonthDaysArray(panelDate);\n\n return (\n <table className={`${prefixCls}__table`} role=\"grid\">\n <thead>\n <tr>\n {weeks.map((week, i) => (\n <th key={i} className={`${prefixCls}__cell-header`} scope=\"col\">\n {week}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: panelDays.length / 7 }, (_, row) => (\n <tr key={row}>\n {panelDays.slice(row * 7, row * 7 + 7).map((dayCell, col) => {\n const isDisabled = disabledDate?.(dayCell.date) ?? false;\n const cellCls = classNames(`${prefixCls}__cell`, {\n [`${prefixCls}__cell_in-view`]: dayCell.isThisMonth,\n [`${prefixCls}__cell_today`]: isToday(dayCell.date),\n [`${prefixCls}__cell_selected`]: isSameDate(selectedDate, dayCell.date),\n [`${prefixCls}__cell_disabled`]: isDisabled,\n });\n return (\n <td\n key={col}\n className={cellCls}\n onClick={() => handleDateSelect(dayCell.date)}\n role=\"gridcell\"\n >\n <div className={`${prefixCls}__cell-inner`}>\n <span className={`${prefixCls}__cell-date`}>{dayCell.label}</span>\n {dateCellRender && dayCell.isThisMonth && (\n <div className={`${prefixCls}__cell-content`}>\n {dateCellRender(dayCell.date)}\n </div>\n )}\n </div>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n );\n };\n\n const renderYearPanel = () => {\n return (\n <div className={`${prefixCls}__months`}>\n {months.map((monthLabel, i) => {\n const monthDate = new Date(panelDate.getFullYear(), i, 1);\n const isCurrentMonth = panelDate.getMonth() === i;\n const cellCls = classNames(`${prefixCls}__month-cell`, {\n [`${prefixCls}__month-cell_selected`]: isCurrentMonth,\n });\n return (\n <div\n key={i}\n className={cellCls}\n onClick={() => handleMonthSelect(i)}\n >\n <div className={`${prefixCls}__month-inner`}>\n <span>{monthLabel}</span>\n {monthCellRender && (\n <div className={`${prefixCls}__month-content`}>\n {monthCellRender(monthDate)}\n </div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n };\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n {renderHeader()}\n <div className={`${prefixCls}__body`}>\n {mode === 'month' ? renderMonthPanel() : renderYearPanel()}\n </div>\n </div>\n );\n});\n\nCalendar.displayName = 'Calendar';\nexport default Calendar;\n","import Calendar from './calendar';\n\nexport default Calendar;\n","import React, { ReactNode, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CardContentProps, CardProps } from './types';\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>((props, ref) => {\n const {\n bordered = true,\n active = false,\n hoverable = false,\n prefixCls: customisedCls,\n title,\n extra,\n header,\n headerStyle,\n actions,\n footer,\n footerStyle,\n className,\n style,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('card', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_bordered`]: bordered,\n [`${prefixCls}_active`]: active,\n [`${prefixCls}_hoverable`]: hoverable,\n });\n\n const renderHeader = (): ReactNode => {\n if (header) {\n return header;\n } else if (title || extra) {\n return (\n <div className={`${prefixCls}__header`} style={headerStyle}>\n {title}\n {extra}\n </div>\n );\n } else {\n return null;\n }\n };\n\n const renderFooter = (): ReactNode => {\n if (footer) {\n return footer;\n } else if (actions) {\n return (\n <div className={`${prefixCls}__footer`} style={footerStyle}>\n {actions}\n </div>\n );\n } else {\n return null;\n }\n };\n\n const renderChildren = (): ReactNode => {\n if (children) {\n return React.Children.map(children, (child) => {\n if (!React.isValidElement(child)) {\n return child;\n }\n\n // Pass prefixCls attribute to child if it is a CardContent instance\n const childElement = child as React.FunctionComponentElement<CardContentProps>;\n if (childElement.type.displayName === 'CardContent') {\n const childProps: Partial<CardContentProps> = {\n prefixCls,\n };\n return React.cloneElement(childElement, childProps);\n } else {\n return child;\n }\n });\n }\n return null;\n };\n\n return (\n <div ref={ref} {...otherProps} className={cls} style={style}>\n {renderHeader()}\n {renderChildren()}\n {renderFooter()}\n </div>\n );\n});\n\nCard.displayName = 'Card';\n\nexport default Card;\n","import React from 'react';\nimport { CardContentProps } from './types';\n\nconst CardContent = (props: CardContentProps): React.ReactElement => {\n const { prefixCls, children, ...otherProps } = props;\n return (\n <div {...otherProps} className={`${prefixCls}__body`}>\n {children}\n </div>\n );\n};\n\nCardContent.displayName = 'CardContent';\n\nexport default CardContent;\n","import Card from './card';\nimport CardContent from './card-content';\n\ntype ICard = typeof Card & {\n Content: typeof CardContent;\n};\n\nconst DefaultCard = Card as ICard;\nDefaultCard.Content = CardContent;\n\nexport default DefaultCard;\n","import React, {\n useRef,\n useEffect,\n useState,\n useCallback,\n useImperativeHandle,\n forwardRef,\n useContext,\n} from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CarouselProps, CarouselRef } from './types';\n\nconst Carousel = forwardRef<CarouselRef, CarouselProps>((props, ref) => {\n const {\n dots = true,\n arrows = false,\n autoplay = false,\n autoplaySpeed = 3000,\n dotPlacement = 'bottom',\n effect = 'scrollx',\n easing = 'ease',\n speed = 500,\n infinite = true,\n draggable = false,\n waitForAnimate = false,\n beforeChange,\n afterChange,\n className,\n style,\n children,\n prefixCls: customisedCls,\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('carousel', configContext.prefixCls, customisedCls);\n\n const slideCount = React.Children.count(children);\n const slides = React.Children.toArray(children) as React.ReactElement[];\n\n const trackRef = useRef<HTMLDivElement>(null);\n const outerRef = useRef<HTMLDivElement>(null);\n const [current, setCurrent] = useState(0);\n const [isAnimating, setIsAnimating] = useState(false);\n const animatingRef = useRef(false);\n\n // Drag state\n const dragStartX = useRef(0);\n const dragDelta = useRef(0);\n const isDragging = useRef(false);\n\n const isFade = effect === 'fade';\n\n // ---- Navigate ----\n const goTo = useCallback(\n (index: number, dontAnimate = false) => {\n if (waitForAnimate && animatingRef.current) return;\n if (index === current) return;\n\n const next = ((index % slideCount) + slideCount) % slideCount;\n beforeChange?.(current, next);\n\n if (dontAnimate || isFade) {\n setCurrent(next);\n afterChange?.(next);\n } else {\n setIsAnimating(true);\n animatingRef.current = true;\n setCurrent(next);\n }\n },\n [current, slideCount, beforeChange, afterChange, isFade, waitForAnimate]\n );\n\n const next = useCallback(() => {\n if (!infinite && current >= slideCount - 1) return;\n goTo(current + 1);\n }, [current, slideCount, infinite, goTo]);\n\n const prev = useCallback(() => {\n if (!infinite && current <= 0) return;\n goTo(current - 1);\n }, [current, infinite, goTo]);\n\n // ---- Imperative handle ----\n useImperativeHandle(ref, () => ({ goTo, next, prev }), [goTo, next, prev]);\n\n // ---- Animation end ----\n const handleTransitionEnd = useCallback(() => {\n setIsAnimating(false);\n animatingRef.current = false;\n afterChange?.(current);\n }, [afterChange, current]);\n\n // ---- Autoplay ----\n useEffect(() => {\n if (!autoplay || slideCount <= 1) return;\n const timer = window.setInterval(next, autoplaySpeed);\n return () => window.clearInterval(timer);\n }, [autoplay, autoplaySpeed, next, slideCount]);\n\n // ---- Drag ----\n const handleDragStart = (e: React.MouseEvent | React.TouchEvent) => {\n if (!draggable) return;\n isDragging.current = true;\n dragDelta.current = 0;\n dragStartX.current = 'touches' in e ? e.touches[0].clientX : e.clientX;\n };\n\n const handleDragMove = (e: React.MouseEvent | React.TouchEvent) => {\n if (!isDragging.current) return;\n const x = 'touches' in e ? e.touches[0].clientX : e.clientX;\n dragDelta.current = x - dragStartX.current;\n };\n\n const handleDragEnd = () => {\n if (!isDragging.current) return;\n isDragging.current = false;\n const containerWidth = outerRef.current?.clientWidth ?? 300;\n const threshold = containerWidth / 4;\n if (dragDelta.current < -threshold) {\n next();\n } else if (dragDelta.current > threshold) {\n prev();\n }\n dragDelta.current = 0;\n };\n\n // ---- Pause on hover ----\n const [paused, setPaused] = useState(false);\n useEffect(() => {\n if (!autoplay || !paused) return;\n // Autoplay effect handles timer — paused state is checked via dependency\n }, [autoplay, paused]);\n\n // Override autoplay to account for pause\n useEffect(() => {\n if (!autoplay || slideCount <= 1 || paused) return;\n const timer = window.setInterval(next, autoplaySpeed);\n return () => window.clearInterval(timer);\n }, [autoplay, autoplaySpeed, next, slideCount, paused]);\n\n // ---- Dots config ----\n const showDots = dots !== false;\n const dotsClassName = typeof dots === 'object' ? dots.className : undefined;\n const isVerticalDot = dotPlacement === 'left' || dotPlacement === 'right';\n\n // ---- Class names ----\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${effect}`]: true,\n [`${prefixCls}_vertical-dots`]: isVerticalDot,\n });\n\n // ---- Render scrollx track ----\n const renderScrollxTrack = () => {\n const pct = 100 / slideCount;\n const trackStyle: React.CSSProperties = {\n width: `${slideCount * 100}%`,\n transform: `translate3d(${-current * pct}%, 0, 0)`,\n transition: isAnimating ? `transform ${speed}ms ${easing}` : 'none',\n };\n\n return (\n <div\n className={`${prefixCls}__track`}\n ref={trackRef}\n style={trackStyle}\n onTransitionEnd={handleTransitionEnd}>\n {slides.map((child, idx) => (\n <div\n key={idx}\n className={`${prefixCls}__slide`}\n style={{ width: `${pct}%` }}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`Slide ${idx + 1} of ${slideCount}`}\n aria-hidden={idx !== current}>\n {child}\n </div>\n ))}\n </div>\n );\n };\n\n // ---- Render fade ----\n const renderFadeTrack = () => (\n <div className={`${prefixCls}__track ${prefixCls}__track_fade`}>\n {slides.map((child, idx) => {\n const isActive = idx === current;\n return (\n <div\n key={idx}\n className={classNames(`${prefixCls}__slide`, {\n [`${prefixCls}__slide_active`]: isActive,\n })}\n style={{\n opacity: isActive ? 1 : 0,\n transition: `opacity ${speed}ms ${easing}`,\n }}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`Slide ${idx + 1} of ${slideCount}`}\n aria-hidden={!isActive}>\n {child}\n </div>\n );\n })}\n </div>\n );\n\n return (\n <div\n ref={outerRef}\n className={cls}\n style={style}\n role=\"region\"\n aria-roledescription=\"carousel\"\n aria-label=\"Carousel\"\n onKeyDown={(e) => {\n if (e.key === 'ArrowLeft') { e.preventDefault(); prev(); }\n if (e.key === 'ArrowRight') { e.preventDefault(); next(); }\n }}\n tabIndex={0}\n onMouseEnter={() => autoplay && setPaused(true)}\n onMouseLeave={() => autoplay && setPaused(false)}\n onMouseDown={handleDragStart}\n onMouseMove={handleDragMove}\n onMouseUp={handleDragEnd}\n onTouchStart={handleDragStart}\n onTouchMove={handleDragMove}\n onTouchEnd={handleDragEnd}>\n <div className={`${prefixCls}__viewport`}>\n {isFade ? renderFadeTrack() : renderScrollxTrack()}\n </div>\n\n {arrows && slideCount > 1 && (\n <>\n <button\n className={`${prefixCls}__arrow ${prefixCls}__arrow_prev`}\n onClick={prev}\n type=\"button\"\n aria-label=\"Previous slide\">\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"currentColor\">\n <path d=\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\" />\n </svg>\n </button>\n <button\n className={`${prefixCls}__arrow ${prefixCls}__arrow_next`}\n onClick={next}\n type=\"button\"\n aria-label=\"Next slide\">\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"currentColor\">\n <path d=\"M8.59 16.59L10 18l6-6-6-6-1.41 1.41L13.17 12z\" />\n </svg>\n </button>\n </>\n )}\n\n {showDots && slideCount > 1 && (\n <ul\n className={classNames(\n `${prefixCls}__dots`,\n `${prefixCls}__dots_${dotPlacement}`,\n dotsClassName\n )}>\n {slides.map((_, idx) => (\n <li\n key={idx}\n className={classNames(`${prefixCls}__dot`, {\n [`${prefixCls}__dot_active`]: idx === current,\n })}>\n <button\n type=\"button\"\n aria-label={`Go to slide ${idx + 1}`}\n aria-current={idx === current ? true : undefined}\n onClick={() => goTo(idx)}\n />\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n});\n\nCarousel.displayName = 'Carousel';\n\nexport default Carousel;\n","import { BaseProps } from '../_utils/props';\n\nexport interface CarouselItemProps extends BaseProps {\n children?: React.ReactNode;\n}\n\nconst CarouselItem = (props: CarouselItemProps): React.ReactElement => {\n const { children, style, className } = props;\n return (\n <div style={style} className={className}>\n {children}\n </div>\n );\n};\n\nCarouselItem.displayName = 'CarouselItem';\n\nexport default CarouselItem;\n","import Carousel from './carousel';\nimport CarouselItem from './carousel-item';\n\nexport type { CarouselProps, CarouselRef, DotPlacement, CarouselEffect } from './types';\nexport type { CarouselItemProps } from './carousel-item';\n\ntype ICarousel = typeof Carousel & {\n Item: typeof CarouselItem;\n};\n\nconst DefaultCarousel = Carousel as unknown as ICarousel;\nDefaultCarousel.Item = CarouselItem;\n\nexport default DefaultCarousel;\n","import React, { useState, useEffect, useRef, useContext, useMemo } from 'react';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ArrowDown } from '../_utils/components';\nimport { CascaderProps, CascaderOption, CascaderValue } from './types';\n\nconst getOptionsByValue = (\n options: CascaderOption[],\n value: CascaderValue\n): CascaderOption[] => {\n const result: CascaderOption[] = [];\n let current = options;\n for (const v of value) {\n const found = current.find((opt) => opt.value === v);\n if (!found) break;\n result.push(found);\n current = found.children ?? [];\n }\n return result;\n};\n\nconst Cascader = React.forwardRef<HTMLDivElement, CascaderProps>((props, ref) => {\n const {\n options,\n defaultValue,\n placeholder = 'Please select',\n disabled = false,\n allowClear = true,\n size,\n expandTrigger = 'click',\n displayRender,\n changeOnSelect = false,\n notFoundContent = 'No Data',\n prefixCls: customisedCls,\n className,\n style,\n onChange,\n onDropdownVisibleChange,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('cascader', configContext.prefixCls, customisedCls);\n const cascaderSize = size || configContext.componentSize || 'md';\n const wrapperRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const [open, setOpen] = useState(false);\n const [dropdownStyle, setDropdownStyle] = useState<React.CSSProperties>({});\n const [selectedValue, setSelectedValue] = useState<CascaderValue>(\n 'value' in props ? (props.value ?? []) : (defaultValue ?? [])\n );\n const [activeColumns, setActiveColumns] = useState<CascaderOption[][]>([options]);\n const [hoveredPath, setHoveredPath] = useState<CascaderValue>([]);\n\n useEffect(() => {\n if ('value' in props) {\n setSelectedValue(props.value ?? []);\n }\n }, [props.value]);\n\n useEffect(() => {\n if ('open' in props) {\n setOpen(props.open as boolean);\n }\n }, [props.open]);\n\n // Build columns from selected value on mount\n useEffect(() => {\n const cols: CascaderOption[][] = [options];\n let current = options;\n const path = selectedValue.length > 0 ? selectedValue : hoveredPath;\n for (const v of path) {\n const found = current.find((opt) => opt.value === v);\n if (found?.children?.length) {\n cols.push(found.children);\n current = found.children;\n } else {\n break;\n }\n }\n setActiveColumns(cols);\n }, [options, selectedValue]);\n\n // Position dropdown below selector\n useEffect(() => {\n if (open && wrapperRef.current) {\n const rect = wrapperRef.current.getBoundingClientRect();\n setDropdownStyle({\n position: 'absolute',\n top: rect.bottom + 4 + window.scrollY,\n left: rect.left + window.scrollX,\n zIndex: 1050,\n });\n }\n }, [open]);\n\n // Click outside\n useEffect(() => {\n if (!open) return;\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node;\n if (\n wrapperRef.current && !wrapperRef.current.contains(target) &&\n dropdownRef.current && !dropdownRef.current.contains(target)\n ) {\n closeDropdown();\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [open]);\n\n const closeDropdown = () => {\n if (!('open' in props)) setOpen(false);\n onDropdownVisibleChange?.(false);\n setHoveredPath([]);\n };\n\n const toggleOpen = () => {\n if (disabled) return;\n const next = !open;\n if (!('open' in props)) setOpen(next);\n onDropdownVisibleChange?.(next);\n };\n\n const handleOptionSelect = (option: CascaderOption, level: number) => {\n if (option.disabled) return;\n\n const newPath = [...hoveredPath.slice(0, level), option.value];\n setHoveredPath(newPath);\n\n // Update columns\n const cols = activeColumns.slice(0, level + 1);\n if (option.children?.length) {\n cols.push(option.children);\n }\n setActiveColumns(cols);\n\n // If leaf node or changeOnSelect\n const isLeaf = option.isLeaf !== undefined ? option.isLeaf : !option.children?.length;\n if (isLeaf || changeOnSelect) {\n if (!('value' in props)) {\n setSelectedValue(newPath);\n }\n const selectedOptions = getOptionsByValue(options, newPath);\n onChange?.(newPath, selectedOptions);\n if (isLeaf) {\n closeDropdown();\n }\n }\n };\n\n const handleOptionHover = (option: CascaderOption, level: number) => {\n if (expandTrigger !== 'hover' || option.disabled) return;\n const newPath = [...hoveredPath.slice(0, level), option.value];\n setHoveredPath(newPath);\n\n const cols = activeColumns.slice(0, level + 1);\n if (option.children?.length) {\n cols.push(option.children);\n }\n setActiveColumns(cols);\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!('value' in props)) {\n setSelectedValue([]);\n }\n onChange?.([], []);\n setActiveColumns([options]);\n setHoveredPath([]);\n };\n\n const selectedOptions = useMemo(\n () => getOptionsByValue(options, selectedValue),\n [options, selectedValue]\n );\n\n const labels = selectedOptions.map((opt) => opt.label);\n\n const displayText = useMemo(() => {\n if (selectedValue.length === 0) return '';\n if (displayRender) return displayRender(labels, selectedOptions);\n return labels.join(' / ');\n }, [selectedValue, selectedOptions, displayRender]);\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${cascaderSize}`]: cascaderSize,\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_open`]: open,\n });\n\n const dropdown = open\n ? createPortal(\n <div className={`${prefixCls}__dropdown`} ref={dropdownRef} style={dropdownStyle}>\n <div className={`${prefixCls}__menus`}>\n {activeColumns.map((columnOptions, level) => (\n <ul key={level} className={`${prefixCls}__menu`} role=\"listbox\">\n {columnOptions.length === 0 ? (\n <li className={`${prefixCls}__menu-empty`}>{notFoundContent}</li>\n ) : (\n columnOptions.map((option) => {\n const isActive =\n (selectedValue[level] === option.value) ||\n (hoveredPath[level] === option.value);\n const hasChildren = !!(option.children?.length);\n const itemCls = classNames(`${prefixCls}__menu-item`, {\n [`${prefixCls}__menu-item_active`]: isActive,\n [`${prefixCls}__menu-item_disabled`]: option.disabled,\n });\n return (\n <li\n key={option.value}\n className={itemCls}\n role=\"option\"\n aria-selected={isActive}\n onClick={() => handleOptionSelect(option, level)}\n onMouseEnter={() => handleOptionHover(option, level)}\n >\n <span className={`${prefixCls}__menu-item-label`}>{option.label}</span>\n {hasChildren && (\n <span className={`${prefixCls}__menu-item-arrow`}>›</span>\n )}\n </li>\n );\n })\n )}\n </ul>\n ))}\n </div>\n </div>,\n document.body\n )\n : null;\n\n return (\n <div {...otherProps} ref={wrapperRef} className={cls} style={style}>\n <div className={`${prefixCls}__selector`} onClick={toggleOpen}>\n {displayText ? (\n <span className={`${prefixCls}__display`}>{displayText}</span>\n ) : (\n <span className={`${prefixCls}__placeholder`}>{placeholder}</span>\n )}\n {allowClear && selectedValue.length > 0 && (\n <span className={`${prefixCls}__clear`} onClick={handleClear}>\n ✕\n </span>\n )}\n <span className={`${prefixCls}__arrow`}><ArrowDown size={10} /></span>\n </div>\n {dropdown}\n </div>\n );\n});\n\nCascader.displayName = 'Cascader';\nexport default Cascader;\n","import Cascader from './cascader';\n\nexport default Cascader;\n","import React from 'react';\n\ntype Props = {\n value?: string[];\n disabled?: boolean;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n};\n\nexport const CheckboxGroupContext = React.createContext<Props>({});\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CheckboxGroupContext } from './checkbox-group-context';\nimport { CheckboxProps } from './types';\n\nconst Checkbox = React.forwardRef<HTMLLabelElement, CheckboxProps>(\n (props: CheckboxProps, ref): React.ReactElement => {\n const {\n defaultChecked = false,\n indeterminate = false,\n value,\n onChange,\n className,\n children,\n checkboxRef,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const checkboxGroupContext = useContext(CheckboxGroupContext);\n const initialChecked = 'checked' in props ? (props.checked as boolean) : defaultChecked;\n const [checked, setChecked] = useState<boolean>(\n 'value' in checkboxGroupContext ? checkboxGroupContext.value === value : initialChecked\n );\n const prefixCls = getPrefixCls('checkbox', configContext.prefixCls, customisedCls);\n const disabled: boolean =\n 'disabled' in props\n ? (props.disabled as boolean)\n : 'disabled' in checkboxGroupContext\n ? (checkboxGroupContext.disabled as boolean)\n : false;\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_indeterminate`]: indeterminate,\n [`${prefixCls}_checked`]: checked && !indeterminate,\n [`${prefixCls}_disabled`]: disabled,\n });\n\n const checkboxOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled) {\n !('checked' in props) && setChecked(e.currentTarget.checked);\n onChange && onChange(e);\n checkboxGroupContext.onChange && checkboxGroupContext.onChange(e);\n }\n };\n\n useEffect(() => {\n if ('value' in checkboxGroupContext && typeof checkboxGroupContext.value !== 'undefined' && 'value' in props ) {\n setChecked((checkboxGroupContext.value).includes(value as string));\n }\n 'checked' in props && typeof props.checked !== 'undefined' && setChecked(props.checked);\n }, [props, checkboxGroupContext, value]);\n\n return (\n <label {...otherProps} ref={ref} className={cls}>\n <input\n ref={checkboxRef}\n role=\"checkbox\"\n aria-checked={checked}\n name={value}\n disabled={disabled}\n className={`${prefixCls}__native`}\n type=\"checkbox\"\n checked={checked}\n onChange={checkboxOnChange}\n />\n <span className={`${prefixCls}__inner`} />\n <span>{children}</span>\n </label>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CheckboxGroupContext } from './checkbox-group-context';\nimport { CheckboxGroupProps } from './types';\n\nconst CheckboxGroup = React.forwardRef<HTMLDivElement, CheckboxGroupProps>(\n (props: CheckboxGroupProps, ref): React.ReactElement => {\n const {\n defaultValue = [],\n prefixCls: customisedCls,\n onChange,\n disabled,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('checkbox-group', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [value, setValue] = useState<string[]>(\n 'value' in props ? (props.value as string[]) : defaultValue\n );\n\n const itemOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled) {\n const name = e.currentTarget.name;\n const newValue = value.includes(name)\n ? value.filter((v) => v !== name)\n : [...value, name];\n !('value' in props) && setValue(newValue);\n onChange && onChange(newValue);\n }\n };\n\n useEffect(() => {\n 'value' in props && setValue([...(props.value as string[])]);\n }, [props]);\n\n return (\n <CheckboxGroupContext.Provider\n value={{\n value,\n disabled,\n onChange: itemOnChange,\n }}>\n <div {...otherProps} ref={ref} role=\"group\" className={cls}>\n {children}\n </div>\n </CheckboxGroupContext.Provider>\n );\n }\n);\n\nCheckboxGroup.displayName = 'CheckboxGroup';\n\nexport default CheckboxGroup;\n","import Checkbox from './checkbox';\nimport CheckboxGroup from './checkbox-group';\n\ntype ICheckbox = typeof Checkbox & {\n Group: typeof CheckboxGroup;\n};\n\nconst DefaultCheckbox = Checkbox as ICheckbox;\nDefaultCheckbox.Group = CheckboxGroup;\n\nexport default DefaultCheckbox;\n","import IntlProvider from './intl-provider';\n\nexport default IntlProvider;\n","import React from 'react';\nimport { Locale } from '../locale/types';\nimport IntlContext from './intl-context';\n\nexport interface IntlProviderProps {\n locale: Locale;\n children: React.ReactNode;\n}\n\nconst IntlProvider = (props: IntlProviderProps): React.ReactElement => {\n const { locale, children } = props;\n return <IntlContext.Provider value={locale}>{children}</IntlContext.Provider>;\n};\n\nexport default IntlProvider;\n","import { useEffect } from 'react';\nimport { ConfigContext } from './config-context';\nimport { ConfigProviderProps } from './types';\nimport IntlProvider from '../intl-provider';\n\nconst ConfigProvider = (props: ConfigProviderProps): JSX.Element => {\n const { children, theme, locale, ...otherProps } = props;\n\n useEffect(() => {\n if (!theme) return;\n const html = document.documentElement;\n html.setAttribute('data-tiny-theme', theme);\n }, [theme]);\n\n const content = locale ? (\n <IntlProvider locale={locale}>{children}</IntlProvider>\n ) : (\n children\n );\n\n return (\n <ConfigContext.Provider value={{ theme, locale, ...otherProps }}>\n {content}\n </ConfigContext.Provider>\n );\n};\n\nConfigProvider.displayName = 'ConfigProvider';\n\nexport default ConfigProvider;\n","import ConfigProvider from './config-provider';\n\nexport default ConfigProvider;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CopyToClipboardProps } from './types';\n\nconst copy = async (value: string) => {\n if (navigator.clipboard) {\n try {\n await navigator.clipboard.writeText(value);\n } catch {\n fallbackCopy(value);\n }\n } else {\n fallbackCopy(value);\n }\n};\n\nconst fallbackCopy = (value: string) => {\n const textArea = document.createElement('textarea');\n textArea.style.position = 'fixed';\n textArea.style.opacity = '0';\n textArea.value = value;\n document.body.appendChild(textArea);\n textArea.select();\n try {\n document.execCommand('copy');\n } catch {\n // copy failed silently\n }\n document.body.removeChild(textArea);\n};\n\nconst CopyToClipboard = (props: CopyToClipboardProps): React.ReactElement => {\n const { prefixCls: customisedCls, text, className, children, onClick, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('copy', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n const btnOnClick = (e: React.MouseEvent<HTMLSpanElement>): void => {\n copy(text);\n onClick && onClick(e);\n };\n\n return (\n <span {...otherProps} className={cls} onClick={btnOnClick}>\n {children}\n </span>\n );\n};\n\nCopyToClipboard.displayName = 'CopyToClipboard';\n\nexport default CopyToClipboard;\n","import CopyToClipboard from './copy-to-clipboard';\n\nexport default CopyToClipboard;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ColProps, ColSize } from './types';\n\nconst ScreenTypes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\n\nconst Col = React.forwardRef<HTMLDivElement, ColProps>((props, ref) => {\n const {\n span = 24,\n offset = 0,\n order = 0,\n prefixCls: customisedCls,\n className,\n style,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('col', configContext.prefixCls, customisedCls);\n\n let sizeClassObj = {};\n ScreenTypes.forEach((size) => {\n let sizeProps: ColSize = {};\n // Prevent the error that expression of type 'string' can't be used to index type 'ColProps'.\n const propSize = (props as any)[size];\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (typeof propSize === 'object') {\n sizeProps = propSize || {};\n }\n sizeClassObj = {\n ...sizeClassObj,\n [`${prefixCls}-${size}-${sizeProps.span}`]: sizeProps.span !== undefined,\n [`${prefixCls}-${size}-order-${sizeProps.order}`]: sizeProps.order || sizeProps.order === 0,\n [`${prefixCls}-${size}-offset-${sizeProps.offset}`]:\n sizeProps.offset || sizeProps.offset === 0,\n };\n });\n const cls = classNames(\n prefixCls,\n className,\n {\n [`${prefixCls}-${span}`]: span,\n [`${prefixCls}-offset-${offset}`]: offset,\n [`${prefixCls}-order-${order}`]: order,\n },\n sizeClassObj\n );\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n {children}\n </div>\n );\n});\n\nCol.displayName = 'Col';\n\nexport default Col;\n","import Col from '../grid/col';\n\nexport default Col;\n","import React from 'react';\n\ntype Props = {\n activeKeys: string[];\n onItemClick?: (itemKey: string) => void;\n};\n\nexport const CollapseContext = React.createContext<Props>({\n activeKeys: [],\n});\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { CollapseContext } from './collapse-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CollapsePanelProps, CollapseProps } from './types';\n\n/**\n * Format active key to array\n * @param activeKey\n */\nconst toArray = (activeKey: string | string[]): string[] => {\n return Array.isArray(activeKey) ? activeKey : [activeKey];\n};\n\nconst Collapse = React.forwardRef<HTMLDivElement, CollapseProps>(\n (props: CollapseProps, ref): React.ReactElement => {\n const {\n showArrow = true,\n bordered = true,\n deletable = false,\n accordion = false,\n defaultActiveKey = [],\n prefixCls: customisedCls,\n activeKey,\n onChange,\n className,\n children,\n ...otherProps\n } = props;\n let currentActiveKey: string | string[] = defaultActiveKey;\n if (activeKey) {\n currentActiveKey = activeKey;\n }\n const [activeItems, setActiveItems] = useState<string[]>(toArray(currentActiveKey));\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('collapse', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_borderless`]: !bordered,\n });\n\n const updateActiveItems = (items: string[]) => {\n if (!('activeKey' in props)) {\n // only for defaultKey\n setActiveItems(items);\n }\n onChange && onChange(items);\n };\n\n const handleOnItemClick = (itemKey: string) => {\n let items = activeItems;\n if (accordion) {\n items = items[0] === itemKey ? [] : [itemKey];\n } else {\n items = [...activeItems];\n const index = items.indexOf(itemKey);\n const isActive = index > -1;\n if (isActive) {\n // remove active state\n items.splice(index, 1);\n } else {\n items.push(itemKey);\n }\n }\n updateActiveItems(items);\n };\n\n useEffect(() => {\n // Update state from updated props\n activeKey && setActiveItems(toArray(activeKey));\n }, [activeKey]);\n\n return (\n <div {...otherProps} ref={ref} className={cls}>\n <CollapseContext.Provider\n value={{\n activeKeys: activeItems,\n onItemClick: handleOnItemClick,\n }}>\n {React.Children.map(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<CollapsePanelProps>;\n if (childElement.type.displayName === 'CollapsePanel') {\n const itemProps: Partial<CollapsePanelProps> = {\n deletable,\n showArrow,\n itemKey: `${idx}`,\n };\n return React.cloneElement(childElement, itemProps);\n }\n return child;\n })}\n </CollapseContext.Provider>\n </div>\n );\n }\n);\n\nCollapse.displayName = 'Collapse';\n\nexport default Collapse;\n","import React, { useRef, useEffect, useCallback } from 'react';\n\ntype CollapseTransitionProps = {\n isShow: boolean;\n children: React.ReactNode;\n};\n\nconst COLLAPSE_DURATION = 250;\n\nconst CollapseTransition = (props: CollapseTransitionProps): JSX.Element => {\n const { isShow, children } = props;\n const leaveTimerRef = useRef<number | null>(null);\n const enterTimerRef = useRef<number | null>(null);\n const ref = useRef<HTMLDivElement | null>(null);\n\n const beforeEnter = useCallback((): void => {\n const el = ref.current;\n if (el) {\n el.style.display = 'block';\n el.style.height = '0px';\n }\n }, []);\n\n const afterEnter = useCallback((): void => {\n const el = ref.current;\n if (el) {\n el.style.display = 'block';\n el.style.height = '';\n }\n }, []);\n\n const enter = useCallback((): void => {\n const el = ref.current;\n if (el) {\n if (el.scrollHeight !== 0) {\n el.style.height = el.scrollHeight + 'px';\n } else {\n el.style.height = '';\n }\n\n enterTimerRef.current = window.setTimeout(() => afterEnter(), COLLAPSE_DURATION);\n }\n }, [afterEnter]);\n\n const beforeLeave = useCallback((): void => {\n const el = ref.current;\n if (el) {\n el.style.display = 'block';\n if (el.scrollHeight !== 0) {\n el.style.height = el.scrollHeight + 'px';\n }\n }\n }, []);\n\n const afterLeave = useCallback((): void => {\n const el = ref.current;\n if (el) {\n el.style.display = 'none';\n el.style.height = '';\n }\n }, []);\n\n const leave = useCallback((): void => {\n const el = ref.current;\n if (el) {\n if (el.scrollHeight !== 0) {\n el.style.height = '0px';\n }\n\n leaveTimerRef.current = window.setTimeout(() => afterLeave(), COLLAPSE_DURATION);\n }\n }, [afterLeave]);\n\n const triggerChange = useCallback(\n (isCollapsed: boolean): void => {\n const enterTimer = enterTimerRef.current;\n const leaveTimer = leaveTimerRef.current;\n enterTimer && window.clearTimeout(enterTimer);\n leaveTimer && window.clearTimeout(leaveTimer);\n\n if (isCollapsed) {\n beforeEnter();\n enter();\n } else {\n beforeLeave();\n leave();\n }\n },\n [enter, leave, beforeEnter, beforeLeave]\n );\n\n useEffect(() => {\n beforeEnter();\n enter();\n\n return () => {\n beforeLeave();\n leave();\n };\n }, [enter, leave, beforeEnter, beforeLeave]);\n\n useEffect(() => {\n triggerChange(isShow);\n }, [isShow, triggerChange]);\n\n return (\n <div className=\"ty-collapse-transition\" ref={ref}>\n {children}\n </div>\n );\n};\n\nCollapseTransition.displayName = 'CollapseTransition';\n\nexport default CollapseTransition;\n","import CollapseTransition from './collapse-transition';\n\nexport default CollapseTransition;\n","import React, { useContext, useId, useRef } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CollapsePanelProps } from './types';\nimport { ArrowDown } from '../_utils/components';\nimport CollapseTransition from '../collapse-transition';\nimport { CollapseContext } from './collapse-context';\n\n/**\n * Allow to parse active status to a node\n * @param node\n * @param isActive\n */\nconst richNode = (node: React.ReactNode | ((isActive: boolean) => React.ReactNode), isActive: boolean) => {\n return typeof node === 'function' ? node(isActive) : node;\n};\n\nconst CollapsePanel = (props: CollapsePanelProps): React.ReactElement => {\n const {\n showArrow = true,\n itemKey,\n header,\n disabled,\n extra,\n deletable,\n onHeaderOnClick,\n className,\n style,\n children,\n prefixCls: customisedCls,\n } = props;\n const itemRef = useRef<HTMLDivElement | null>(null);\n const panelId = useId();\n const headerId = useId();\n const configContext = useContext(ConfigContext);\n const { activeKeys, onItemClick } = useContext(CollapseContext);\n const prefixCls = getPrefixCls('collapse-item', configContext.prefixCls, customisedCls);\n const active = activeKeys.includes(itemKey);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_active`]: active,\n });\n\n const headerOnClick = (e: React.MouseEvent) => {\n if (!disabled) {\n onHeaderOnClick && onHeaderOnClick(e);\n onItemClick && onItemClick(itemKey);\n }\n };\n\n /**\n * Remove a item from collapse only the header is enabled\n * @param e\n * @private\n */\n const removeItem = (e: React.MouseEvent<HTMLSpanElement>) => {\n e.stopPropagation();\n if (!disabled) {\n const node = itemRef.current;\n node && node.parentNode?.removeChild(node);\n }\n };\n\n const renderHeader = () => {\n const headerCls = classNames(`${prefixCls}__header`, {\n [`${prefixCls}__header_disabled`]: disabled,\n });\n const arrowCls = classNames(`${prefixCls}__arrow`, {\n [`${prefixCls}__arrow_active`]: active,\n });\n\n return (\n <button\n type=\"button\"\n id={headerId}\n className={headerCls}\n onClick={headerOnClick}\n aria-expanded={active}\n aria-controls={panelId}\n aria-disabled={disabled || undefined}>\n {showArrow && <ArrowDown size={10} className={arrowCls} />}\n <div className={`${prefixCls}__title`}>{richNode(header, active)}</div>\n <div className={`${prefixCls}__extra`}>\n {deletable ? <span onClick={removeItem}>✕</span> : richNode(extra, active)}\n </div>\n </button>\n );\n };\n\n return (\n <div className={cls} style={style} ref={itemRef}>\n {renderHeader()}\n <CollapseTransition isShow={active}>\n <div className={`${prefixCls}__content`} id={panelId} role=\"region\" aria-labelledby={headerId}>{richNode(children, active)}</div>\n </CollapseTransition>\n </div>\n );\n};\n\nCollapsePanel.displayName = 'CollapsePanel';\n\nexport default CollapsePanel;\n","import Collapse from './collapse';\nimport CollapsePanel from './collapse-panel';\n\ntype ICollapse = typeof Collapse & {\n Panel: typeof CollapsePanel;\n};\n\nconst DefaultCollapse = Collapse as ICollapse;\nDefaultCollapse.Panel = CollapsePanel;\n\nexport default DefaultCollapse;\n","import { Color } from './types';\n\nexport const hexToHsb = (hex: string): Color => {\n let h = hex.replace('#', '');\n if (h.length === 3) h = h.split('').map((c) => c + c).join('');\n\n let a = 1;\n if (h.length === 8) {\n a = parseInt(h.slice(6, 8), 16) / 255;\n h = h.slice(0, 6);\n }\n\n const r = parseInt(h.slice(0, 2), 16) / 255;\n const g = parseInt(h.slice(2, 4), 16) / 255;\n const b = parseInt(h.slice(4, 6), 16) / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n\n let hue = 0;\n if (d !== 0) {\n if (max === r) hue = ((g - b) / d + 6) % 6;\n else if (max === g) hue = (b - r) / d + 2;\n else hue = (r - g) / d + 4;\n hue *= 60;\n }\n\n const saturation = max === 0 ? 0 : (d / max) * 100;\n const brightness = max * 100;\n\n return { h: Math.round(hue), s: Math.round(saturation), b: Math.round(brightness), a };\n};\n\nexport const hsbToHex = (color: Color): string => {\n const { h, s, b, a } = color;\n const sNorm = s / 100;\n const bNorm = b / 100;\n\n const c = bNorm * sNorm;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = bNorm - c;\n\n let r = 0, g = 0, bl = 0;\n if (h < 60) { r = c; g = x; bl = 0; }\n else if (h < 120) { r = x; g = c; bl = 0; }\n else if (h < 180) { r = 0; g = c; bl = x; }\n else if (h < 240) { r = 0; g = x; bl = c; }\n else if (h < 300) { r = x; g = 0; bl = c; }\n else { r = c; g = 0; bl = x; }\n\n const toHex = (v: number) => Math.round((v + m) * 255).toString(16).padStart(2, '0');\n const hex = `#${toHex(r)}${toHex(g)}${toHex(bl)}`;\n if (a < 1) {\n return hex + Math.round(a * 255).toString(16).padStart(2, '0');\n }\n return hex;\n};\n\nexport const hsbToRgb = (color: Color): string => {\n const hex = hsbToHex(color);\n const h = hex.replace('#', '');\n const r = parseInt(h.slice(0, 2), 16);\n const g = parseInt(h.slice(2, 4), 16);\n const b = parseInt(h.slice(4, 6), 16);\n if (color.a < 1) {\n return `rgba(${r}, ${g}, ${b}, ${color.a.toFixed(2)})`;\n }\n return `rgb(${r}, ${g}, ${b})`;\n};\n\nexport const formatColor = (color: Color, format: string): string => {\n switch (format) {\n case 'rgb':\n return hsbToRgb(color);\n case 'hsb':\n return `hsb(${color.h}, ${color.s}%, ${color.b}%)`;\n default:\n return hsbToHex(color);\n }\n};\n\nexport const parseColor = (input: string): Color => {\n if (!input) return { h: 0, s: 100, b: 100, a: 1 };\n\n // hex\n if (input.startsWith('#')) {\n return hexToHsb(input);\n }\n\n // rgb/rgba\n const rgbMatch = input.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*([\\d.]+))?\\s*\\)/);\n if (rgbMatch) {\n const r = parseInt(rgbMatch[1]) / 255;\n const g = parseInt(rgbMatch[2]) / 255;\n const b = parseInt(rgbMatch[3]) / 255;\n const a = rgbMatch[4] ? parseFloat(rgbMatch[4]) : 1;\n const hex = `#${Math.round(r * 255).toString(16).padStart(2, '0')}${Math.round(g * 255).toString(16).padStart(2, '0')}${Math.round(b * 255).toString(16).padStart(2, '0')}`;\n return { ...hexToHsb(hex), a };\n }\n\n return { h: 0, s: 100, b: 100, a: 1 };\n};\n","import React, { useState, useEffect, useRef, useContext, useCallback } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useClickOutside } from '../_utils/hooks';\nimport Popup from '../popup';\nimport { ColorPickerProps, Color, ColorFormat } from './types';\nimport { parseColor, formatColor, hsbToHex } from './utils';\n\nconst ColorPicker = React.forwardRef<HTMLDivElement, ColorPickerProps>((props, _ref) => {\n const {\n defaultValue = '#6e41bf',\n presets,\n showAlpha = false,\n disabled = false,\n trigger = 'click',\n defaultFormat = 'hex',\n prefixCls: customisedCls,\n className,\n style,\n onChange,\n onFormatChange,\n children,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('color-picker', configContext.prefixCls, customisedCls);\n\n const [color, setColor] = useState<Color>(() =>\n parseColor('value' in props ? (props.value as string) : defaultValue)\n );\n const [format, setFormat] = useState<ColorFormat>(\n 'format' in props ? (props.format as ColorFormat) : defaultFormat\n );\n const [open, setOpen] = useState(false);\n const [dragging, setDragging] = useState(false);\n\n const spectrumRef = useRef<HTMLDivElement>(null);\n const hueRef = useRef<HTMLDivElement>(null);\n const alphaRef = useRef<HTMLDivElement>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const isOpen = ('open' in props ? (props.open as boolean) : undefined) ?? open;\n const controlledOpen = 'open' in props ? (props.open as boolean) : undefined;\n\n useEffect(() => {\n if ('value' in props && props.value) {\n setColor(parseColor(props.value));\n }\n }, [props.value]);\n\n useEffect(() => {\n if ('format' in props) setFormat(props.format as ColorFormat);\n }, [props.format]);\n\n useEffect(() => {\n if ('open' in props) setOpen(props.open as boolean);\n }, [props.open]);\n\n useClickOutside(wrapperRef.current as HTMLDivElement, () => {\n if (controlledOpen === undefined) setOpen(false);\n props.onOpenChange?.(false);\n });\n\n const emitChange = useCallback((c: Color) => {\n const formatted = formatColor(c, format);\n onChange?.(formatted);\n }, [format, onChange]);\n\n const updateColor = (updates: Partial<Color>) => {\n const newColor = { ...color, ...updates };\n if (!('value' in props)) {\n setColor(newColor);\n }\n emitChange(newColor);\n };\n\n const handleSpectrumMouseDown = (e: React.MouseEvent) => {\n if (disabled) return;\n setDragging(true);\n updateSpectrumFromEvent(e.nativeEvent);\n };\n\n const updateSpectrumFromEvent = (e: MouseEvent | React.MouseEvent['nativeEvent']) => {\n const rect = spectrumRef.current?.getBoundingClientRect();\n if (!rect) return;\n const x = Math.max(0, Math.min(e.clientX - rect.left, rect.width));\n const y = Math.max(0, Math.min(e.clientY - rect.top, rect.height));\n const s = Math.round((x / rect.width) * 100);\n const b = Math.round(100 - (y / rect.height) * 100);\n updateColor({ s, b });\n };\n\n const handleHueMouseDown = (e: React.MouseEvent) => {\n if (disabled) return;\n updateHueFromEvent(e.nativeEvent);\n const handleMove = (ev: MouseEvent) => updateHueFromEvent(ev);\n const handleUp = () => {\n document.removeEventListener('mousemove', handleMove);\n document.removeEventListener('mouseup', handleUp);\n };\n document.addEventListener('mousemove', handleMove);\n document.addEventListener('mouseup', handleUp);\n };\n\n const updateHueFromEvent = (e: MouseEvent | React.MouseEvent['nativeEvent']) => {\n const rect = hueRef.current?.getBoundingClientRect();\n if (!rect) return;\n const x = Math.max(0, Math.min(e.clientX - rect.left, rect.width));\n const h = Math.round((x / rect.width) * 360);\n updateColor({ h });\n };\n\n const handleAlphaMouseDown = (e: React.MouseEvent) => {\n if (disabled) return;\n updateAlphaFromEvent(e.nativeEvent);\n const handleMove = (ev: MouseEvent) => updateAlphaFromEvent(ev);\n const handleUp = () => {\n document.removeEventListener('mousemove', handleMove);\n document.removeEventListener('mouseup', handleUp);\n };\n document.addEventListener('mousemove', handleMove);\n document.addEventListener('mouseup', handleUp);\n };\n\n const updateAlphaFromEvent = (e: MouseEvent | React.MouseEvent['nativeEvent']) => {\n const rect = alphaRef.current?.getBoundingClientRect();\n if (!rect) return;\n const x = Math.max(0, Math.min(e.clientX - rect.left, rect.width));\n const a = Math.round((x / rect.width) * 100) / 100;\n updateColor({ a });\n };\n\n useEffect(() => {\n if (!dragging) return;\n const handleMove = (e: MouseEvent) => updateSpectrumFromEvent(e);\n const handleUp = () => setDragging(false);\n document.addEventListener('mousemove', handleMove);\n document.addEventListener('mouseup', handleUp);\n return () => {\n document.removeEventListener('mousemove', handleMove);\n document.removeEventListener('mouseup', handleUp);\n };\n }, [dragging, color.h, color.a]);\n\n const toggleOpen = () => {\n if (disabled) return;\n const next = !isOpen;\n if (controlledOpen === undefined) setOpen(next);\n props.onOpenChange?.(next);\n };\n\n const handleFormatChange = () => {\n const formats: ColorFormat[] = ['hex', 'rgb', 'hsb'];\n const idx = formats.indexOf(format);\n const next = formats[(idx + 1) % formats.length];\n if (!('format' in props)) setFormat(next);\n onFormatChange?.(next);\n };\n\n const handlePresetClick = (preset: string) => {\n const c = parseColor(preset);\n if (!('value' in props)) setColor(c);\n emitChange(c);\n };\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_disabled`]: disabled,\n });\n\n const hexColor = hsbToHex(color);\n const hueColor = hsbToHex({ h: color.h, s: 100, b: 100, a: 1 });\n\n const renderPanel = () => (\n <div className={`${prefixCls}__panel`}>\n <div\n ref={spectrumRef}\n className={`${prefixCls}__spectrum`}\n style={{ backgroundColor: hueColor }}\n onMouseDown={handleSpectrumMouseDown}\n >\n <div className={`${prefixCls}__spectrum-white`} />\n <div className={`${prefixCls}__spectrum-black`} />\n <div\n className={`${prefixCls}__spectrum-handle`}\n style={{\n left: `${color.s}%`,\n top: `${100 - color.b}%`,\n backgroundColor: hexColor,\n }}\n />\n </div>\n\n <div className={`${prefixCls}__controls`}>\n <div className={`${prefixCls}__preview`} style={{ backgroundColor: hexColor }} />\n <div className={`${prefixCls}__sliders`}>\n <div\n ref={hueRef}\n className={`${prefixCls}__hue`}\n onMouseDown={handleHueMouseDown}\n >\n <div\n className={`${prefixCls}__slider-handle`}\n style={{ left: `${(color.h / 360) * 100}%` }}\n />\n </div>\n {showAlpha && (\n <div\n ref={alphaRef}\n className={`${prefixCls}__alpha`}\n onMouseDown={handleAlphaMouseDown}\n style={{\n background: `linear-gradient(to right, transparent, ${hsbToHex({ ...color, a: 1 })})`,\n }}\n >\n <div\n className={`${prefixCls}__slider-handle`}\n style={{ left: `${color.a * 100}%` }}\n />\n </div>\n )}\n </div>\n </div>\n\n <div className={`${prefixCls}__input-row`}>\n <button\n type=\"button\"\n className={`${prefixCls}__format-btn`}\n onClick={handleFormatChange}\n >\n {format.toUpperCase()}\n </button>\n <input\n className={`${prefixCls}__hex-input`}\n value={formatColor(color, format)}\n onChange={(e) => {\n const c = parseColor(e.target.value);\n if (!('value' in props)) setColor(c);\n onChange?.(e.target.value);\n }}\n />\n </div>\n\n {presets && presets.length > 0 && (\n <div className={`${prefixCls}__presets`}>\n {presets.map((preset, i) => (\n <div\n key={i}\n className={`${prefixCls}__preset`}\n style={{ backgroundColor: preset }}\n onClick={() => handlePresetClick(preset)}\n title={preset}\n />\n ))}\n </div>\n )}\n </div>\n );\n\n return (\n <div {...otherProps} ref={wrapperRef} className={cls} style={style}>\n <Popup\n trigger=\"manual\"\n placement=\"bottom\"\n arrow={false}\n visible={isOpen}\n content={renderPanel()}>\n <div\n className={`${prefixCls}__trigger`}\n onClick={trigger === 'click' ? toggleOpen : undefined}\n onMouseEnter={trigger === 'hover' ? toggleOpen : undefined}\n >\n {children || (\n <div className={`${prefixCls}__swatch`}>\n <div\n className={`${prefixCls}__swatch-inner`}\n style={{ backgroundColor: hexColor }}\n />\n </div>\n )}\n </div>\n </Popup>\n </div>\n );\n});\n\nColorPicker.displayName = 'ColorPicker';\nexport default ColorPicker;\n","import ColorPicker from './color-picker';\n\nexport default ColorPicker;\n","import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CountdownProps, DateType } from './types';\n\nconst Countdown = React.forwardRef<HTMLDivElement, CountdownProps>((props, ref) => {\n const {\n millisec = false,\n prefixCls: customisedCls,\n value,\n onFinish,\n className,\n style,\n children,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('countdown', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [date, setDate] = useState<DateType>({ day: 0, hour: 0, min: 0, sec: 0, millisec: 0 });\n const timerRef = useRef<number>();\n\n const startInterval = useCallback((): void => {\n timerRef.current = window.setInterval(\n () => {\n const distance = value.getTime() - Date.now();\n\n // when the count down finished\n if (distance < 0) {\n window.clearInterval(timerRef.current);\n setDate({ day: 0, hour: 0, min: 0, sec: 0, millisec: 0 });\n onFinish && onFinish();\n return;\n }\n\n // calculate the specific time\n const day = Math.floor(distance / 86400000);\n const hour = Math.floor((distance % 86400000) / 3600000);\n const min = Math.floor((distance % 3600000) / 60000);\n const sec = Math.floor((distance % 60000) / 1000);\n const millisecond = Math.floor((distance % 60000) % 1000);\n setDate({ day, hour, min, sec, millisec: millisecond });\n },\n millisec ? 1 : 1000\n );\n }, [millisec, onFinish, value]);\n\n useEffect(() => {\n value && startInterval();\n\n return (): void => {\n window.clearInterval(timerRef.current);\n };\n }, [value, startInterval]);\n\n return (\n <div ref={ref} className={cls} style={style} role=\"timer\" aria-live=\"polite\">\n {typeof children === 'function' && children(date)}\n </div>\n );\n});\n\nCountdown.displayName = 'Countdown';\n\nexport default Countdown;\n","import Countdown from './countdown';\n\nexport default Countdown;\n","import { PanelMode } from './types';\n\nexport type PickerHeaderProps = {\n date: Date;\n mode: PanelMode;\n months: string[];\n onChange: (date: Date) => void;\n onModeChange: (mode: PanelMode) => void;\n prefixCls: string;\n};\n\nconst PickerHeader = ({ date, mode, months, onChange, onModeChange, prefixCls }: PickerHeaderProps) => {\n const year = date.getFullYear();\n const startDecade = year - (year % 10);\n\n const step = (dir: -1 | 1, unit: 'month' | 'year' | 'decade') => {\n const y = date.getFullYear();\n const m = date.getMonth();\n if (unit === 'decade') onChange(new Date(y + dir * 10, m, 1));\n else if (unit === 'year') onChange(new Date(y + dir, m, 1));\n else {\n const next = new Date(y, m + dir, 1);\n onChange(next);\n }\n };\n\n const yearUnit = mode === 'year' ? 'decade' : 'year';\n\n return (\n <div className={`${prefixCls}__header`}>\n <button\n type=\"button\"\n className={`${prefixCls}__header-btn`}\n onClick={() => step(-1, yearUnit)}\n aria-label=\"Previous year\">\n «\n </button>\n {mode === 'date' && (\n <button\n type=\"button\"\n className={`${prefixCls}__header-btn`}\n onClick={() => step(-1, 'month')}\n aria-label=\"Previous month\">\n ‹\n </button>\n )}\n <div className={`${prefixCls}__header-caption`}>\n {mode === 'year' ? (\n <span className={`${prefixCls}__header-label`}>\n {startDecade} – {startDecade + 9}\n </span>\n ) : mode === 'month' ? (\n <span\n className={`${prefixCls}__header-label`}\n onClick={() => onModeChange('year')}>\n {year}\n </span>\n ) : (\n <>\n <span\n className={`${prefixCls}__header-label`}\n onClick={() => onModeChange('month')}>\n {months[date.getMonth()]}\n </span>\n <span\n className={`${prefixCls}__header-label`}\n onClick={() => onModeChange('year')}>\n {year}\n </span>\n </>\n )}\n </div>\n {mode === 'date' && (\n <button\n type=\"button\"\n className={`${prefixCls}__header-btn`}\n onClick={() => step(1, 'month')}\n aria-label=\"Next month\">\n ›\n </button>\n )}\n <button\n type=\"button\"\n className={`${prefixCls}__header-btn`}\n onClick={() => step(1, yearUnit)}\n aria-label=\"Next year\">\n »\n </button>\n </div>\n );\n};\n\nexport default PickerHeader;\n","import classNames from 'classnames';\nimport { getMonthDaysArray, isSameDate, isToday } from './utils';\n\nexport type PickerDayProps = {\n date: Date | null;\n panelDate: Date;\n weeks: string[];\n disabledDate?: (current: Date) => boolean;\n onChange: (date: Date) => void;\n panelOnChange: (panelDate: Date) => void;\n prefixCls: string;\n};\n\nconst PickerDay = (props: PickerDayProps) => {\n const { prefixCls, date, weeks, onChange, panelDate, panelOnChange, disabledDate } = props;\n const panelDays = getMonthDaysArray(panelDate);\n\n const handleClick = (dayCell: typeof panelDays[0]) => {\n if (disabledDate?.(dayCell.date)) return;\n onChange(dayCell.date);\n if (!dayCell.isThisMonth) panelOnChange(dayCell.date);\n };\n\n return (\n <div className={`${prefixCls}__body`}>\n <table className={`${prefixCls}__table`}>\n <thead>\n <tr>\n {weeks.map((week, i) => (\n <th key={i} className={`${prefixCls}__cell-header`}>\n {week}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: panelDays.length / 7 }, (_, row) => (\n <tr key={row}>\n {panelDays.slice(row * 7, row * 7 + 7).map((dayCell, col) => {\n const isDisabled = disabledDate?.(dayCell.date) ?? false;\n const cls = classNames(`${prefixCls}__cell`, {\n [`${prefixCls}__cell_in-view`]: dayCell.isThisMonth,\n [`${prefixCls}__cell_today`]: isToday(dayCell.date),\n [`${prefixCls}__cell_selected`]: date && isSameDate(date, dayCell.date),\n [`${prefixCls}__cell_disabled`]: isDisabled,\n });\n return (\n <td key={col} className={cls} onClick={() => handleClick(dayCell)}>\n <div className={`${prefixCls}__cell-inner`}>\n {dayCell.label}\n </div>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n};\n\nexport default PickerDay;\n","import classNames from 'classnames';\n\nexport type PickerMonthProps = {\n date: Date | null;\n panelDate: Date;\n months: string[];\n onChange: (date: Date) => void;\n prefixCls: string;\n};\n\nconst PickerMonth = ({ date, panelDate, months, onChange, prefixCls }: PickerMonthProps) => {\n const panelYear = panelDate.getFullYear();\n const selectedMonth = date && date.getFullYear() === panelYear ? date.getMonth() : -1;\n const now = new Date();\n const isCurrentYear = now.getFullYear() === panelYear;\n\n return (\n <div className={`${prefixCls}__body`}>\n <table className={`${prefixCls}__table`}>\n <tbody>\n {[0, 1, 2].map((row) => (\n <tr key={row}>\n {[0, 1, 2, 3].map((col) => {\n const monthIdx = row * 4 + col;\n const cls = classNames(`${prefixCls}__cell`, {\n [`${prefixCls}__cell_selected`]: monthIdx === selectedMonth,\n [`${prefixCls}__cell_today`]: isCurrentYear && monthIdx === now.getMonth(),\n });\n return (\n <td\n key={col}\n className={cls}\n onClick={() => onChange(new Date(panelYear, monthIdx, 1))}>\n <div className={`${prefixCls}__cell-inner`}>{months[monthIdx]}</div>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n};\n\nexport default PickerMonth;\n","import classNames from 'classnames';\n\nexport type PickerYearProps = {\n date: Date | null;\n panelDate: Date;\n onChange: (date: Date) => void;\n prefixCls: string;\n};\n\nconst PickerYear = ({ date, panelDate, onChange, prefixCls }: PickerYearProps) => {\n const panelYear = panelDate.getFullYear();\n const startYear = panelYear - (panelYear % 10);\n const selectedYear = date?.getFullYear() ?? -1;\n const now = new Date();\n\n const years: number[] = [];\n for (let i = startYear - 1; i <= startYear + 10; i++) {\n years.push(i);\n }\n\n return (\n <div className={`${prefixCls}__body`}>\n <table className={`${prefixCls}__table`}>\n <tbody>\n {[0, 1, 2].map((row) => (\n <tr key={row}>\n {[0, 1, 2, 3].map((col) => {\n const idx = row * 4 + col;\n const year = years[idx];\n const isOutOfRange = year < startYear || year > startYear + 9;\n const cls = classNames(`${prefixCls}__cell`, {\n [`${prefixCls}__cell_selected`]: year === selectedYear,\n [`${prefixCls}__cell_today`]: year === now.getFullYear(),\n [`${prefixCls}__cell_dim`]: isOutOfRange,\n });\n return (\n <td\n key={col}\n className={cls}\n onClick={() => onChange(new Date(year, panelDate.getMonth(), 1))}>\n <div className={`${prefixCls}__cell-inner`}>{year}</div>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n};\n\nexport default PickerYear;\n","import { useState, useRef, useCallback, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useLocale } from '../_utils/use-locale';\nimport { useClickOutside } from '../_utils/hooks';\nimport Popup from '../popup';\nimport PickerHeader from './picker-header';\nimport PickerDay from './picker-day';\nimport PickerMonth from './picker-month';\nimport PickerYear from './picker-year';\nimport { DatePickerProps, PanelMode } from './types';\n\n\nconst CalendarIcon = () => (\n <svg viewBox=\"64 64 896 896\" width=\"1em\" height=\"1em\" fill=\"currentColor\">\n <path d=\"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zm0-448H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136z\" />\n </svg>\n);\n\nconst ClearIcon = () => (\n <svg viewBox=\"64 64 896 896\" width=\"1em\" height=\"1em\" fill=\"currentColor\">\n <path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\" />\n </svg>\n);\n\nfunction formatDate(date: Date, format: string): string {\n const y = date.getFullYear();\n const m = String(date.getMonth() + 1).padStart(2, '0');\n const d = String(date.getDate()).padStart(2, '0');\n return format\n .replace('YYYY', String(y))\n .replace('MM', m)\n .replace('DD', d);\n}\n\nfunction getFormatByPicker(picker: string, customFormat?: string): string {\n if (customFormat) return customFormat;\n switch (picker) {\n case 'month': return 'YYYY-MM';\n case 'year': return 'YYYY';\n default: return 'YYYY-MM-DD';\n }\n}\n\nconst DatePicker = (props: DatePickerProps) => {\n const {\n defaultValue,\n value,\n open: controlledOpen,\n picker = 'date',\n format: customFormat,\n disabled = false,\n placeholder,\n allowClear = true,\n size = 'md',\n showToday = true,\n inputReadOnly = true,\n disabledDate,\n renderExtraFooter,\n suffixIcon,\n onChange,\n onOpenChange,\n onPanelChange,\n className,\n style,\n prefixCls: customisedCls,\n } = props;\n\n const locale = useLocale();\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('date-picker', configContext.prefixCls, customisedCls);\n const format = getFormatByPicker(picker, customFormat);\n\n const [date, setDate] = useState<Date | null>(value ?? defaultValue ?? null);\n const [panelDate, setPanelDate] = useState<Date>(value ?? defaultValue ?? new Date());\n const [open, setOpen] = useState(false);\n const [mode, setMode] = useState<PanelMode>(picker === 'date' ? 'date' : picker);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const isOpen = controlledOpen ?? open;\n\n // Controlled value\n useEffect(() => {\n if (value !== undefined) {\n setDate(value);\n if (value) setPanelDate(value);\n }\n }, [value]);\n\n useEffect(() => {\n if (controlledOpen !== undefined) setOpen(controlledOpen);\n }, [controlledOpen]);\n\n useClickOutside(wrapperRef.current as HTMLDivElement, () => {\n if (controlledOpen === undefined) setOpen(false);\n onOpenChange?.(false);\n });\n\n const toggleOpen = useCallback((val: boolean) => {\n if (controlledOpen === undefined) setOpen(val);\n onOpenChange?.(val);\n if (val) setMode(picker === 'date' ? 'date' : picker);\n }, [controlledOpen, onOpenChange, picker]);\n\n const fireChange = useCallback((d: Date | null) => {\n if (value === undefined) setDate(d);\n onChange?.(d, d ? formatDate(d, format) : '');\n }, [value, onChange, format]);\n\n const handleDateSelect = useCallback((d: Date) => {\n fireChange(d);\n toggleOpen(false);\n }, [fireChange, toggleOpen]);\n\n const handleMonthSelect = useCallback((d: Date) => {\n if (picker === 'month') {\n fireChange(d);\n toggleOpen(false);\n } else {\n setPanelDate(d);\n setMode('date');\n onPanelChange?.(d, 'date');\n }\n }, [picker, fireChange, toggleOpen, onPanelChange]);\n\n const handleYearSelect = useCallback((d: Date) => {\n if (picker === 'year') {\n fireChange(d);\n toggleOpen(false);\n } else {\n setPanelDate(d);\n setMode(picker === 'month' ? 'month' : 'month');\n onPanelChange?.(d, 'month');\n }\n }, [picker, fireChange, toggleOpen, onPanelChange]);\n\n const handleModeChange = useCallback((m: PanelMode) => {\n setMode(m);\n onPanelChange?.(panelDate, m);\n }, [panelDate, onPanelChange]);\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n fireChange(null);\n toggleOpen(false);\n };\n\n const handleToday = () => {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n fireChange(today);\n setPanelDate(today);\n toggleOpen(false);\n };\n\n const hasValue = date !== null;\n const displayValue = hasValue ? formatDate(date, format) : '';\n const defaultPlaceholder = placeholder ?? (picker === 'month' ? locale.DatePicker.selectMonth : picker === 'year' ? locale.DatePicker.selectYear : locale.DatePicker.selectDate);\n\n const cls = classNames(prefixCls, className, `${prefixCls}_${size}`, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_open`]: isOpen,\n [`${prefixCls}_has-value`]: hasValue,\n });\n\n const renderPanel = () => {\n switch (mode) {\n case 'year':\n return <PickerYear date={date} panelDate={panelDate} onChange={handleYearSelect} prefixCls={prefixCls} />;\n case 'month':\n return <PickerMonth date={date} panelDate={panelDate} months={locale.DatePicker.months} onChange={handleMonthSelect} prefixCls={prefixCls} />;\n default:\n return (\n <PickerDay\n date={date}\n panelDate={panelDate}\n weeks={locale.DatePicker.weeks}\n disabledDate={disabledDate}\n onChange={handleDateSelect}\n panelOnChange={setPanelDate}\n prefixCls={prefixCls}\n />\n );\n }\n };\n\n const renderOverlay = () => (\n <div className={`${prefixCls}__dropdown`}>\n <PickerHeader\n date={panelDate}\n mode={mode}\n months={locale.DatePicker.months}\n onChange={setPanelDate}\n onModeChange={handleModeChange}\n prefixCls={prefixCls}\n />\n {renderPanel()}\n {(showToday && mode === 'date' && picker === 'date') || renderExtraFooter ? (\n <div className={`${prefixCls}__footer`}>\n {renderExtraFooter?.(mode)}\n {showToday && mode === 'date' && picker === 'date' && (\n <a className={`${prefixCls}__today-btn`} onClick={handleToday}>{locale.DatePicker.today}</a>\n )}\n </div>\n ) : null}\n </div>\n );\n\n return (\n <div className={cls} style={style} ref={wrapperRef}>\n <Popup\n trigger=\"manual\"\n placement=\"bottom\"\n arrow={false}\n visible={isOpen}\n content={renderOverlay()}>\n <div className={`${prefixCls}__input`} onClick={() => !disabled && toggleOpen(!isOpen)}>\n <input\n className={`${prefixCls}__input-field`}\n readOnly={inputReadOnly}\n disabled={disabled}\n placeholder={defaultPlaceholder}\n value={displayValue}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n onKeyDown={(e) => {\n if (e.key === 'Escape' && isOpen) toggleOpen(false);\n }}\n />\n <span className={`${prefixCls}__suffix`}>\n {allowClear && hasValue && !disabled ? (\n <button type=\"button\" className={`${prefixCls}__clear`} onClick={handleClear} aria-label=\"Clear date\">\n <ClearIcon />\n </button>\n ) : null}\n <span className={`${prefixCls}__icon`}>\n {suffixIcon ?? <CalendarIcon />}\n </span>\n </span>\n </div>\n </Popup>\n </div>\n );\n};\n\nDatePicker.displayName = 'DatePicker';\n\nexport default DatePicker;\n","import DatePicker from './date-picker';\n\nexport type { DatePickerProps, PanelMode, PickerType } from './types';\nexport default DatePicker;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DescriptionsItemProps } from './types';\n\ntype Props = {\n index: number;\n bordered: boolean;\n colon: boolean;\n type: 'label' | 'content' | 'item';\n prefixCls: string;\n item: React.ReactElement<DescriptionsItemProps>;\n};\n\nconst Col = (props: Props): React.ReactElement => {\n const { item, colon, type, bordered, prefixCls } = props;\n\n const { label, children, span = 1 } = item.props;\n switch (type) {\n case 'item': {\n const labelCls = classNames(`${prefixCls}__item-label`, {\n [`${prefixCls}__item_colon`]: colon,\n });\n if (bordered) {\n return (\n <>\n <th className={labelCls} colSpan={1}>\n {label}\n </th>\n <td className={`${prefixCls}__item-content`} colSpan={span * 2 - 1}>\n {children}\n </td>\n </>\n );\n } else {\n return (\n <td className={`${prefixCls}__item`} colSpan={span}>\n <span className={labelCls}>{label}</span>\n <span className={`${prefixCls}__item-content`}>{children}</span>\n </td>\n );\n }\n }\n case 'label': {\n const cls = classNames(\n { [`${prefixCls}__item`]: !bordered, [`${prefixCls}__item_colon`]: colon },\n `${prefixCls}__item-label`\n );\n return (\n <th className={cls} colSpan={span}>\n {label}\n </th>\n );\n }\n case 'content': {\n const cls = classNames({ [`${prefixCls}__item`]: !bordered }, `${prefixCls}__item-content`);\n return (\n <td className={cls} colSpan={span}>\n {children}\n </td>\n );\n }\n }\n};\n\nexport default Col;\n","import React from 'react';\nimport { DirectionType } from '../_utils/props';\nimport Col from './col';\nimport { DescriptionsItemProps } from './types';\n\ntype Props = {\n index: number;\n bordered: boolean;\n colon: boolean;\n layout: DirectionType;\n prefixCls: string;\n row: React.ReactElement<DescriptionsItemProps>[];\n};\n\nconst Row = (props: Props): React.ReactElement => {\n const { row, index, layout, colon, bordered, prefixCls } = props;\n\n const renderCols = (renderType: 'label' | 'content' | 'item') => {\n return row.map((item, idx) => (\n <Col\n key={idx}\n index={idx}\n prefixCls={prefixCls}\n item={item}\n bordered={bordered}\n colon={colon}\n type={renderType}\n />\n ));\n };\n\n if (layout === 'vertical') {\n return (\n <>\n <tr className={`${prefixCls}__row`} key={`label-${index}`}>\n {renderCols('label')}\n </tr>\n <tr className={`${prefixCls}__row`} key={`content-${index}`}>\n {renderCols('content')}\n </tr>\n </>\n );\n }\n\n return (\n <tr className={`${prefixCls}__row`} key={index}>\n {renderCols('item')}\n </tr>\n );\n};\n\nexport default Row;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { DescriptionsItemProps, DescriptionsProps } from './types';\nimport Row from './row';\n\nconst Descriptions = (props: DescriptionsProps): React.ReactElement => {\n const {\n size = 'md',\n bordered = false,\n column = 3,\n layout = 'horizontal',\n title,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('descriptions', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${size}`, {\n [`${prefixCls}_bordered`]: bordered,\n });\n\n const getRows = (): React.ReactElement<DescriptionsItemProps>[][] => {\n const rows: React.ReactElement<DescriptionsItemProps>[][] = [];\n let columns: React.ReactElement<DescriptionsItemProps>[] | null = null;\n let leftSpans: number;\n\n const numOfChildren = React.Children.count(children);\n React.Children.forEach(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<DescriptionsItemProps>;\n if (childElement.type.displayName === 'DescriptionsItem') {\n let itemNode = childElement;\n\n if (!columns) {\n leftSpans = column;\n columns = [];\n rows.push(columns);\n }\n\n // set last span to align the end of Descriptions\n if (idx === numOfChildren - 1) {\n const props: Partial<DescriptionsItemProps> = { span: leftSpans };\n itemNode = React.cloneElement(childElement, props);\n }\n\n // calculate left fill span\n const { span = 1 } = itemNode.props;\n columns.push(itemNode);\n leftSpans -= span;\n\n if (leftSpans <= 0) {\n columns = null;\n }\n }\n });\n\n return rows;\n };\n\n const rows = getRows();\n const displayColon = 'colon' in props ? (props.colon as boolean) : !bordered;\n // the reason of using a div to wrapper a table is to figure out border radius issue of the table\n return (\n <div {...otherProps} className={cls}>\n {title && <div className={`${prefixCls}__title`}>{title}</div>}\n <div className={`${prefixCls}__body`}>\n <table>\n <tbody>\n {rows.map((row, idx) => (\n <Row\n key={idx}\n index={idx}\n colon={displayColon}\n bordered={bordered}\n prefixCls={prefixCls}\n layout={layout}\n row={row}\n />\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n\nDescriptions.displayName = 'Descriptions';\n\nexport default Descriptions;\n","import { DescriptionsItemProps } from './types';\n\nconst DescriptionsItem = (props: DescriptionsItemProps): JSX.Element => {\n return props.children as JSX.Element;\n};\n\nDescriptionsItem.displayName = 'DescriptionsItem';\n\nexport default DescriptionsItem;\n","import Descriptions from './descriptions';\nimport DescriptionsItem from './descriptions-item';\n\ntype IDesc = typeof Descriptions & {\n Item: typeof DescriptionsItem;\n};\n\nconst DefaultDesc = Descriptions as IDesc;\nDefaultDesc.Item = DescriptionsItem;\n\nexport default DefaultDesc;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { DividerProps } from './types';\n\nconst Divider = React.forwardRef<HTMLDivElement, DividerProps>((props, ref) => {\n const {\n type = 'horizontal',\n dashed = false,\n align = 'center',\n prefixCls: customisedCls,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('divider', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${type}`, `${prefixCls}_${align}`, {\n [`${prefixCls}_${type}-dashed`]: dashed,\n [`${prefixCls}_text`]: children,\n });\n\n return (\n <div {...otherProps} ref={ref} role=\"separator\" className={cls}>\n {children && <span className={`${prefixCls}_inner-text`}>{children}</span>}\n </div>\n );\n});\n\nDivider.displayName = 'Divider';\n\nexport default Divider;\n","import Divider from './divider';\n\nexport default Divider;\n","import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { DropdownProps } from './types';\nimport { MenuProps } from '../menu/types';\nimport Popup from '../popup';\n\nconst Dropdown = (props: DropdownProps): JSX.Element => {\n const {\n trigger = 'hover',\n placement = 'bottom-start',\n disabled = false,\n arrow = false,\n onVisibleChange,\n overlay,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('dropdown', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [popupVisible, setPopupVisible] = useState<boolean>(\n 'visible' in props ? (props.visible as boolean) : false\n );\n const delayDisplayPopupTimer = useRef<number | undefined>(undefined);\n const delayHidePopupTimer = useRef<number | undefined>(undefined);\n\n const displayPopup = useCallback(() => {\n !('visible' in props) && setPopupVisible(true);\n onVisibleChange && onVisibleChange(true);\n }, [props, onVisibleChange]);\n\n const hidePopup = useCallback(() => {\n !('visible' in props) && setPopupVisible(false);\n onVisibleChange && onVisibleChange(false);\n }, [props, onVisibleChange]);\n\n const delayHidePopup = useCallback((): void => {\n delayHidePopupTimer.current = window.setTimeout(() => {\n hidePopup();\n }, 100);\n }, [hidePopup]);\n\n const renderOverlay = (): React.ReactNode => {\n if (!overlay) {\n return null;\n }\n\n const overlayProps: Partial<MenuProps> = {\n overlayClassName: cls,\n mode: 'vertical',\n theme: 'light',\n onMouseEnter: () => {\n if (trigger === 'hover') {\n displayPopup();\n window.clearTimeout(delayHidePopupTimer.current);\n }\n },\n onMouseLeave: () => {\n if (trigger === 'hover') {\n delayHidePopup();\n window.clearTimeout(delayDisplayPopupTimer.current);\n }\n },\n onSelect: (selectedIndex) => {\n const { onSelect } = overlay.props;\n onSelect && onSelect(selectedIndex);\n hidePopup();\n },\n };\n return React.cloneElement(overlay, overlayProps);\n };\n\n const handleTargetOnMouseEnter = () => {\n if (trigger === 'hover') {\n displayPopup();\n window.clearTimeout(delayHidePopupTimer.current);\n }\n };\n\n const handleTargetOnMouseLeave = () => {\n if (trigger === 'hover') {\n delayHidePopup();\n window.clearTimeout(delayDisplayPopupTimer.current);\n }\n };\n\n const handleTargetOnClick = () => {\n if (trigger === 'click') {\n displayPopup();\n }\n };\n\n // Clear timers on unmount\n useEffect(() => {\n return () => {\n window.clearTimeout(delayDisplayPopupTimer.current);\n window.clearTimeout(delayHidePopupTimer.current);\n };\n }, []);\n\n useEffect(() => {\n 'visible' in props && setPopupVisible(props.visible as boolean);\n }, [props]);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape' && popupVisible) {\n hidePopup();\n }\n };\n\n const childrenProps = {\n onMouseEnter: handleTargetOnMouseEnter,\n onMouseLeave: handleTargetOnMouseLeave,\n onClick: handleTargetOnClick,\n onKeyDown: handleKeyDown,\n 'aria-expanded': popupVisible,\n 'aria-haspopup': true as const,\n };\n\n React.Children.only(children);\n return (\n <Popup\n {...otherProps}\n biZoom={false}\n arrow={arrow}\n disabled={disabled}\n placement={placement}\n flip={!('placement' in props)}\n trigger=\"manual\"\n className={cls}\n visible={popupVisible}\n content={renderOverlay()}>\n {React.cloneElement(children, childrenProps)}\n </Popup>\n );\n};\n\nDropdown.displayName = 'Dropdown';\n\nexport default Dropdown;\n","import Dropdown from './dropdown';\n\nexport default Dropdown;\n","import { useContext, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport Portal from '../portal';\nimport { CSSTransition } from 'react-transition-group';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { OverlayProps } from './types';\n\nconst Overlay = (props: OverlayProps): JSX.Element => {\n const {\n isShow = false,\n blurred = false,\n unmountOnExit = true,\n zIndex = 1000,\n type = 'default',\n clickCallback,\n onEnter,\n onEntered,\n onExit,\n onExited,\n children,\n style,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('overlay', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, `${prefixCls}_${type}`, { [`${prefixCls}_blurred`]: blurred });\n const nodeRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (isShow) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n });\n\n return (\n <Portal>\n <CSSTransition\n appear={true}\n nodeRef={nodeRef}\n onEnter={onEnter}\n onEntered={onEntered}\n onExit={onExit}\n onExited={onExited}\n in={isShow}\n mountOnEnter={true}\n unmountOnExit={unmountOnExit}\n classNames={`${prefixCls}_fade`}\n timeout={{ exit: 300, enter: 0 }}>\n <div ref={nodeRef} tabIndex={-1} className={cls} onClick={clickCallback} style={{ zIndex, ...style }}>\n {children}\n </div>\n </CSSTransition>\n </Portal>\n );\n};\n\nOverlay.displayName = 'Overlay';\n\nexport default Overlay;\n","import Overlay from './overlay';\n\nexport default Overlay;\n","import React, { useContext, useEffect, useId, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport Overlay from '../overlay';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { DrawerProps } from './types';\n\nconst Drawer = React.forwardRef<HTMLDivElement, DrawerProps>((props, ref) => {\n const {\n visible,\n placement = 'right',\n size = 256,\n closable = true,\n unmountOnClose = true,\n maskType = 'default',\n maskClosable = true,\n onClose,\n prefixCls: customisedCls,\n afterClose,\n zIndex = 1000,\n header,\n footer,\n className,\n maskStyle,\n style,\n children,\n } = props;\n const [drawerVisible, setDrawerVisible] = useState(visible);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('drawer', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${placement}`);\n const sty: React.CSSProperties =\n placement === 'top' || placement === 'bottom' ? { height: size } : { width: size };\n const nodeRef = useRef<HTMLDivElement>(null);\n const previousFocusRef = useRef<HTMLElement | null>(null);\n const titleId = useId();\n\n // Focus trap + Escape key\n useEffect(() => {\n if (!visible) return;\n previousFocusRef.current = document.activeElement as HTMLElement;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n onClose?.(e as unknown as React.MouseEvent);\n return;\n }\n if (e.key === 'Tab' && nodeRef.current) {\n const focusable = nodeRef.current.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (focusable.length === 0) return;\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n if (e.shiftKey) {\n if (document.activeElement === first) { e.preventDefault(); last.focus(); }\n } else {\n if (document.activeElement === last) { e.preventDefault(); first.focus(); }\n }\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n\n requestAnimationFrame(() => {\n if (nodeRef.current) {\n const focusable = nodeRef.current.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (focusable.length > 0) focusable[0].focus();\n }\n });\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n previousFocusRef.current?.focus();\n };\n }, [visible, onClose]);\n\n return (\n <Overlay\n onEnter={(): void => setDrawerVisible(true)}\n onExit={(): void => setDrawerVisible(false)}\n zIndex={zIndex}\n type={maskType}\n unmountOnExit={unmountOnClose}\n isShow={visible}\n onExited={afterClose}\n clickCallback={(e: React.MouseEvent): void => {\n maskClosable && onClose ? onClose(e) : undefined;\n }}\n style={maskStyle}>\n <div ref={ref} className={cls} style={{ ...style, ...sty }}>\n <CSSTransition\n appear={true}\n nodeRef={nodeRef}\n in={drawerVisible}\n timeout={0}\n classNames={`${prefixCls}__content_move`}>\n <div\n ref={nodeRef}\n className={`${prefixCls}__content`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={header ? titleId : undefined}\n onClick={(e) => e.stopPropagation()}>\n {closable && (\n <button type=\"button\" className={`${prefixCls}__close-btn`} onClick={onClose} aria-label=\"Close\">\n ✕\n </button>\n )}\n {header && <div className={`${prefixCls}__header`} id={titleId}>{header}</div>}\n <div className={`${prefixCls}__body`}>{children}</div>\n {footer && <div className={`${prefixCls}__footer`}>{footer}</div>}\n </div>\n </CSSTransition>\n </div>\n </Overlay>\n );\n});\n\nDrawer.displayName = 'Drawer';\n\nexport default Drawer;\n","import Drawer from './drawer';\n\nexport default Drawer;\n","import React, { ReactNode, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useLocale } from '../_utils/use-locale';\nimport { EmptyProps } from './types';\n\nconst Empty = React.forwardRef<HTMLDivElement, EmptyProps>((props, ref) => {\n const locale = useLocale();\n const {\n description = locale.Empty.description,\n image,\n imageStyle,\n descStyle,\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('empty', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n const renderImage = (): ReactNode => {\n if (React.isValidElement(image)) {\n return image;\n } else if (typeof image === 'string') {\n return <img src={image} alt=\"empty\" style={imageStyle} className={`${prefixCls}__image`} />;\n } else {\n return (\n <svg width=\"61px\" height=\"40px\" viewBox=\"0 0 61 40\" version=\"1.1\">\n <g stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(0.000000, 1.000000)\">\n <ellipse fill=\"#F5F5F5\" cx=\"30.5\" cy=\"30.5\" rx=\"30.5\" ry=\"8.5\" />\n <path\n d=\"M8,14 L16.1016016,14 C17.4262005,14 18.5,15.0737995 18.5,16.3983984 C18.5,17.7229972 19.5737995,18.7967967 20.8983984,18.7967967 L39.1016016,18.7967967 C40.4262005,18.7967967 41.5,17.7229972 41.5,16.3983984 C41.5,15.0737995 42.5737995,14 43.8983984,14 L52,14 C52.5522847,14 53,14.4477153 53,15 L53,29 C53,31.209139 51.209139,33 49,33 L11,33 C8.790861,33 7,31.209139 7,29 L7,15 C7,14.4477153 7.44771525,14 8,14 Z\"\n stroke=\"#D9D9D9\"\n fill=\"#FAFAFA\"\n />\n <path\n d=\"M7.34587252,14.1911631 L14.8857295,1.90750067 C15.6132226,0.722295128 16.9040854,1.14364005e-15 18.2947537,0 L41.70114,0 C43.0918102,8.62632224e-15 44.3826743,0.722296971 45.1101669,1.90750495 L52.65,14.1911631 L52.65,14.1911631 L44.0201775,14.1911631 C42.6922539,14.1911631 41.6157591,15.2676579 41.6157591,16.5955815 C41.6157591,17.9235052 40.5392643,19 39.2113406,19 L20.7845564,19 C19.4566328,19 18.380138,17.9235052 18.380138,16.5955815 C18.380138,15.2676579 17.3036432,14.1911631 15.9757195,14.1911631 L7.34587252,14.1911631 L7.34587252,14.1911631 Z\"\n stroke=\"#D9D9D9\"\n fill=\"#FFFFFF\"\n />\n </g>\n </g>\n </svg>\n );\n }\n };\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n <div className={`${prefixCls}__image-container`}>{renderImage()}</div>\n {typeof props.description === 'boolean' && !description ? null : (\n <p className={`${prefixCls}__desc`} style={descStyle}>\n {description}\n </p>\n )}\n {children && <div className={`${prefixCls}__footer`}>{children}</div>}\n </div>\n );\n});\n\nEmpty.displayName = 'Empty';\n\nexport default Empty;\n","import Empty from './empty';\n\nexport default Empty;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SizeType } from '../_utils/props';\nimport { FlexProps } from './types';\n\nconst gapSizes: Record<SizeType, number> = {\n sm: 8,\n md: 16,\n lg: 24,\n};\n\nconst Flex = React.forwardRef<HTMLElement, FlexProps>(\n (props: FlexProps, ref): JSX.Element => {\n const {\n vertical = false,\n wrap,\n justify,\n align,\n gap,\n flex,\n component: Component = 'div',\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('flex', configContext.prefixCls, customisedCls);\n\n const cls = classNames(prefixCls, className);\n\n const mergedStyle: React.CSSProperties = {\n flexDirection: vertical ? 'column' : undefined,\n flexWrap: wrap,\n justifyContent: justify,\n alignItems: align,\n gap: typeof gap === 'string' && gap in gapSizes ? gapSizes[gap as SizeType] : gap,\n flex,\n ...style,\n };\n\n return (\n <Component {...otherProps} ref={ref} className={cls} style={mergedStyle}>\n {children}\n </Component>\n );\n }\n);\n\nFlex.displayName = 'Flex';\n\nexport default Flex;\n","import Flex from './flex';\n\nexport default Flex;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport warning from '../_utils/warning';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { FlipItemProps, FlipProps } from './types';\n\nconst Flip = (props: FlipProps): React.ReactElement => {\n const {\n direction = 'horizontal',\n reverse = false,\n prefixCls: customisedCls,\n width,\n height,\n className,\n children,\n style,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('flip', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n const innerCls = classNames(`${prefixCls}__inner`, {\n [`${prefixCls}__inner_hor`]: direction === 'horizontal' && !reverse,\n [`${prefixCls}__inner_hor_reverse`]: direction === 'horizontal' && reverse,\n [`${prefixCls}__inner_ver`]: direction === 'vertical' && !reverse,\n [`${prefixCls}__inner_ver_reverse`]: direction === 'vertical' && reverse,\n });\n\n warning(\n !children || React.Children.count(children) !== 2,\n 'Children must contain front and back components.',\n true\n );\n\n return (\n <div {...otherProps} className={cls} style={{ width, height, ...style }}>\n <div className={innerCls}>\n {React.Children.map(children, (child, index: number) => {\n const childElement = child as React.FunctionComponentElement<FlipItemProps>;\n if (childElement.type.displayName === 'FlipItem') {\n const childProps: Partial<FlipItemProps> = {\n className: classNames(\n {\n [`${prefixCls}__item-front`]: index === 0,\n [`${prefixCls}__item-back`]: index === 1,\n [`${prefixCls}__item-back_hor`]:\n index === 1 && direction === 'horizontal' && !reverse,\n [`${prefixCls}__item-back_hor_reverse`]:\n index === 1 && direction === 'horizontal' && reverse,\n [`${prefixCls}__item-back_ver`]:\n index === 1 && direction === 'vertical' && !reverse,\n [`${prefixCls}__item-back_ver_reverse`]:\n index === 1 && direction === 'vertical' && reverse,\n },\n child.props.className\n ),\n };\n return React.cloneElement(childElement, childProps);\n } else {\n return null;\n }\n })}\n </div>\n </div>\n );\n};\n\nFlip.displayName = 'Flip';\n\nexport default Flip;\n","import { FlipItemProps } from './types';\n\nconst FlipItem = (props: FlipItemProps): JSX.Element => {\n const { className, children, ...otherProps } = props;\n return (\n <div {...otherProps} className={className}>\n {children}\n </div>\n );\n};\n\nFlipItem.displayName = 'FlipItem';\n\nexport default FlipItem;\n","import Flip from './flip';\nimport FlipItem from './flip-item';\n\ntype IFlip = typeof Flip & {\n Item: typeof FlipItem;\n};\n\nconst DefaultFlip = Flip as IFlip;\nDefaultFlip.Item = FlipItem;\n\nexport default DefaultFlip;\n","export function isObject(obj: any): boolean {\n return obj !== null && typeof obj === 'object';\n}\n\nexport function deepGet(obj: any, path: string): any {\n const parts = path.split('.');\n const length = parts.length;\n\n for (let i = 0; i < length; i++) {\n if (!isObject(obj)) return undefined;\n obj = obj[parts[i]];\n }\n\n return obj;\n}\n\nexport function deepSet(obj: any, path: string, value: any) {\n if (!isObject(obj)) return obj;\n\n const root = obj;\n const parts = path.split('.');\n const length = parts.length;\n\n for (let i = 0; i < length; i++) {\n const p = parts[i];\n\n if (i === length - 1) {\n obj[p] = value;\n } else if (!isObject(obj[p])) {\n obj[p] = {};\n }\n\n obj = obj[p];\n }\n\n return root;\n}\n\nexport function deepCopy<T>(target: T): T {\n const type = typeof target;\n\n if (target === null || type === 'boolean' || type === 'number' || type === 'string') {\n return target;\n }\n\n if (target instanceof Date) {\n return new Date(target.getTime()) as any;\n }\n\n if (Array.isArray(target)) {\n return target.map((o) => deepCopy(o)) as any;\n }\n\n if (typeof target === 'object') {\n const obj: any = {};\n\n for (const key in target) {\n obj[key] = deepCopy(target[key]);\n }\n\n return obj;\n }\n\n return undefined as any;\n}\n","import React from 'react';\nimport { Rule } from './types';\n\nexport function getPropName(valueProp: string | ((type: any) => string), type: any) {\n return typeof valueProp === 'function' ? valueProp(type) : valueProp;\n}\n\nexport function getValueFromEvent(...args: any[]): any {\n const e = args[0] as React.ChangeEvent<any>;\n return e && e.target ? (e.target.type === 'checkbox' ? e.target.checked : e.target.value) : e;\n}\n\nexport function validate(value: any, rule: Rule): string | undefined {\n const {\n message,\n required,\n max,\n min,\n enum: enumVal,\n len,\n pattern,\n transform,\n type,\n validator,\n whitespace,\n } = rule;\n const val = transform ? transform(value) : value;\n\n if (required && !val) {\n return message || 'The value is required';\n }\n if (type && typeof val !== type) {\n return message || `The value is not a ${type}`;\n }\n if (max || len) {\n const segment = (max || len) as number;\n if (typeof val === 'number' && val > segment) {\n return message || 'The value is greater than the max';\n } else if ((typeof val === 'string' || Array.isArray(val)) && val.length > segment) {\n return message || 'The length of value is greater than the max';\n }\n }\n if (min) {\n if (typeof val === 'number' && val < min) {\n return message || 'The value is less than the max';\n } else if ((typeof val === 'string' || Array.isArray(val)) && val.length < min) {\n return message || 'The length of value is less than the max';\n }\n }\n if (enumVal && !enumVal.includes(val)) {\n return message || 'The value is not in the enum';\n }\n if (pattern && !pattern.test(val)) {\n return message || 'The value does not find a match';\n }\n if (validator) {\n const res = validator(val);\n if (res instanceof Promise ? !res.then(val) : !res) {\n return message || 'The value is validated unsuccessfully';\n }\n }\n if (whitespace && typeof val === 'string' && val.trim().length <= 0) {\n return message || 'The input contains whitespace';\n }\n\n return undefined;\n}\n","import { deepCopy } from '../_utils/object';\nimport { validate } from './form-helper';\nimport { Rule } from './types';\n\nexport type FormValues = { [name: string]: any };\nexport type FormErrors = { [name: string]: string[] };\ntype FormListener = (name: string) => void;\ntype FormRules = { [name: string]: Rule[] };\n\n/**\n * The form state, including errors and rules of each form item\n */\nexport default class FormInstance {\n private readonly initValues: FormValues;\n private values: FormValues;\n private rules: FormRules = {};\n private errors: FormErrors = {};\n private listeners: FormListener[] = [];\n\n constructor(initValues: FormValues = {}) {\n this.initValues = initValues;\n this.values = deepCopy(initValues);\n }\n\n getFieldValues(): FormValues {\n return this.values;\n }\n\n getFieldValue(name: string): any {\n return this.values[name];\n }\n\n setFieldValue(name: string, val: any): void {\n this.values[name] = val;\n this.notify(name);\n }\n\n setFieldValues(values: FormValues = {}): void {\n Object.keys(values).forEach(name => this.setFieldValue(name, values[name]));\n }\n\n getFiledErrors(): FormErrors {\n return this.errors;\n }\n\n getFieldError(name: string): string | undefined {\n return this.errors[name] && this.errors[name].length > 0 ? this.errors[name][0] : undefined;\n }\n\n setFieldError(name: string, errors: string[]): void {\n this.errors[name] = errors;\n }\n\n setFiledRules(name: string, rules: Rule[]): void {\n this.rules[name] = rules;\n }\n\n resetFields(): void {\n this.errors = {};\n this.values = deepCopy(this.initValues);\n this.notify('*');\n }\n\n validateField(name: string): void {\n const rules = this.rules[name];\n const value = this.values[name];\n if (rules) {\n const errMessages: string[] = [];\n rules.forEach(rule => {\n const res = validate(value, rule);\n if (res !== undefined) {\n errMessages.push(res);\n }\n });\n // update filed errors\n this.setFieldError(name, errMessages);\n this.notify(name);\n }\n }\n\n validateFields(): void {\n Object.keys(this.rules).forEach(name => this.validateField(name));\n }\n\n subscribe(listener: FormListener): () => void {\n this.listeners.push(listener);\n\n return (): void => {\n const idx = this.listeners.indexOf(listener);\n idx > -1 && this.listeners.splice(idx, 1);\n };\n }\n\n notify(name: string): void {\n this.listeners.forEach((listener) => listener(name));\n }\n}\n","import React from 'react';\nimport FormInstance from './form-instance';\n\nexport const FormInstanceContext = React.createContext<FormInstance>(new FormInstance());\n","import React from 'react';\nimport { FormOptionsProps } from './types';\n\nexport const FormOptionsContext = React.createContext<FormOptionsProps>({\n labelCol: 8,\n wrapperCol: 16,\n validateTrigger: 'onChange',\n layout: 'horizontal',\n});\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { FormInstanceContext } from './form-instance-context';\nimport { FormOptionsContext } from './form-options-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { FormProps } from './types';\nimport FormInstance from './form-instance';\n\nconst Form = (props: FormProps): JSX.Element => {\n const {\n initialValues = {},\n labelCol = { span: 8, offset: 0 },\n wrapperCol = { span: 16, offset: 0 },\n validateTrigger = 'onChange',\n layout = 'horizontal',\n form,\n onFinish,\n onFinishFailed,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('form', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${layout}`);\n // If you want to control the form outside, namely get the form instance, just pass a form store.\n // Otherwise, the form component will manage the state internally.\n const formRef = React.useRef(form ? form : new FormInstance(initialValues));\n\n const formOnSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n const formIns = formRef.current;\n formIns.validateFields();\n const values = formIns.getFieldValues();\n const errors = formIns.getFiledErrors();\n if (Object.keys(errors).some((key) => errors[key].length > 0)) {\n onFinishFailed && onFinishFailed({ values, errors });\n } else {\n onFinish && onFinish(values);\n }\n };\n\n const formOnReset = () => {\n formRef.current.resetFields();\n };\n\n return (\n <FormInstanceContext.Provider value={formRef.current}>\n <FormOptionsContext.Provider value={{ labelCol, wrapperCol, validateTrigger, layout }}>\n <form {...otherProps} className={cls} onSubmit={formOnSubmit} onReset={formOnReset}>\n {children}\n </form>\n </FormOptionsContext.Provider>\n </FormInstanceContext.Provider>\n );\n};\n\nForm.displayName = 'Form';\n\nexport default Form;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ColProps, RowProps } from './types';\n\nconst Row = React.forwardRef<HTMLDivElement, RowProps>((props, ref) => {\n const {\n gutter = 0,\n gutterSide = false,\n prefixCls: customisedCls,\n align,\n justify,\n className,\n style,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('row', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_align-${align}`]: align,\n [`${prefixCls}_justify-${justify}`]: justify,\n });\n\n const getGutter = (): [number, number] => {\n return Array.isArray(gutter) ? gutter : [gutter, gutter];\n };\n\n const normalisedGutter = getGutter();\n\n const rowGutterStyle = gutter\n ? {\n marginLeft: gutterSide ? 0 : -normalisedGutter[0] / 2,\n marginRight: gutterSide ? 0 : -normalisedGutter[0] / 2,\n rowGap: normalisedGutter[1] || undefined,\n }\n : {};\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={{ ...style, ...rowGutterStyle }}>\n {React.Children.map(children, (child) => {\n const childElement = child as React.FunctionComponentElement<ColProps>;\n if (childElement.type.displayName === 'Col') {\n const gutterStyle = gutter\n ? {\n paddingLeft: normalisedGutter[0] / 2,\n paddingRight: normalisedGutter[0] / 2,\n }\n : {};\n const childProps: Partial<ColProps> = {\n style: {\n ...child.props.style,\n ...gutterStyle,\n },\n };\n return React.cloneElement(childElement, childProps);\n }\n return childElement;\n })}\n </div>\n );\n});\n\nRow.displayName = 'Row';\n\nexport default Row;\n","import React, { useState, useEffect, useContext, useCallback, useRef } from 'react';\nimport classNames from 'classnames';\nimport { FormInstanceContext } from './form-instance-context';\nimport { FormOptionsContext } from './form-options-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { FormItemProps } from './types';\nimport { getPropName, getValueFromEvent } from './form-helper';\nimport Row from '../grid/row';\nimport Col from '../grid/col';\nimport Transition from '../transition';\n\nconst FormItem = (props: FormItemProps): JSX.Element => {\n const {\n colon = true,\n valueGetter = getValueFromEvent,\n valuePropName = 'value',\n name,\n label,\n helper,\n notice,\n rules,\n className,\n style,\n children,\n labelCol: itemLabelCol,\n wrapperCol: itemWrapperCol,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('form-item', configContext.prefixCls, customisedCls);\n const form = React.useContext(FormInstanceContext);\n const { wrapperCol, labelCol, validateTrigger, layout } = React.useContext(FormOptionsContext);\n const [value, setValue] = useState(name ? form.getFieldValue(name) : undefined);\n const [error, setError] = useState<string | undefined>(\n name ? form.getFieldError(name) : undefined\n );\n const [hasErrLabel, setHasErrLabel] = useState(false);\n const errorRef = useRef<HTMLDivElement>(null);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_has-error`]: !!error,\n [`${prefixCls}_with-err-label`]: hasErrLabel,\n });\n const isRequired =\n 'required' in props ? props.required : (rules && rules.some((rule) => rule.required)) || false;\n\n // get onChange event from all components which support onChange callback\n const onChange = useCallback(\n (...args: any[]) => {\n if (name) {\n form.setFieldValue(name, valueGetter(...args));\n validateTrigger === 'onChange' && form.validateField(name);\n }\n },\n [name, form, valueGetter, validateTrigger]\n );\n\n // get onBlur event from input\n const onBlur = useCallback(() => {\n name && validateTrigger === 'onBlur' && form.validateField(name);\n }, [name, form, validateTrigger]);\n\n let child: any = children;\n const prop = getPropName(valuePropName, child && child.type);\n const childProps = { [prop]: value, onChange, onBlur };\n child = React.cloneElement(child, childProps);\n\n const labelCls = classNames({\n [`${prefixCls}__label_required`]: label && isRequired,\n [`${prefixCls}__label_colon`]: label && colon,\n });\n\n const getSpanAndOffset = (col: number | { span: number; offset: number }): [number, number] => {\n if (typeof col === 'number') {\n return [col, 0];\n } else {\n return [col.span, col.offset];\n }\n };\n\n const getCol = (\n col: number | { span: number; offset: number },\n isSelf?: boolean\n ): [number, number] => {\n if (isSelf) {\n return getSpanAndOffset(col);\n }\n\n if (layout === 'vertical') {\n return [24, 0];\n } else {\n return getSpanAndOffset(col);\n }\n };\n\n const [labelSpan, labelOffset] = itemLabelCol ? getCol(itemLabelCol, true) : getCol(labelCol);\n const [wrapperSpan, wrapperOffset] = itemWrapperCol\n ? getCol(itemWrapperCol, true)\n : getCol(wrapperCol);\n\n useEffect(() => {\n if (!name) {\n return;\n }\n\n rules && form.setFiledRules(name, rules);\n\n return form.subscribe((n) => {\n if (name === '*' || n === name || n === '*') {\n setValue(form.getFieldValue(name));\n setError(form.getFieldError(name));\n }\n });\n }, [form, name, rules]);\n\n useEffect(() => {\n if (error) {\n setHasErrLabel(true);\n }\n }, [error]);\n\n return (\n <Row className={cls} style={style}>\n <Col span={labelSpan} offset={labelOffset} className={`${prefixCls}__label`}>\n <label\n htmlFor={name}\n title={typeof label === 'string' ? label : undefined}\n className={labelCls}>\n {label}\n </label>\n </Col>\n <Col span={wrapperSpan} offset={wrapperOffset} className={`${prefixCls}__controls`}>\n <div className={`${prefixCls}__input`}>\n <div className={`${prefixCls}__input-content`}>{child}</div>\n </div>\n {notice && <div className={`${prefixCls}__notice`}>{notice}</div>}\n {helper && <div className={`${prefixCls}__helper`}>{helper}</div>}\n <Transition in={!!error} nodeRef={errorRef} animation=\"slide-down\" onExited={() => setHasErrLabel(false)}>\n <div ref={errorRef} className={`${prefixCls}__error`}>{error}</div>\n </Transition>\n </Col>\n </Row>\n );\n};\n\nFormItem.displayName = 'FormItem';\n\nexport default FormItem;\n","import Form from './form';\nimport FormItem from './form-item';\nimport useForm from './use-form';\nimport FormInstance from './form-instance';\n\ntype IForm = typeof Form & {\n Item: typeof FormItem;\n useForm: typeof useForm;\n FormInstance: typeof FormInstance;\n};\n\nconst DefaultForm = Form as IForm;\nDefaultForm.Item = FormItem;\nDefaultForm.useForm = useForm;\nDefaultForm.FormInstance = FormInstance;\n\nexport default DefaultForm;\n","import FormInstance, { FormValues } from './form-instance';\n\nexport default function useForm(initialValues: FormValues = {}): [FormInstance] {\n return [new FormInstance(initialValues)];\n}\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { IconProps } from './types';\n\nconst Icon = React.forwardRef<HTMLElement, IconProps>((props, ref) => {\n const {\n name,\n color,\n size,\n style,\n spin,\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('icon', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `ty--${name}`, {\n [`${prefixCls}_spin`]: spin,\n });\n return <i ref={ref} className={cls} style={{ color, fontSize: size, ...style }} {...otherProps} />;\n});\n\nIcon.displayName = 'Icon';\n\nexport default Icon;\n","import Icon from './icon';\n\nexport default Icon;\n","import { useContext, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ImageProps } from './types';\n\nconst Image = (props: ImageProps): JSX.Element => {\n const {\n alt = 'image',\n objectFit = 'cover',\n round = false,\n lazy = false,\n src,\n placeholder,\n fallback,\n className,\n style,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('image', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, { [`${prefixCls}_round`]: round });\n const ref = useRef<HTMLImageElement | null>(null);\n\n useEffect(() => {\n if (!lazy || !('IntersectionObserver' in window)) return;\n\n const observer = new IntersectionObserver((entries, obs) => {\n entries.forEach(function (entry) {\n if (entry.isIntersecting) {\n const lazyImage = entry.target as HTMLImageElement;\n lazyImage.src = src || fallback || '';\n obs.unobserve(lazyImage);\n }\n });\n });\n\n const imgNode = ref.current;\n imgNode && observer.observe(imgNode);\n\n return () => {\n observer.disconnect();\n };\n }, [fallback, lazy, src]);\n\n return (\n <img\n {...otherProps}\n ref={ref}\n className={cls}\n style={{ ...style, objectFit }}\n src={lazy ? placeholder : src ? src : fallback}\n alt={alt}\n />\n );\n};\n\nImage.displayName = 'Image';\n\nexport default Image;\n","import Image from './image';\n\nexport default Image;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { InputGroupProps, InputProps } from './types';\nimport { SizeType } from '../_utils/props';\n\nconst InputGroup = (props: InputGroupProps): React.ReactElement => {\n const {\n disabled = false,\n size = 'md',\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('input-group', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const inputSize = props.size || configContext.componentSize || size;\n\n return (\n <div {...otherProps} className={cls}>\n {React.Children.map(children, (child: React.ReactElement) => {\n const childProps: Partial<InputProps> = {\n disabled,\n size: inputSize as SizeType,\n };\n return React.cloneElement(child, childProps);\n })}\n </div>\n );\n};\n\nInputGroup.displayName = 'InputGroup';\n\nexport default InputGroup;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { InputGroupAddonProps, InputProps } from './types';\nimport { SizeType } from '../_utils/props';\n\nconst InputGroupAddon = (props: InputGroupAddonProps): React.ReactElement => {\n const {\n disabled = false,\n size = 'md',\n noBorder,\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('input-group-addon', configContext.prefixCls, customisedCls);\n const inputSize = props.size || configContext.componentSize || size;\n const cls = classNames(prefixCls, className, `${prefixCls}_${inputSize}`, {\n [`${prefixCls}_no-border`]: noBorder,\n });\n\n if (React.isValidElement(children)) {\n return (\n <div className={cls} style={style}>\n {React.Children.map(children, (child: React.ReactElement) => {\n const childProps: Partial<InputProps> = {\n disabled,\n size: inputSize as SizeType,\n };\n return React.cloneElement(child, childProps);\n })}\n </div>\n );\n }\n return (\n <div {...otherProps} className={cls} style={style}>\n {children}\n </div>\n );\n};\n\nInputGroupAddon.displayName = 'InputGroupAddon';\n\nexport default InputGroupAddon;\n","import Input from './input';\nimport InputGroup from './input-group';\nimport InputGroupAddon from './input-group-addon';\n\ntype IInput = typeof Input & {\n Group: typeof InputGroup;\n Addon: typeof InputGroupAddon;\n};\n\nconst DefaultInput = Input as IInput;\nDefaultInput.Group = InputGroup;\nDefaultInput.Addon = InputGroupAddon;\n\nexport default DefaultInput;\n","import React, { useEffect, useState, MouseEvent, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { InputNumberProps } from './types';\nimport { ArrowDown } from '../_utils/components';\n\n/**\n * Valid the string is a number\n * @param val\n */\nconst isValid = (val: string | number): boolean => {\n return !isNaN(+val);\n};\n\nconst toPrecision = (val: number, precision?: number): number => {\n if (precision === undefined) return val;\n return parseFloat(val.toFixed(precision));\n};\n\nconst InputNumber = React.forwardRef<HTMLDivElement, InputNumberProps>((props, ref) => {\n const {\n size = 'md',\n disabled = false,\n defaultValue = 0,\n step = 1,\n precision,\n controls = false,\n min = Number.NEGATIVE_INFINITY,\n max = Number.POSITIVE_INFINITY,\n onChange,\n className,\n prefixCls: customisedCls,\n style,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('input-number', configContext.prefixCls, customisedCls);\n const inputSize = props.size || configContext.componentSize || size;\n const cls = classNames(prefixCls, className, `${prefixCls}_${inputSize}`, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_always-controls`]: controls,\n });\n const [value, setValue] = useState<number>(\n 'value' in props ? (props.value as number) : defaultValue\n );\n\n const inputOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const raw = Number(e.target.value.trim());\n const val = toPrecision(raw, precision);\n !('value' in props) && setValue(val);\n onChange && isValid(val) && onChange(val, e);\n };\n\n const plusOnClick = (e: MouseEvent<HTMLSpanElement>): void => {\n e.stopPropagation();\n if (!disabled && isValid(step)) {\n const val = toPrecision(+value + +step, precision);\n if (val <= max) {\n !('value' in props) && setValue(val);\n onChange && onChange(val, e);\n }\n }\n };\n\n const minusOnClick = (e: MouseEvent<HTMLSpanElement>): void => {\n e.stopPropagation();\n if (!disabled && isValid(step)) {\n const val = toPrecision(+value - +step, precision);\n if (val >= min) {\n !('value' in props) && setValue(val);\n onChange && onChange(val, e);\n }\n }\n };\n\n useEffect(() => {\n 'value' in props && setValue(props.value as number);\n }, [props]);\n\n return (\n <div ref={ref} className={cls} style={style}>\n <input\n autoComplete=\"off\"\n disabled={disabled}\n value={precision !== undefined ? value.toFixed(precision) : value}\n type=\"number\"\n className={`${prefixCls}__input`}\n max={max}\n min={min}\n step={step}\n onChange={inputOnChange}\n aria-valuenow={value}\n aria-valuemax={max}\n aria-valuemin={min}\n aria-disabled={disabled}\n />\n <div className={`${prefixCls}__controls`}>\n <span className={`${prefixCls}__up`} onClick={plusOnClick}>\n <ArrowDown size={8} className={`${prefixCls}__icon ${prefixCls}__icon_reverse`} />\n </span>\n <span className={`${prefixCls}__down`} onClick={minusOnClick}>\n <ArrowDown size={8} className={`${prefixCls}__icon`} />\n </span>\n </div>\n </div>\n );\n});\n\nInputNumber.displayName = 'InputNumber';\n\nexport default InputNumber;\n","import InputNumber from './input-number';\n\nexport default InputNumber;\n","import InputPassword from './input-password';\n\nexport default InputPassword;\n","import React, { useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport Input from '../input';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { InputPasswordProps } from './types';\nimport { Eye, EyeClose } from '../_utils/components';\n\nconst InputPassword = (props: InputPasswordProps): JSX.Element => {\n const {\n suffix = true,\n visibleOnClick,\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('input-pwd', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [visible, setVisible] = useState(false);\n\n const renderSuffix = (): React.ReactElement => (\n <button\n type=\"button\"\n className={`${prefixCls}__suffix`}\n aria-label=\"Toggle password visibility\"\n onClick={(): void => {\n setVisible(!visible);\n visibleOnClick && visibleOnClick();\n }}>\n {visible ? (\n <Eye size={17} className={`${prefixCls}__icon`} />\n ) : (\n <EyeClose size={17} className={`${prefixCls}__icon`} />\n )}\n </button>\n );\n\n return (\n <Input\n {...otherProps}\n className={cls}\n type={visible ? 'text' : 'password'}\n suffix={suffix ? renderSuffix() : null}\n />\n );\n};\n\nexport default InputPassword;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { KeyboardProps } from './types';\n\nconst Keyboard = React.forwardRef<HTMLElement, KeyboardProps>((props: KeyboardProps, ref) => {\n const { prefixCls: customisedCls, className, children, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('kbd', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <kbd {...otherProps} ref={ref} className={cls}>\n {children}\n </kbd>\n );\n});\n\nKeyboard.displayName = 'Keyboard';\n\nexport default Keyboard;\n","import Keyboard from './keyboard';\n\nexport default Keyboard;\n","import React from 'react';\n\ntype Props = {\n addSidebar: () => void;\n removeSidebar: () => void;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\nexport const SidebarContext = React.createContext<Props>({\n addSidebar: noop,\n removeSidebar: noop,\n});\n","import React, { useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport { SidebarContext } from './sidebar-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { LayoutProps } from './types';\n\n/**\n * Layout component\n */\nconst Layout = React.forwardRef<HTMLElement, LayoutProps>(\n (props: LayoutProps, ref): JSX.Element => {\n const { className, children, prefixCls: customisedCls, ...otherProps } = props;\n const [hasSidebar, setHasSidebar] = useState(false);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('layout', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_has-sidebar`]: hasSidebar,\n });\n\n return (\n <SidebarContext.Provider\n value={{\n addSidebar: () => setHasSidebar(true),\n removeSidebar: () => setHasSidebar(false),\n }}>\n <section {...otherProps} ref={ref} className={cls}>\n {children}\n </section>\n </SidebarContext.Provider>\n );\n }\n);\nLayout.displayName = 'Layout';\n\ntype generatorProps = {\n prefixCls: string;\n displayName: string;\n tagName: 'header' | 'footer' | 'main';\n};\n\n/**\n * Generator\n */\nfunction generator(_props: generatorProps) {\n const { tagName, displayName, prefixCls: defaultCls } = _props;\n const SubComponent = React.forwardRef<HTMLDivElement, LayoutProps>(\n (props: LayoutProps, ref): JSX.Element => {\n const { className, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls(defaultCls, configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return React.createElement(tagName, { ref, className: cls, ...otherProps }, children);\n }\n );\n SubComponent.displayName = displayName;\n\n return SubComponent;\n}\n\nconst Header = generator({\n prefixCls: 'layout-header',\n tagName: 'header',\n displayName: 'Header',\n});\nconst Footer = generator({\n prefixCls: 'layout-footer',\n tagName: 'footer',\n displayName: 'Footer',\n});\nconst Content = generator({\n prefixCls: 'layout-content',\n tagName: 'main',\n displayName: 'Content',\n});\n\nexport { Header, Footer, Content };\nexport default Layout;\n","import React from 'react';\nimport { useState, useContext, useEffect } from 'react';\nimport classNames from 'classnames';\nimport Icon from '../icon';\nimport { SidebarContext } from './sidebar-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SidebarProps } from './types';\n\nconst Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>(\n (props: SidebarProps, ref): JSX.Element => {\n const {\n defaultCollapsed = false,\n width = 200,\n collapsedWidth = 70,\n theme = 'light',\n trigger = null,\n collapsible = false,\n onCollapse,\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n\n const [sideCollapsed, setSideCollapsed] = useState(\n 'collapsed' in props ? props.collapsed : defaultCollapsed\n );\n const sidebarContext = useContext(SidebarContext);\n const sidebarWidth = sideCollapsed ? collapsedWidth : width;\n\n const outerStyle = {\n ...style,\n width: sidebarWidth,\n maxWidth: sidebarWidth,\n minWidth: sidebarWidth,\n };\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('layout-sidebar', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_light`]: theme === 'light',\n });\n\n const _collapseBtnOnClick = () => {\n const collapsedVal = !sideCollapsed;\n if (!('collapsed' in props)) {\n setSideCollapsed(collapsedVal);\n }\n onCollapse && onCollapse(collapsedVal);\n };\n\n const renderTrigger = () => {\n if (!collapsible) {\n return null;\n }\n\n if (trigger) {\n return trigger;\n }\n\n return (\n <button type=\"button\" className={`${prefixCls}__trigger`} onClick={_collapseBtnOnClick} aria-label=\"Toggle sidebar\">\n <Icon name=\"left\" className={`${prefixCls}__trigger-icon`} />\n </button>\n );\n };\n\n useEffect(() => {\n 'collapsed' in props && setSideCollapsed(props.collapsed);\n sidebarContext.addSidebar();\n\n return () => {\n sidebarContext.removeSidebar();\n };\n }, [props, sidebarContext]);\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={outerStyle}>\n <div className={`${prefixCls}__children`}>{children}</div>\n {renderTrigger()}\n </div>\n );\n }\n);\n\nSidebar.displayName = 'Sidebar';\n\nexport default Sidebar;\n","import Layout, { Header, Content, Footer } from './layout';\nimport Sidebar from './sidebar';\n\ntype ILayout = typeof Layout & {\n Header: typeof Header;\n Footer: typeof Footer;\n Content: typeof Content;\n Sidebar: typeof Sidebar;\n};\n\nconst DefaultLayout = Layout as ILayout;\nDefaultLayout.Sidebar = Sidebar;\nDefaultLayout.Header = Header;\nDefaultLayout.Content = Content;\nDefaultLayout.Footer = Footer;\n\nexport default DefaultLayout;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { LinkProps } from './types';\n\nconst Link = (props: LinkProps): React.ReactElement => {\n const {\n disabled = false,\n external = true,\n underline = true,\n className,\n style,\n children,\n target,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('link', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_no-underline`]: !underline,\n });\n\n if (disabled) {\n return (\n <span className={cls} style={style} role=\"link\" aria-disabled=\"true\">\n <span>{children}</span>\n </span>\n );\n }\n return (\n <a\n {...otherProps}\n target={target ? target : external ? '_blank' : '_self'}\n className={cls}\n style={style}\n role=\"link\">\n <span>{children}</span>\n </a>\n );\n};\n\nLink.displayName = 'Link';\n\nexport default Link;\n","import Link from './link';\n\nexport default Link;\n","import { useState, useCallback, useMemo } from 'react';\n\nexport interface UseVirtualScrollOptions {\n itemCount: number;\n itemHeight: number;\n containerHeight: number;\n overscan?: number;\n}\n\nexport interface UseVirtualScrollResult {\n visibleRange: [start: number, end: number];\n totalHeight: number;\n offsetY: number;\n onScroll: (e: React.UIEvent<HTMLElement>) => void;\n}\n\nexport function useVirtualScroll(options: UseVirtualScrollOptions): UseVirtualScrollResult {\n const { itemCount, itemHeight, containerHeight, overscan = 3 } = options;\n const [scrollTop, setScrollTop] = useState(0);\n\n const onScroll = useCallback((e: React.UIEvent<HTMLElement>) => {\n setScrollTop(e.currentTarget.scrollTop);\n }, []);\n\n const totalHeight = itemCount * itemHeight;\n\n const visibleRange = useMemo((): [number, number] => {\n if (itemCount === 0) return [0, 0];\n const start = Math.max(0, Math.floor(scrollTop / itemHeight) - overscan);\n const end = Math.min(\n itemCount - 1,\n Math.ceil((scrollTop + containerHeight) / itemHeight) + overscan\n );\n return [start, end];\n }, [scrollTop, itemHeight, containerHeight, overscan, itemCount]);\n\n const offsetY = visibleRange[0] * itemHeight;\n\n return { visibleRange, totalHeight, offsetY, onScroll };\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ArrowDown } from '../_utils/components';\nimport { PaginationProps } from './types';\n\ntype ItemSourceData = {\n type: 'prev' | 'next' | 'jump-prev' | 'jump-next' | 'page';\n disabled?: boolean;\n active?: boolean;\n label: string;\n};\n\nconst Pagination = (props: PaginationProps): JSX.Element => {\n const {\n align = 'center',\n size = 'md',\n current: currentProp,\n defaultCurrent = 1,\n pageSize: pageSizeProp,\n defaultPageSize = 10,\n total = 0,\n disabled = false,\n onChange,\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('pagination', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${align}`]: align,\n [`${prefixCls}_${size}`]: size,\n [`${prefixCls}_disabled`]: disabled,\n });\n const [current, setCurrent] = useState<number>(\n currentProp !== undefined ? currentProp : defaultCurrent\n );\n const [pageSize, setPageSize] = useState<number>(\n pageSizeProp !== undefined ? pageSizeProp : defaultPageSize\n );\n\n const itemOnClick = (item: ItemSourceData): void => {\n // If this item is in active or disabled status, reject the next action.\n if (item.active || item.disabled) {\n return;\n }\n\n const count = Math.ceil(total / pageSize);\n let curr = 0;\n if (item.type === 'page') {\n curr = Number(item.label);\n }\n if (item.type === 'prev') {\n curr = current - 1 > 0 ? current - 1 : 1;\n }\n if (item.type === 'next') {\n curr = current + 1 <= count ? current + 1 : count;\n }\n if (item.type === 'jump-prev' || item.type === 'jump-next') {\n curr = item.type === 'jump-prev' ? current - 5 : current + 5;\n if (curr > count) {\n curr = count;\n }\n if (curr < 1) {\n curr = 1;\n }\n }\n\n currentProp === undefined && setCurrent(curr);\n onChange && onChange(curr, total, pageSize);\n };\n\n const getItems = (): ItemSourceData[] => {\n const count = Math.ceil(total / pageSize);\n const items: ItemSourceData[] = [\n { type: 'prev', label: '<', disabled: disabled || current === 1 },\n ];\n const itemCount = count <= 5 ? count : 5;\n let num = 0;\n let basic = 0;\n if (current > 3 && count > 5) {\n items.push({ disabled, type: 'page', label: '1' });\n }\n if (current > 4 && count > 6) {\n items.push({ disabled, type: 'jump-prev', label: '•••' });\n }\n while (num < itemCount) {\n num += 1;\n if (current > 3 && count > 5) {\n basic = current - 3;\n }\n let label = num + basic;\n if (count - current === 0 && count > 5) {\n label -= 2;\n }\n if (count - current === 1 && count > 5) {\n label -= 1;\n }\n if (label <= count) {\n items.push({ disabled, type: 'page', label: `${label}`, active: current === label });\n }\n }\n if (current + 3 < count && count > 6) {\n items.push({ disabled, type: 'jump-next', label: '•••' });\n }\n if (current + 2 < count && count > 5) {\n items.push({ disabled, type: 'page', label: `${count}` });\n }\n items.push({ type: 'next', label: '>', disabled: disabled || current === count });\n return items;\n };\n\n const renderItem = (item: ItemSourceData): React.ReactNode => {\n const { type, label } = item;\n switch (type) {\n case 'prev':\n return <ArrowDown size={12} className={`${prefixCls}__left-arrow`} />;\n\n case 'next':\n return <ArrowDown size={12} className={`${prefixCls}__right-arrow`} />;\n\n default:\n return label;\n }\n };\n\n useEffect(() => {\n currentProp !== undefined && setCurrent(currentProp);\n pageSizeProp !== undefined && setPageSize(pageSizeProp);\n }, [currentProp, pageSizeProp]);\n\n return (\n <nav {...otherProps} className={cls} aria-label=\"Pagination\">\n <ul className={`${prefixCls}__list`}>\n {getItems().map((item, idx) => {\n const { active, disabled: itemDisabled, type, label } = item;\n const cls = classNames(`${prefixCls}__item`, {\n [`${prefixCls}__item_active`]: active,\n [`${prefixCls}__item_disabled`]: itemDisabled,\n [`${prefixCls}__item_ellipsis`]: type === 'jump-next' || type === 'jump-prev',\n });\n const ariaLabel = type === 'prev' ? 'Previous page' :\n type === 'next' ? 'Next page' :\n type === 'jump-prev' ? 'Jump back 5 pages' :\n type === 'jump-next' ? 'Jump forward 5 pages' :\n `Page ${label}`;\n return (\n <li key={idx} className={cls}>\n <button\n type=\"button\"\n disabled={itemDisabled}\n aria-current={active ? 'page' : undefined}\n aria-label={ariaLabel}\n onClick={(): void => itemOnClick(item)}>\n {renderItem(item)}\n </button>\n </li>\n );\n })}\n </ul>\n </nav>\n );\n};\n\nexport default Pagination;\n","import Pagination from './pagination';\n\nexport default Pagination;\n","import React, { useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useVirtualScroll } from '../_utils/use-virtual-scroll';\nimport Pagination from '../pagination';\nimport { ListProps } from './types';\n\nconst ITEM_HEIGHT_MAP = { sm: 41, md: 49, lg: 57 } as const;\n\nconst List = React.forwardRef<HTMLDivElement, ListProps>((props, ref) => {\n const {\n dataSource = [],\n renderItem,\n header,\n footer,\n loading = false,\n bordered = false,\n split = true,\n size,\n grid,\n locale,\n virtual = false,\n height,\n itemHeight: itemHeightProp,\n pagination,\n prefixCls: customisedCls,\n className,\n style,\n children,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('list', configContext.prefixCls, customisedCls);\n const listSize = size || configContext.componentSize || 'md';\n\n if (virtual && height == null) {\n console.warn('[tiny-ui: List] `height` is required when `virtual` is enabled.');\n }\n if (virtual && grid) {\n console.warn('[tiny-ui: List] `virtual` is not supported with `grid` mode. Falling back to normal rendering.');\n }\n\n const isVirtual = virtual && height != null && !grid;\n\n const [currentPage, setCurrentPage] = useState(1);\n const pageSize = pagination && pagination.pageSize ? pagination.pageSize : 10;\n\n const itemHeight = itemHeightProp ?? ITEM_HEIGHT_MAP[listSize] ?? ITEM_HEIGHT_MAP.md;\n const { visibleRange, totalHeight, offsetY, onScroll } = useVirtualScroll({\n itemCount: dataSource.length,\n itemHeight,\n containerHeight: height ?? 0,\n });\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${listSize}`]: listSize,\n [`${prefixCls}_bordered`]: bordered,\n [`${prefixCls}_split`]: split,\n [`${prefixCls}_loading`]: loading,\n [`${prefixCls}_grid`]: grid,\n });\n\n const paginatedData = () => {\n if (!pagination) return dataSource;\n const page = pagination.current ?? currentPage;\n const start = (page - 1) * pageSize;\n return dataSource.slice(start, start + pageSize);\n };\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n pagination && pagination.onChange?.(page, pageSize);\n };\n\n const renderItems = () => {\n if (isVirtual) {\n if (dataSource.length === 0) {\n return (\n <div className={`${prefixCls}__empty`}>\n {locale?.emptyText ?? 'No Data'}\n </div>\n );\n }\n if (renderItem) {\n const [start, end] = visibleRange;\n const visibleItems = dataSource.slice(start, end + 1).map((item, i) => renderItem(item, start + i));\n return (\n <div style={{ height: totalHeight, position: 'relative' }}>\n <div style={{ position: 'absolute', top: 0, left: 0, right: 0, transform: `translateY(${offsetY}px)` }}>\n {visibleItems}\n </div>\n </div>\n );\n }\n return children;\n }\n\n const items = paginatedData();\n if (items.length === 0 && !children) {\n return (\n <div className={`${prefixCls}__empty`}>\n {locale?.emptyText ?? 'No Data'}\n </div>\n );\n }\n if (renderItem) {\n const rendered = items.map((item, index) => renderItem(item, index));\n if (grid) {\n return (\n <div\n className={`${prefixCls}__grid`}\n style={{\n display: 'grid',\n gridTemplateColumns: `repeat(${grid.column || 3}, 1fr)`,\n gap: grid.gutter ? `${grid.gutter}px` : undefined,\n }}\n >\n {rendered}\n </div>\n );\n }\n return rendered;\n }\n return children;\n };\n\n const showPagination = pagination && !isVirtual;\n const paginationConfig = pagination && typeof pagination === 'object' ? pagination : undefined;\n const totalItems = paginationConfig?.total ?? dataSource.length;\n const activePage = paginationConfig?.current ?? currentPage;\n\n const bodyCls = classNames(`${prefixCls}__body`, {\n [`${prefixCls}__body_virtual`]: isVirtual,\n });\n\n const bodyStyle: React.CSSProperties | undefined = isVirtual\n ? { height, overflowY: 'auto' }\n : undefined;\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n {header && <div className={`${prefixCls}__header`}>{header}</div>}\n <div className={bodyCls} style={bodyStyle} onScroll={isVirtual ? onScroll : undefined}>\n {loading ? (\n <div className={`${prefixCls}__loading`}>Loading...</div>\n ) : (\n renderItems()\n )}\n </div>\n {footer && <div className={`${prefixCls}__footer`}>{footer}</div>}\n {showPagination && (\n <Pagination\n current={activePage}\n total={totalItems}\n pageSize={pageSize}\n align={paginationConfig?.align ?? 'right'}\n size={paginationConfig?.size}\n disabled={paginationConfig?.disabled}\n onChange={(page) => handlePageChange(page)}\n style={{ padding: 16 }}\n />\n )}\n </div>\n );\n});\n\nList.displayName = 'List';\nexport default List;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ListItemProps } from './types';\n\nconst ListItem = React.forwardRef<HTMLDivElement, ListItemProps>((props, ref) => {\n const {\n extra,\n actions,\n prefixCls: customisedCls,\n className,\n style,\n children,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('list-item', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n <div className={`${prefixCls}__main`}>\n <div className={`${prefixCls}__content`}>{children}</div>\n {actions && actions.length > 0 && (\n <ul className={`${prefixCls}__actions`}>\n {actions.map((action, i) => (\n <li key={i} className={`${prefixCls}__action`}>\n {action}\n </li>\n ))}\n </ul>\n )}\n </div>\n {extra && <div className={`${prefixCls}__extra`}>{extra}</div>}\n </div>\n );\n});\n\nListItem.displayName = 'ListItem';\nexport default ListItem;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ListItemMetaProps } from './types';\n\nconst ListItemMeta = (props: ListItemMetaProps): React.ReactElement => {\n const { avatar, title, description, prefixCls: customisedCls, className, style } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('list-item-meta', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <div className={cls} style={style}>\n {avatar && <div className={`${prefixCls}__avatar`}>{avatar}</div>}\n <div className={`${prefixCls}__content`}>\n {title && <div className={`${prefixCls}__title`}>{title}</div>}\n {description && <div className={`${prefixCls}__description`}>{description}</div>}\n </div>\n </div>\n );\n};\n\nListItemMeta.displayName = 'ListItemMeta';\nexport default ListItemMeta;\n","import List from './list';\nimport ListItem from './list-item';\nimport ListItemMeta from './list-item-meta';\n\ntype IList = typeof List & {\n Item: typeof ListItem;\n ItemMeta: typeof ListItemMeta;\n};\n\nconst DefaultList = List as IList;\nDefaultList.Item = ListItem;\nDefaultList.ItemMeta = ListItemMeta;\n\nexport default DefaultList;\n","import React from 'react';\nimport { SizeType } from '../_utils/props';\n\ntype Props = {\n className: string;\n size: SizeType;\n};\n\nconst Indicator = (props: Props): React.ReactElement => {\n const { size, className } = props;\n return (\n <div className={`${className} ${className}_${size}`}>\n <span className={`${className}-dot`} />\n <span className={`${className}-dot`} />\n <span className={`${className}-dot`} />\n <span className={`${className}-dot`} />\n </div>\n );\n};\n\nexport default Indicator;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport Indicator from './indicator';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { LoaderProps } from './types';\n\nconst Loader = React.forwardRef<HTMLDivElement, LoaderProps>((props, ref) => {\n const {\n size = 'md',\n loading = true,\n vertical = false,\n blurred = true,\n indicator,\n tip,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('loader', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${size}`, {\n [`${prefixCls}_spinning`]: loading,\n });\n\n const indicatorCls = classNames(`${prefixCls}__loader-container`, {\n [`${prefixCls}__loader-container_vertical`]: vertical,\n });\n const containerCls = classNames(`${prefixCls}__container`, {\n [`${prefixCls}__container_loading`]: loading,\n [`${prefixCls}__container_blurred`]: loading && blurred,\n });\n\n return (\n <div {...otherProps} ref={ref} className={cls} role=\"status\" aria-busy={loading}>\n {loading && (\n <div className={indicatorCls}>\n {indicator ? indicator : <Indicator className={`${prefixCls}__indicator`} size={size} />}\n {tip && <span className={`${prefixCls}__label`}>{tip}</span>}\n </div>\n )}\n {children && <div className={containerCls}>{children}</div>}\n </div>\n );\n});\n\nLoader.displayName = 'Loader';\n\nexport default Loader;\n","import Loader from './loader';\n\nexport default Loader;\n","import React, { useContext, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { LoadingBarProps } from './types';\n\nconst LoadingBar = (props: LoadingBarProps): React.ReactElement => {\n const { didMount, className, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('loading-bar', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n useEffect(() => {\n didMount && didMount();\n }, [didMount]);\n\n return (\n <div {...otherProps} className={cls} role=\"progressbar\">\n <div id=\"ty-loading-bar\" className={`${prefixCls}__inner`} />\n </div>\n );\n};\n\nLoadingBar.displayName = 'LoadingBar';\n\nexport default LoadingBar;\n","import React from 'react';\nimport { createRoot, Root } from 'react-dom/client';\nimport LoadingBar from './loading-bar';\n\nlet rafId: number | null = null;\nlet loadingBar: HTMLElement | null = null;\nlet outerDiv: HTMLElement | null = null;\nlet root: Root | null = null;\nlet width = 0;\n\nconst reset = (): void => {\n if (root) {\n root.unmount();\n root = null;\n }\n if (outerDiv) {\n document.body.removeChild(outerDiv);\n }\n loadingBar = null;\n outerDiv = null;\n width = 0;\n};\n\nconst move = (): void => {\n if (width < 55) {\n width += .4;\n rafId = requestAnimationFrame(move);\n } else if (width < 90) {\n width += .1;\n rafId = requestAnimationFrame(move);\n }\n\n loadingBar && (loadingBar.style.width = `${width}%`);\n};\n\nconst createComponent = (): void => {\n outerDiv = document.createElement('div');\n document.body.appendChild(outerDiv);\n\n const component = React.createElement(LoadingBar, {\n didMount: () => {\n loadingBar = document.getElementById('ty-loading-bar');\n rafId = requestAnimationFrame(move);\n },\n });\n\n root = createRoot(outerDiv);\n root.render(component);\n};\n\nconst unmountDom = (): void => {\n setTimeout(() => {\n loadingBar && (loadingBar.style.opacity = '0');\n }, 300);\n setTimeout(() => {\n reset();\n }, 700);\n};\n\nconst start = (): void => {\n if (!outerDiv) {\n reset();\n createComponent();\n }\n};\n\nconst succeed = (): void => {\n if (rafId) cancelAnimationFrame(rafId);\n\n if (outerDiv && loadingBar) {\n loadingBar.style.width = '100%';\n unmountDom();\n }\n};\n\nconst fail = (): void => {\n if (rafId) cancelAnimationFrame(rafId);\n\n if (outerDiv && loadingBar) {\n loadingBar.style.width = '100%';\n loadingBar.style.backgroundColor = '#f30';\n unmountDom();\n }\n};\n\nexport default {\n start,\n succeed,\n fail,\n};\n","import React from 'react';\nimport { MenuMode } from './types';\n\ntype Props = {\n index: string;\n mode: MenuMode;\n inlineIndent: number;\n onSelect?: (selectedIndex: string) => void;\n};\n\nexport const MenuContext = React.createContext<Props>({\n index: '0',\n inlineIndent: 20,\n mode: 'horizontal',\n});\n","import React, { useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from './menu-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { MenuItemProps, MenuProps } from './types';\n\nconst Menu = (props: MenuProps): JSX.Element => {\n const {\n defaultIndex = '0',\n mode = 'horizontal',\n theme = 'light',\n inlineIndent = 20,\n onSelect,\n className,\n overlayClassName,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('menu', configContext.prefixCls, customisedCls);\n const cls = classNames(\n prefixCls,\n className,\n `${prefixCls}_root`,\n `${prefixCls}_${theme}`,\n `${prefixCls}_${mode}`\n );\n const [activeIndex, setActiveIndex] = useState<string>(defaultIndex);\n const contextValue = {\n mode,\n inlineIndent,\n index: activeIndex,\n onSelect: (index: string): void => {\n setActiveIndex(index);\n onSelect && onSelect(index);\n },\n };\n\n return (\n <ul {...otherProps} role=\"menu\" aria-orientation={mode === 'horizontal' ? 'horizontal' : 'vertical'} className={cls} style={style}>\n <MenuContext.Provider value={contextValue}>\n {React.Children.map(children, (child, index) => {\n const childElement = child as React.FunctionComponentElement<MenuItemProps>;\n const { displayName } = childElement.type;\n if (\n displayName === 'MenuItem' ||\n displayName === 'SubMenu' ||\n displayName === 'MenuItemGroup' ||\n (displayName === 'MenuDivider' && mode !== 'horizontal')\n ) {\n const childProps = displayName === 'SubMenu' && overlayClassName\n ? { index: `${index}`, overlayClassName }\n : { index: `${index}` };\n return React.cloneElement(childElement, childProps);\n } else {\n console.warn('Menu has a child that is not a MenuItem component.');\n return null;\n }\n })}\n </MenuContext.Provider>\n </ul>\n );\n};\n\nMenu.displayName = 'Menu';\n\nexport default Menu;\n","import React from 'react';\n\ntype Props = {\n level?: number;\n onMenuItemClick?: () => void;\n};\n\nexport const SubMenuContext = React.createContext<Props>({});\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from './menu-context';\nimport { SubMenuContext } from './sub-menu-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { MenuItemProps } from './types';\n\nconst MenuItem = (props: MenuItemProps): JSX.Element => {\n const {\n disabled = false,\n index,\n className,\n style,\n children,\n onClick,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const menuContext = useContext(MenuContext);\n const subMenuContext = useContext(SubMenuContext);\n const { inlineIndent, mode } = menuContext;\n const { level = 1, onMenuItemClick } = subMenuContext;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('menu-item', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_active`]: menuContext.index === index,\n });\n\n const onItemClick = (e: React.MouseEvent): void => {\n if (disabled) {\n return;\n }\n\n onClick && onClick(e);\n onMenuItemClick && onMenuItemClick();\n if (menuContext.onSelect && typeof index === 'string') {\n menuContext.onSelect(index);\n }\n };\n\n return (\n <li\n {...otherProps}\n key={index}\n role=\"menuitem\"\n tabIndex={disabled ? -1 : 0}\n aria-disabled={disabled || undefined}\n className={cls}\n style={{ paddingLeft: mode === 'inline' ? level * inlineIndent : undefined, ...style }}\n onClick={onItemClick}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onItemClick(e as unknown as React.MouseEvent);\n }\n }}>\n {children}\n </li>\n );\n};\n\nMenuItem.displayName = 'MenuItem';\n\nexport default MenuItem;\n","import React, { useContext, useState, useRef } from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from './menu-context';\nimport { SubMenuContext } from './sub-menu-context';\nimport { ArrowDown } from '../_utils/components';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { MenuItemProps, SubMenuProps } from './types';\nimport Popup from '../popup';\nimport CollapseTransition from '../collapse-transition';\n\nconst SubMenu = (props: SubMenuProps): JSX.Element => {\n const {\n index,\n title,\n disabled,\n className,\n overlayClassName,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const menuContext = useContext(MenuContext);\n const { mode, inlineIndent } = menuContext;\n const { level = 1, onMenuItemClick: _onMenuItemClick } = useContext(SubMenuContext);\n const [menuOpen, setMenuOpen] = useState<boolean>(false);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('menu-sub', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const subMenuCls = classNames(`${prefixCls}__list`, {\n [`${prefixCls}__list_open`]: menuOpen,\n [`${prefixCls}__list_popup`]: mode !== 'inline',\n });\n const nonRootSubMenu = index?.includes('-');\n const rightPopupMenu = mode === 'vertical' || (mode === 'horizontal' && nonRootSubMenu);\n const arrowCls = rightPopupMenu\n ? `${prefixCls}__arrow ${prefixCls}__arrow_right`\n : classNames(`${prefixCls}__arrow`, {\n [`${prefixCls}__arrow_reverse`]: menuOpen,\n });\n const menuItemCls = `${configContext.prefixCls ? configContext.prefixCls : 'ty'}-menu-item`;\n const titleCls = classNames(menuItemCls, `${prefixCls}__title`, {\n [`${menuItemCls}_disabled`]: disabled,\n [`${menuItemCls}_active`]: index ? menuContext.index.startsWith(index) : false,\n });\n const titleRef = useRef<HTMLDivElement | null>(null);\n\n const handleOnClick = (e: React.MouseEvent): void => {\n e.preventDefault();\n !disabled && mode === 'inline' && setMenuOpen(!menuOpen);\n };\n\n const timerRef = useRef<number | undefined>(undefined);\n const handleMouse = (e: React.MouseEvent, toggle: boolean): void => {\n e.preventDefault();\n const timer = timerRef.current;\n timer && window.clearTimeout(timer);\n timerRef.current = window.setTimeout(() => {\n setMenuOpen(toggle);\n }, 200);\n };\n\n const handleOnMouseEnter = (e: React.MouseEvent): void => {\n !disabled && mode !== 'inline' && handleMouse(e, true);\n };\n\n const handleOnMouseLeave = (e: React.MouseEvent): void => {\n mode !== 'inline' && handleMouse(e, false);\n };\n\n const onMenuItemClick = () => {\n if (mode !== 'inline') {\n setMenuOpen(false);\n // If this is a sub-subMenu, invoke the onMenuItemClick method to notify\n // its parent to close the menu popup\n _onMenuItemClick && _onMenuItemClick();\n }\n };\n\n const renderChildrenList = () => {\n let minWidth = undefined;\n const titleNode = titleRef.current;\n if (titleNode && !nonRootSubMenu) {\n const { marginLeft, marginRight } = window.getComputedStyle(titleNode);\n minWidth = titleNode.offsetWidth + parseFloat(marginLeft) + parseFloat(marginRight);\n }\n return (\n <ul className={subMenuCls} style={{ minWidth }}>\n {React.Children.map(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<MenuItemProps>;\n const { displayName } = childElement.type;\n const childProps = {\n index: `${index}-${idx}`,\n };\n if (\n displayName === 'MenuItem' ||\n displayName === 'MenuItemGroup' ||\n displayName === 'SubMenu' ||\n displayName === 'MenuDivider'\n ) {\n return React.cloneElement(childElement, childProps);\n } else {\n console.warn('Menu has a child that is not a MenuItem component.');\n return null;\n }\n })}\n </ul>\n );\n };\n\n if (mode === 'inline') {\n return (\n <SubMenuContext.Provider value={{ level: level + 1 }}>\n <li {...otherProps} role=\"menuitem\" key={index} className={cls}>\n <div\n className={titleCls}\n style={{ paddingLeft: inlineIndent * level }}\n onClick={handleOnClick}>\n <span>{title}</span>\n <span className={arrowCls}>\n <ArrowDown size={10} />\n </span>\n </div>\n <CollapseTransition isShow={menuOpen}>{renderChildrenList()}</CollapseTransition>\n </li>\n </SubMenuContext.Provider>\n );\n } else {\n return (\n <SubMenuContext.Provider value={{ onMenuItemClick }}>\n <li\n {...otherProps}\n role=\"menuitem\"\n key={index}\n className={cls}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleOnMouseLeave}>\n <Popup\n flip={false}\n arrow={false}\n className={overlayClassName}\n trigger=\"manual\"\n visible={menuOpen}\n biZoom={rightPopupMenu}\n placement={rightPopupMenu ? 'right-start' : 'bottom-start'}\n content={renderChildrenList()}>\n <div ref={titleRef} className={titleCls} onClick={handleOnClick}>\n <span>{title}</span>\n <span className={arrowCls}>\n <ArrowDown size={10} />\n </span>\n </div>\n </Popup>\n </li>\n </SubMenuContext.Provider>\n );\n }\n};\n\nSubMenu.displayName = 'SubMenu';\n\nexport default SubMenu;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { MenuItemGroupProps, MenuItemProps } from './types';\nimport { MenuContext } from './menu-context';\nimport { SubMenuContext } from './sub-menu-context';\n\nconst MenuItemGroup = (props: MenuItemGroupProps): JSX.Element => {\n const {\n index,\n title,\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const { inlineIndent } = useContext(MenuContext);\n const { level = 1 } = useContext(SubMenuContext);\n const prefixCls = getPrefixCls('menu-item-group', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <li {...otherProps} key={title} className={cls} style={style}>\n <div\n className={`${prefixCls}__title`}\n style={{\n paddingLeft: inlineIndent * level - inlineIndent / 2,\n }}>\n {title}\n </div>\n <ul className={`${prefixCls}__list`}>\n {React.Children.map(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<MenuItemProps>;\n if (childElement.type.displayName === 'MenuItem') {\n const childProps: Partial<MenuItemProps> = {\n index: `${index}-${idx}`,\n };\n return React.cloneElement(childElement, childProps);\n } else {\n console.warn('Menu has a child that is not a MenuItem component.');\n return null;\n }\n })}\n </ul>\n </li>\n );\n};\n\nMenuItemGroup.displayName = 'MenuItemGroup';\n\nexport default MenuItemGroup;\n","import { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BaseProps } from '../_utils/props';\n\nconst MenuDivider = (props: BaseProps): JSX.Element => {\n const { prefixCls: customisedCls, className } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('menu-divider', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return <li className={cls} />;\n};\n\nMenuDivider.displayName = 'MenuDivider';\n\nexport default MenuDivider;\n","import Menu from './menu';\nimport MenuItem from './menu-item';\nimport SubMenu from './sub-menu';\nimport MenuItemGroup from './menu-item-group';\nimport MenuDivider from './menu-divider';\n\ntype IMenu = typeof Menu & {\n Item: typeof MenuItem;\n SubMenu: typeof SubMenu;\n ItemGroup: typeof MenuItemGroup;\n Divider: typeof MenuDivider;\n};\n\nconst DefaultMenu = Menu as IMenu;\nDefaultMenu.Item = MenuItem;\nDefaultMenu.SubMenu = SubMenu;\nDefaultMenu.ItemGroup = MenuItemGroup;\nDefaultMenu.Divider = MenuDivider;\n\nexport default DefaultMenu;\n","import React, { useEffect, useRef, useState, useContext } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport {\n CheckCircle,\n CloseCircle,\n InfoCircle,\n LoadingCircle,\n WarningCircle,\n} from '../_utils/components';\nimport { MessageProps } from './types';\n\nconst Message = (props: MessageProps): JSX.Element => {\n const {\n type,\n icon,\n content,\n duration,\n willUnmount,\n extra,\n className,\n style,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('message', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const ref = useRef<HTMLDivElement | null>(null);\n const [visible, setVisible] = useState(true);\n\n const renderIcon = (): React.ReactNode => {\n if (React.isValidElement(icon)) {\n return icon;\n } else if (typeof type === 'string') {\n switch (type) {\n case 'success':\n return <CheckCircle size={16} className={`${prefixCls}__icon`} />;\n case 'info':\n return <InfoCircle size={16} className={`${prefixCls}__icon`} />;\n case 'warning':\n return <WarningCircle size={16} className={`${prefixCls}__icon`} />;\n case 'error':\n return <CloseCircle size={16} className={`${prefixCls}__icon`} />;\n case 'loading':\n return (\n <LoadingCircle\n size={16}\n className={classNames(`${prefixCls}__icon`, {\n [`${prefixCls}__icon_loading`]: type === 'loading',\n })}\n />\n );\n }\n }\n\n return null;\n };\n\n useEffect(() => {\n const node = ref.current;\n const height = (node && node.offsetHeight) || 0;\n const timer = window.setTimeout(() => {\n setVisible(false);\n willUnmount(height);\n }, duration);\n\n return (): void => {\n window.clearTimeout(timer);\n };\n }, [duration, willUnmount]);\n\n return (\n <CSSTransition nodeRef={ref} in={visible} appear={true} timeout={0} classNames={`${prefixCls}_fade-slide`}>\n <div role=\"alert\" className={cls} style={style} ref={ref}>\n {renderIcon()}\n <span className={`${prefixCls}__content`}>{content}</span>\n {extra && <div className={`${prefixCls}__extra`}>{extra}</div>}\n </div>\n </CSSTransition>\n );\n};\n\nMessage.displayName = 'Message';\n\nexport default Message;\n","import React, { ReactNode } from 'react';\nimport { createRoot, Root } from 'react-dom/client';\nimport Message from './message';\nimport { MessageProps, MessageType } from './types';\n\nconst className = '.ty-message-container';\nconst rootMap = new Map<HTMLElement, Root>();\n\nexport type Options = {\n top?: number;\n offset?: number;\n icon?: ReactNode;\n extra?: ReactNode;\n className?: string;\n};\n\ntype CreateComponent = (\n type: MessageType,\n content: string,\n duration: number,\n onClose: () => void,\n options: Options\n) => void;\n\ntype UnmountDom = (\n containerDiv: HTMLElement,\n top: number,\n height: number,\n onClose?: () => void\n) => void;\n\nlet offset: number;\n\nconst unmountDom: UnmountDom = (containerDiv, top, height, onClose) => {\n const root = rootMap.get(containerDiv);\n if (root) {\n root.unmount();\n rootMap.delete(containerDiv);\n }\n document.body.removeChild(containerDiv);\n requestAnimationFrame(() => {\n const containers = document.querySelectorAll(className);\n const len = containers.length;\n for (let i = 0; i < len; i++) {\n const element = containers[i] as HTMLElement;\n const elementTop = parseInt((element as HTMLElement).style.top || '0', 10);\n elementTop > top && (element.style.top = `${elementTop - height - offset}px`);\n }\n });\n onClose && onClose();\n};\n\nconst createComponent: CreateComponent = (\n type,\n content,\n duration = 3000,\n onClose,\n options: Options = {}\n) => {\n const containers = document.querySelectorAll(className);\n const lastContainer =\n containers.length > 0 ? (containers[containers.length - 1] as HTMLElement) : null;\n\n offset = options.offset || 16;\n const top = lastContainer\n ? parseInt(lastContainer.style.top || '0', 10) + lastContainer.offsetHeight + offset\n : options.top || 15;\n\n const div = document.createElement('div');\n div.className = 'ty-message-container';\n document.body.appendChild(div);\n div.style.top = `${top}px`;\n\n const props: MessageProps = {\n type,\n content,\n duration,\n icon: options.icon,\n extra: options.extra,\n className: options.className,\n willUnmount: (height) => {\n const updatedTop = parseInt(div.style.top || '0', 10);\n unmountDom(div, updatedTop, height, onClose);\n },\n };\n const component = React.createElement(Message, props);\n const root = createRoot(div);\n rootMap.set(div, root);\n root.render(component);\n};\n\nconst messageContainer: any = (\n content: string,\n duration: number,\n onClose: () => void,\n options: Options\n) => {\n createComponent(undefined, content, duration, onClose, options);\n};\n\n['success', 'error', 'warning', 'info', 'loading'].forEach((type) => {\n messageContainer[type] = (\n content: string,\n duration: number,\n onClose: () => void,\n options: Options\n ) => {\n createComponent(type as MessageType, content, duration, onClose, options);\n };\n});\n\nmessageContainer.warn = messageContainer.warning;\n\nexport default messageContainer;\n","import messageContainer from './message-container';\n\nexport type { Options } from './message-container';\nexport default messageContainer;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { NativeSelectGroupProps, NativeSelectOptionProps, NativeSelectProps } from './types';\n\nconst NativeSelect = React.forwardRef<HTMLSelectElement, NativeSelectProps>(\n (props: NativeSelectProps, ref) => {\n const {\n size = 'md',\n disabled = false,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('select-native', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${size}`]: size,\n [`${prefixCls}_disabled`]: disabled,\n });\n\n return (\n <select ref={ref} {...otherProps} className={cls}>\n {React.Children.map(children, (child: React.ReactElement) => {\n const childProps: Partial<NativeSelectOptionProps | NativeSelectGroupProps> = {\n disabled,\n };\n return React.cloneElement(child, childProps);\n })}\n </select>\n );\n }\n);\n\nNativeSelect.displayName = 'NativeSelect';\n\nexport default NativeSelect;\n","import React from 'react';\nimport { NativeSelectOptionProps } from './types';\n\nconst NativeOption = React.forwardRef<HTMLOptionElement, NativeSelectOptionProps>(\n (props: NativeSelectOptionProps, ref): React.ReactElement => {\n return <option ref={ref} {...props} />;\n }\n);\n\nNativeOption.displayName = 'NativeOption';\n\nexport default NativeOption;\n","import React from 'react';\nimport { NativeSelectGroupProps } from './types';\n\nconst NativeOptGroup = React.forwardRef<HTMLOptGroupElement, NativeSelectGroupProps>(\n (props: NativeSelectGroupProps, ref): React.ReactElement => {\n return (\n <optgroup ref={ref} {...props}>\n {props.children}\n </optgroup>\n );\n }\n);\n\nNativeOptGroup.displayName = 'NativeSelectOptGroup';\n\nexport default NativeOptGroup;\n","import NativeSelect from './native-select';\nimport NativeOption from './native-option';\nimport NativeOptGroup from './native-opt-group';\n\ntype ISelect = typeof NativeSelect & {\n Option: typeof NativeOption;\n OptGroup: typeof NativeOptGroup;\n};\n\nconst DefaultSelect = NativeSelect as ISelect;\nDefaultSelect.Option = NativeOption;\nDefaultSelect.OptGroup = NativeOptGroup;\n\nexport default DefaultSelect;\n","import Row from '../grid/row';\n\nexport default Row;\n","import React, { useContext, useEffect, useId, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport Overlay from '../overlay';\nimport { Button, Flex } from '..';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useLocale } from '../_utils/use-locale';\nimport { ModalProps } from './types';\n\nconst Modal = React.forwardRef<HTMLDivElement, ModalProps>((props, ref) => {\n const locale = useLocale();\n const {\n visible = false,\n width = 520,\n centered = false,\n closable = true,\n unmountOnClose = true,\n maskType = 'default',\n maskClosable = true,\n confirmText = locale.Modal.okText,\n cancelText = locale.Modal.cancelText,\n confirmLoading = false,\n animation = 'slide',\n zIndex = 1000,\n onConfirm,\n onCancel: onCancelProp,\n onClose: onCloseProp,\n top,\n header,\n footer,\n afterClose,\n confirmButtonProps,\n cancelButtonProps,\n className,\n children,\n style,\n maskStyle,\n headerStyle,\n bodyStyle,\n footerStyle,\n prefixCls: customisedCls,\n } = props;\n const onCancel = onCloseProp ?? onCancelProp;\n const [modalVisible, setModalVisible] = useState(visible);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('modal', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, { [`${prefixCls}_centered`]: centered });\n const nodeRef = useRef<HTMLDivElement>(null);\n const previousFocusRef = useRef<HTMLElement | null>(null);\n const titleId = useId();\n\n // Focus trap + Escape key\n useEffect(() => {\n if (!visible) return;\n previousFocusRef.current = document.activeElement as HTMLElement;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n onCancel?.(e as unknown as React.MouseEvent);\n return;\n }\n if (e.key === 'Tab' && nodeRef.current) {\n const focusable = nodeRef.current.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (focusable.length === 0) return;\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n if (e.shiftKey) {\n if (document.activeElement === first) { e.preventDefault(); last.focus(); }\n } else {\n if (document.activeElement === last) { e.preventDefault(); first.focus(); }\n }\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n\n // Focus first focusable element\n requestAnimationFrame(() => {\n if (nodeRef.current) {\n const focusable = nodeRef.current.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (focusable.length > 0) focusable[0].focus();\n }\n });\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n previousFocusRef.current?.focus();\n };\n }, [visible, onCancel]);\n\n const renderFooter = (): React.ReactNode => {\n if (React.isValidElement(footer)) {\n return footer;\n } else if (footer === null) {\n return null;\n } else {\n return (\n <Flex gap=\"sm\" justify='end' className={`${prefixCls}__footer`} style={footerStyle}>\n <Button onClick={onCancel} className={`${prefixCls}__footer-btn`} {...cancelButtonProps}>\n {cancelText}\n </Button>\n <Button\n loading={confirmLoading}\n onClick={onConfirm}\n btnType=\"primary\"\n className={`${prefixCls}__footer-btn`}\n {...confirmButtonProps}>\n {confirmText}\n </Button>\n </Flex>\n );\n }\n };\n\n return (\n <Overlay\n onEnter={(): void => setModalVisible(true)}\n onExit={(): void => setModalVisible(false)}\n zIndex={zIndex}\n type={maskType}\n unmountOnExit={unmountOnClose}\n isShow={visible}\n onExited={afterClose}\n clickCallback={(e: React.MouseEvent): void => {\n maskClosable && onCancel ? onCancel(e) : undefined;\n }}\n style={maskStyle}>\n <div ref={ref} className={cls} style={{ top }}>\n <div style={{ width, ...style }}>\n <CSSTransition\n appear={true}\n nodeRef={nodeRef}\n in={modalVisible}\n classNames={`${prefixCls}__content_${animation}`}\n timeout={0}>\n <div\n ref={nodeRef}\n className={`${prefixCls}__content`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={header ? titleId : undefined}\n onClick={(e): void => e.stopPropagation()}>\n {closable && (\n <button type=\"button\" className={`${prefixCls}__close-btn`} onClick={onCancel} aria-label=\"Close\">\n ✕\n </button>\n )}\n {header && (\n <div className={`${prefixCls}__header`} style={headerStyle}>\n <div className={`${prefixCls}__title`} id={titleId}>{header}</div>\n </div>\n )}\n <div className={`${prefixCls}__body`} style={bodyStyle}>\n {children}\n </div>\n {renderFooter()}\n </div>\n </CSSTransition>\n </div>\n </div>\n </Overlay>\n );\n});\n\nModal.displayName = 'Modal';\n\nexport default Modal;\n","import React, { createContext, useCallback, useContext, useMemo, useReducer } from 'react';\n\n// --- Reducer ---\n\ntype ModalState = Record<string, boolean>;\n\ntype ModalAction =\n | { type: 'SHOW'; id: string }\n | { type: 'HIDE'; id: string }\n | { type: 'TOGGLE'; id: string }\n | { type: 'PURGE' };\n\nfunction modalReducer(state: ModalState, action: ModalAction): ModalState {\n switch (action.type) {\n case 'SHOW':\n return state[action.id] === true ? state : { ...state, [action.id]: true };\n case 'HIDE':\n return state[action.id] === false ? state : { ...state, [action.id]: false };\n case 'TOGGLE':\n return { ...state, [action.id]: !state[action.id] };\n case 'PURGE':\n return {};\n default:\n return state;\n }\n}\n\n// --- Context ---\n\ninterface ModalContextValue {\n modals: ModalState;\n dispatch: React.Dispatch<ModalAction>;\n}\n\nconst ModalContext = createContext<ModalContextValue | null>(null);\n\n// --- Provider ---\n\ninterface ModalProviderProps {\n modals?: ModalState;\n dispatch?: React.Dispatch<ModalAction>;\n children: React.ReactNode;\n}\n\nfunction ModalProvider({ modals: controlledModals, dispatch: controlledDispatch, children }: ModalProviderProps) {\n const [internalModals, internalDispatch] = useReducer(modalReducer, {});\n\n const modals = controlledModals ?? internalModals;\n const dispatch = controlledDispatch ?? internalDispatch;\n\n const value = useMemo(() => ({ modals, dispatch }), [modals, dispatch]);\n\n return <ModalContext.Provider value={value}>{children}</ModalContext.Provider>;\n}\n\n// --- Hook ---\n\ninterface UseModalReturn {\n visible: boolean;\n show: () => void;\n close: () => void;\n toggle: () => void;\n}\n\nfunction useModal(id: string): UseModalReturn {\n const ctx = useContext(ModalContext);\n if (!ctx) {\n throw new Error('useModal must be used within a <Modal.Provider>');\n }\n\n const { modals, dispatch } = ctx;\n const visible = !!modals[id];\n\n const show = useCallback(() => dispatch({ type: 'SHOW', id }), [dispatch, id]);\n const close = useCallback(() => dispatch({ type: 'HIDE', id }), [dispatch, id]);\n const toggle = useCallback(() => dispatch({ type: 'TOGGLE', id }), [dispatch, id]);\n\n return useMemo(() => ({ visible, show, close, toggle }), [visible, show, close, toggle]);\n}\n\nexport { ModalProvider, useModal, modalReducer };\nexport type { ModalState, ModalAction, ModalProviderProps, UseModalReturn };\n","import Modal from './modal';\nimport { ModalProvider, useModal } from './modal-context';\nimport type { ModalProviderProps, UseModalReturn } from './modal-context';\n\ntype ModalComponent = typeof Modal & {\n Provider: typeof ModalProvider;\n useModal: typeof useModal;\n};\n\nconst ModalWithContext = Modal as ModalComponent;\nModalWithContext.Provider = ModalProvider;\nModalWithContext.useModal = useModal;\n\nexport default ModalWithContext;\nexport type { ModalProviderProps, UseModalReturn };\n","import React, { useContext, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CheckCircle, CloseCircle, InfoCircle, WarningCircle } from '../_utils/components';\nimport { NotificationProps } from './types';\n\nconst Notification = (props: NotificationProps): JSX.Element => {\n const {\n duration = 4500,\n title,\n description,\n footer,\n type,\n icon,\n willUnmount,\n didMount,\n onClick,\n onClose,\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('notification', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const ref = useRef<HTMLDivElement | null>(null);\n const timerRef = useRef<number>();\n const height = useRef(0);\n\n const closeBtnOnClick = (e: React.MouseEvent): void => {\n timerRef.current && window.clearTimeout(timerRef.current);\n willUnmount(height.current);\n onClose && onClose(e);\n };\n\n const renderIcon = (): React.ReactNode => {\n if (React.isValidElement(icon)) {\n return icon;\n } else if (typeof type === 'string') {\n const iconSize = 40;\n switch (type) {\n case 'success':\n return <CheckCircle size={iconSize} className={`${prefixCls}__icon`} />;\n case 'info':\n return <InfoCircle size={iconSize} className={`${prefixCls}__icon`} />;\n case 'warning':\n return <WarningCircle size={iconSize} className={`${prefixCls}__icon`} />;\n case 'error':\n return <CloseCircle size={iconSize} className={`${prefixCls}__icon`} />;\n }\n }\n\n return null;\n };\n\n useEffect(() => {\n didMount();\n const node = ref.current;\n height.current = node ? node.offsetHeight : 0;\n\n if (duration !== 0) {\n timerRef.current = window.setTimeout(() => {\n willUnmount(height.current);\n }, duration);\n }\n }, [didMount, duration, willUnmount]);\n\n return (\n <div {...otherProps} className={cls} onClick={onClick} ref={ref}>\n {renderIcon()}\n <div>\n <div className={`${prefixCls}__title`}>{title}</div>\n {description}\n {footer}\n <button type=\"button\" className={`${prefixCls}__close`} onClick={closeBtnOnClick} aria-label=\"Close\">\n ✕\n </button>\n </div>\n </div>\n );\n};\n\nexport default Notification;\n","import React, { ReactNode, MouseEventHandler } from 'react';\nimport { createRoot, Root } from 'react-dom/client';\nimport Notification from './notification';\nimport { camelCaseToDash } from '../_utils/general';\nimport { NotificationProps, NotificationType } from './types';\n\nconst className = 'ty-notification-container';\nconst rootMap = new Map<HTMLElement, Root>();\n\ntype Direction = 'top' | 'bottom';\ntype NotificationPlacement = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';\ntype Options = {\n margin?: number;\n offset?: number;\n title?: ReactNode;\n description?: ReactNode;\n footer?: ReactNode;\n duration?: number;\n placement?: NotificationPlacement;\n onClose?: MouseEventHandler;\n onClick?: MouseEventHandler;\n icon?: ReactNode;\n};\ntype UnmountDom = (\n queryName: string,\n containerDiv: HTMLElement,\n position: number,\n height: number,\n direction: Direction\n) => void;\n\nlet offset: number;\n\nconst unmountDom: UnmountDom = (queryName, containerDiv, position, height, direction) => {\n const root = rootMap.get(containerDiv);\n if (root) {\n root.unmount();\n rootMap.delete(containerDiv);\n }\n document.body.removeChild(containerDiv);\n requestAnimationFrame(() => {\n const containers = document.querySelectorAll(`.${queryName}`);\n const len = containers.length;\n for (let i = 0; i < len; i++) {\n const element = containers[i] as HTMLElement;\n const elementPosition = parseInt((element as HTMLElement).style[direction] || '0', 10);\n elementPosition > position &&\n (element.style[direction] = `${elementPosition - height - offset}px`);\n }\n });\n};\n\nconst createComponent = (options: Options, type: NotificationType) => {\n const placement = options.placement || 'topRight';\n const queryName = `${className}_${camelCaseToDash(placement)}`;\n const containers = document.querySelectorAll(`.${queryName}`);\n const lastContainer =\n containers.length > 0 ? (containers[containers.length - 1] as HTMLElement) : null;\n\n const div = document.createElement('div');\n div.className = `${className} ${queryName}`;\n document.body.appendChild(div);\n\n offset = options.offset || 24;\n const direction: Direction = placement.includes('top') ? 'top' : 'bottom';\n const position = lastContainer\n ? parseInt(lastContainer.style[direction] || '0', 10) + lastContainer.offsetHeight + offset\n : options.margin || 16;\n div.style[direction] = `${position}px`;\n\n const props: NotificationProps = {\n type,\n title: options.title,\n description: options.description,\n footer: options.footer,\n duration: options.duration,\n onClose: options.onClose,\n onClick: options.onClick,\n icon: options.icon,\n didMount: () => {\n placement.includes('Right') ? (div.style.right = `0px`) : (div.style.left = `0px`);\n },\n willUnmount: (height) => {\n const updatedPosition = parseInt(div.style[direction] || '0', 10);\n unmountDom(queryName, div, updatedPosition, height, direction);\n },\n };\n const element = React.createElement(Notification, props);\n const root = createRoot(div);\n rootMap.set(div, root);\n root.render(element);\n};\n\nconst open = (options: Options) => {\n createComponent(options, undefined);\n};\n\nconst notificationContainer: any = {};\n\n['success', 'error', 'warning', 'info'].forEach((type) => {\n notificationContainer[type] = (options: Options) => {\n createComponent(options, type as NotificationType);\n };\n});\n\nnotificationContainer.open = open;\nnotificationContainer.warn = notificationContainer.warning;\n\nexport default notificationContainer;\n","import notificationContainer from './notification-container';\n\nexport default notificationContainer;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport Popup from '../popup';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { PopoverProps } from './types';\n\nconst Popover = React.forwardRef<HTMLDivElement, PopoverProps>((props, ref) => {\n const {\n theme = 'light',\n role = 'tooltip',\n prefixCls: customisedCls,\n title,\n content,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('popover', configContext.prefixCls, customisedCls);\n const cls = classNames(className, prefixCls, `${prefixCls}_${theme}`);\n\n const renderContent = (): React.ReactElement => (\n <div role={role} className={`${prefixCls}__inner`}>\n {title && <div className={`${prefixCls}__title`}>{title}</div>}\n {content && <div className={`${prefixCls}__content`}>{content}</div>}\n </div>\n );\n\n return (\n <Popup {...otherProps} className={cls} theme={theme} content={renderContent()}>\n {children}\n </Popup>\n );\n});\n\nPopover.displayName = 'Popover';\n\nexport default Popover;\n","import Popover from './popover';\n\nexport default Popover;\n","import React, { useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport Popover from '../popover';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useLocale } from '../_utils/use-locale';\nimport { WarningCircle } from '../_utils/components';\nimport { PopConfirmProps } from './types';\n\nconst PopConfirm = (props: PopConfirmProps): JSX.Element => {\n const locale = useLocale();\n const {\n placement = 'top',\n confirmText = locale.PopConfirm.okText,\n cancelText = locale.PopConfirm.cancelText,\n title,\n icon,\n onConfirm,\n onCancel,\n onVisibleChange,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('pop-confirm', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [visible, setVisible] = useState(false);\n\n const cancelOnClick = (e: React.MouseEvent): void => {\n setVisible(false);\n onCancel && onCancel(e);\n };\n\n const confirmOnClick = (e: React.MouseEvent): void => {\n setVisible(false);\n onConfirm && onConfirm(e);\n };\n\n const overlay = (): React.ReactElement => {\n return (\n <div className={`${prefixCls}__overlay`}>\n <div className={`${prefixCls}__messages`}>\n {icon ? icon : <WarningCircle size={14} />}\n <span className={`${prefixCls}__title`}>{title}</span>\n </div>\n <div className={`${prefixCls}__buttons`}>\n <Button size=\"sm\" onClick={cancelOnClick}>\n {cancelText}\n </Button>\n <Button size=\"sm\" btnType=\"primary\" onClick={confirmOnClick}>\n {confirmText}\n </Button>\n </div>\n </div>\n );\n };\n\n return (\n <Popover\n {...otherProps}\n className={cls}\n role=\"alertdialog\"\n visible={visible}\n onVisibleChange={(val: boolean): void => {\n setVisible(val);\n onVisibleChange && onVisibleChange(val);\n }}\n content={overlay()}\n placement={placement}>\n {children}\n </Popover>\n );\n};\n\nPopConfirm.displayName = 'PopConfirm';\n\nexport default PopConfirm;\n","import PopConfirm from './pop-confirm';\n\nexport default PopConfirm;\n","import React from 'react';\nimport { BaseProps } from '../_utils/props';\n\nexport type strokeLineCaps = 'round' | 'square';\n\nexport const strokePresetColors = ['primary', 'blue', 'green', 'yellow', 'red'];\n\nexport type BarBackgroundType = 'impulse' | 'striped';\n\nexport interface BarProps extends BaseProps, React.PropsWithoutRef<JSX.IntrinsicElements['div']> {\n percent?: number;\n /** Customise label style for both outer and inner label */\n format?: (percent: number) => React.ReactNode;\n /** Determine display the label */\n showInfo?: boolean;\n strokeLinecap?: strokeLineCaps;\n strokeColor?: string | string[];\n strokeWidth?: number;\n /** Determine display the label in the bar or right of bar */\n innerText?: boolean;\n backgroundType?: BarBackgroundType;\n children?: React.ReactNode;\n}\n\nexport interface CircleProps\n extends BaseProps,\n React.PropsWithoutRef<JSX.IntrinsicElements['div']> {\n percent?: number;\n /** Customise label style for both outer and inner label */\n format?: (percent: number) => React.ReactNode;\n width?: number;\n strokeWidth?: number;\n strokeLinecap?: strokeLineCaps;\n strokeColor?: string;\n reverse?: boolean;\n prefixCls?: string;\n textStyle?: React.CSSProperties;\n children?: React.ReactNode;\n}\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CircleProps, strokePresetColors } from './types';\n\nconst Circle = (props: CircleProps): React.ReactElement => {\n const {\n percent = 0,\n strokeWidth = 8,\n width = 120,\n strokeLinecap = 'round',\n strokeColor = 'primary',\n reverse = false,\n prefixCls: customisedCls,\n format,\n className,\n style,\n textStyle,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('progress-circle', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n let percentage: number = percent > 100 ? 100 : percent;\n percentage = percentage < 0 ? 0 : percentage;\n\n const strokeBgCls = classNames(`${prefixCls}__path`, {\n [`${prefixCls}__path_${strokeColor}`]: strokePresetColors.includes(strokeColor),\n });\n\n const relativeStrokeWidth = (): string => {\n return ((strokeWidth / width) * 100).toFixed(1);\n };\n\n const trackPath = (): string => {\n const radius: number = 50 - parseFloat(relativeStrokeWidth()) / 2;\n return `M 50 50 m 0 -${radius} a ${radius} ${radius}\n 0 1 1 0 ${radius * 2} a ${radius} ${radius} 0 1 1 0 -${radius * 2}`;\n };\n\n const _perimeter = (): number => {\n const radius: number = 50 - parseFloat(relativeStrokeWidth()) / 2;\n return 2 * Math.PI * radius;\n };\n\n const _circlePathStyle = (): React.CSSProperties => {\n const perimeter = _perimeter();\n const strokeDash = reverse ? percentage / 100 + 1 : 1 - percentage / 100;\n return {\n strokeDasharray: `${perimeter}px, ${perimeter}px`,\n strokeDashoffset: strokeDash * perimeter + 'px',\n };\n };\n\n const renderLabel = (): React.ReactNode => {\n return (\n <div className={`${prefixCls}__text`} style={textStyle}>\n {format ? format(percent) : `${percentage}%`}\n </div>\n );\n };\n\n return (\n <div\n {...otherProps}\n role=\"progressbar\"\n className={cls}\n style={{ width, height: width, ...style }}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={percentage}>\n <svg viewBox=\"0 0 100 100\" width={width} height={width}>\n <path className={`${prefixCls}__bg`} d={trackPath()} strokeWidth={relativeStrokeWidth()} />\n <path\n className={strokeBgCls}\n d={trackPath()}\n strokeLinecap={strokeLinecap}\n strokeWidth={relativeStrokeWidth()}\n style={_circlePathStyle()}\n />\n </svg>\n {renderLabel()}\n </div>\n );\n};\n\nCircle.displayName = 'Circle';\n\nexport default Circle;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BarProps, strokePresetColors } from './types';\n\nconst Bar = (props: BarProps): React.ReactElement => {\n const {\n percent = 0,\n showInfo = true,\n strokeWidth = 8,\n strokeLinecap = 'round',\n strokeColor = 'primary',\n innerText = false,\n prefixCls: customisedCls,\n format,\n backgroundType,\n className,\n style,\n ...otherProps\n } = props;\n let percentage: number = percent > 100 ? 100 : percent;\n percentage = percentage < 0 ? 0 : percentage;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('progress-bar', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${strokeLinecap}`);\n\n const strokeBgCls = classNames(`${prefixCls}__bg`, {\n [`${prefixCls}__bg_${strokeColor}`]:\n !Array.isArray(strokeColor) && strokePresetColors.includes(strokeColor),\n });\n\n const background = Array.isArray(strokeColor)\n ? `linear-gradient(to right, ${strokeColor.join(',')})`\n : strokePresetColors.includes(strokeColor)\n ? ''\n : strokeColor;\n\n const effectCls = classNames(`${prefixCls}__effect`, {\n [`${prefixCls}__effect_${backgroundType}`]: backgroundType,\n });\n\n const _renderLabel = () => {\n if (showInfo && !innerText) {\n return format ? (\n format(percentage)\n ) : (\n <span className={`${prefixCls}__text`}>{percentage}%</span>\n );\n }\n return null;\n };\n\n const _renderInnerLabel = () => {\n if (showInfo && innerText) {\n return format ? (\n format(percentage)\n ) : (\n <div className={`${prefixCls}__inner-text`} style={{ lineHeight: `${strokeWidth}px` }}>\n {percentage}%\n </div>\n );\n }\n return null;\n };\n\n return (\n <div\n {...otherProps}\n role=\"progressbar\"\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={percentage}\n className={cls}\n style={style}>\n <div className={`${prefixCls}__inner`} style={{ height: strokeWidth }}>\n <div\n className={strokeBgCls}\n style={{\n width: `${percentage}%`,\n background,\n }}>\n <div className={effectCls} />\n {_renderInnerLabel()}\n </div>\n </div>\n {_renderLabel()}\n </div>\n );\n};\n\nBar.displayName = 'Bar';\n\nexport default Bar;\n","import Circle from './circle';\nimport Bar from './bar';\n\nconst Progress = {\n Circle,\n Bar,\n};\n\nexport default Progress;\n","import React from 'react';\n\ntype Props = {\n value?: number | string;\n name?: string;\n disabled?: boolean;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n};\n\nexport const RadioGroupContext = React.createContext<Props>({});\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { RadioGroupContext } from './radio-group-context';\nimport { RadioProps } from './types';\n\nconst Radio = React.forwardRef<HTMLLabelElement, RadioProps>(\n (props: RadioProps, ref): React.ReactElement => {\n const {\n defaultChecked = false,\n radioRef,\n name,\n value,\n onChange,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const radioGroupContext = useContext(RadioGroupContext);\n const initialChecked = 'checked' in props ? (props.checked as boolean) : defaultChecked;\n const [checked, setChecked] = useState<boolean>(\n 'value' in radioGroupContext ? radioGroupContext.value === value : initialChecked\n );\n const prefixCls = getPrefixCls('radio', configContext.prefixCls, customisedCls);\n const disabled =\n 'disabled' in props\n ? props.disabled\n : 'disabled' in radioGroupContext\n ? radioGroupContext.disabled\n : false;\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_checked`]: checked,\n [`${prefixCls}_disabled`]: disabled,\n });\n\n const radioOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled) {\n !('checked' in props) && setChecked(e.currentTarget.checked);\n onChange && onChange(e);\n radioGroupContext.onChange && radioGroupContext.onChange(e);\n }\n };\n\n useEffect(() => {\n 'value' in radioGroupContext && setChecked(value === radioGroupContext.value);\n 'checked' in props && typeof props.checked !== 'undefined' && setChecked(props.checked);\n }, [props, radioGroupContext, value]);\n\n return (\n <label {...otherProps} ref={ref} className={cls}>\n <input\n ref={radioRef}\n role=\"radio\"\n aria-checked={checked}\n name={radioGroupContext.name || name}\n disabled={disabled}\n value={value}\n className={`${prefixCls}__native`}\n type=\"radio\"\n checked={checked}\n onChange={radioOnChange}\n />\n <span className={`${prefixCls}__inner`} />\n <span>{children}</span>\n </label>\n );\n }\n);\n\nRadio.displayName = 'Radio';\n\nexport default Radio;\n","import React, { useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { RadioGroupContext } from './radio-group-context';\nimport { RadioGroupProps } from './types';\n\nconst RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n (props: RadioGroupProps, ref): JSX.Element => {\n const {\n defaultValue = '',\n disabled = false,\n name,\n onChange,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('radio-group', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [value, setValue] = useState<number | string>(\n 'value' in props ? (props.value as number | string) : defaultValue\n );\n\n const radioOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled) {\n const val = e.currentTarget.value;\n !('value' in props) && setValue(val);\n onChange && onChange(val);\n }\n };\n\n useEffect(() => {\n 'value' in props && setValue(props.value as number | string);\n }, [props]);\n\n return (\n <RadioGroupContext.Provider\n value={{\n name,\n disabled,\n value,\n onChange: radioOnChange,\n }}>\n <div {...otherProps} ref={ref} role=\"radiogroup\" className={cls}>\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n }\n);\n\nRadioGroup.displayName = 'RadioGroup';\n\nexport default RadioGroup;\n","import Radio from './radio';\nimport RadioGroup from './radio-group';\n\ntype IRadio = typeof Radio & {\n Group: typeof RadioGroup;\n};\n\nconst DefaultRadio = Radio as IRadio;\nDefaultRadio.Group = RadioGroup;\n\nexport default DefaultRadio;\n","import React, { ReactNode } from 'react';\n\ntype ItemProps = {\n half: boolean;\n color: string;\n value: number;\n prefixCls: string;\n index: number;\n onMouseEnter: (index: number) => void;\n character?: ReactNode;\n onClick: React.MouseEventHandler;\n};\n\nconst RateItem = (props: ItemProps): React.ReactElement => {\n const { half, color, value, character, prefixCls, index, onMouseEnter, onClick } = props;\n const getColor = (curr: number, max: number): string => {\n const val = half ? curr : Math.round(curr);\n return val <= max ? color : '#e8e8e8';\n };\n\n return (\n <li className={`${prefixCls}__item`} onClick={onClick}>\n <div\n style={{ color: getColor(index - 0.5, value) }}\n className={`${prefixCls}__item-first`}\n onMouseEnter={(): void => onMouseEnter(index - 0.5)}>\n {character}\n </div>\n <div\n style={{ color: getColor(index, value) }}\n className={`${prefixCls}__item-second`}\n onMouseEnter={(): void => onMouseEnter(index)}>\n {character}\n </div>\n </li>\n );\n};\n\nRateItem.displayName = 'RateItem';\n\nexport default RateItem;\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport Icon from '../icon';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { RateProps } from './types';\nimport RateItem from './rate-item';\n\nconst Rate = React.forwardRef<HTMLUListElement, RateProps>(\n (props: RateProps, ref): JSX.Element => {\n const {\n color = '#FADB14',\n character = <Icon name=\"star-fill\" size={20} />,\n clearable = true,\n half = false,\n count = 5,\n defaultValue = 0,\n disabled = false,\n onChange,\n className,\n style,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('rate', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [value, setValue] = useState<number>(\n 'value' in props ? (props.value as number) : defaultValue\n );\n // tepValue is for setting the value when the mouse is hovering the bar\n const [tmpValue, setTmpValue] = useState<number>(\n 'value' in props ? (props.value as number) : defaultValue\n );\n\n /**\n * Callback when the mouse enters each star item\n * @param index\n */\n const onMouseEnter = (index: number): void => {\n !disabled && setTmpValue(index);\n };\n\n const onClick = (): void => {\n if (!disabled && clearable) {\n const val = tmpValue === value ? 0 : tmpValue;\n setTmpValue(val);\n !('value' in props) && setValue(val);\n onChange && onChange(val);\n } else {\n !('value' in props) && setValue(tmpValue);\n onChange && onChange(tmpValue);\n }\n };\n\n /**\n * When the mouse leaves the rate component\n */\n const onMouseLeave = (): void => {\n setTmpValue(value);\n };\n\n useEffect(() => {\n 'value' in props && setValue(props.value as number);\n }, [props]);\n\n return (\n <ul\n {...otherProps}\n ref={ref}\n className={cls}\n style={style}\n role=\"radiogroup\"\n aria-label=\"Rating\"\n tabIndex={disabled ? -1 : 0}\n onMouseLeave={onMouseLeave}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (disabled) return;\n if (e.key === 'ArrowRight' || e.key === 'ArrowUp') {\n e.preventDefault();\n const step = half ? 0.5 : 1;\n const newVal = Math.min(tmpValue + step, count);\n setTmpValue(newVal);\n !('value' in props) && setValue(newVal);\n onChange?.(newVal);\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowDown') {\n e.preventDefault();\n const step = half ? 0.5 : 1;\n const newVal = Math.max(tmpValue - step, 0);\n setTmpValue(newVal);\n !('value' in props) && setValue(newVal);\n onChange?.(newVal);\n }\n }}>\n {Array(count)\n .fill(0)\n .map((_, idx) => (\n <RateItem\n key={idx}\n index={idx + 1}\n half={half}\n character={character}\n prefixCls={prefixCls}\n onMouseEnter={onMouseEnter}\n onClick={onClick}\n value={half ? tmpValue : Math.round(tmpValue)}\n color={color}\n />\n ))}\n </ul>\n );\n }\n);\n\nRate.displayName = 'Rate';\n\nexport default Rate;\n","import Rate from './rate';\n\nexport default Rate;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport {\n CheckCircle,\n CloseCircle,\n InfoCircle,\n LoadingCircle,\n WarningCircle,\n} from '../_utils/components';\nimport { ResultProps } from './types';\n\nconst Result = React.forwardRef<HTMLDivElement, ResultProps>((props: ResultProps, ref) => {\n const {\n status = 'info',\n prefixCls: customisedCls,\n title,\n subtitle,\n icon,\n extra,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('result', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${status}`);\n\n const renderIcon = (): React.ReactNode => {\n if (React.isValidElement(icon)) {\n return icon;\n } else {\n const iconSize = 80;\n switch (status) {\n case 'success':\n return <CheckCircle size={iconSize} />;\n case 'info':\n return <InfoCircle size={iconSize} />;\n case 'warning':\n return <WarningCircle size={iconSize} />;\n case 'error':\n return <CloseCircle size={iconSize} />;\n case 'loading':\n return <LoadingCircle size={iconSize} className={`${prefixCls}__icon`} />;\n }\n }\n\n return null;\n };\n\n return (\n <div {...otherProps} ref={ref} className={cls}>\n <div className={`${prefixCls}__icon-container`}>{renderIcon()}</div>\n {title && <div className={`${prefixCls}__title`}>{title}</div>}\n {subtitle && <div className={`${prefixCls}__subtitle`}>{subtitle}</div>}\n {extra && <div className={`${prefixCls}__extra`}>{extra}</div>}\n {children && <div className={`${prefixCls}__content`}>{children}</div>}\n </div>\n );\n});\n\nResult.displayName = 'Result';\n\nexport default Result;\n","import Result from './result';\n\nexport default Result;\n","import React, { useCallback, useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport { Target, getScroll, getNodeScrollHeight, getNodeHeight } from '../_utils/dom';\nimport { useEventListener } from '../_utils/hooks';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ScrollIndicatorProps } from './types';\n\nconst ScrollIndicator = (props: ScrollIndicatorProps): React.ReactElement => {\n const { prefixCls: customisedCls, fixed = true, target, className, style, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('scroll-indicator', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_fixed`]: fixed,\n });\n const [width, setWidth] = useState('0%');\n\n const handleScroll = useCallback(\n (e: Event) => {\n let container = e.target;\n // If the container is not provided, the target will be the root element. So set it as Window\n // if the container is not determined.\n if (container !== (target && target())) {\n container = window;\n }\n if (container) {\n const el = container as Target;\n const scrollTop = getScroll(el, true);\n const height = getNodeScrollHeight(el) - getNodeHeight(el);\n const scrolled = (scrollTop / height) * 100;\n setWidth(`${scrolled}%`);\n }\n },\n [target]\n );\n\n const element = target ? (target() ? target() : window) : window;\n useEventListener('scroll', handleScroll, element);\n\n const numericWidth = parseFloat(width) || 0;\n return <div {...otherProps} className={cls} style={{ ...style, width }} role=\"progressbar\" aria-valuenow={Math.round(numericWidth)} aria-valuemin={0} aria-valuemax={100} />;\n};\n\nScrollIndicator.displayName = 'ScrollIndicator';\n\nexport default ScrollIndicator;\n","import ScrollIndicator from './scroll-indicator';\n\nexport default ScrollIndicator;\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SegmentedProps, SegmentedOption, SegmentedValue } from './types';\n\nconst normalizeOptions = (\n options: (string | number | SegmentedOption)[]\n): SegmentedOption[] => {\n return options.map((opt) => {\n if (typeof opt === 'string' || typeof opt === 'number') {\n return { label: String(opt), value: opt };\n }\n return opt;\n });\n};\n\nconst Segmented = React.forwardRef<HTMLDivElement, SegmentedProps>((props, ref) => {\n const {\n options,\n defaultValue,\n block = false,\n disabled = false,\n size,\n prefixCls: customisedCls,\n className,\n style,\n onChange,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('segmented', configContext.prefixCls, customisedCls);\n const segSize = size || configContext.componentSize || 'md';\n\n const normalizedOptions = normalizeOptions(options);\n const [selected, setSelected] = useState<SegmentedValue>(\n 'value' in props\n ? (props.value as SegmentedValue)\n : defaultValue ?? normalizedOptions[0]?.value\n );\n\n useEffect(() => {\n if ('value' in props) {\n setSelected(props.value as SegmentedValue);\n }\n }, [props.value]);\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${segSize}`]: segSize,\n [`${prefixCls}_block`]: block,\n [`${prefixCls}_disabled`]: disabled,\n });\n\n const handleClick = (value: SegmentedValue, optDisabled?: boolean) => {\n if (disabled || optDisabled) return;\n if (!('value' in props)) {\n setSelected(value);\n }\n onChange?.(value);\n };\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cls}\n style={style}\n role=\"radiogroup\"\n >\n {normalizedOptions.map((opt) => {\n const isActive = opt.value === selected;\n const itemCls = classNames(`${prefixCls}__item`, {\n [`${prefixCls}__item_active`]: isActive,\n [`${prefixCls}__item_disabled`]: opt.disabled,\n });\n return (\n <label\n key={opt.value}\n className={itemCls}\n onClick={() => handleClick(opt.value, opt.disabled)}\n >\n <input\n type=\"radio\"\n className={`${prefixCls}__input`}\n checked={isActive}\n disabled={disabled || opt.disabled}\n onChange={() => handleClick(opt.value, opt.disabled)}\n value={opt.value}\n />\n {opt.icon && <span className={`${prefixCls}__icon`}>{opt.icon}</span>}\n <span className={`${prefixCls}__label`}>{opt.label}</span>\n </label>\n );\n })}\n </div>\n );\n});\n\nSegmented.displayName = 'Segmented';\nexport default Segmented;\n","import Segmented from './segmented';\n\nexport default Segmented;\n","import React from 'react';\n\ntype Props = {\n value?: string | string[];\n mode?: 'multiple' | 'tags';\n searchValue?: string;\n onSelect: (value: string) => void;\n prefixCls?: string;\n};\n\nexport const SelectContext = React.createContext<Props>({\n value: '',\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onSelect: () => {},\n});\n","import React, { useContext, useEffect, useId, useRef, useState, useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { useClickOutside } from '../_utils/hooks';\nimport { useCombobox } from '../_utils/useCombobox';\nimport { ArrowDown, Close, CloseCircle, LoadingCircle, Check } from '../_utils/components';\nimport { SelectContext } from './select-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SelectOptionItem, SelectOptionsProps, SelectProps, SelectValue } from './types';\nimport Popup from '../popup';\n\nconst Select = (props: SelectProps): React.ReactElement => {\n const {\n defaultOpen = false,\n disabled = false,\n defaultValue,\n prefixCls: customisedCls,\n value,\n mode,\n showSearch = false,\n filterOption = true,\n onSearch,\n allowClear = false,\n loading = false,\n size,\n maxTagCount,\n notFoundContent,\n options: optionsProp,\n onChange,\n onSelect,\n onDropdownVisibleChange,\n optionRender,\n labelRender,\n placeholder,\n className,\n children,\n dropdownStyle,\n ...otherProps\n } = props;\n\n const isMultiple = mode === 'multiple' || mode === 'tags';\n const defaultVal = defaultValue ?? (isMultiple ? [] : '');\n\n const [selectVal, setSelectVal] = useState<SelectValue>(\n 'value' in props ? (value as SelectValue) : defaultVal\n );\n const [searchValue, setSearchValue] = useState('');\n\n const ref = useRef<HTMLDivElement | null>(null);\n const searchInputRef = useRef<HTMLInputElement | null>(null);\n const listboxId = useId();\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('select', configContext.prefixCls, customisedCls);\n const selectSize = size || configContext.componentSize || 'md';\n\n const hasSomeValue = isMultiple\n ? Array.isArray(selectVal) && selectVal.length > 0\n : selectVal !== '' && selectVal !== undefined;\n\n // Build flat option list from children or options prop\n const flatOptions = useMemo((): SelectOptionItem[] => {\n if (optionsProp) return optionsProp;\n const result: SelectOptionItem[] = [];\n const extractFromChildren = (nodes: React.ReactNode): void => {\n React.Children.forEach(nodes, (child) => {\n const el = child as React.FunctionComponentElement<SelectOptionsProps>;\n if (!el?.type) return;\n if (el.type.displayName === 'SelectOption') {\n result.push({\n value: el.props.value,\n label: el.props.label ?? el.props.children,\n disabled: !!el.props.disabled,\n });\n } else if (el.type.displayName === 'SelectOptGroup') {\n extractFromChildren(el.props.children);\n }\n });\n };\n extractFromChildren(children);\n return result;\n }, [optionsProp, children]);\n\n // Handle option select\n const handleSelect = useCallback(\n (optValue: string): void => {\n if (isMultiple) {\n const arr = Array.isArray(selectVal) ? selectVal : [];\n let newVal: string[];\n if (arr.includes(optValue)) {\n newVal = arr.filter((v) => v !== optValue);\n } else {\n newVal = [...arr, optValue];\n }\n if (!('value' in props)) {\n setSelectVal(newVal);\n }\n onChange?.(newVal, flatOptions.filter((o) => newVal.includes(o.value)));\n onSelect?.(newVal);\n setSearchValue('');\n } else {\n if (!('value' in props)) {\n setSelectVal(optValue);\n }\n onChange?.(optValue, flatOptions.find((o) => o.value === optValue));\n onSelect?.(optValue);\n combo.closeDropdown();\n setSearchValue('');\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isMultiple, selectVal, flatOptions, onChange, onSelect, props]\n );\n\n const handleComboSelect = useCallback(\n (item: SelectOptionItem) => {\n if (!item.disabled) handleSelect(item.value);\n },\n [handleSelect]\n );\n\n const combo = useCombobox<SelectOptionItem>({\n items: flatOptions,\n searchValue,\n filterOption,\n isOpen: 'open' in props ? props.open : undefined,\n defaultOpen,\n disabled,\n defaultActiveFirstOption: false,\n onOpenChange: onDropdownVisibleChange,\n onSelect: handleComboSelect,\n });\n\n const cls = classNames(prefixCls, className, `${prefixCls}_${selectSize}`, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_open`]: combo.isOpen,\n [`${prefixCls}_multiple`]: isMultiple,\n [`${prefixCls}_showSearch`]: showSearch,\n [`${prefixCls}_has-value`]: allowClear && hasSomeValue && !disabled,\n });\n\n const arrowCls = classNames(`${prefixCls}__arrow`, {\n [`${prefixCls}__arrow_reverse`]: combo.isOpen,\n });\n\n useClickOutside(ref.current as HTMLDivElement, () => {\n if (!('open' in props)) {\n combo.closeDropdown();\n }\n setSearchValue('');\n });\n\n // Get display label for a value\n const getLabelForValue = useCallback(\n (val: string): React.ReactNode => {\n const opt = flatOptions.find((o) => o.value === val);\n const label = opt?.label ?? val;\n if (labelRender && opt) {\n return labelRender({ label, value: val });\n }\n return label;\n },\n [flatOptions, labelRender]\n );\n\n // Remove tag\n const handleRemoveTag = (val: string, e: React.MouseEvent): void => {\n e.stopPropagation();\n if (disabled) return;\n const arr = Array.isArray(selectVal) ? selectVal : [];\n const newVal = arr.filter((v) => v !== val);\n if (!('value' in props)) {\n setSelectVal(newVal);\n }\n onChange?.(newVal, flatOptions.filter((o) => newVal.includes(o.value)));\n onSelect?.(newVal);\n };\n\n // Clear all\n const handleClear = (e: React.MouseEvent): void => {\n e.stopPropagation();\n if (disabled) return;\n const newVal = isMultiple ? [] : '';\n if (!('value' in props)) {\n setSelectVal(newVal);\n }\n onChange?.(newVal);\n onSelect?.(newVal);\n setSearchValue('');\n };\n\n // Search input change\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const val = e.target.value;\n setSearchValue(val);\n onSearch?.(val);\n if (!combo.isOpen) {\n combo.openDropdown();\n }\n };\n\n // Selector click\n const handleSelectorClick = (): void => {\n if (disabled) return;\n if (combo.isOpen && !showSearch) {\n combo.closeDropdown();\n } else {\n combo.openDropdown();\n setTimeout(() => searchInputRef.current?.focus(), 0);\n }\n };\n\n // Keyboard — wrap hook's handler with Select-specific keys\n const handleKeyDown = (e: React.KeyboardEvent): void => {\n if (disabled) return;\n\n if (e.key === 'Backspace' && isMultiple && !searchValue) {\n const arr = Array.isArray(selectVal) ? selectVal : [];\n if (arr.length > 0) {\n const newVal = arr.slice(0, -1);\n if (!('value' in props)) setSelectVal(newVal);\n onChange?.(newVal, flatOptions.filter((o) => newVal.includes(o.value)));\n onSelect?.(newVal);\n }\n return;\n }\n\n if (e.key === ' ') {\n if (!combo.isOpen) {\n e.preventDefault();\n combo.openDropdown();\n } else if (combo.focusedIndex >= 0 && combo.focusedIndex < combo.filteredItems.length) {\n e.preventDefault();\n const opt = combo.filteredItems[combo.focusedIndex];\n if (!opt.disabled) handleSelect(opt.value);\n }\n return;\n }\n\n combo.handleKeyDown(e);\n };\n\n // Controlled value\n const hasValueProp = 'value' in props;\n useEffect(() => {\n if (hasValueProp) setSelectVal(value as SelectValue);\n }, [hasValueProp, value]);\n\n // Reset focused index when search changes\n useEffect(() => {\n combo.setFocusedIndex(-1);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchValue]);\n\n const hasValue = hasSomeValue;\n\n // Context value\n const contextValue = useMemo(\n () => ({\n value: selectVal,\n mode,\n searchValue,\n onSelect: handleSelect,\n prefixCls,\n }),\n [selectVal, mode, searchValue, handleSelect, prefixCls]\n );\n\n // Filter children for dropdown\n const filterChildren = (nodes: React.ReactNode): React.ReactNode => {\n return React.Children.map(nodes, (child) => {\n const el = child as React.FunctionComponentElement<SelectOptionsProps>;\n if (!el?.type) return null;\n if (el.type.displayName === 'SelectOption') {\n const opt: SelectOptionItem = {\n value: el.props.value,\n label: el.props.label ?? el.props.children,\n disabled: !!el.props.disabled,\n };\n if (!combo.matchesFilter(opt)) return null;\n return React.cloneElement(el, el.props);\n }\n if (el.type.displayName === 'SelectOptGroup') {\n const filteredGroupChildren = filterChildren(el.props.children);\n const hasVisibleChildren = React.Children.toArray(filteredGroupChildren).some(Boolean);\n if (!hasVisibleChildren) return null;\n return React.cloneElement(el, { ...el.props, children: filteredGroupChildren });\n }\n return null;\n });\n };\n\n // Render dropdown\n const renderDropdownContent = (): React.ReactNode => {\n if (loading) {\n return (\n <div className={`${prefixCls}__loading`}>\n <LoadingCircle size={20} />\n </div>\n );\n }\n\n let content: React.ReactNode;\n\n if (optionsProp) {\n const filtered = combo.filteredItems;\n if (filtered.length === 0) {\n content = null;\n } else {\n content = filtered.map((opt, index) => {\n const isSelected = isMultiple\n ? Array.isArray(selectVal) && selectVal.includes(opt.value)\n : selectVal === opt.value;\n const optCls = classNames(`${prefixCls}-option`, {\n [`${prefixCls}-option_selected`]: isSelected,\n [`${prefixCls}-option_active`]: index === combo.focusedIndex,\n [`${prefixCls}-option_disabled`]: opt.disabled,\n });\n\n const label = opt.label ?? opt.value;\n const renderedContent = optionRender ? optionRender(opt, { index }) : label;\n\n return (\n <li\n key={opt.value}\n role=\"option\"\n className={optCls}\n aria-selected={isSelected}\n aria-disabled={opt.disabled}\n onClick={() => !opt.disabled && handleSelect(opt.value)}\n onMouseEnter={() => combo.setFocusedIndex(index)}>\n <span className={`${prefixCls}-option__content`}>{renderedContent}</span>\n {isMultiple && isSelected && (\n <span className={`${prefixCls}-option__check`}>\n <Check size={14} />\n </span>\n )}\n </li>\n );\n });\n }\n } else {\n content = filterChildren(children);\n }\n\n const contentArray = React.Children.toArray(content);\n if (!contentArray || contentArray.length === 0) {\n return (\n <div className={`${prefixCls}__empty`}>\n {notFoundContent ?? 'No data'}\n </div>\n );\n }\n\n return content;\n };\n\n const renderOverlay = (): React.ReactElement => {\n const selectorWidth = ref.current?.offsetWidth;\n return (\n <SelectContext.Provider value={contextValue}>\n <ul\n className={`${prefixCls}__dropdown`}\n style={{ minWidth: selectorWidth || undefined, ...dropdownStyle }}\n role=\"listbox\"\n id={listboxId}>\n {renderDropdownContent()}\n </ul>\n </SelectContext.Provider>\n );\n };\n\n // Render selector content\n const renderSelectorContent = (): React.ReactNode => {\n if (isMultiple) {\n const arr = Array.isArray(selectVal) ? selectVal : [];\n const displayTags =\n maxTagCount !== undefined && arr.length > maxTagCount\n ? arr.slice(0, maxTagCount)\n : arr;\n const remaining =\n maxTagCount !== undefined && arr.length > maxTagCount\n ? arr.length - maxTagCount\n : 0;\n\n return (\n <>\n {displayTags.map((val) => (\n <span key={val} className={`${prefixCls}__tag`}>\n <span className={`${prefixCls}__tag-content`}>{getLabelForValue(val)}</span>\n <span\n className={`${prefixCls}__tag-close`}\n onClick={(e) => handleRemoveTag(val, e)}\n aria-label=\"Remove\">\n <Close size={10} />\n </span>\n </span>\n ))}\n {remaining > 0 && (\n <span className={`${prefixCls}__tag ${prefixCls}__tag_max`}>\n +{remaining}...\n </span>\n )}\n {showSearch && (\n <input\n ref={searchInputRef}\n className={`${prefixCls}__search`}\n value={searchValue}\n onChange={handleSearchChange}\n placeholder={arr.length === 0 ? placeholder : undefined}\n autoComplete=\"off\"\n disabled={disabled}\n />\n )}\n {arr.length === 0 && !searchValue && !showSearch && (\n <span className={`${prefixCls}__placeholder`}>{placeholder}</span>\n )}\n </>\n );\n }\n\n // Single mode\n if (showSearch && combo.isOpen) {\n return (\n <input\n ref={searchInputRef}\n className={`${prefixCls}__search`}\n value={searchValue}\n onChange={handleSearchChange}\n placeholder={hasValue ? undefined : placeholder}\n autoComplete=\"off\"\n disabled={disabled}\n />\n );\n }\n\n if (hasValue) {\n return (\n <span className={`${prefixCls}__selection-text`}>\n {getLabelForValue(Array.isArray(selectVal) ? selectVal[0] : (selectVal as string))}\n </span>\n );\n }\n\n return <span className={`${prefixCls}__placeholder`}>{placeholder}</span>;\n };\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cls}\n role=\"combobox\"\n aria-expanded={combo.isOpen}\n aria-haspopup=\"listbox\"\n aria-owns={combo.isOpen ? listboxId : undefined}\n onKeyDown={handleKeyDown}\n tabIndex={disabled ? undefined : 0}>\n <Popup\n trigger=\"manual\"\n placement=\"bottom\"\n arrow={false}\n visible={combo.isOpen}\n content={renderOverlay()}>\n <div className={`${prefixCls}__selector`} onClick={handleSelectorClick}>\n <div className={`${prefixCls}__selection`}>{renderSelectorContent()}</div>\n <div className={`${prefixCls}__suffix`}>\n <span className={arrowCls}>\n <ArrowDown size={10} />\n </span>\n {allowClear && hasValue && !disabled && (\n <button type=\"button\" className={`${prefixCls}__clear`} onClick={handleClear} aria-label=\"Clear\">\n <CloseCircle size={14} color=\"currentColor\" />\n </button>\n )}\n </div>\n </div>\n </Popup>\n </div>\n );\n};\n\nSelect.displayName = 'Select';\n\nexport default Select;\n","import React, { useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport { Check } from '../_utils/components';\nimport { SelectContext } from './select-context';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SelectOptionsProps } from './types';\n\nconst SelectOption = (props: SelectOptionsProps): React.ReactElement => {\n const {\n disabled = false,\n prefixCls: customisedCls,\n value,\n label,\n className,\n children,\n ...otherProps\n } = props;\n const context = useContext(SelectContext);\n const isMultiple = context.mode === 'multiple' || context.mode === 'tags';\n const isSelected = isMultiple\n ? Array.isArray(context.value) && context.value.includes(value)\n : context.value === value;\n const [active, setActive] = useState(false);\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('select-option', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_selected`]: isSelected,\n [`${prefixCls}_active`]: active,\n [`${prefixCls}_disabled`]: disabled,\n });\n\n const onClick = (): void => {\n !disabled && context.onSelect(value);\n };\n\n const displayContent = label ?? children;\n\n return (\n <li\n {...otherProps}\n key={value}\n role=\"option\"\n className={cls}\n onClick={onClick}\n onMouseEnter={() => setActive(true)}\n onMouseLeave={() => setActive(false)}\n aria-selected={isSelected}\n aria-disabled={disabled}>\n <span className={`${prefixCls}__content`}>{displayContent}</span>\n {isMultiple && isSelected && (\n <span className={`${prefixCls}__check`}>\n <Check size={14} />\n </span>\n )}\n </li>\n );\n};\n\nSelectOption.displayName = 'SelectOption';\n\nexport default SelectOption;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SelectOptGroupProps, SelectOptionsProps } from './types';\n\nconst SelectOptGroup = (props: SelectOptGroupProps): React.ReactElement => {\n const { prefixCls: customisedCls, label, className, children, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('select-group', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <li {...otherProps} key={label} className={cls}>\n <div className={`${prefixCls}__title`}>{label}</div>\n <ul className={`${prefixCls}__list`}>\n {React.Children.map(children, (child) => {\n const childElement = child as React.FunctionComponentElement<SelectOptionsProps>;\n if (childElement.type.displayName === 'SelectOption') {\n const childProps = {\n ...childElement.props,\n };\n return React.cloneElement(childElement, childProps);\n } else {\n console.warn(\n 'Select has a child that is not neither SelectOption nor SelectOptGroup component.'\n );\n return null;\n }\n })}\n </ul>\n </li>\n );\n};\n\nSelectOptGroup.displayName = 'SelectOptGroup';\n\nexport default SelectOptGroup;\n","import Select from './select';\nimport SelectOption from './option';\nimport SelectOptGroup from './opt-group';\n\ntype ISelect = typeof Select & {\n Option: typeof SelectOption;\n OptGroup: typeof SelectOptGroup;\n};\n\nconst DefaultSelect = Select as ISelect;\nDefaultSelect.Option = SelectOption;\nDefaultSelect.OptGroup = SelectOptGroup;\n\nexport default DefaultSelect;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SkeletonProps } from './types';\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n (props: SkeletonProps, ref): JSX.Element => {\n const {\n active = false,\n rounded = false,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_active`]: configContext.shimmer || active,\n [`${prefixCls}_rounded`]: rounded,\n });\n\n return (\n <div ref={ref} {...otherProps} className={cls} role=\"status\" aria-busy=\"true\">\n {children}\n </div>\n );\n }\n);\n\nSkeleton.displayName = 'Skeleton';\n\nexport default Skeleton;\n","import Skeleton from './skeleton';\n\nexport default Skeleton;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport Popup from '../popup';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TooltipProps } from './types';\n\nconst Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>((props, ref) => {\n const {\n trigger = 'hover',\n prefixCls: customisedCls,\n title,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tooltip', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n const renderContent = (): React.ReactElement => (\n <div role=\"tooltip\" className={`${prefixCls}__inner`}>\n {title}\n </div>\n );\n\n return (\n <Popup {...otherProps} className={cls} theme=\"dark\" trigger={trigger} content={renderContent()}>\n {children}\n </Popup>\n );\n});\n\nTooltip.displayName = 'Tooltip';\n\nexport default Tooltip;\n","import Tooltip from './tooltip';\n\nexport default Tooltip;\n","import React, { useContext, useRef, useState, ReactNode, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport Tooltip from '../tooltip';\nimport { SliderProps } from './types';\n\nconst Slider = React.forwardRef<HTMLDivElement, SliderProps>(\n (props: SliderProps, ref): JSX.Element => {\n const {\n defaultValue = 0,\n min = 0,\n max = 100,\n direction = 'horizontal',\n dots = false,\n step = 1,\n disabled = false,\n track = true,\n tooltipPlacement = 'top',\n tooltipVisible,\n tipFormatter,\n marks,\n onChange,\n onClick,\n onAfterChange,\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('slider', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${direction}`, {\n [`${prefixCls}-with-marks`]: marks,\n [`${prefixCls}_disabled`]: disabled,\n });\n const [sliderValues, setSliderValues] = useState<number[]>(\n ('value' in props\n ? Array.isArray(props.value)\n ? props.value\n : [props.value]\n : Array.isArray(defaultValue)\n ? defaultValue\n : [defaultValue]) as number[]\n );\n const [isHovering, setHovering] = useState(false);\n const railRef = useRef<HTMLDivElement | null>(null);\n const trackRef = useRef<HTMLDivElement | null>(null);\n const thumbIdx = useRef(0);\n const isDragging = useRef(false);\n const mouseStartPos = useRef(0);\n const trackStartPos = useRef(0);\n const currVal = useRef(0);\n const isVertical = direction === 'vertical';\n const railNode = railRef.current;\n const trackNode = trackRef.current;\n\n const getValueToPercent = (value: number): number => {\n return ((value - min) * 100) / (max - min);\n };\n\n const calculateTrackStyle = (): React.CSSProperties => {\n const trackStyle: React.CSSProperties = { left: '0%', right: '100%' };\n if (sliderValues.length === 1) {\n trackStyle.right = `${100 - getValueToPercent(sliderValues[0])}%`;\n } else {\n const leftValue = sliderValues[0] > sliderValues[1] ? sliderValues[1] : sliderValues[0];\n const rightValue = sliderValues[0] > sliderValues[1] ? sliderValues[0] : sliderValues[1];\n trackStyle.left = `${getValueToPercent(leftValue)}%`;\n trackStyle.right = `${100 - getValueToPercent(rightValue)}%`;\n }\n return trackStyle;\n };\n\n const getRangeValue = (val: number): number[] => {\n if (sliderValues.length === 1) {\n return [val];\n }\n\n const values = sliderValues;\n const val1 = values[0];\n const val2 = values[1];\n if ((val1 < val2 && val1 > val) || (val1 > val2 && val1 < val)) {\n values[0] = val as number;\n }\n if ((val1 < val2 && val2 < val) || (val1 > val2 && val2 > val)) {\n values[1] = val as number;\n }\n\n if (val1 > val && val2 < val) {\n const half = val2 + (val1 - val2) / 2;\n if (half >= val) {\n values[1] = val as number;\n }\n if (half < val) {\n values[0] = val as number;\n }\n }\n if (val2 > val && val1 < val) {\n const half = val1 + (val2 - val1) / 2;\n if (half >= val) {\n values[0] = val as number;\n }\n if (half < val) {\n values[1] = val as number;\n }\n }\n return values;\n };\n\n const handleOnChange = (value: number[]): void => {\n !('value' in props) && setSliderValues([...value]);\n onChange &&\n onChange(sliderValues.length === 1 ? sliderValues[0] : [sliderValues[0], sliderValues[1]]);\n };\n\n const getWidthToValue = (width: number): number => {\n const numOfSteps = (max - min) / step;\n let percent = 0;\n if (railNode) {\n percent = (width / railNode[isVertical ? 'clientHeight' : 'clientWidth']) * 100;\n }\n\n if (percent <= 0) {\n percent = 0;\n }\n if (percent >= 100) {\n percent = 100;\n }\n\n // add 0.5 for step movement\n const num = numOfSteps * (percent / 100) + 0.5;\n const val = Math.floor(num) * step + min;\n return isVertical ? 100 - val : val;\n };\n\n const sliderOnClick = (e: React.MouseEvent<HTMLDivElement>): void => {\n if (isDragging.current || disabled) {\n return;\n }\n if (railNode) {\n const markOffset = railNode.getBoundingClientRect();\n const value = getWidthToValue(\n e[isVertical ? 'clientY' : 'clientX'] - markOffset[isVertical ? 'y' : 'x']\n );\n handleOnChange(getRangeValue(value));\n }\n onClick && onClick(e);\n };\n\n const handleThumbOnDragging = (e: MouseEvent): void => {\n if (!isDragging.current) {\n return;\n }\n const sliderVal = getWidthToValue(\n e[isVertical ? 'clientY' : 'clientX'] - mouseStartPos.current + trackStartPos.current\n );\n const val = sliderValues;\n if (sliderVal !== currVal.current) {\n val[thumbIdx.current] = sliderVal;\n\n handleOnChange(val);\n currVal.current = sliderVal;\n }\n };\n\n const handleThumbOnDragEnd = (): void => {\n isDragging.current = false;\n window.removeEventListener('mousemove', handleThumbOnDragging);\n window.removeEventListener('mouseup', handleThumbOnDragEnd);\n onAfterChange &&\n onAfterChange(\n sliderValues.length === 1 ? sliderValues[0] : [sliderValues[0], sliderValues[1]]\n );\n };\n\n /**\n * Get track width info when click down the thumb button\n */\n const handleThumbOnMouseDown = (idx: number, e: React.MouseEvent<HTMLDivElement>): void => {\n if (disabled) {\n return;\n }\n\n thumbIdx.current = idx;\n isDragging.current = true;\n mouseStartPos.current = e[isVertical ? 'clientY' : 'clientX'];\n if (trackNode) {\n trackStartPos.current = isVertical ? trackNode.offsetTop : trackNode.clientWidth;\n\n // handle when it is a dual slider\n if (sliderValues.length > 1) {\n const trackOffset = trackNode[isVertical ? 'offsetTop' : 'offsetLeft'];\n trackStartPos.current =\n (idx === 1 && sliderValues[1] > sliderValues[0]) ||\n (idx !== 1 && sliderValues[0] > sliderValues[1])\n ? isVertical\n ? trackOffset\n : trackStartPos.current + trackOffset\n : isVertical\n ? trackNode.clientHeight + trackOffset\n : trackOffset;\n }\n }\n\n window.addEventListener('mousemove', handleThumbOnDragging, { capture: true });\n window.addEventListener('mouseup', handleThumbOnDragEnd, { capture: true });\n };\n\n /**\n * Get dot values\n */\n const getSteps = (): number[] => {\n const numOfSteps = (max - min) / step;\n const stepWidth = (100 * step) / (max - min);\n const res = [0];\n for (let i = 1; i < numOfSteps; i += 1) {\n res.push(i * stepWidth);\n }\n res.push(100);\n return res;\n };\n\n /**\n * Determine dot's border style\n * @param dotVal: dot value\n */\n const isDotActive = (dotVal: number): boolean => {\n if (sliderValues.length === 1) {\n return dotVal < sliderValues[0];\n } else {\n const [left, right] =\n sliderValues[0] < sliderValues[1]\n ? [sliderValues[0], sliderValues[1]]\n : [sliderValues[1], sliderValues[0]];\n return dotVal < right && dotVal > left;\n }\n };\n\n const handleThumbOnMouseEnter = (idx: number): void => {\n thumbIdx.current = idx;\n setHovering(true);\n };\n\n const handleThumbOnMouseLeave = (): void => {\n setHovering(false);\n };\n\n const renderMark = (mark: string): ReactNode => {\n if (marks && marks[mark] && (marks[mark] as any).label) {\n const { label, style } = marks[mark] as any;\n return <div style={style}>{label}</div>;\n } else if (marks && marks[mark]) {\n return marks[mark] as ReactNode;\n } else {\n return mark;\n }\n };\n\n useEffect(() => {\n 'value' in props && setSliderValues(sliderValues);\n }, [props, sliderValues]);\n\n const trackStyle = calculateTrackStyle();\n return (\n <div ref={ref} {...otherProps} className={cls} onClick={sliderOnClick}>\n <div ref={railRef} className={`${prefixCls}__rail`} />\n <div\n ref={trackRef}\n className={classNames(`${prefixCls}__track`, {\n [`${prefixCls}__track_invisible`]: !track,\n })}\n style={{\n [isVertical ? 'bottom' : 'left']: trackStyle.left,\n [isVertical ? 'top' : 'right']: trackStyle.right,\n }}\n />\n {sliderValues.map((value, idx) => {\n const percent = getValueToPercent(value);\n return (\n <div\n key={idx}\n tabIndex={0}\n role=\"slider\"\n aria-valuemax={max}\n aria-valuemin={min}\n aria-valuenow={value}\n aria-disabled={disabled}\n className={classNames(`${prefixCls}__thumb-container`, {\n [`${prefixCls}__thumb-container_hovering`]: idx === thumbIdx.current && isHovering,\n [`${prefixCls}__thumb-container_dragging`]:\n idx === thumbIdx.current && isDragging.current,\n })}\n style={{\n zIndex: idx === thumbIdx.current && (isDragging.current || isHovering) ? 2 : 1,\n transform: isVertical ? 'translate(-50%, 50%)' : 'translate(-50%, -50%)',\n [isVertical ? 'bottom' : 'left']: `${percent}%`,\n }}\n onMouseEnter={(): void => handleThumbOnMouseEnter(idx)}\n onMouseLeave={handleThumbOnMouseLeave}\n onMouseDown={(e): void => handleThumbOnMouseDown(idx, e)}>\n <Tooltip\n trigger=\"manual\"\n visible={\n 'tooltipVisible' in props\n ? tooltipVisible\n : idx === thumbIdx.current && (isDragging.current || isHovering)\n }\n usePortal={false}\n placement={tooltipPlacement}\n title={tipFormatter ? tipFormatter(value) : value}>\n <div className={`${prefixCls}__thumb`} />\n </Tooltip>\n </div>\n );\n })}\n {dots && (\n <div className={`${prefixCls}__dots`}>\n {getSteps().map((val, idx) => {\n const stepVal = idx * step + min;\n return (\n <div\n key={idx}\n style={{\n [isVertical ? 'bottom' : 'left']: `${val}%`,\n }}\n className={classNames(`${prefixCls}__dot`, {\n [`${prefixCls}__dot_active`]: isDotActive(stepVal),\n })}\n />\n );\n })}\n </div>\n )}\n {marks && (\n <div className={`${prefixCls}__marks`}>\n {Object.keys(marks).map((mark: string, idx) => {\n const percent = getValueToPercent(parseFloat(mark));\n return (\n <div\n key={idx}\n style={{\n [isVertical ? 'bottom' : 'left']: `${percent}%`,\n }}\n className={`${prefixCls}__mark`}>\n {renderMark(mark)}\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n }\n);\n\nSlider.displayName = 'Slider';\n\nexport default Slider;\n","import Slider from './slider';\n\nexport default Slider;\n","import React, { useContext, MouseEventHandler } from 'react';\nimport classNames from 'classnames';\nimport { BaseProps, DirectionType } from '../_utils/props';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\n\nexport interface ResizerProps\n extends BaseProps,\n React.PropsWithoutRef<JSX.IntrinsicElements['div']> {\n size: number;\n mode: DirectionType;\n onResizerMouseDown: MouseEventHandler<HTMLDivElement>;\n}\n\nconst Resizer = (props: ResizerProps): JSX.Element => {\n const {\n size,\n onResizerMouseDown,\n prefixCls: customisedCls,\n mode,\n className,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('split-bar', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${mode}`]: mode,\n });\n\n const style: React.CSSProperties = mode === 'vertical' ? { width: size } : { height: size };\n\n const onMouseDown = (e: React.MouseEvent<HTMLDivElement>) => {\n props.onMouseDown && props.onMouseDown(e);\n onResizerMouseDown(e);\n };\n\n return (\n <div\n {...otherProps}\n role=\"separator\"\n tabIndex={0}\n aria-orientation={mode === 'vertical' ? 'vertical' : 'horizontal'}\n className={cls}\n style={style}\n onMouseDown={(e): void => onMouseDown(e)}\n onKeyDown={(e) => {\n const step = 10;\n if (mode === 'vertical' && (e.key === 'ArrowLeft' || e.key === 'ArrowRight')) {\n e.preventDefault();\n const delta = e.key === 'ArrowRight' ? step : -step;\n const synthetic = { clientX: (e.target as HTMLElement).getBoundingClientRect().left + delta, clientY: 0 } as MouseEvent;\n onResizerMouseDown(e as unknown as React.MouseEvent<HTMLDivElement>);\n window.dispatchEvent(new MouseEvent('mousemove', { clientX: synthetic.clientX }));\n window.dispatchEvent(new MouseEvent('mouseup'));\n }\n if (mode === 'horizontal' && (e.key === 'ArrowUp' || e.key === 'ArrowDown')) {\n e.preventDefault();\n const delta = e.key === 'ArrowDown' ? step : -step;\n const synthetic = { clientY: (e.target as HTMLElement).getBoundingClientRect().top + delta, clientX: 0 } as MouseEvent;\n onResizerMouseDown(e as unknown as React.MouseEvent<HTMLDivElement>);\n window.dispatchEvent(new MouseEvent('mousemove', { clientY: synthetic.clientY }));\n window.dispatchEvent(new MouseEvent('mouseup'));\n }\n }}>\n <div className={`${prefixCls}__icon`} />\n </div>\n );\n};\n\nResizer.displayName = 'Resizer';\n\nexport default Resizer;\n","import React from 'react';\nimport { DirectionType } from '../_utils/props';\n\ntype Props = {\n mode: DirectionType;\n};\n\nexport const SplitContext = React.createContext<Props>({ mode: 'vertical' });\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { BaseProps } from '../_utils/props';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SplitContext } from './split-context';\n\nexport interface SplitPaneProps\n extends BaseProps,\n React.PropsWithRef<JSX.IntrinsicElements['div']> {\n size?: number;\n}\n\nconst SplitPane = React.forwardRef<HTMLDivElement, SplitPaneProps>(\n (props: SplitPaneProps, ref): JSX.Element => {\n const { size, className, style, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('split-pane', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const { mode } = useContext(SplitContext);\n\n const paneStyle: React.CSSProperties = {\n ...style,\n };\n if (mode === 'vertical') {\n paneStyle.width = size;\n } else {\n paneStyle.height = size;\n }\n\n return (\n <div ref={ref} {...otherProps} className={cls} style={paneStyle}>\n {children}\n </div>\n );\n }\n);\n\nSplitPane.displayName = 'SplitPane';\n\nexport default SplitPane;\n","import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport Resizer from './resizer';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport Pane from './split-pane';\nimport warning from '../_utils/warning';\nimport { SplitContext } from './split-context';\nimport { SplitProps } from './types';\n\nconst Split = (props: SplitProps): JSX.Element => {\n const {\n mode = 'vertical',\n disabled = false,\n min = 50,\n max = 50,\n resizerSize = 6,\n defaultSize,\n step,\n onChange,\n onDragStarted,\n onDragFinished,\n prefixCls: customisedCls,\n style: defaultStyle,\n resizerProps,\n className,\n children,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('split', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${mode}`]: mode,\n [`${prefixCls}_disabled`]: disabled,\n });\n const [pane1Size, setPane1Size] = useState<number | undefined>(undefined);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const paneRef = useRef<HTMLDivElement | null>(null);\n const isActiveMove = useRef(false);\n const lastPosition = useRef(0);\n const wrapper = wrapperRef.current;\n\n const getSizeNumber = useCallback(\n (size: number | string): number => {\n if (typeof size === 'string') {\n if (wrapper) {\n const { width, height } = wrapper.getBoundingClientRect();\n return ((mode === 'vertical' ? width : height) * parseFloat(size)) / 100;\n }\n } else {\n return size;\n }\n return 0;\n },\n [mode, wrapper]\n );\n const minSize = getSizeNumber(min);\n let maxSize = getSizeNumber(max);\n if (wrapper) {\n const { width, height } = wrapper.getBoundingClientRect();\n maxSize = (mode === 'vertical' ? width : height) - maxSize - resizerSize;\n }\n\n const onResizerMouseDown = (e: React.MouseEvent<HTMLElement>): void => {\n isActiveMove.current = true;\n lastPosition.current = e[mode === 'vertical' ? 'clientX' : 'clientY'];\n onDragStarted && onDragStarted();\n };\n\n const onMouseMove = useCallback(\n (e: MouseEvent): void => {\n if (!disabled && isActiveMove.current) {\n const pane = paneRef.current;\n if (pane) {\n if (pane.getBoundingClientRect) {\n const width = pane.getBoundingClientRect().width;\n const height = pane.getBoundingClientRect().height;\n const current = e[mode === 'vertical' ? 'clientX' : 'clientY'];\n const size = mode === 'vertical' ? width : height;\n let offset = lastPosition.current - current;\n if (step) {\n if (Math.abs(offset) < step) {\n return;\n }\n offset = Math.round((offset / step) * step);\n }\n\n let newSize = size - offset;\n const newPosition = lastPosition.current - offset;\n\n if (newSize < minSize) {\n newSize = minSize;\n } else if (newSize > maxSize) {\n newSize = maxSize;\n } else {\n lastPosition.current = newPosition;\n }\n\n !('size' in props) && setPane1Size(newSize);\n onChange && onChange(newSize);\n }\n }\n }\n },\n [props, disabled, maxSize, minSize, mode, onChange, step]\n );\n\n const onMouseUp = useCallback((): void => {\n isActiveMove.current = false;\n onDragFinished && onDragFinished();\n }, [onDragFinished]);\n\n let style: React.CSSProperties;\n if (mode === 'vertical') {\n style = {\n ...defaultStyle,\n };\n } else {\n style = {\n ...defaultStyle,\n minHeight: '100%',\n width: '100%',\n };\n }\n\n useEffect(() => {\n window.addEventListener('mousemove', onMouseMove);\n window.addEventListener('mouseup', onMouseUp);\n\n return (): void => {\n window.removeEventListener('mousemove', onMouseMove);\n window.removeEventListener('mouseup', onMouseUp);\n };\n }, [onMouseMove, onMouseUp]);\n\n useEffect(() => {\n const initialSize = getSizeNumber(props.size || defaultSize || minSize);\n setPane1Size(initialSize);\n }, [getSizeNumber, props.size, defaultSize, minSize]);\n\n useEffect(() => {\n if ('size' in props) {\n const size = getSizeNumber(props.size as number | string);\n setPane1Size(size);\n }\n }, [props, getSizeNumber]);\n\n warning(React.Children.count(children) > 2, 'There are more than 2 children inside Split.');\n const childrenList = React.Children.toArray(children).filter((child) => child);\n\n return (\n <SplitContext.Provider value={{ mode }}>\n <div ref={wrapperRef} {...otherProps} className={cls} style={style}>\n <Pane ref={paneRef} size={pane1Size} style={{ flex: '0 0 auto' }}>\n {childrenList[0]}\n </Pane>\n <Resizer\n {...resizerProps}\n size={resizerSize}\n mode={mode}\n onResizerMouseDown={onResizerMouseDown}\n />\n <Pane style={{ flex: '1 1 0%' }}>{childrenList[1]}</Pane>\n </div>\n </SplitContext.Provider>\n );\n};\n\nSplit.displayName = 'Split';\n\nexport default Split;\n","import Split from './split';\n\nexport default Split;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ArrowDown } from '../_utils/components';\nimport { SplitButtonProps } from './types';\nimport ButtonGroup from '../button/button-group';\nimport Button from '../button/button';\nimport Dropdown from '../dropdown';\n\nconst SplitButton = (props: SplitButtonProps): React.ReactElement => {\n const {\n size = 'md',\n btnType = 'default',\n disabled = false,\n loading = false,\n dropdownPlacement = 'bottom-end',\n dropdownTrigger = 'hover',\n onClick,\n overlay,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('split-button', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <ButtonGroup {...otherProps} className={cls} btnType={btnType} disabled={disabled} size={size}>\n <Button onClick={onClick} loading={loading}>\n {children}\n </Button>\n <Dropdown overlay={overlay} trigger={dropdownTrigger} placement={dropdownPlacement}>\n <Button\n className={`${prefixCls}__dropdown-btn`}\n btnType={btnType}\n disabled={disabled}\n size={size}>\n <ArrowDown size={10} />\n </Button>\n </Dropdown>\n </ButtonGroup>\n );\n};\n\nSplitButton.displayName = 'SplitButton';\n\nexport default SplitButton;\n","import SplitButton from './split-button';\n\nexport default SplitButton;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SizeType } from '../_utils/props';\nimport { SpaceProps } from './types';\n\nconst spaceSize = {\n sm: 8,\n md: 16,\n lg: 24,\n};\n\nconst Space = React.forwardRef<HTMLDivElement, SpaceProps>(\n (props: SpaceProps, ref): JSX.Element => {\n const {\n direction = 'horizontal',\n align = 'center',\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('space', configContext.prefixCls, customisedCls);\n const size = props.size || configContext.space || 'sm';\n const cls = classNames(\n prefixCls,\n className,\n `${prefixCls}_${direction}`,\n `${prefixCls}_${align}`\n );\n\n const getItemStyle = (idx: number): React.CSSProperties => {\n if (React.Children.count(children) - 1 !== idx) {\n return {\n [direction === 'vertical' ? 'marginBottom' : 'marginRight']:\n typeof props.size === 'number' ? size : spaceSize[size as SizeType],\n };\n }\n return {};\n };\n\n return (\n <div {...otherProps} ref={ref} className={cls}>\n {React.Children.map(children, (child, idx) => (\n <div key={idx} className={`${prefixCls}__item`} style={getItemStyle(idx)}>\n {child}\n </div>\n ))}\n </div>\n );\n }\n);\n\nSpace.displayName = 'Space';\n\nexport default Space;\n","import Space from './space';\n\nexport default Space;\n","import { createContext } from 'react';\nimport { SpeedDialDirection } from './types';\n\nexport interface SpeedDialContextProps {\n direction: SpeedDialDirection;\n}\n\nexport const SpeedDialContext = createContext<SpeedDialContextProps>({\n direction: 'up',\n});\n","import React, { useCallback, useContext, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useClickOutside } from '../_utils/hooks';\nimport { SpeedDialProps } from './types';\nimport { SpeedDialContext } from './speed-dial-context';\n\nconst SpeedDial = React.forwardRef<HTMLDivElement, SpeedDialProps>(\n (props, ref): JSX.Element => {\n const {\n icon,\n openIcon,\n direction = 'up',\n open,\n trigger = 'hover',\n onOpen,\n onClose,\n disabled = false,\n className,\n style,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('speed-dial', configContext.prefixCls, customisedCls);\n\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? open : internalOpen;\n\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n const handleOpen = useCallback(() => {\n if (disabled) return;\n if (!isControlled) setInternalOpen(true);\n onOpen?.();\n }, [disabled, isControlled, onOpen]);\n\n const handleClose = useCallback(() => {\n if (!isControlled) setInternalOpen(false);\n onClose?.();\n }, [isControlled, onClose]);\n\n const handleToggle = useCallback(() => {\n if (isOpen) {\n handleClose();\n } else {\n handleOpen();\n }\n }, [isOpen, handleOpen, handleClose]);\n\n useClickOutside(containerRef.current as HTMLDivElement, () => {\n if (trigger === 'click' && isOpen) {\n handleClose();\n }\n });\n\n const cls = classNames(prefixCls, className, `${prefixCls}_${direction}`);\n\n const buttonCls = classNames(`${prefixCls}__button`, {\n [`${prefixCls}__button_open`]: isOpen,\n [`${prefixCls}__button_disabled`]: disabled,\n });\n\n const actionsCls = classNames(`${prefixCls}__actions`, {\n [`${prefixCls}__actions_open`]: isOpen,\n });\n\n const hoverProps =\n trigger === 'hover' && !disabled\n ? { onMouseEnter: handleOpen, onMouseLeave: handleClose }\n : {};\n\n const handleButtonClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) return;\n if (trigger === 'click') {\n handleToggle();\n }\n // Stop propagation so useClickOutside doesn't immediately close\n e.stopPropagation();\n };\n\n const renderIcon = () => {\n if (isOpen && openIcon) return openIcon;\n if (icon) return icon;\n return <span className={`${prefixCls}__icon-default`} />;\n };\n\n return (\n <div\n {...otherProps}\n ref={(node) => {\n containerRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }}\n className={cls}\n style={style}\n {...hoverProps}\n >\n <button\n className={buttonCls}\n type=\"button\"\n onClick={handleButtonClick}\n disabled={disabled}\n aria-expanded={isOpen}\n aria-label=\"SpeedDial\"\n >\n {renderIcon()}\n </button>\n <SpeedDialContext.Provider value={{ direction }}>\n <div className={actionsCls} role=\"menu\">\n {children}\n </div>\n </SpeedDialContext.Provider>\n </div>\n );\n }\n);\n\nSpeedDial.displayName = 'SpeedDial';\n\nexport default SpeedDial;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SpeedDialActionProps } from './types';\nimport { SpeedDialContext } from './speed-dial-context';\n\nconst getDefaultTooltipPlacement = (direction: string): 'left' | 'right' | 'top' | 'bottom' => {\n if (direction === 'left' || direction === 'right') return 'top';\n return 'left';\n};\n\nconst SpeedDialAction = React.forwardRef<HTMLButtonElement, SpeedDialActionProps>(\n (props, ref): JSX.Element => {\n const {\n icon,\n tooltip,\n tooltipPlacement,\n disabled = false,\n className,\n style,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const { direction } = useContext(SpeedDialContext);\n const prefixCls = getPrefixCls('speed-dial', configContext.prefixCls, customisedCls);\n const placement = tooltipPlacement || getDefaultTooltipPlacement(direction);\n\n const cls = classNames(`${prefixCls}__action`, className, {\n [`${prefixCls}__action_disabled`]: disabled,\n });\n\n const tooltipCls = classNames(\n `${prefixCls}__action-tooltip`,\n `${prefixCls}__action-tooltip_${placement}`\n );\n\n return (\n <div className={`${prefixCls}__action-wrapper`}>\n <button\n {...otherProps}\n ref={ref}\n className={cls}\n style={style}\n disabled={disabled}\n type=\"button\"\n >\n {icon}\n </button>\n {tooltip && <span className={tooltipCls}>{tooltip}</span>}\n </div>\n );\n }\n);\n\nSpeedDialAction.displayName = 'SpeedDialAction';\n\nexport default SpeedDialAction;\n","import SpeedDial from './speed-dial';\nimport SpeedDialAction from './speed-dial-action';\n\ntype ISpeedDial = typeof SpeedDial & {\n Action: typeof SpeedDialAction;\n};\n\nconst DefaultSpeedDial = SpeedDial as ISpeedDial;\nDefaultSpeedDial.Action = SpeedDialAction;\n\nexport default DefaultSpeedDial;\n","import React from 'react';\nimport { StepsStatus } from './types';\nimport { DirectionType } from '../_utils/props';\n\ntype Props = {\n current: number;\n labelPlacement: DirectionType;\n status: StepsStatus;\n clickable: boolean;\n onClick?: (current: number) => void;\n};\n\nexport const StepsContext = React.createContext<Props>({\n current: 0,\n labelPlacement: 'vertical',\n status: 'process',\n clickable: false,\n});\n","import React, { useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { StepsContext } from './steps-context';\nimport { StepsItemProps, StepsProps } from './types';\n\nconst Steps = React.forwardRef<HTMLDivElement, StepsProps>(\n (props: StepsProps, ref): React.ReactElement => {\n const {\n defaultCurrent = 0,\n status = 'process',\n direction = 'horizontal',\n labelPlacement = 'vertical',\n onChange,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('steps', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, `${prefixCls}_${direction}`);\n const [current, setCurrent] = useState<number>(\n 'current' in props ? (props.current as number) : defaultCurrent\n );\n\n const itemOnClick = (curr: number) => {\n !('current' in props) && setCurrent(curr);\n onChange && onChange(curr);\n };\n\n useEffect(() => {\n 'current' in props && setCurrent(props.current as number);\n }, [props]);\n\n return (\n <StepsContext.Provider\n value={{\n current,\n labelPlacement,\n status,\n clickable: 'onChange' in props,\n onClick: itemOnClick,\n }}>\n <div {...otherProps} ref={ref} className={cls}>\n {React.Children.map(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<StepsItemProps>;\n if (childElement.type.displayName === 'StepsItem') {\n const childProps: Partial<StepsItemProps> = {\n stepIndex: idx,\n };\n return React.cloneElement(childElement, childProps);\n } else {\n console.warn('Steps has a child that is not a Step component.');\n return null;\n }\n })}\n </div>\n </StepsContext.Provider>\n );\n }\n);\n\nSteps.displayName = 'Steps';\n\nexport default Steps;\n","import React, { useContext, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { StepsContext } from './steps-context';\nimport { Check, Close } from '../_utils/components';\nimport { StepsItemProps } from './types';\n\nconst StepsItem = React.forwardRef<HTMLDivElement, StepsItemProps>(\n (props: StepsItemProps, ref): React.ReactElement => {\n const {\n stepIndex = 0,\n disabled = false,\n status,\n title,\n description,\n icon,\n onClick,\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('steps-item', configContext.prefixCls, customisedCls);\n const stepsContext = useContext(StepsContext);\n const getStatus = () => {\n const { current } = stepsContext;\n if (status === 'error') {\n return 'error';\n } else if (current > stepIndex) {\n return 'finish';\n } else if (current === stepIndex) {\n return stepsContext.status;\n } else {\n return 'wait';\n }\n };\n const stepStatus = 'status' in props ? props.status : getStatus();\n const cls = classNames(\n prefixCls,\n className,\n `${prefixCls}_${stepStatus}`,\n `${prefixCls}_label-${stepsContext.labelPlacement}`,\n {\n [`${prefixCls}_disabled`]: disabled,\n }\n );\n\n const stepItemOnClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!disabled && stepsContext.clickable) {\n onClick && onClick(e);\n stepsContext.onClick && stepsContext.onClick(stepIndex);\n }\n };\n\n const renderIcon = (): React.ReactNode => {\n if (icon) {\n return icon;\n }\n\n let iconNode: ReactNode = stepIndex + 1;\n if (stepStatus === 'finish') {\n iconNode = <Check />;\n } else if (stepStatus === 'error') {\n iconNode = <Close />;\n }\n\n return iconNode;\n };\n\n return (\n <div\n {...otherProps}\n role={stepsContext.clickable ? 'button' : undefined}\n tabIndex={stepsContext.clickable && !disabled ? 0 : undefined}\n ref={ref}\n className={cls}\n onClick={stepItemOnClick}\n onKeyDown={(e: React.KeyboardEvent) => {\n if ((e.key === 'Enter' || e.key === ' ') && stepsContext.clickable) {\n e.preventDefault();\n stepItemOnClick(e as unknown as React.MouseEvent<HTMLDivElement>);\n }\n }}>\n <div className={`${prefixCls}__head`}>\n <div\n className={classNames(`${prefixCls}__icon`, { [`${prefixCls}__icon_has-icon`]: icon })}>\n {renderIcon()}\n </div>\n <div className={`${prefixCls}__tail`} />\n </div>\n <div className={`${prefixCls}__content`}>\n <div className={`${prefixCls}__title`}>{title}</div>\n <div className={`${prefixCls}__desc`}>{description}</div>\n </div>\n </div>\n );\n }\n);\n\nStepsItem.displayName = 'StepsItem';\n\nexport default StepsItem;\n","import Steps from './steps';\nimport StepsItem from './steps-item';\n\ntype ISteps = typeof Steps & {\n Step: typeof StepsItem;\n};\n\nconst DefaultSteps = Steps as ISteps;\nDefaultSteps.Step = StepsItem;\n\nexport default DefaultSteps;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { StatisticProps } from './types';\n\nconst formatValue = (\n value: number | string | undefined,\n precision?: number,\n groupSeparator?: string\n): string => {\n if (value === undefined) return '';\n if (typeof value === 'string') return value;\n\n let val = precision !== undefined ? value.toFixed(precision) : String(value);\n\n if (groupSeparator) {\n const parts = val.split('.');\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator);\n val = parts.join('.');\n }\n\n return val;\n};\n\nconst Statistic = React.forwardRef<HTMLDivElement, StatisticProps>((props, ref) => {\n const {\n title,\n value,\n precision,\n prefix,\n suffix,\n groupSeparator = ',',\n valueStyle,\n formatter,\n prefixCls: customisedCls,\n className,\n style,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('statistic', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n const renderValue = () => {\n if (formatter) {\n return formatter(value ?? '');\n }\n return formatValue(value, precision, groupSeparator);\n };\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n {title && <div className={`${prefixCls}__title`}>{title}</div>}\n <div className={`${prefixCls}__content`} style={valueStyle}>\n {prefix && <span className={`${prefixCls}__prefix`}>{prefix}</span>}\n <span className={`${prefixCls}__value`}>{renderValue()}</span>\n {suffix && <span className={`${prefixCls}__suffix`}>{suffix}</span>}\n </div>\n </div>\n );\n});\n\nStatistic.displayName = 'Statistic';\nexport default Statistic;\n","import Statistic from './statistic';\n\nexport default Statistic;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { StrengthIndicatorProps } from './types';\n\nconst StrengthIndicator = React.forwardRef<HTMLDivElement, StrengthIndicatorProps>(\n (props: StrengthIndicatorProps, ref): React.ReactElement => {\n const {\n current = 0,\n blocks = 3,\n colors = ['#f44336', '#ff9800', '#52c41a'],\n className,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('strength-indicator', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const displayLabels: React.ReactNode[] = Array.isArray(props.labels)\n ? props.labels\n : ['Weak', 'Medium', 'Strong'];\n\n return (\n <div {...otherProps} className={cls} ref={ref} role=\"progressbar\" aria-valuenow={current} aria-valuemin={0} aria-valuemax={blocks}>\n {Array.from(new Array(blocks)).map((item, idx) => {\n const itemCls = classNames(`${prefixCls}__item`, {\n [`${prefixCls}__item_active`]: idx < current,\n });\n const bgColor = idx < current ? colors[current - 1] : undefined;\n return (\n <div key={idx} className={itemCls}>\n <div className={`${prefixCls}__inner`} style={{ backgroundColor: bgColor }} />\n {'labels' in props && (\n <div className={`${prefixCls}__label`}>{displayLabels[idx]}</div>\n )}\n </div>\n );\n })}\n </div>\n );\n }\n);\n\nStrengthIndicator.displayName = 'StrengthIndicator';\n\nexport default StrengthIndicator;\n","import StrengthIndicator from './strength-indicator';\n\nexport default StrengthIndicator;\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { SwitchProps } from './types';\n\nconst Switch = React.forwardRef<HTMLLabelElement, SwitchProps>(\n (props: SwitchProps, ref): JSX.Element => {\n const {\n size = 'md',\n defaultChecked = true,\n disabled,\n loading,\n onChange,\n checkedText,\n uncheckedText,\n className,\n onClick,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const [checked, setChecked] = useState<boolean>(\n 'checked' in props ? (props.checked as boolean) : defaultChecked\n );\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('switch', configContext.prefixCls, customisedCls);\n const switchSize = props.size || configContext.componentSize || size;\n const cls = classNames(prefixCls, className, `${prefixCls}_${switchSize}`, {\n [`${prefixCls}_checked`]: checked,\n [`${prefixCls}_loading`]: loading,\n [`${prefixCls}_disabled`]: loading || disabled,\n });\n\n const labelOnClick = (e: React.MouseEvent<HTMLLabelElement>): void => {\n const val = !checked;\n onClick && onClick(val, e);\n if (!(disabled || loading)) {\n onChange && onChange(val, e);\n !('checked' in props) && setChecked(val);\n }\n };\n\n useEffect(() => {\n 'checked' in props && typeof props.checked !== 'undefined' && setChecked(props.checked);\n }, [props]);\n\n return (\n <label\n {...otherProps}\n ref={ref}\n className={cls}\n role=\"switch\"\n aria-checked={checked}\n tabIndex={disabled || loading ? -1 : 0}\n onClick={labelOnClick}\n onKeyDown={(e: React.KeyboardEvent<HTMLLabelElement>) => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n labelOnClick(e as unknown as React.MouseEvent<HTMLLabelElement>);\n }\n }}>\n <span className={`${prefixCls}__bg`}>\n <span className={`${prefixCls}__thumb`} />\n <span className={`${prefixCls}__label`}>{checked ? checkedText : uncheckedText}</span>\n </span>\n </label>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport default Switch;\n","import Switch from './switch';\n\nexport default Switch;\n","import React, { useState, useEffect, useContext, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useVirtualScroll } from '../_utils/use-virtual-scroll';\nimport Pagination from '../pagination';\nimport { TableProps, ColumnType, SortOrder } from './types';\n\nconst ROW_HEIGHT_MAP = { sm: 40, md: 48, lg: 56 } as const;\n\nconst getRowKey = <T,>(record: T, rowKey: string | ((record: T) => React.Key), index: number): React.Key => {\n if (typeof rowKey === 'function') return rowKey(record);\n const key = (record as any)[rowKey];\n return key !== undefined ? key : index;\n};\n\nconst getValue = <T,>(record: T, dataIndex: string): any => {\n return (record as any)[dataIndex];\n};\n\nconst Table = React.forwardRef<HTMLDivElement, TableProps>((props, ref) => {\n const {\n columns,\n dataSource = [],\n rowKey = 'key',\n loading = false,\n bordered = false,\n size,\n scroll,\n virtual = false,\n height,\n itemHeight: itemHeightProp,\n rowSelection,\n pagination,\n onChange,\n emptyText = 'No Data',\n showHeader = true,\n rowClassName,\n onRow,\n prefixCls: customisedCls,\n className,\n style,\n ...otherProps\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('table', configContext.prefixCls, customisedCls);\n const tableSize = size || configContext.componentSize || 'md';\n\n if (virtual && height == null) {\n console.warn('[tiny-ui: Table] `height` is required when `virtual` is enabled.');\n }\n\n const isVirtual = virtual && height != null;\n\n // Sorting\n const [sortField, setSortField] = useState<string | undefined>();\n const [sortOrder, setSortOrder] = useState<SortOrder>(null);\n\n // Pagination\n const [currentPage, setCurrentPage] = useState(1);\n const pageSize = pagination && pagination.pageSize ? pagination.pageSize : 10;\n\n // Selection\n const [selectedKeys, setSelectedKeys] = useState<React.Key[]>(\n rowSelection?.selectedRowKeys ?? []\n );\n\n useEffect(() => {\n if (rowSelection?.selectedRowKeys) {\n setSelectedKeys(rowSelection.selectedRowKeys);\n }\n }, [rowSelection?.selectedRowKeys]);\n\n // Initialize default sort\n useEffect(() => {\n for (const col of columns) {\n if (col.defaultSortOrder) {\n setSortField(col.dataIndex);\n setSortOrder(col.defaultSortOrder);\n break;\n }\n }\n }, []);\n\n const sortedData = useMemo(() => {\n if (!sortField || !sortOrder) return [...dataSource];\n const col = columns.find((c) => c.dataIndex === sortField);\n if (!col?.sorter) return [...dataSource];\n const sorted = [...dataSource];\n const sorterFn =\n typeof col.sorter === 'function'\n ? col.sorter\n : (a: any, b: any) => {\n const va = getValue(a, sortField);\n const vb = getValue(b, sortField);\n if (va < vb) return -1;\n if (va > vb) return 1;\n return 0;\n };\n sorted.sort((a, b) => {\n const result = sorterFn(a, b);\n return sortOrder === 'descend' ? -result : result;\n });\n return sorted;\n }, [dataSource, sortField, sortOrder, columns]);\n\n const rowHeight = itemHeightProp ?? ROW_HEIGHT_MAP[tableSize] ?? ROW_HEIGHT_MAP.md;\n const { visibleRange, totalHeight, offsetY, onScroll } = useVirtualScroll({\n itemCount: sortedData.length,\n itemHeight: rowHeight,\n containerHeight: height ?? 0,\n });\n\n const paginatedData = useMemo(() => {\n if (isVirtual) return sortedData;\n if (pagination === false) return sortedData;\n const page = pagination?.current ?? currentPage;\n const start = (page - 1) * pageSize;\n return sortedData.slice(start, start + pageSize);\n }, [sortedData, pagination, currentPage, pageSize, isVirtual]);\n\n const paginationConfig = pagination && typeof pagination === 'object' ? pagination : undefined;\n const totalItems = paginationConfig?.total ?? dataSource.length;\n const activePage = paginationConfig?.current ?? currentPage;\n\n const handleSort = (col: ColumnType) => {\n if (!col.sorter) return;\n let newOrder: SortOrder;\n if (sortField !== col.dataIndex) {\n newOrder = 'ascend';\n } else if (sortOrder === 'ascend') {\n newOrder = 'descend';\n } else if (sortOrder === 'descend') {\n newOrder = null;\n } else {\n newOrder = 'ascend';\n }\n setSortField(newOrder ? col.dataIndex : undefined);\n setSortOrder(newOrder);\n onChange?.({ current: activePage, pageSize }, { field: col.dataIndex, order: newOrder });\n };\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n pagination && pagination.onChange?.(page, pageSize);\n onChange?.({ current: page, pageSize }, { field: sortField, order: sortOrder });\n };\n\n const handleSelectAll = () => {\n if (!rowSelection) return;\n const allKeys = paginatedData.map((record, i) => getRowKey(record, rowKey, i));\n const allSelected = allKeys.every((k) => selectedKeys.includes(k));\n const newKeys = allSelected ? [] : allKeys;\n if (!rowSelection.selectedRowKeys) {\n setSelectedKeys(newKeys);\n }\n const newRows = allSelected ? [] : paginatedData;\n rowSelection.onChange?.(newKeys, newRows);\n };\n\n const handleSelectRow = (record: any, key: React.Key) => {\n if (!rowSelection) return;\n const isRadio = rowSelection.type === 'radio';\n let newKeys: React.Key[];\n if (isRadio) {\n newKeys = [key];\n } else {\n newKeys = selectedKeys.includes(key)\n ? selectedKeys.filter((k) => k !== key)\n : [...selectedKeys, key];\n }\n if (!rowSelection.selectedRowKeys) {\n setSelectedKeys(newKeys);\n }\n const newRows = dataSource.filter((r, i) => newKeys.includes(getRowKey(r, rowKey, i)));\n rowSelection.onChange?.(newKeys, newRows);\n };\n\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_bordered`]: bordered,\n [`${prefixCls}_${tableSize}`]: tableSize,\n [`${prefixCls}_loading`]: loading,\n });\n\n const tableStyle: React.CSSProperties = {};\n if (scroll?.x) tableStyle.minWidth = scroll.x;\n\n const wrapperStyle: React.CSSProperties = {};\n if (isVirtual) {\n wrapperStyle.height = height;\n wrapperStyle.overflowY = 'auto';\n } else if (scroll?.y) {\n wrapperStyle.maxHeight = scroll.y;\n wrapperStyle.overflowY = 'auto';\n }\n\n const allPageKeys = paginatedData.map((r, i) => getRowKey(r, rowKey, i));\n const allSelected = allPageKeys.length > 0 && allPageKeys.every((k) => selectedKeys.includes(k));\n const someSelected = allPageKeys.some((k) => selectedKeys.includes(k));\n\n const colCount = columns.length + (rowSelection ? 1 : 0);\n\n const renderRow = (record: any, rowIndex: number) => {\n const key = getRowKey(record, rowKey, rowIndex);\n const isSelected = selectedKeys.includes(key);\n const rowCls = classNames(`${prefixCls}__row`, {\n [`${prefixCls}__row_selected`]: isSelected,\n }, typeof rowClassName === 'function' ? rowClassName(record, rowIndex) : rowClassName);\n const rowProps = onRow?.(record, rowIndex) ?? {};\n return (\n <tr key={key} className={rowCls} {...rowProps}>\n {rowSelection && (\n <td className={`${prefixCls}__cell ${prefixCls}__selection-col`}>\n <input\n type={rowSelection.type === 'radio' ? 'radio' : 'checkbox'}\n checked={isSelected}\n onChange={() => handleSelectRow(record, key)}\n aria-label={`Select row ${rowIndex + 1}`}\n />\n </td>\n )}\n {columns.map((col, colIndex) => {\n const colKey = col.key ?? col.dataIndex ?? colIndex;\n const value = getValue(record, col.dataIndex);\n const tdCls = classNames(`${prefixCls}__cell`, col.className, {\n [`${prefixCls}__cell_ellipsis`]: col.ellipsis,\n [`${prefixCls}__cell_align-${col.align}`]: col.align,\n });\n return (\n <td key={colKey} className={tdCls} style={{ width: col.width }}>\n {col.render ? col.render(value, record, rowIndex) : value}\n </td>\n );\n })}\n </tr>\n );\n };\n\n const renderTbody = () => {\n if (loading) {\n return (\n <tr>\n <td\n className={`${prefixCls}__cell ${prefixCls}__loading-cell`}\n colSpan={colCount}\n >\n Loading...\n </td>\n </tr>\n );\n }\n\n if (isVirtual) {\n if (sortedData.length === 0) {\n return (\n <tr>\n <td className={`${prefixCls}__cell ${prefixCls}__empty-cell`} colSpan={colCount}>\n {emptyText}\n </td>\n </tr>\n );\n }\n const [start, end] = visibleRange;\n const topHeight = offsetY;\n const bottomHeight = totalHeight - offsetY - (end - start + 1) * rowHeight;\n return (\n <>\n {topHeight > 0 && (\n <tr className={`${prefixCls}__row_spacer`}>\n <td colSpan={colCount} style={{ height: topHeight }} />\n </tr>\n )}\n {sortedData.slice(start, end + 1).map((record, i) => renderRow(record, start + i))}\n {bottomHeight > 0 && (\n <tr className={`${prefixCls}__row_spacer`}>\n <td colSpan={colCount} style={{ height: Math.max(0, bottomHeight) }} />\n </tr>\n )}\n </>\n );\n }\n\n if (paginatedData.length === 0) {\n return (\n <tr>\n <td\n className={`${prefixCls}__cell ${prefixCls}__empty-cell`}\n colSpan={colCount}\n >\n {emptyText}\n </td>\n </tr>\n );\n }\n\n return paginatedData.map((record, rowIndex) => renderRow(record, rowIndex));\n };\n\n const theadCls = classNames(`${prefixCls}__thead`, {\n [`${prefixCls}__thead_sticky`]: isVirtual,\n });\n\n const showPagination = pagination !== false && !isVirtual;\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={style}>\n <div\n className={`${prefixCls}__wrapper`}\n style={wrapperStyle}\n onScroll={isVirtual ? onScroll : undefined}\n >\n <table className={`${prefixCls}__table`} style={tableStyle}>\n {showHeader && (\n <thead className={theadCls}>\n <tr>\n {rowSelection && (\n <th className={`${prefixCls}__cell ${prefixCls}__selection-col`}>\n {rowSelection.type !== 'radio' && (\n <input\n type=\"checkbox\"\n checked={allSelected}\n ref={(el) => { if (el) el.indeterminate = someSelected && !allSelected; }}\n onChange={handleSelectAll}\n aria-label=\"Select all\"\n />\n )}\n </th>\n )}\n {columns.map((col, i) => {\n const key = col.key ?? col.dataIndex ?? i;\n const thCls = classNames(`${prefixCls}__cell`, col.className, {\n [`${prefixCls}__cell_sortable`]: !!col.sorter,\n [`${prefixCls}__cell_align-${col.align}`]: col.align,\n });\n return (\n <th\n key={key}\n className={thCls}\n style={{ width: col.width }}\n onClick={() => handleSort(col)}\n >\n <span className={`${prefixCls}__col-title`}>{col.title}</span>\n {col.sorter && (\n <span className={`${prefixCls}__sorter`}>\n <span className={classNames(`${prefixCls}__sorter-icon`, {\n [`${prefixCls}__sorter-icon_active`]: sortField === col.dataIndex && sortOrder === 'ascend',\n })}>▲</span>\n <span className={classNames(`${prefixCls}__sorter-icon`, {\n [`${prefixCls}__sorter-icon_active`]: sortField === col.dataIndex && sortOrder === 'descend',\n })}>▼</span>\n </span>\n )}\n </th>\n );\n })}\n </tr>\n </thead>\n )}\n <tbody className={`${prefixCls}__tbody`}>\n {renderTbody()}\n </tbody>\n </table>\n </div>\n {showPagination && (\n <Pagination\n current={activePage}\n total={totalItems}\n pageSize={pageSize}\n align={paginationConfig?.align ?? 'right'}\n size={paginationConfig?.size}\n disabled={paginationConfig?.disabled}\n onChange={(page) => handlePageChange(page)}\n style={{ padding: '16px 0' }}\n />\n )}\n </div>\n );\n});\n\nTable.displayName = 'Table';\nexport default Table;\n","import Table from './table';\n\nexport default Table;\n","import React, { useContext, useId, useRef, useState, useEffect, useCallback, CSSProperties } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TabsProps, TabItem, TabPanelProps } from './types';\n\nconst Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n (props: TabsProps, ref): React.ReactElement => {\n const {\n type = 'line',\n tabPosition = 'top',\n size = 'md',\n animated = true,\n centered = false,\n destroyInactiveTabPane = false,\n hideAdd = false,\n activeKey,\n defaultActiveKey,\n items,\n tabBarExtraContent,\n tabBarGutter,\n tabBarStyle,\n onChange,\n onTabClick,\n onEdit,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tabs', configContext.prefixCls, customisedCls);\n\n // Resolve items from either `items` prop or `children`\n const resolvedItems: TabItem[] = items ?? resolveItemsFromChildren(children);\n\n const getDefaultKey = (): string => {\n if (defaultActiveKey !== undefined) return defaultActiveKey;\n const first = resolvedItems.find((item) => !item.disabled);\n return first?.key ?? '';\n };\n\n const [currentKey, setCurrentKey] = useState<string>(activeKey ?? getDefaultKey());\n const [inkStyle, setInkStyle] = useState<CSSProperties>({});\n const baseId = useId();\n const [scrollOffset, setScrollOffset] = useState(0);\n const [showNav, setShowNav] = useState(false);\n const navWrapRef = useRef<HTMLDivElement>(null);\n const navListRef = useRef<HTMLDivElement>(null);\n const tabRefs = useRef<Map<string, HTMLDivElement>>(new Map());\n\n const isHorizontal = tabPosition === 'top' || tabPosition === 'bottom';\n\n // Controlled mode\n useEffect(() => {\n if (activeKey !== undefined) {\n setCurrentKey(activeKey);\n }\n }, [activeKey]);\n\n // Update ink indicator\n const updateInk = useCallback(() => {\n if (type !== 'line') return;\n const el = tabRefs.current.get(currentKey);\n if (!el) return;\n\n if (isHorizontal) {\n setInkStyle({\n width: el.offsetWidth,\n transform: `translate3d(${el.offsetLeft}px, 0, 0)`,\n });\n } else {\n setInkStyle({\n height: el.offsetHeight,\n transform: `translate3d(0, ${el.offsetTop}px, 0)`,\n });\n }\n }, [currentKey, type, isHorizontal]);\n\n // Check overflow for scroll arrows\n const checkOverflow = useCallback(() => {\n const wrap = navWrapRef.current;\n const list = navListRef.current;\n if (!wrap || !list) return;\n setShowNav(\n isHorizontal\n ? list.scrollWidth > wrap.clientWidth\n : list.scrollHeight > wrap.clientHeight\n );\n }, [isHorizontal]);\n\n useEffect(() => {\n updateInk();\n checkOverflow();\n }, [updateInk, checkOverflow]);\n\n const handleTabClick = (key: string, disabled: boolean | undefined, e: React.MouseEvent) => {\n if (disabled) return;\n onTabClick?.(key, e);\n if (activeKey === undefined) {\n setCurrentKey(key);\n }\n onChange?.(key);\n };\n\n const handleRemove = (key: string, e: React.MouseEvent) => {\n e.stopPropagation();\n onEdit?.(key, 'remove');\n };\n\n const handleAdd = (e: React.MouseEvent) => {\n onEdit?.(e, 'add');\n };\n\n const handleTabKeyDown = (e: React.KeyboardEvent, itemIndex: number) => {\n const enabledItems = resolvedItems.filter((item) => !item.disabled);\n const currentEnabledIdx = enabledItems.findIndex((item) => item.key === resolvedItems[itemIndex].key);\n let targetItem: TabItem | undefined;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n e.preventDefault();\n const prevIdx = currentEnabledIdx <= 0 ? enabledItems.length - 1 : currentEnabledIdx - 1;\n targetItem = enabledItems[prevIdx];\n } else if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n e.preventDefault();\n const nextIdx = currentEnabledIdx >= enabledItems.length - 1 ? 0 : currentEnabledIdx + 1;\n targetItem = enabledItems[nextIdx];\n } else if (e.key === 'Home') {\n e.preventDefault();\n targetItem = enabledItems[0];\n } else if (e.key === 'End') {\n e.preventDefault();\n targetItem = enabledItems[enabledItems.length - 1];\n }\n\n if (targetItem) {\n const el = tabRefs.current.get(targetItem.key);\n el?.focus();\n handleTabClick(targetItem.key, targetItem.disabled, e as unknown as React.MouseEvent);\n }\n };\n\n // Scroll navigation\n const scrollStep = 200;\n const getMaxScroll = () => {\n const wrap = navWrapRef.current;\n const list = navListRef.current;\n if (!wrap || !list) return 0;\n return isHorizontal\n ? list.scrollWidth - wrap.clientWidth\n : list.scrollHeight - wrap.clientHeight;\n };\n\n const scrollPrev = () => setScrollOffset((prev) => Math.max(0, prev - scrollStep));\n const scrollNext = () => setScrollOffset((prev) => Math.min(getMaxScroll(), prev + scrollStep));\n\n // Ensure active tab is scrolled into view\n useEffect(() => {\n const el = tabRefs.current.get(currentKey);\n const wrap = navWrapRef.current;\n if (!el || !wrap || !showNav) return;\n\n if (isHorizontal) {\n const elLeft = el.offsetLeft;\n const elRight = elLeft + el.offsetWidth;\n if (elLeft < scrollOffset) {\n setScrollOffset(elLeft);\n } else if (elRight > scrollOffset + wrap.clientWidth) {\n setScrollOffset(elRight - wrap.clientWidth);\n }\n }\n }, [currentKey, showNav, isHorizontal, scrollOffset]);\n\n // Extra content\n const isExtraObj = tabBarExtraContent != null\n && typeof tabBarExtraContent === 'object'\n && !React.isValidElement(tabBarExtraContent)\n && ('left' in tabBarExtraContent || 'right' in tabBarExtraContent);\n const extraLeft: React.ReactNode = isExtraObj\n ? (tabBarExtraContent as { left?: React.ReactNode }).left ?? null\n : null;\n const extraRight: React.ReactNode = isExtraObj\n ? (tabBarExtraContent as { right?: React.ReactNode }).right ?? null\n : (tabBarExtraContent as React.ReactNode) ?? null;\n\n // Class names\n const isVertical = !isHorizontal;\n const cls = classNames(prefixCls, className, `${prefixCls}_${size}`, {\n [`${prefixCls}_${tabPosition}`]: true,\n [`${prefixCls}_${type}`]: true,\n [`${prefixCls}_vertical`]: isVertical,\n [`${prefixCls}_centered`]: centered,\n });\n\n const navScrollStyle: CSSProperties = isHorizontal\n ? { transform: `translate3d(${-scrollOffset}px, 0, 0)` }\n : { transform: `translate3d(0, ${-scrollOffset}px, 0)` };\n\n const prevDisabled = scrollOffset === 0;\n const nextDisabled = scrollOffset >= getMaxScroll();\n\n return (\n <div {...otherProps} ref={ref} className={cls}>\n {tabPosition === 'bottom' && (\n <div className={`${prefixCls}__content`}>\n {renderPanels(resolvedItems, currentKey, prefixCls, animated, isHorizontal, destroyInactiveTabPane, baseId)}\n </div>\n )}\n <div\n className={classNames(`${prefixCls}__nav`, {\n [`${prefixCls}__nav_overflow`]: showNav,\n })}\n style={tabBarStyle}\n role=\"tablist\">\n {extraLeft && <div className={`${prefixCls}__nav-extra_left`}>{extraLeft}</div>}\n {showNav && (\n <button\n className={classNames(`${prefixCls}__nav-prev`, {\n [`${prefixCls}__nav-btn_disabled`]: prevDisabled,\n })}\n disabled={prevDisabled}\n onClick={scrollPrev}\n type=\"button\"\n aria-label=\"Previous tabs\">\n ‹\n </button>\n )}\n <div className={`${prefixCls}__nav-wrap`} ref={navWrapRef}>\n <div\n className={`${prefixCls}__nav-list`}\n ref={navListRef}\n style={showNav ? navScrollStyle : undefined}>\n {resolvedItems.map((item, idx) => {\n const isActive = item.key === currentKey;\n const tabCls = classNames(`${prefixCls}__tab`, {\n [`${prefixCls}__tab_active`]: isActive,\n [`${prefixCls}__tab_disabled`]: item.disabled,\n });\n const gutter = tabBarGutter !== undefined ? { marginRight: tabBarGutter } : undefined;\n return (\n <div\n key={item.key}\n ref={(el) => {\n if (el) tabRefs.current.set(item.key, el);\n else tabRefs.current.delete(item.key);\n }}\n className={tabCls}\n style={gutter}\n role=\"tab\"\n id={`${baseId}-tab-${item.key}`}\n aria-selected={isActive}\n aria-disabled={item.disabled}\n aria-controls={`${baseId}-panel-${item.key}`}\n tabIndex={isActive ? 0 : -1}\n onClick={(e) => handleTabClick(item.key, item.disabled, e)}\n onKeyDown={(e) => handleTabKeyDown(e, idx)}>\n {item.icon && <span className={`${prefixCls}__tab-icon`}>{item.icon}</span>}\n <span className={`${prefixCls}__tab-label`}>{item.label}</span>\n {type === 'editable-card' && item.closable !== false && (\n <span\n className={`${prefixCls}__tab-remove`}\n onClick={(e) => handleRemove(item.key, e)}\n role=\"button\"\n aria-label=\"Remove tab\">\n ✕\n </span>\n )}\n </div>\n );\n })}\n {type === 'line' && (\n <div className={`${prefixCls}__ink-bar`} style={inkStyle} />\n )}\n </div>\n </div>\n {showNav && (\n <button\n className={classNames(`${prefixCls}__nav-next`, {\n [`${prefixCls}__nav-btn_disabled`]: nextDisabled,\n })}\n disabled={nextDisabled}\n onClick={scrollNext}\n type=\"button\"\n aria-label=\"Next tabs\">\n ›\n </button>\n )}\n {type === 'editable-card' && !hideAdd && (\n <button\n className={`${prefixCls}__nav-add`}\n onClick={handleAdd}\n type=\"button\"\n aria-label=\"Add tab\">\n +\n </button>\n )}\n {extraRight && <div className={`${prefixCls}__nav-extra_right`}>{extraRight}</div>}\n </div>\n {tabPosition !== 'bottom' && (\n <div className={`${prefixCls}__content`}>\n {renderPanels(resolvedItems, currentKey, prefixCls, animated, isHorizontal, destroyInactiveTabPane, baseId)}\n </div>\n )}\n </div>\n );\n }\n);\n\nfunction resolveItemsFromChildren(children: React.ReactNode): TabItem[] {\n const items: TabItem[] = [];\n React.Children.forEach(children, (child, idx) => {\n if (!React.isValidElement<TabPanelProps>(child)) return;\n const { tab, tabKey, disabled, closable, forceRender, children: content } = child.props;\n items.push({\n key: tabKey ?? String(idx),\n label: tab,\n children: content,\n disabled,\n closable,\n forceRender,\n });\n });\n return items;\n}\n\nfunction renderPanels(\n items: TabItem[],\n currentKey: string,\n prefixCls: string,\n animated: boolean,\n isHorizontal: boolean,\n destroyInactive: boolean,\n baseId?: string\n): React.ReactNode {\n const activeIdx = items.findIndex((item) => item.key === currentKey);\n const containerStyle: CSSProperties = animated && isHorizontal\n ? { transform: `translate3d(${-activeIdx * 100}%, 0, 0)` }\n : {};\n\n const containerCls = classNames(`${prefixCls}__content-inner`, {\n [`${prefixCls}__content-inner_animated`]: animated && isHorizontal,\n });\n\n return (\n <div className={containerCls} style={containerStyle}>\n {items.map((item) => {\n const isActive = item.key === currentKey;\n const panelCls = classNames(`${prefixCls}__panel`, {\n [`${prefixCls}__panel_active`]: isActive,\n });\n\n if (destroyInactive && !isActive && !item.forceRender) {\n return <div key={item.key} className={panelCls} role=\"tabpanel\" id={baseId ? `${baseId}-panel-${item.key}` : undefined} aria-labelledby={baseId ? `${baseId}-tab-${item.key}` : undefined} />;\n }\n\n return (\n <div key={item.key} className={panelCls} role=\"tabpanel\" id={baseId ? `${baseId}-panel-${item.key}` : undefined} aria-labelledby={baseId ? `${baseId}-tab-${item.key}` : undefined}>\n {item.children}\n </div>\n );\n })}\n </div>\n );\n}\n\nTabs.displayName = 'Tabs';\n\nexport default Tabs;\n","import { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TabPanelProps } from './types';\n\nconst TabPanel = (props: TabPanelProps): React.ReactElement => {\n const {\n active,\n forceRender,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tabs-panel', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_active`]: active,\n });\n\n if (!active && !forceRender) {\n return <div className={cls} />;\n }\n\n return (\n <div className={cls} role=\"tabpanel\" {...otherProps}>\n {children}\n </div>\n );\n};\n\nTabPanel.displayName = 'TabPanel';\n\nexport default TabPanel;\n","import Tabs from './tabs';\nimport TabPanel from './tab-panel';\n\nexport type { TabsProps, TabItem, TabType, TabPosition, TabPanelProps } from './types';\n\ntype ITabs = typeof Tabs & {\n Panel: typeof TabPanel;\n};\n\nconst DefaultTabs = Tabs as ITabs;\nDefaultTabs.Panel = TabPanel;\n\nexport default DefaultTabs;\n","import React from 'react';\nimport { BaseProps } from '../_utils/props';\n\nexport interface CheckableTagProps extends BaseProps {\n defaultChecked?: boolean;\n checked?: boolean;\n onChange?: (checked: boolean, e: React.MouseEvent) => void;\n children?: React.ReactNode;\n}\n\nexport const PresetColors = [\n 'magenta',\n 'red',\n 'volcano',\n 'orange',\n 'gold',\n 'lime',\n 'green',\n 'cyan',\n 'blue',\n 'geekblue',\n 'purple',\n];\n\nexport interface TagProps extends BaseProps, React.PropsWithoutRef<JSX.IntrinsicElements['div']> {\n color?: string;\n closable?: boolean;\n onClose?: React.MouseEventHandler;\n onClick?: React.MouseEventHandler;\n defaultVisible?: boolean;\n visible?: boolean;\n children?: React.ReactNode;\n}\n","import React, { useState, useEffect, MouseEvent, useContext, forwardRef } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { PresetColors, TagProps } from './types';\n\nconst Tag = forwardRef<HTMLDivElement, TagProps>((props, ref) => {\n const {\n closable = false,\n defaultVisible = true,\n prefixCls: customisedCls,\n color,\n onClose,\n onClick,\n className,\n style,\n children,\n ...otherProps\n } = props;\n const [visible, setVisible] = useState<boolean>(\n 'visible' in props ? (props.visible as boolean) : defaultVisible\n );\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tag', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${color}`]: color && PresetColors.includes(color),\n [`${prefixCls}_visible`]: visible,\n [`${prefixCls}_closeable`]: closable,\n });\n\n /**\n * Callback when the close button is clicked.\n * @param e\n */\n const closeBtnOnClick = (e: MouseEvent<HTMLSpanElement>): void => {\n onClose && onClose(e);\n if (e.defaultPrevented) {\n return;\n }\n !('visible' in props) && setVisible(false);\n };\n\n const tagStyle: React.CSSProperties = {\n backgroundColor: color ? (PresetColors.includes(color) ? undefined : color) : undefined,\n borderColor: color ? (PresetColors.includes(color) ? undefined : color) : undefined,\n color: color ? (PresetColors.includes(color) ? undefined : '#fff') : undefined,\n ...style,\n };\n\n useEffect(() => {\n 'visible' in props && setVisible(props.visible as boolean);\n }, [props]);\n\n return (\n <div {...otherProps} ref={ref} className={cls} style={tagStyle} onClick={onClick}>\n {children}\n {closable && (\n <button type=\"button\" className={`${prefixCls}__close-btn`} onClick={closeBtnOnClick} aria-label=\"Remove\">\n ✕\n </button>\n )}\n </div>\n );\n});\n\nTag.displayName = 'Tag';\n\nexport default Tag;\n","import React, { useState, useEffect, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { CheckableTagProps } from './types';\nimport Tag from './index';\n\nconst CheckableTag = (props: CheckableTagProps): JSX.Element => {\n const {\n defaultChecked = true,\n prefixCls: customisedCls,\n onChange,\n className,\n style,\n children,\n } = props;\n const [checked, setChecked] = useState<boolean>(\n 'checked' in props ? (props.checked as boolean) : defaultChecked\n );\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('checkable-tag', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_checked`]: checked,\n });\n\n /**\n * Callback when the tag itself is clicked.\n */\n const itemOnClick = (e: React.MouseEvent): void => {\n const state = !checked;\n !('checked' in props) && setChecked(state);\n onChange && onChange(state, e);\n };\n\n useEffect(() => {\n 'checked' in props && setChecked(props.checked as boolean);\n }, [props]);\n\n return (\n <Tag className={cls} style={style} onClick={itemOnClick}>\n {children}\n </Tag>\n );\n};\n\nCheckableTag.displayName = 'CheckableTag';\n\nexport default CheckableTag;\n","import Tag from './tag';\nimport CheckableTag from './checkable-tag';\n\ntype ITag = typeof Tag & {\n CheckableTag: typeof CheckableTag;\n};\n\nconst DefaultTag = Tag as ITag;\nDefaultTag.CheckableTag = CheckableTag;\n\nexport default DefaultTag;\n","import React, { useContext, useState, forwardRef } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TextareaProps } from './types';\n\nconst Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>((props, ref) => {\n const {\n disabled = false,\n prefixCls: customisedCls,\n limit,\n counter,\n defaultValue,\n value,\n rows,\n onChange,\n className,\n style,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('textarea', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_disabled`]: disabled,\n });\n const [count, setCount] = useState(0);\n\n const textareaOnChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setCount(e.currentTarget.value.length);\n onChange && onChange(e.currentTarget.value, e);\n };\n\n if (limit || counter) {\n return (\n <span className={`${prefixCls}-container`}>\n <textarea\n {...otherProps}\n ref={ref}\n maxLength={limit}\n rows={rows}\n value={value}\n defaultValue={defaultValue}\n disabled={disabled}\n className={cls}\n style={style}\n onChange={textareaOnChange}\n />\n <span className={`${prefixCls}__counter`}>\n {counter && typeof counter === 'function' ? counter(count) : `${count}/${limit}`}\n </span>\n </span>\n );\n } else {\n return (\n <textarea\n {...props}\n ref={ref}\n rows={rows}\n value={value}\n defaultValue={defaultValue}\n disabled={disabled}\n className={cls}\n style={style}\n onChange={textareaOnChange}\n />\n );\n }\n});\n\nTextarea.displayName = 'Textarea';\n\nexport default Textarea;\n","import Textarea from './textarea';\n\nexport default Textarea;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TimelineItemProps, TimelineProps } from './types';\n\nconst Timeline = React.forwardRef<HTMLUListElement, TimelineProps>((props, ref) => {\n const { position = 'left', prefixCls: customisedCls, className, children, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('timeline', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_${position}`]: position,\n });\n\n return (\n <ul {...otherProps} ref={ref} className={cls}>\n {React.Children.map(children, (child, idx) => {\n const childElement = child as React.FunctionComponentElement<TimelineItemProps>;\n if (childElement.type.displayName === 'TimelineItem') {\n const childProps: Partial<TimelineItemProps> = {\n className:\n position === 'center'\n ? idx % 2 === 0\n ? `${prefixCls}-item_left`\n : `${prefixCls}-item_right`\n : childElement.props.className,\n };\n return React.cloneElement(childElement, childProps);\n } else {\n return null;\n }\n })}\n </ul>\n );\n});\n\nTimeline.displayName = 'Timeline';\n\nexport default Timeline;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TimelineItemProps } from './types';\n\nconst TimelineItem = React.forwardRef<HTMLLIElement, TimelineItemProps>((props, ref) => {\n const { dot, dotStyle, className, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('timeline-item', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return (\n <li {...otherProps} ref={ref} className={cls}>\n <div className={`${prefixCls}__head`}>\n <div className={`${prefixCls}__dot-container`}>\n {dot || <span className={`${prefixCls}__dot`} style={dotStyle} />}\n </div>\n </div>\n <div className={`${prefixCls}__content`}>{children}</div>\n </li>\n );\n});\n\nTimelineItem.displayName = 'TimelineItem';\n\nexport default TimelineItem;\n","import Timeline from './timeline';\nimport TimelineItem from './timeline-item';\n\ntype ITimeline = typeof Timeline & {\n Item: typeof TimelineItem;\n};\n\nconst DefaultTimeline = Timeline as ITimeline;\nDefaultTimeline.Item = TimelineItem;\n\nexport default DefaultTimeline;\n","import { useRef, useEffect, useCallback } from 'react';\nimport classNames from 'classnames';\n\nexport interface TimePanelProps {\n value: number;\n items: number[];\n disabledItems?: number[];\n onChange: (num: number) => void;\n prefixCls: string;\n}\n\nconst TimePanel = (props: TimePanelProps): React.ReactElement => {\n const { prefixCls, value, items, disabledItems = [], onChange } = props;\n const panelRef = useRef<HTMLDivElement>(null);\n const itemRefs = useRef<Map<number, HTMLLIElement>>(new Map());\n\n const scrollToItem = useCallback((val: number, smooth = false) => {\n const el = itemRefs.current.get(val);\n if (el && panelRef.current) {\n panelRef.current.scrollTo({\n top: el.offsetTop,\n behavior: smooth ? 'smooth' : 'auto',\n });\n }\n }, []);\n\n useEffect(() => {\n scrollToItem(value);\n }, [value, scrollToItem]);\n\n const handleClick = (num: number) => {\n if (disabledItems.includes(num)) return;\n onChange(num);\n scrollToItem(num, true);\n };\n\n return (\n <div className={`${prefixCls}__column`} ref={panelRef}>\n <ul className={`${prefixCls}__column-list`}>\n {items.map((num) => {\n const isDisabled = disabledItems.includes(num);\n const cls = classNames(`${prefixCls}__cell`, {\n [`${prefixCls}__cell_selected`]: num === value,\n [`${prefixCls}__cell_disabled`]: isDisabled,\n });\n return (\n <li\n key={num}\n ref={(el) => {\n if (el) itemRefs.current.set(num, el);\n }}\n className={cls}\n onClick={() => handleClick(num)}>\n {String(num).padStart(2, '0')}\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n\nexport default TimePanel;\n","import { useEffect, useState, useRef, useCallback, useContext, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { useLocale } from '../_utils/use-locale';\nimport { useClickOutside } from '../_utils/hooks';\nimport Popup from '../popup';\nimport TimePanel from './time-panel';\nimport { TimePickerProps } from './types';\n\nconst ClockIcon = () => (\n <svg viewBox=\"64 64 896 896\" width=\"1em\" height=\"1em\" fill=\"currentColor\">\n <path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" />\n <path d=\"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z\" />\n </svg>\n);\n\nconst ClearIcon = () => (\n <svg viewBox=\"64 64 896 896\" width=\"1em\" height=\"1em\" fill=\"currentColor\">\n <path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\" />\n </svg>\n);\n\nfunction formatTime(date: Date, format: string, use12Hours: boolean): string {\n let h = date.getHours();\n const m = String(date.getMinutes()).padStart(2, '0');\n const s = String(date.getSeconds()).padStart(2, '0');\n let period = '';\n\n if (use12Hours) {\n period = h >= 12 ? ' PM' : ' AM';\n h = h % 12 || 12;\n }\n\n return format\n .replace('HH', String(h).padStart(2, '0'))\n .replace('H', String(h))\n .replace('mm', m)\n .replace('ss', s) + period;\n}\n\nfunction generateSteps(count: number, step: number): number[] {\n const items: number[] = [];\n for (let i = 0; i < count; i += step) {\n items.push(i);\n }\n return items;\n}\n\nfunction showsSeconds(format: string): boolean {\n return format.includes('ss') || format.includes('s');\n}\n\nfunction showsMinutes(format: string): boolean {\n return format.includes('mm') || format.includes('m');\n}\n\nconst TimePicker = (props: TimePickerProps): React.ReactElement => {\n const locale = useLocale();\n const {\n defaultValue,\n value,\n open: controlledOpen,\n format = 'HH:mm:ss',\n use12Hours = false,\n hourStep = 1,\n minuteStep = 1,\n secondStep = 1,\n disabled = false,\n placeholder = locale.TimePicker.selectTime,\n allowClear = true,\n size = 'md',\n inputReadOnly = true,\n disabledTime,\n hideDisabledOptions = false,\n renderExtraFooter,\n suffixIcon,\n onChange,\n onOpenChange,\n className,\n style,\n prefixCls: customisedCls,\n } = props;\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('time-picker', configContext.prefixCls, customisedCls);\n\n const [date, setDate] = useState<Date | null>(value ?? defaultValue ?? null);\n const [open, setOpen] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const isOpen = controlledOpen ?? open;\n\n // Controlled value\n useEffect(() => {\n if (value !== undefined) setDate(value);\n }, [value]);\n\n useEffect(() => {\n if (controlledOpen !== undefined) setOpen(controlledOpen);\n }, [controlledOpen]);\n\n useClickOutside(wrapperRef.current as HTMLDivElement, () => {\n if (controlledOpen === undefined) setOpen(false);\n onOpenChange?.(false);\n });\n\n const toggleOpen = useCallback((val: boolean) => {\n if (controlledOpen === undefined) setOpen(val);\n onOpenChange?.(val);\n }, [controlledOpen, onOpenChange]);\n\n const updateTime = useCallback((type: 'h' | 'm' | 's', num: number) => {\n const base = date ? new Date(date) : new Date();\n if (type === 'h') base.setHours(num);\n else if (type === 'm') base.setMinutes(num);\n else base.setSeconds(num);\n\n if (value === undefined) setDate(base);\n onChange?.(base);\n }, [date, value, onChange]);\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (value === undefined) setDate(null);\n onChange?.(null);\n toggleOpen(false);\n };\n\n // Disabled time calculation\n const disabled12 = useMemo(() => disabledTime?.() ?? {}, [disabledTime]);\n const disabledHours = useMemo(() => disabled12.disabledHours?.() ?? [], [disabled12]);\n const currentHour = date?.getHours() ?? 0;\n const disabledMinutes = useMemo(\n () => disabled12.disabledMinutes?.(currentHour) ?? [],\n [disabled12, currentHour]\n );\n const currentMinute = date?.getMinutes() ?? 0;\n const disabledSeconds = useMemo(\n () => disabled12.disabledSeconds?.(currentHour, currentMinute) ?? [],\n [disabled12, currentHour, currentMinute]\n );\n\n const hours = generateSteps(24, hourStep);\n const minutes = generateSteps(60, minuteStep);\n const seconds = generateSteps(60, secondStep);\n\n const filteredHours = hideDisabledOptions ? hours.filter((h) => !disabledHours.includes(h)) : hours;\n const filteredMinutes = hideDisabledOptions ? minutes.filter((m) => !disabledMinutes.includes(m)) : minutes;\n const filteredSeconds = hideDisabledOptions ? seconds.filter((s) => !disabledSeconds.includes(s)) : seconds;\n\n const hasValue = date !== null;\n const displayValue = hasValue ? formatTime(date, format, use12Hours) : '';\n\n const cls = classNames(prefixCls, className, `${prefixCls}_${size}`, {\n [`${prefixCls}_disabled`]: disabled,\n [`${prefixCls}_open`]: isOpen,\n [`${prefixCls}_has-value`]: hasValue,\n });\n\n const renderOverlay = () => (\n <div className={`${prefixCls}__dropdown`}>\n <div className={`${prefixCls}__panel`}>\n <TimePanel\n prefixCls={prefixCls}\n value={date?.getHours() ?? 0}\n items={filteredHours}\n disabledItems={hideDisabledOptions ? [] : disabledHours}\n onChange={(h) => updateTime('h', h)}\n />\n {showsMinutes(format) && (\n <TimePanel\n prefixCls={prefixCls}\n value={date?.getMinutes() ?? 0}\n items={filteredMinutes}\n disabledItems={hideDisabledOptions ? [] : disabledMinutes}\n onChange={(m) => updateTime('m', m)}\n />\n )}\n {showsSeconds(format) && (\n <TimePanel\n prefixCls={prefixCls}\n value={date?.getSeconds() ?? 0}\n items={filteredSeconds}\n disabledItems={hideDisabledOptions ? [] : disabledSeconds}\n onChange={(s) => updateTime('s', s)}\n />\n )}\n </div>\n {renderExtraFooter && (\n <div className={`${prefixCls}__footer`}>\n {renderExtraFooter()}\n </div>\n )}\n </div>\n );\n\n return (\n <div className={cls} style={style} ref={wrapperRef}>\n <Popup\n trigger=\"manual\"\n placement=\"bottom\"\n arrow={false}\n visible={isOpen}\n content={renderOverlay()}>\n <div\n className={`${prefixCls}__input`}\n onClick={() => !disabled && toggleOpen(!isOpen)}>\n <input\n className={`${prefixCls}__input-field`}\n readOnly={inputReadOnly}\n disabled={disabled}\n placeholder={placeholder}\n value={displayValue}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n onKeyDown={(e) => {\n if (e.key === 'Escape' && isOpen) toggleOpen(false);\n }}\n />\n <span className={`${prefixCls}__suffix`}>\n {allowClear && hasValue && !disabled ? (\n <button type=\"button\" className={`${prefixCls}__clear`} onClick={handleClear} aria-label=\"Clear time\">\n <ClearIcon />\n </button>\n ) : null}\n <span className={`${prefixCls}__icon`}>\n {suffixIcon ?? <ClockIcon />}\n </span>\n </span>\n </div>\n </Popup>\n </div>\n );\n};\n\nTimePicker.displayName = 'TimePicker';\n\nexport default TimePicker;\n","import TimePicker from './time-picker';\n\nexport type { TimePickerProps, DisabledTime } from './types';\nexport type { TimePanelProps } from './time-panel';\n\nexport default TimePicker;\n","import React, { ChangeEvent, ReactNode, useContext, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BaseProps } from '../_utils/props';\nimport { TransferItem } from './types';\nimport Checkbox from '../checkbox/checkbox';\nimport CheckboxGroup from '../checkbox/checkbox-group';\nimport Empty from '../empty';\nimport Input from '../input/input';\n\nexport interface TransferPanelProps\n extends BaseProps,\n Omit<React.PropsWithRef<JSX.IntrinsicElements['div']>, 'title' | 'onChange'> {\n dataSource: TransferItem[];\n checkedKeys: string[];\n onChange: (checkedKeys: string[]) => void;\n disabled: boolean;\n title?: ReactNode;\n footer?: ReactNode;\n placeholder?: string;\n showSearch?: boolean;\n renderItem?: (item: TransferItem) => ReactNode;\n filterOption?: (input: string, item: TransferItem) => boolean;\n}\n\nconst TransferPanel = React.forwardRef<HTMLDivElement, TransferPanelProps>(\n (props: TransferPanelProps, ref): React.ReactElement => {\n const {\n dataSource,\n checkedKeys,\n title,\n placeholder,\n footer,\n showSearch,\n className,\n onChange,\n renderItem,\n filterOption,\n disabled: allDisabled,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('transfer-panel', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const [query, setQuery] = useState('');\n\n const getFilteredData = (): TransferItem[] => {\n return dataSource.filter((item) => {\n if (typeof filterOption === 'function') {\n return filterOption(query, item);\n } else if (query.trim().length > 0) {\n const label = item.label;\n return label.toLowerCase().includes(query.toLowerCase());\n } else {\n return true;\n }\n });\n };\n\n const filteredData = getFilteredData();\n const checkableData = filteredData.filter((item) => !item.disabled);\n const isAllChecked = checkableData.length > 0 && checkedKeys.length === checkableData.length;\n const isIndeterminate = checkedKeys.length > 0 && checkedKeys.length < checkableData.length;\n\n /**\n * Footer checkbox onChange event\n */\n const handleAllCheckedChange = (e: ChangeEvent<HTMLInputElement>) => {\n const isChecked = e.currentTarget.checked;\n const checkedKeys = isChecked ? checkableData.map((item) => item.key) : [];\n onChange(checkedKeys);\n };\n\n const checkedSummary = (): string => {\n if (isIndeterminate || isAllChecked) {\n return `${checkedKeys.length} / ${filteredData.length} checked`;\n }\n return `${filteredData.length} items`;\n };\n\n return (\n <div {...otherProps} className={cls} ref={ref}>\n {title && <div className={`${prefixCls}__header`}>{title}</div>}\n <div className={`${prefixCls}__body`}>\n {showSearch && (\n <div className={`${prefixCls}__input-container`}>\n <Input\n clearable\n size=\"sm\"\n placeholder={placeholder}\n value={query}\n onChange={(e) => {\n setQuery(e.currentTarget.value);\n }}\n onClearClick={() => setQuery('')}\n />\n </div>\n )}\n <div className={`${prefixCls}__list-container`}>\n {filteredData.length > 0 ? (\n <CheckboxGroup\n value={checkedKeys}\n onChange={(values) => onChange(values)}\n className={`${prefixCls}__list`}>\n {filteredData.map((item) => {\n const { key, label, disabled } = item;\n return (\n <Checkbox\n key={key}\n value={key}\n disabled={allDisabled || disabled}\n className={`${prefixCls}__list-item`}>\n {renderItem ? renderItem(item) : label}\n </Checkbox>\n );\n })}\n </CheckboxGroup>\n ) : (\n <Empty className={`${prefixCls}__not-found`} />\n )}\n </div>\n </div>\n <div className={`${prefixCls}__footer`}>\n <Checkbox\n disabled={allDisabled}\n checked={isAllChecked}\n onChange={handleAllCheckedChange}\n indeterminate={isIndeterminate}>\n {checkedSummary()}\n </Checkbox>\n {footer}\n </div>\n </div>\n );\n }\n);\n\nTransferPanel.displayName = 'TransferPanel';\n\nexport default TransferPanel;\n","import React, { useCallback, useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ArrowDown } from '../_utils/components';\nimport { TransferProps, TransferItem } from './types';\nimport TransferPanel from './transfer-panel';\nimport Button from '../button/button';\n\nconst Transfer = React.forwardRef<HTMLDivElement, TransferProps>(\n (props: TransferProps, ref): React.ReactElement => {\n const {\n dataSource = [],\n defaultValue = [],\n buttonTexts = [],\n showSearch = false,\n disabled = false,\n value,\n titles,\n placeholders,\n className,\n onChange,\n renderItem,\n filterOption,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('transfer', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n const getDataKeys = useCallback((): [TransferItem[], TransferItem[]] => {\n const rightKeys: string[] = 'value' in props ? (value as string[]) : defaultValue;\n const rightData: TransferItem[] = dataSource.filter((item) => rightKeys.includes(item.key));\n const leftData: TransferItem[] = dataSource.filter((item) => !rightKeys.includes(item.key));\n return [leftData, rightData];\n }, [props, value, dataSource, defaultValue]);\n\n const [leftData, rightData] = getDataKeys();\n const [sourceData, setSourceData] = useState<TransferItem[]>(leftData);\n const [targetData, setTargetData] = useState<TransferItem[]>(rightData);\n const [leftCheckedKeys, setLeftCheckedKeys] = useState<string[]>([]);\n const [rightCheckedKeys, setRightCheckedKeys] = useState<string[]>([]);\n\n const addToLeft = () => {\n const leftKeys = sourceData.map((item) => item.key);\n const currKeys = leftKeys.slice();\n rightCheckedKeys.forEach((key) => {\n if (!leftKeys.includes(key)) {\n currKeys.push(key);\n }\n });\n\n const targetData = dataSource.filter((item) => !currKeys.includes(item.key));\n if (!('value' in props)) {\n setRightCheckedKeys([]);\n setSourceData([...dataSource.filter((item) => currKeys.includes(item.key))]);\n setTargetData([...targetData]);\n }\n const targetKey = targetData.map((item) => item.key);\n onChange && onChange(targetKey, 'left', rightCheckedKeys);\n };\n\n const addToRight = () => {\n const rightKeys = targetData.map((item) => item.key);\n const currKeys = rightKeys.slice();\n leftCheckedKeys.forEach((key) => {\n if (!rightKeys.includes(key)) {\n currKeys.push(key);\n }\n });\n\n if (!('value' in props)) {\n setLeftCheckedKeys([]);\n setSourceData([...dataSource.filter((item) => !currKeys.includes(item.key))]);\n setTargetData([...dataSource.filter((item) => currKeys.includes(item.key))]);\n }\n onChange && onChange(currKeys, 'right', leftCheckedKeys);\n };\n\n useEffect(() => {\n if ('value' in props) {\n const rightKeys = props.value as string[];\n const rightData: TransferItem[] = dataSource.filter((item) => rightKeys.includes(item.key));\n const leftData: TransferItem[] = dataSource.filter((item) => !rightKeys.includes(item.key));\n setSourceData(leftData);\n setTargetData(rightData);\n setLeftCheckedKeys([]);\n setRightCheckedKeys([]);\n }\n }, [props, dataSource]);\n\n return (\n <div {...otherProps} className={cls} ref={ref}>\n <TransferPanel\n title={titles && titles[0]}\n placeholder={(placeholders && placeholders[0]) || 'search'}\n showSearch={showSearch}\n dataSource={sourceData}\n checkedKeys={leftCheckedKeys}\n disabled={disabled}\n onChange={(keys: string[]) => setLeftCheckedKeys(keys)}\n renderItem={renderItem}\n filterOption={filterOption}\n />\n <div className={`${prefixCls}__buttons`}>\n <Button\n btnType=\"primary\"\n size=\"sm\"\n onClick={addToRight}\n disabled={leftCheckedKeys.length === 0}>\n <ArrowDown size={12} className={`${prefixCls}__left-arrow`} />\n {buttonTexts && buttonTexts[0] !== undefined && <span>{buttonTexts[0]}</span>}\n </Button>\n <Button\n btnType=\"primary\"\n size=\"sm\"\n onClick={addToLeft}\n disabled={rightCheckedKeys.length === 0}>\n {buttonTexts && buttonTexts[1] !== undefined && <span>{buttonTexts[1]}</span>}\n <ArrowDown size={12} className={`${prefixCls}__right-arrow`} />\n </Button>\n </div>\n <TransferPanel\n title={titles && titles[1]}\n placeholder={(placeholders && placeholders[1]) || 'search'}\n showSearch={showSearch}\n dataSource={targetData}\n checkedKeys={rightCheckedKeys}\n disabled={disabled}\n onChange={(keys: string[]) => setRightCheckedKeys(keys)}\n renderItem={renderItem}\n filterOption={filterOption}\n />\n </div>\n );\n }\n);\n\nTransfer.displayName = 'Transfer';\n\nexport default Transfer;\n","import Transfer from './transfer';\n\nexport default Transfer;\n","import React from 'react';\nimport { TreeData } from './types';\n\nexport type Node = {\n // data source key provided by user\n key?: string;\n // unique key managed by TreeInstance. x-x-x\n uniqueKey: string;\n title: React.ReactNode;\n checked: boolean;\n indeterminate: boolean;\n expanded: boolean;\n disabled: boolean;\n disableCheckbox: boolean;\n parentKey: string;\n icon?: (isExpanded: boolean) => React.ReactNode;\n children?: Node[];\n};\n\nexport class TreeInstance {\n private readonly treeNodes: Node[];\n\n constructor(\n data: TreeData[],\n defaultCheckedKeys: string[],\n defaultExpandedKeys: string[],\n defaultExpandAll: boolean\n ) {\n this.treeNodes = this.handleTreeNode(\n data,\n defaultCheckedKeys,\n defaultExpandedKeys,\n defaultExpandAll,\n ''\n );\n }\n\n private handleTreeNode(\n data: TreeData[],\n defaultCheckedKeys: string[],\n defaultExpandedKeys: string[],\n defaultExpandAll: boolean,\n parentKey: string\n ): Node[] {\n return data.map((item, idx) => {\n const { key, title, children, disableCheckbox, disabled, ...otherProps } = item;\n const uniqueKey = parentKey ? parentKey + `-${idx}` : `${idx}`;\n const node: Node = {\n ...otherProps,\n key,\n uniqueKey,\n title: title || '---',\n disabled: disabled || false,\n disableCheckbox: disableCheckbox || false,\n checked: key ? defaultCheckedKeys.includes(key) : false,\n indeterminate: false,\n expanded: defaultExpandAll || (key ? defaultExpandedKeys.includes(key) : false),\n parentKey,\n };\n\n if (children) {\n node.children = this.handleTreeNode(\n children,\n defaultCheckedKeys,\n defaultExpandedKeys,\n defaultExpandAll,\n uniqueKey\n );\n const indeterminate = this.isIndeterminate(node);\n return {\n ...node,\n indeterminate,\n };\n }\n return node;\n });\n }\n\n get nodes(): Node[] {\n return this.treeNodes;\n }\n\n getNodeByUniqueKey(uniqueKey: string): Node | undefined {\n const keys = uniqueKey.split('-').map((item) => parseInt(item));\n\n let curr: Node[] | undefined = this.treeNodes;\n let target: Node | undefined = undefined;\n for (const key of keys) {\n if (curr) {\n target = curr[key];\n curr = target?.children;\n }\n }\n\n return target;\n }\n\n isIndeterminate(node: Node): boolean {\n if (node.children) {\n if (node.children.some((n) => n.indeterminate)) {\n return true;\n }\n const numOfChecked = node.children.filter((n) => n.checked).length;\n return numOfChecked > 0 && numOfChecked < node.children.length;\n }\n return false;\n }\n\n checkChildren(children: Node[], isChecked: boolean): void {\n children.forEach((child) => {\n if (child.disabled) {\n return;\n }\n\n child.checked = isChecked;\n child.indeterminate = this.isIndeterminate(child);\n if (child.children) {\n this.checkChildren(child.children, isChecked);\n }\n });\n }\n\n checkParent(node: Node): void {\n if (node.disabled) {\n return;\n }\n\n const children = node.children as Node[];\n const numOfChecked = children.filter((n) => n.checked).length;\n node.checked = numOfChecked === children.length;\n node.indeterminate = this.isIndeterminate(node);\n const parentNode = this.getNodeByUniqueKey(node.parentKey);\n if (parentNode) {\n this.checkParent(parentNode);\n }\n }\n\n setNodeChecked(uniqueKey: string, isChecked: boolean): void {\n const node = this.getNodeByUniqueKey(uniqueKey);\n if (node) {\n node.checked = isChecked;\n // update children node\n // if children are existing, make them all checked\n if (node.children) {\n this.checkChildren(node.children, isChecked);\n }\n node.indeterminate = this.isIndeterminate(node);\n // check parent node\n // if siblings of current node are all checked, set the parent node checked\n const parentNode = this.getNodeByUniqueKey(node.parentKey);\n if (parentNode) {\n this.checkParent(parentNode);\n }\n }\n }\n\n setNodeExpanded(uniqueKey: string, isExpanded: boolean): void {\n const node = this.getNodeByUniqueKey(uniqueKey);\n if (node) {\n node.expanded = isExpanded;\n }\n }\n\n /**\n * Check whether the value of a specific prop is true\n */\n private isPropValueTrue(node: Node, prop: string, list: string[]): void {\n const { key, uniqueKey, children } = node;\n if ((node as any)[prop]) {\n list.push(key ? key : uniqueKey);\n }\n if (children) {\n children.forEach((child) => {\n this.isPropValueTrue(child, prop, list);\n });\n }\n }\n\n getCheckedKeys(): string[] {\n const keys: string[] = [];\n this.nodes.forEach((node) => this.isPropValueTrue(node, 'checked', keys));\n return keys;\n }\n\n getExpandedKeys(): string[] {\n const keys: string[] = [];\n this.nodes.forEach((node) => this.isPropValueTrue(node, 'expanded', keys));\n return keys;\n }\n}\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { BaseProps } from '../_utils/props';\nimport { TreeArrow } from '../_utils/components';\nimport CollapseTransition from '../collapse-transition';\nimport Checkbox from '../checkbox/checkbox';\nimport { Node } from './tree-instance';\n\ninterface TreeNodeProps extends BaseProps {\n node: Node;\n level: number;\n treeClassName: string;\n onCheckboxChange: (uniqueKey: string, e: React.ChangeEvent<HTMLInputElement>) => void;\n onExpandChange: (key: string, isExpanded: boolean, e: React.MouseEvent) => void;\n // tree props\n indent: number;\n blockNode: boolean;\n checkable: boolean;\n disabled: boolean;\n icon?: (isExpanded: boolean) => React.ReactNode;\n}\n\nconst TreeNode = (props: TreeNodeProps): JSX.Element => {\n const {\n indent,\n blockNode,\n level,\n node,\n checkable,\n className,\n treeClassName,\n onCheckboxChange,\n onExpandChange,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tree-node', configContext.prefixCls, customisedCls);\n const { title, checked, icon, expanded, disableCheckbox, indeterminate } = node;\n const nodeIcon = icon || props.icon;\n const disabled = node.disabled || props.disabled;\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_block`]: blockNode,\n [`${prefixCls}_disabled`]: disabled,\n });\n\n const switcherOnClick = (e: React.MouseEvent<HTMLSpanElement>) => {\n e.stopPropagation();\n onExpandChange(node.uniqueKey, !expanded, e);\n };\n\n const checkboxOnChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n e.stopPropagation();\n onCheckboxChange(node.uniqueKey, e);\n };\n\n return (\n <li className={cls} role=\"treeitem\" aria-expanded={node.children ? expanded : undefined}>\n <div className={`${prefixCls}__title`} style={{ paddingLeft: indent * level }}>\n <span className={`${prefixCls}__switcher`} onClick={switcherOnClick}>\n {node.children &&\n (nodeIcon ? (\n nodeIcon(expanded)\n ) : (\n <TreeArrow\n className={classNames(`${prefixCls}__arrow`, {\n [`${prefixCls}__arrow_active`]: expanded,\n })}\n />\n ))}\n </span>\n {checkable && (\n <Checkbox\n checked={checked}\n indeterminate={indeterminate}\n onChange={checkboxOnChange}\n disabled={disabled || disableCheckbox}\n />\n )}\n <span className={`${prefixCls}__label`} onClick={switcherOnClick}>\n {title}\n </span>\n </div>\n {node.children && (\n <CollapseTransition isShow={expanded}>\n <ul className={treeClassName} role=\"group\" aria-level={level + 1}>\n {node.children &&\n node.children.map((node) => (\n <TreeNode {...props} key={node.uniqueKey} node={node} level={level + 1} />\n ))}\n </ul>\n </CollapseTransition>\n )}\n </li>\n );\n};\n\nTreeNode.displayName = 'TreeNode';\n\nexport default TreeNode;\n","import React, { useContext, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TreeProps } from './types';\nimport { TreeInstance } from './tree-instance';\nimport TreeNode from './tree-node';\n\nconst Tree = React.forwardRef<HTMLUListElement, TreeProps>(\n (props: TreeProps, ref): JSX.Element => {\n const {\n data = [],\n defaultCheckedKeys = [],\n defaultExpandedKeys = [],\n defaultExpandAll = false,\n indent = 20,\n blockNode = true,\n checkable = false,\n disabled = false,\n onCheck,\n onExpand,\n className,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('tree', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n const treeInstance = useRef(\n new TreeInstance(data, defaultCheckedKeys, defaultExpandedKeys, defaultExpandAll)\n );\n const [treeNodes, setTreeNodes] = useState(treeInstance.current.nodes);\n\n const onCheckboxChange = (key: string, e: React.ChangeEvent<HTMLInputElement>) => {\n const tree = treeInstance.current;\n tree.setNodeChecked(key, e.currentTarget.checked);\n setTreeNodes([...treeInstance.current.nodes]);\n onCheck && onCheck(tree.getCheckedKeys(), e);\n };\n\n const onExpandChange = (key: string, isExpanded: boolean, e: React.MouseEvent) => {\n const tree = treeInstance.current;\n tree.setNodeExpanded(key, isExpanded);\n setTreeNodes([...treeInstance.current.nodes]);\n onExpand && onExpand(tree.getExpandedKeys(), e);\n };\n\n return (\n <ul className={cls} ref={ref} role=\"tree\" aria-level={0}>\n {treeNodes.map((item) => (\n <TreeNode\n {...props}\n key={item.uniqueKey}\n node={item}\n level={0}\n indent={indent}\n blockNode={blockNode}\n checkable={checkable}\n disabled={disabled}\n treeClassName={cls}\n onCheckboxChange={onCheckboxChange}\n onExpandChange={onExpandChange}\n />\n ))}\n </ul>\n );\n }\n);\n\nTree.displayName = 'Tree';\n\nexport default Tree;\n","import Tree from './tree';\n\nexport default Tree;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TypographyProps } from './types';\n\nconst Typography = React.forwardRef<HTMLParagraphElement, TypographyProps>(\n (props: TypographyProps, ref): JSX.Element => {\n const { className, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('typography', configContext.prefixCls, customisedCls);\n const cls = classNames(className, prefixCls);\n return (\n <div ref={ref} className={cls} {...otherProps}>\n {children}\n </div>\n );\n }\n);\n\nTypography.displayName = 'Typography';\n\nexport default Typography;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { ParagraphProps } from './types';\n\nconst Paragraph = React.forwardRef<HTMLParagraphElement, ParagraphProps>(\n (props: ParagraphProps, ref): JSX.Element => {\n const { className, children, prefixCls: customisedCls, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('typography', configContext.prefixCls, customisedCls);\n const cls = classNames(className, prefixCls);\n return (\n <p ref={ref} className={cls} {...otherProps}>\n {children}\n </p>\n );\n }\n);\n\nParagraph.displayName = 'Paragraph';\n\nexport default Paragraph;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { TextProps } from './types';\n\nconst tagGenerator = (\n isRequired: boolean,\n tag: string,\n element: React.ReactNode\n): React.ReactNode => {\n if (!isRequired) return element;\n return React.createElement(tag, {}, element);\n};\n\nconst Text = (props: TextProps): JSX.Element => {\n const {\n code = false,\n del = false,\n underline = false,\n strong = false,\n italic = false,\n mark = false,\n sub = false,\n sup = false,\n className,\n children,\n prefixCls: customisedCls,\n ...otherProps\n } = props;\n\n let Node = tagGenerator(code, 'code', children);\n Node = tagGenerator(del, 'del', Node);\n Node = tagGenerator(underline, 'u', Node);\n Node = tagGenerator(strong, 'strong', Node);\n Node = tagGenerator(italic, 'i', Node);\n Node = tagGenerator(mark, 'mark', Node);\n Node = tagGenerator(sub, 'sub', Node);\n Node = tagGenerator(sup, 'sup', Node);\n\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('typography', configContext.prefixCls, customisedCls);\n const cls = classNames(className, prefixCls);\n\n return (\n <span {...otherProps} className={cls}>\n {Node}\n </span>\n );\n};\n\nexport default Text;\n","import Heading from './heading';\nimport Typography from './typography';\nimport Paragraph from './paragraph';\nimport Text from './text';\n\ntype ITypography = typeof Typography & {\n Heading: typeof Heading;\n Paragraph: typeof Paragraph;\n Text: typeof Text;\n};\n\nconst DefaultTypo = Typography as ITypography;\nDefaultTypo.Heading = Heading;\nDefaultTypo.Paragraph = Paragraph;\nDefaultTypo.Text = Text;\n\nexport default DefaultTypo;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport { HeadingProps } from './types';\n\nconst headingGenerator = (htmlType: string, displayName: string) => {\n const Component = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n (props: HeadingProps, ref): JSX.Element => {\n const { prefixCls: customisedCls, className, children, ...otherProps } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('typography', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className);\n\n return React.createElement(\n htmlType,\n {\n ...otherProps,\n ref,\n className: cls,\n },\n children\n );\n }\n );\n\n Component.displayName = displayName;\n\n return Component;\n};\n\nconst Heading = (props: HeadingProps): JSX.Element | null => {\n const { level = 1, ...otherProps } = props;\n if (level < 1 || level > 6) {\n console.warn('The heading level parameter is invalid.');\n return null;\n }\n const Component = headingGenerator(`h${level}`, `H${level}`);\n return <Component {...otherProps} />;\n};\n\nexport default Heading;\n","type AjaxOption = {\n action: string;\n file: File;\n filename: string;\n method: string;\n onProgress: (percent: number) => void;\n onSuccess: (e: ProgressEvent) => void;\n onError: (e: ProgressEvent) => void;\n headers?: { [key: string]: string };\n withCredentials?: boolean;\n data?: { [key: string]: string };\n};\n\nexport default function ajax(option: AjaxOption): XMLHttpRequest {\n const { action, file, filename, method, onProgress, onSuccess, onError, headers, withCredentials, data } = option;\n const xhr = new XMLHttpRequest();\n xhr.open(method, action, true);\n xhr.onerror = onError;\n xhr.onload = onSuccess;\n if (xhr.upload) {\n xhr.upload.onprogress = function progress(e: ProgressEvent): void {\n if (e.total > 0) {\n const percent = (e.loaded / e.total) * 100;\n onProgress(percent);\n }\n };\n }\n\n if (withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n const formData = new FormData();\n formData.append(filename, file);\n // Add extra data\n if (data) {\n Object.keys(data).forEach((key) => {\n formData.append(key, data[key]);\n });\n }\n\n if (headers) {\n for (const item in headers) {\n if (headers[item]) {\n xhr.setRequestHeader(item, headers[item]);\n }\n }\n }\n\n xhr.send(formData);\n return xhr;\n}\n","import { CheckCircle, CloseCircle, LoadingCircle, PaperClip } from '../_utils/components';\nimport Progress from '../progress';\nimport { UploadFile } from './types';\n\ntype UploadListProps = {\n prefixCls: string;\n fileList: UploadFile[];\n onRemove: (file: UploadFile) => void;\n};\n\nconst UploadList = (props: UploadListProps): JSX.Element => {\n const { prefixCls, fileList, onRemove } = props;\n\n return (\n <ul className={`${prefixCls}__upload-list`}>\n {fileList.map((file) => {\n const { uid, name, status, percent } = file;\n return (\n <li key={uid} className={`${prefixCls}__upload-list-item`}>\n <div className={`${prefixCls}__upload-list-item-container`}>\n <PaperClip size={11} color=\"rgba(0, 0, 0, 0.45)\" />\n <span className={`${prefixCls}__upload-list-item-name`}>{name}</span>\n <span className={`${prefixCls}__upload-list-item-status`}>\n {status === 'done' && <CheckCircle size={16} />}\n {status === 'error' && <CloseCircle size={16} />}\n {status === 'uploading' && (\n <LoadingCircle\n style={{ animation: 'ty-rotate 1s linear infinite' }}\n color=\"#1890ff\"\n size={16}\n />\n )}\n </span>\n <span\n className={`${prefixCls}__upload-list-item-delete`}\n onClick={(): void => onRemove && onRemove(file)}>\n ✕\n </span>\n </div>\n {status === 'uploading' && (\n <Progress.Bar\n strokeColor=\"blue\"\n percent={percent}\n showInfo={false}\n style={{ marginTop: 5 }}\n strokeWidth={2}\n />\n )}\n </li>\n );\n })}\n </ul>\n );\n};\n\nUploadList.displayName = 'UploadList';\n\nexport default UploadList;\n","import React, { useState } from 'react';\nimport classNames from 'classnames';\n\nexport interface DraggerCoverProps {\n onFile: (files: FileList) => void;\n disabled: boolean;\n prefixCls?: string;\n children?: React.ReactNode;\n}\n\nconst DraggerCover = (props: DraggerCoverProps): JSX.Element => {\n const { onFile, disabled, prefixCls, children } = props;\n const [dragOver, setDragOver] = useState(false);\n const cls = classNames(`${prefixCls}__dragger-cover`, {\n [`${prefixCls}__dragger-cover_dragover`]: dragOver,\n [`${prefixCls}__dragger-cover_disabled`]: disabled,\n });\n\n const handleDragOver = (e: React.DragEvent<HTMLDivElement>, isOver: boolean): void => {\n e.preventDefault();\n if (!disabled) {\n setDragOver(isOver);\n }\n };\n\n const handleDrop = (e: React.DragEvent<HTMLDivElement>): void => {\n e.preventDefault();\n if (!disabled) {\n setDragOver(false);\n onFile(e.dataTransfer.files);\n }\n };\n\n return (\n <div\n className={cls}\n onDragOver={(e): void => handleDragOver(e, true)}\n onDragLeave={(e): void => handleDragOver(e, false)}\n onDrop={handleDrop}>\n {children}\n </div>\n );\n};\n\nDraggerCover.displayName = 'DraggerCover';\n\nexport default DraggerCover;\n","import React, { useContext, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider/config-context';\nimport { getPrefixCls } from '../_utils/general';\nimport ajax from './ajax';\nimport UploadList from './upload-list';\nimport DraggerCover from './dragger-cover';\nimport { UploadFile, UploadProps } from './types';\n\nconst Upload = React.forwardRef<HTMLDivElement, UploadProps>((props, ref) => {\n const {\n defaultFileList = [],\n httpRequest = ajax,\n disabled = false,\n method = 'post',\n headers,\n withCredentials,\n accept,\n action,\n multiple,\n name,\n data,\n drag,\n beforeUpload,\n limit,\n onExceed,\n onProgress,\n onSuccess,\n onError,\n onChange,\n onRemove,\n tip,\n className,\n style,\n children,\n prefixCls: customisedCls,\n } = props;\n const configContext = useContext(ConfigContext);\n const prefixCls = getPrefixCls('upload', configContext.prefixCls, customisedCls);\n const cls = classNames(prefixCls, className, {\n [`${prefixCls}_disabled`]: disabled,\n });\n const fileRef = useRef<HTMLInputElement | null>(null);\n const [fileList, setFileList] = useState<UploadFile[]>(\n 'fileList' in props && Array.isArray(props.fileList) ? props.fileList : defaultFileList\n );\n\n const updateFileList = (updateFile: UploadFile, targetObj: Partial<UploadFile>): void => {\n setFileList((prevState) =>\n prevState.map((file: UploadFile) => {\n if (file.uid === updateFile.uid) {\n return { ...file, ...targetObj };\n } else {\n return file;\n }\n })\n );\n };\n\n const xhrOnProgress = (percent: number, uploadFile: UploadFile): void => {\n const updateObj: Partial<UploadFile> = { percent, status: 'uploading' };\n updateFileList(uploadFile, updateObj);\n onProgress && onProgress(percent, { ...uploadFile, ...updateObj }, fileList);\n };\n\n const xhrOnComplete = (e: ProgressEvent, uploadFile: UploadFile): void => {\n const updateObj: Partial<UploadFile> = { status: 'done' };\n updateFileList(uploadFile, updateObj);\n const updatedUploadFile = { ...uploadFile, ...updateObj };\n onSuccess && onSuccess(e, updatedUploadFile, fileList);\n onChange && onChange(updatedUploadFile, fileList);\n };\n\n const xhrOnError = (e: ProgressEvent, uploadFile: UploadFile): void => {\n const updateObj: Partial<UploadFile> = { status: 'error' };\n updateFileList(uploadFile, { status: 'error' });\n const updatedUploadFile = { ...uploadFile, ...updateObj };\n onError && onError(e, updatedUploadFile, fileList);\n onChange && onChange(updatedUploadFile, fileList);\n };\n\n const postRequest = (file: File): void => {\n // Create a upload file instance\n const uploadFile: UploadFile = {\n uid: 'file-' + Date.now(),\n name: file.name,\n status: 'ready',\n percent: 0,\n };\n setFileList((prevState) => [uploadFile, ...prevState]);\n\n httpRequest({\n headers,\n withCredentials,\n file,\n data,\n filename: name || file.name,\n method,\n action,\n onProgress: (percent: number) => xhrOnProgress(percent, uploadFile),\n onSuccess: (e: ProgressEvent) => xhrOnComplete(e, uploadFile),\n onError: (e: ProgressEvent) => xhrOnError(e, uploadFile),\n });\n };\n\n const uploadFiles = (files: FileList): void => {\n if (limit && fileList.length + files.length > limit) {\n onExceed && onExceed(files, fileList);\n return;\n }\n\n const postFiles = Array.from(files);\n postFiles.forEach((file) => {\n if (!beforeUpload) {\n postRequest(file);\n } else {\n const res = beforeUpload(file);\n if (res && res instanceof Promise) {\n res.then((processedFile: File) => postRequest(processedFile));\n } else if (res !== false) {\n postRequest(file);\n }\n }\n });\n };\n\n const handleTriggerOnClick = (): void => {\n if (!disabled) {\n if (fileRef.current) {\n (fileRef.current as HTMLInputElement).click();\n }\n }\n };\n\n const handleFileOnChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const files = e.currentTarget.files;\n if (!files) {\n return;\n }\n uploadFiles(files);\n if (fileRef.current) {\n (fileRef.current as HTMLInputElement).value = '';\n }\n };\n\n const handleOnRemove = (uploadFile: UploadFile): void => {\n setFileList((prevState) => prevState.filter((file) => file.uid !== uploadFile.uid));\n onRemove && onRemove(uploadFile);\n };\n\n return (\n <>\n <div ref={ref} className={cls} style={style} onClick={handleTriggerOnClick}>\n {drag ? (\n <DraggerCover prefixCls={prefixCls} onFile={uploadFiles} disabled={disabled}>\n {children}\n </DraggerCover>\n ) : (\n children\n )}\n {tip && <div className={`${prefixCls}__tip`}>{tip}</div>}\n <input\n ref={fileRef}\n accept={accept}\n multiple={multiple}\n type=\"file\"\n style={{ display: 'none' }}\n onChange={handleFileOnChange}\n />\n </div>\n <UploadList prefixCls={prefixCls} fileList={fileList} onRemove={handleOnRemove} />\n </>\n );\n});\n\nUpload.displayName = 'Upload';\n\nexport default Upload;\n","import Upload from './upload';\n\nexport default Upload;\n","import { useContext, ComponentType } from 'react';\nimport { Locale } from '../locale/types';\nimport IntlContext from './intl-context';\n\nexport function withLocale<T extends { locale?: Locale }>(WrappedComponent: ComponentType<T>) {\n const WithLocale = (props: T) => {\n const locale = useContext(IntlContext);\n return <WrappedComponent {...props} locale={locale} />;\n };\n WithLocale.displayName = `withLocale(${WrappedComponent.displayName || WrappedComponent.name || 'Component'})`;\n return WithLocale;\n}\n","import { Locale } from './types';\n\nconst zh_CN: Locale = {\n locale: 'zh_CN',\n DatePicker: {\n weeks: ['日', '一', '二', '三', '四', '五', '六'],\n months: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n today: '今天',\n selectDate: '请选择日期',\n selectMonth: '请选择月份',\n selectYear: '请选择年份',\n },\n TimePicker: {\n selectTime: '请选择时间',\n },\n Modal: {\n okText: '确定',\n cancelText: '取消',\n },\n PopConfirm: {\n okText: '确定',\n cancelText: '取消',\n },\n Empty: {\n description: '暂无数据',\n },\n Table: {\n sortAscend: '升序排列',\n sortDescend: '降序排列',\n cancelSort: '取消排序',\n selectAll: '全选',\n selectNone: '取消全选',\n emptyText: '暂无数据',\n },\n ColorPicker: {\n hex: 'HEX',\n rgb: 'RGB',\n hsb: 'HSB',\n },\n};\n\nexport default zh_CN;\n","import { useSyncExternalStore, useCallback } from 'react';\n\nexport type ThemeMode = 'light' | 'dark' | 'system';\n\nconst STORAGE_KEY = 'ty-theme';\n\nfunction getSystemTheme(): 'light' | 'dark' {\n if (typeof window === 'undefined') return 'light';\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n}\n\nfunction applyTheme(mode: ThemeMode): void {\n if (typeof document === 'undefined') return;\n document.documentElement.setAttribute('data-tiny-theme', mode);\n}\n\nfunction readStoredTheme(): ThemeMode {\n if (typeof localStorage === 'undefined') return 'light';\n return (localStorage.getItem(STORAGE_KEY) as ThemeMode) || 'light';\n}\n\n// ---- Shared store ----\nlet currentMode: ThemeMode = readStoredTheme();\nconst listeners = new Set<() => void>();\n\nfunction getSnapshot(): ThemeMode {\n return currentMode;\n}\n\nfunction getServerSnapshot(): ThemeMode {\n return 'light';\n}\n\nfunction subscribe(cb: () => void): () => void {\n listeners.add(cb);\n return () => listeners.delete(cb);\n}\n\nfunction setThemeMode(next: ThemeMode): void {\n currentMode = next;\n localStorage.setItem(STORAGE_KEY, next);\n applyTheme(next);\n listeners.forEach((cb) => cb());\n}\n\n// Listen for system preference changes at module level\nif (typeof window !== 'undefined' && typeof window.matchMedia === 'function') {\n window\n .matchMedia('(prefers-color-scheme: dark)')\n .addEventListener('change', () => {\n if (currentMode === 'system') {\n // Force re-render for all subscribers so resolvedTheme updates\n listeners.forEach((cb) => cb());\n }\n });\n}\n\n// ---- Hook ----\nexport function useTheme() {\n const mode = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n const resolvedTheme: 'light' | 'dark' = mode === 'system' ? getSystemTheme() : mode;\n\n const setMode = useCallback((newMode: ThemeMode) => {\n setThemeMode(newMode);\n }, []);\n\n const toggle = useCallback(() => {\n const resolved = currentMode === 'system' ? getSystemTheme() : currentMode;\n setThemeMode(resolved === 'light' ? 'dark' : 'light');\n }, []);\n\n return { mode, resolvedTheme, setMode, toggle };\n}\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__442__","__WEBPACK_EXTERNAL_MODULE__3__","m","createRoot","hydrateRoot","f","k","Symbol","for","l","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","Fragment","jsx","jsxs","hasOwn","classNames","classes","i","arguments","length","arg","appendClass","parseValue","Array","isArray","apply","toString","includes","value","newClass","default","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","definition","o","defineProperty","enumerable","get","obj","prop","r","toStringTag","ConfigContext","React","prefixCls","componentSize","shimmer","space","getPrefixCls","suffixCls","contextPrefix","customisedCls","ArrowDown","size","color","otherProps","_jsx","width","height","viewBox","children","fill","PaperClip","CheckCircle","CloseCircle","WarningCircle","InfoCircle","LoadingCircle","Check","Close","_jsxs","Eye","EyeClose","TreeArrow","_extends","assign","bind","t","_objectWithoutPropertiesLoose","indexOf","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","create","constructor","replaceClassName","origClass","classToRemove","replace","RegExp","forceReflow","node","scrollTop","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","context","_this","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","state","status","nextCallback","getDerivedStateFromProps","_ref","prevState","_proto","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","timeout","mounting","nodeRef","performEnter","performExit","setState","_this2","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","onEnter","safeSetState","onEntering","onTransitionEnd","onEntered","_this3","onExit","onExiting","onExited","cancel","nextState","callback","setNextCallback","_this4","active","event","handler","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","setTimeout","render","_this$props","childProps","TransitionGroupContext","Provider","only","noop","contextType","propTypes","removeClass","split","forEach","element","className","classList","remove","setAttribute","baseVal","CSSTransition","_len","args","_key","concat","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","add","contains","hasClass","_addClass","_this$appliedClasses$","base","done","prefix","animation","wrapper","displayName","Alert","forwardedRef","iconSize","title","icon","closeText","closable","afterClose","onClose","style","isShow","setShow","useState","useRef","configContext","useContext","cls","closeIcon","onClick","borderTopWidth","paddingTop","marginTop","paddingBottom","borderBottomWidth","marginBottom","role","renderIcon","AnchorContext","getScroll","isVertical","window","elementProp","getRect","getBoundingClientRect","top","left","bottom","right","document","documentElement","clientWidth","clientHeight","getNodeHeight","innerHeight","Sticky","offsetTop","offsetBottom","container","onChange","placeholderRef","stickyRef","stickyStyle","setStickyStyle","placeholderStyle","setPlaceholderStyle","stickyContainer","setStickyContainer","stickyMode","getStickyMode","mode","offset","getOffset","useCallback","placeholderNode","rect","containerRect","containerScrollTop","containerScrollLeft","updateStickyStyle","stuck","updatePlaceholderStyle","updateNodePosition","stickyNode","placeholderOffset","containerHeight","placeholderHeight","offsetHeight","stickyHeight","position","useEffect","addEventListener","removeEventListener","Anchor","affix","getContainer","activeId","setActiveId","anchorRef","inkBallRef","linksRef","Set","registerLink","href","unregisterLink","delete","updateInk","anchorEl","activeNodes","getElementsByClassName","inkEl","linkNode","targetEl","querySelector","anchorRect","targetRect","getScrollContainer","scrollToAnchor","anchorName","getElementById","elementRect","scrollIntoView","handleLinkClick","location","url","pathname","protocol","host","history","pushState","path","initHashScroll","search","anchor","URLSearchParams","hash","handleScroll","links","containerTop","newActiveId","maxTop","firstId","firstTop","Infinity","id","el","elTop","prev","scrollTarget","contextValue","useMemo","anchorContent","map","child","childElement","AnchorLink","anchorContext","isActive","preventDefault","target","DefaultAnchor","Link","AspectRatio","ratio","useClickOutside","listener","useCombobox","options","items","searchValue","filterOption","isOpen","controlledOpen","defaultOpen","disabled","defaultActiveFirstOption","onOpenChange","onSelect","isControlled","internalOpen","setInternalOpen","focusedIndex","setFocusedIndex","matchesFilter","item","label","String","toLowerCase","filteredItems","filter","openDropdown","closeDropdown","handleKeyDown","dir","next","KeyCode","Input","clearable","defaultValue","suffix","onEnterPress","onKeyDown","onClearClick","inputSize","prefixRef","suffixRef","setValue","inputPadding","setInputPadding","paddingLeft","paddingRight","prefixNode","suffixNode","prefixWidth","offsetWidth","suffixWidth","padding","val","currentTarget","keyCode","ENTER","getWindow","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","Math","max","min","round","getUAString","uaData","navigator","userAgentData","brands","brand","version","join","userAgent","isLayoutViewport","test","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","x","offsetLeft","y","getWindowScroll","win","scrollLeft","pageXOffset","pageYOffset","getNodeName","nodeName","getDocumentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","abs","getParentNode","assignedSlot","parentNode","getScrollParent","body","listScrollParents","list","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","css","transform","perspective","contain","willChange","getContainingBlock","auto","basePlacements","start","end","viewport","popper","variationPlacements","reduce","acc","placement","modifierPhases","order","modifiers","Map","visited","result","sort","modifier","name","requires","requiresIfExists","dep","has","depModifier","push","set","DEFAULT_OPTIONS","strategy","areValidElements","some","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","fn","pending","orderedModifiers","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","merged","orderModifiers","existing","data","keys","enabled","_ref$options","effect","cleanupFn","update","forceUpdate","_state$elements","rects","reset","index","_state$orderedModifie","_state$orderedModifie2","_options","Promise","resolve","then","destroy","onFirstUpdate","passive","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","getOppositePlacement","matched","getOppositeVariationPlacement","parent","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getClippingRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","axis","within","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$scroll","_options$resize","resize","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","removeAttribute","initialStyles","margin","property","attribute","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","find","slice","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","v","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","ReactDOM","trigger","defaultVisible","flip","theme","usePortal","mouseEnterDelay","mouseLeaveDelay","biZoom","content","visible","onVisibleChange","popupVisible","setPopupVisible","targetRef","popupRef","delayDisplayPopupTimer","delayHidePopupTimer","popperRef","elementProps","displayPopup","hidePopup","delayDisplayPopup","delayHidePopup","handlePopupOnMouseEnter","clearTimeout","handlePopupOnMouseLeave","handleTargetOnMouseEnter","handleTargetOnMouseLeave","documentOnClick","popup","handleTargetOnMouseClick","transitionOnEnter","createPopper","transitionOnExited","popperInstance","renderContent","_Fragment","Portal","AutoComplete","placeholder","allowClear","notFoundContent","onSearch","onFocus","onBlur","autoCompleteSize","inputValue","setInputValue","wrapperRef","inputRef","handleOptionSelect","opt","combo","open","setWrapperRef","dropdownContent","optCls","onMouseEnter","showDropdown","Popup","renderOverlay","selectorWidth","minWidth","handleClear","Avatar","shape","presence","alt","src","outerEl","textEl","scale","setScale","fontSize","lineHeight","textElWidth","outerElWidth","renderChildren","textStyle","transformString","msTransform","WebkitTransform","AvatarGroup","gap","idx","marginLeft","DefaultAvatar","Group","visibilityHeight","setVisible","getDistanceFromTop","targetNode","setScrollToTop","handleOnScroll","startTime","Date","now","step","time","easeInOutCubic","cc","requestAnimationFrame","Badge","count","dot","processing","showZero","badgeStyle","dotCls","backgroundColor","Breadcrumb","separator","BreadcrumbItem","DefaultBreadcrumb","Item","Button","btnType","loading","block","btnSize","ButtonGroup","DefaultButton","locale","DatePicker","weeks","months","today","selectDate","selectMonth","selectYear","TimePicker","selectTime","Modal","okText","cancelText","PopConfirm","Empty","description","Table","sortAscend","sortDescend","cancelSort","selectAll","selectNone","emptyText","ColorPicker","hex","rgb","hsb","en_US","useLocale","config","intl","IntlContext","TODAY","THIS_YEAR","getFullYear","THIS_MONTH","getMonth","THIS_DAY","getDate","getMonthDays","year","month","day","isLeapYear","getMonthDaysArray","date","dayArrays","days","preYear","preMonth","getPrevMonthAndYear","preDays","thisMonthFirstDayInWeek","getWeekday","getDay","isThisMonth","isSameDate","dateA","dateB","dateAYear","dateAMonth","dateADate","dateBYear","dateBMonth","dateBDate","isToday","MONTH_NAMES_EN","Calendar","fullscreen","disabledDate","dateCellRender","monthCellRender","headerRender","defaultMode","onPanelChange","_value","_mode","selectedDate","setSelectedDate","panelDate","setPanelDate","setMode","handleDateSelect","handlePanelChange","newDate","newMode","handleModeChange","goPrev","getPrevMonthDate","getPrevYearDate","goNext","getNextMonthDate","getNextYearDate","renderHeader","onModeChange","monthName","renderMonthPanel","panelDays","week","scope","from","_","row","dayCell","col","isDisabled","cellCls","monthLabel","monthDate","isCurrentMonth","handleMonthSelect","Card","bordered","hoverable","extra","header","headerStyle","actions","footer","footerStyle","CardContent","DefaultCard","Content","Carousel","forwardRef","dots","arrows","autoplay","autoplaySpeed","dotPlacement","easing","speed","infinite","draggable","waitForAnimate","beforeChange","afterChange","slideCount","slides","toArray","trackRef","outerRef","setCurrent","isAnimating","setIsAnimating","animatingRef","dragStartX","dragDelta","isDragging","isFade","goTo","dontAnimate","useImperativeHandle","handleTransitionEnd","timer","setInterval","clearInterval","handleDragStart","touches","clientX","handleDragMove","handleDragEnd","threshold","paused","setPaused","showDots","dotsClassName","isVerticalDot","tabIndex","onMouseLeave","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","opacity","transition","renderScrollxTrack","pct","trackStyle","CarouselItem","DefaultCarousel","getOptionsByValue","found","Cascader","expandTrigger","displayRender","changeOnSelect","onDropdownVisibleChange","cascaderSize","dropdownRef","setOpen","dropdownStyle","setDropdownStyle","selectedValue","setSelectedValue","activeColumns","setActiveColumns","hoveredPath","setHoveredPath","cols","scrollY","scrollX","zIndex","handleClickOutside","selectedOptions","labels","displayText","dropdown","createPortal","columnOptions","level","option","hasChildren","itemCls","newPath","isLeaf","handleOptionHover","toggleOpen","stopPropagation","CheckboxGroupContext","Checkbox","defaultChecked","indeterminate","checkboxRef","checkboxGroupContext","initialChecked","checked","setChecked","CheckboxGroup","newValue","DefaultCheckbox","ConfigProvider","IntlProvider","fallbackCopy","textArea","createElement","appendChild","select","execCommand","removeChild","CopyToClipboard","text","async","clipboard","writeText","copy","ScreenTypes","Col","span","sizeClassObj","sizeProps","propSize","CollapseContext","activeKeys","activeKey","Collapse","showArrow","deletable","accordion","defaultActiveKey","currentActiveKey","activeItems","setActiveItems","onItemClick","itemKey","splice","updateActiveItems","itemProps","CollapseTransition","leaveTimerRef","enterTimerRef","beforeEnter","display","afterEnter","beforeLeave","afterLeave","leave","triggerChange","isCollapsed","enterTimer","leaveTimer","richNode","CollapsePanel","onHeaderOnClick","itemRef","panelId","useId","headerId","headerOnClick","removeItem","headerCls","arrowCls","DefaultCollapse","Panel","hexToHsb","parseInt","hue","saturation","brightness","s","hsbToHex","bNorm","bl","toHex","padStart","formatColor","format","toFixed","hsbToRgb","parseColor","input","startsWith","rgbMatch","match","parseFloat","presets","showAlpha","defaultFormat","onFormatChange","setColor","setFormat","dragging","setDragging","spectrumRef","hueRef","alphaRef","emitChange","formatted","updateColor","updates","newColor","updateSpectrumFromEvent","clientY","updateHueFromEvent","updateAlphaFromEvent","handleMove","handleUp","hexColor","hueColor","nativeEvent","ev","background","handleFormatChange","formats","toUpperCase","preset","handlePresetClick","Countdown","millisec","onFinish","setDate","hour","sec","timerRef","startInterval","getTime","floor","millisecond","PickerHeader","startDecade","unit","yearUnit","panelOnChange","handleClick","PickerMonth","panelYear","selectedMonth","isCurrentYear","monthIdx","PickerYear","startYear","selectedYear","years","isOutOfRange","CalendarIcon","ClearIcon","formatDate","picker","customFormat","showToday","inputReadOnly","renderExtraFooter","suffixIcon","getFormatByPicker","fireChange","handleYearSelect","hasValue","displayValue","defaultPlaceholder","renderPanel","PickerDay","handleToday","setHours","readOnly","colon","labelCls","colSpan","layout","renderCols","renderType","Descriptions","column","rows","getRows","leftSpans","columns","numOfChildren","itemNode","displayColon","Row","DescriptionsItem","DefaultDesc","Divider","dashed","align","Dropdown","overlay","childrenProps","handleTargetOnClick","overlayProps","overlayClassName","selectedIndex","Overlay","blurred","clickCallback","Drawer","unmountOnClose","maskType","maskClosable","maskStyle","drawerVisible","setDrawerVisible","sty","previousFocusRef","titleId","activeElement","focusable","querySelectorAll","first","last","shiftKey","focus","image","imageStyle","descStyle","stroke","strokeWidth","fillRule","cx","cy","rx","ry","gapSizes","sm","md","lg","Flex","vertical","wrap","justify","flex","component","Component","mergedStyle","flexDirection","flexWrap","justifyContent","alignItems","Flip","reverse","innerCls","FlipItem","DefaultFlip","deepCopy","getValueFromEvent","FormInstance","rules","errors","listeners","initValues","values","getFieldValues","getFieldValue","setFieldValue","notify","setFieldValues","getFiledErrors","getFieldError","setFieldError","setFiledRules","resetFields","validateField","errMessages","rule","res","message","required","enum","enumVal","pattern","validator","whitespace","segment","trim","validate","validateFields","subscribe","FormInstanceContext","FormOptionsContext","labelCol","wrapperCol","validateTrigger","Form","initialValues","form","onFinishFailed","formRef","onSubmit","formIns","onReset","formOnReset","gutter","gutterSide","normalisedGutter","rowGutterStyle","marginRight","rowGap","gutterStyle","FormItem","valueGetter","valuePropName","helper","notice","itemLabelCol","itemWrapperCol","error","setError","hasErrLabel","setHasErrLabel","errorRef","isRequired","valueProp","getSpanAndOffset","getCol","isSelf","labelSpan","labelOffset","wrapperSpan","wrapperOffset","htmlFor","DefaultForm","useForm","Icon","spin","Image","objectFit","lazy","fallback","observer","IntersectionObserver","entries","obs","entry","isIntersecting","lazyImage","unobserve","imgNode","observe","disconnect","InputGroup","InputGroupAddon","noBorder","DefaultInput","Addon","isValid","isNaN","toPrecision","precision","InputNumber","controls","Number","NEGATIVE_INFINITY","POSITIVE_INFINITY","autoComplete","raw","visibleOnClick","Keyboard","SidebarContext","addSidebar","removeSidebar","Layout","hasSidebar","setHasSidebar","generator","_props","tagName","defaultCls","SubComponent","Header","Footer","Sidebar","defaultCollapsed","collapsedWidth","collapsible","onCollapse","sideCollapsed","setSideCollapsed","collapsed","sidebarContext","sidebarWidth","outerStyle","maxWidth","_collapseBtnOnClick","collapsedVal","DefaultLayout","external","underline","useVirtualScroll","itemCount","itemHeight","overscan","setScrollTop","onScroll","totalHeight","visibleRange","ceil","offsetY","currentProp","defaultCurrent","pageSize","pageSizeProp","defaultPageSize","total","setPageSize","renderItem","getItems","num","basic","itemDisabled","ariaLabel","curr","itemOnClick","ITEM_HEIGHT_MAP","List","dataSource","grid","virtual","itemHeightProp","pagination","listSize","console","warn","isVirtual","currentPage","setCurrentPage","showPagination","paginationConfig","totalItems","activePage","bodyCls","bodyStyle","renderItems","visibleItems","paginatedData","rendered","gridTemplateColumns","Pagination","page","handlePageChange","ListItem","action","ListItemMeta","avatar","DefaultList","ItemMeta","Loader","indicator","tip","indicatorCls","containerCls","Indicator","LoadingBar","didMount","rafId","loadingBar","outerDiv","unmount","move","unmountDom","createComponent","succeed","cancelAnimationFrame","fail","MenuContext","inlineIndent","Menu","defaultIndex","activeIndex","setActiveIndex","SubMenuContext","MenuItem","menuContext","subMenuContext","onMenuItemClick","_createElement","SubMenu","_onMenuItemClick","menuOpen","setMenuOpen","subMenuCls","nonRootSubMenu","rightPopupMenu","menuItemCls","titleCls","titleRef","handleOnClick","handleMouse","toggle","renderChildrenList","titleNode","MenuItemGroup","MenuDivider","DefaultMenu","ItemGroup","Message","duration","willUnmount","rootMap","containers","lastContainer","div","updatedTop","containerDiv","elementTop","messageContainer","warning","NativeSelect","NativeOption","NativeOptGroup","DefaultSelect","Option","OptGroup","centered","confirmText","confirmLoading","onConfirm","onCancel","onCancelProp","onCloseProp","confirmButtonProps","cancelButtonProps","modalVisible","setModalVisible","modalReducer","ModalContext","createContext","ModalWithContext","modals","controlledModals","dispatch","controlledDispatch","internalModals","internalDispatch","useReducer","useModal","ctx","Error","show","close","queryName","str","word","updatedPosition","elementPosition","Notification","notificationContainer","Popover","strokePresetColors","Circle","percent","strokeLinecap","strokeColor","percentage","strokeBgCls","relativeStrokeWidth","trackPath","radius","_circlePathStyle","perimeter","_perimeter","PI","strokeDasharray","strokeDashoffset","Bar","showInfo","innerText","backgroundType","effectCls","RadioGroupContext","Radio","radioRef","radioGroupContext","RadioGroup","DefaultRadio","RateItem","half","character","getColor","Rate","tmpValue","setTmpValue","newVal","Result","subtitle","ScrollIndicator","fixed","setWidth","useEventListener","eventName","savedHandler","eventListener","numericWidth","Segmented","segSize","normalizedOptions","normalizeOptions","selected","setSelected","optDisabled","SelectContext","Select","showSearch","maxTagCount","optionsProp","optionRender","labelRender","isMultiple","defaultVal","selectVal","setSelectVal","setSearchValue","searchInputRef","listboxId","selectSize","hasSomeValue","flatOptions","extractFromChildren","nodes","handleSelect","optValue","arr","handleComboSelect","getLabelForValue","handleSearchChange","hasValueProp","filterChildren","filteredGroupChildren","Boolean","renderDropdownContent","filtered","isSelected","renderedContent","contentArray","handleSelectorClick","renderSelectorContent","displayTags","remaining","handleRemoveTag","SelectOption","setActive","displayContent","SelectOptGroup","Skeleton","rounded","Tooltip","Slider","track","tooltipPlacement","tooltipVisible","tipFormatter","marks","onAfterChange","sliderValues","setSliderValues","isHovering","setHovering","railRef","thumbIdx","mouseStartPos","trackStartPos","currVal","railNode","trackNode","getValueToPercent","handleOnChange","getWidthToValue","numOfSteps","handleThumbOnDragging","sliderVal","handleThumbOnDragEnd","isDotActive","dotVal","handleThumbOnMouseLeave","renderMark","mark","calculateTrackStyle","leftValue","rightValue","markOffset","val1","val2","getRangeValue","handleThumbOnMouseEnter","handleThumbOnMouseDown","trackOffset","capture","getSteps","stepWidth","stepVal","Resizer","onResizerMouseDown","delta","synthetic","dispatchEvent","MouseEvent","SplitContext","SplitPane","paneStyle","Split","resizerSize","defaultSize","onDragStarted","onDragFinished","defaultStyle","resizerProps","pane1Size","setPane1Size","paneRef","isActiveMove","lastPosition","getSizeNumber","minSize","maxSize","pane","newSize","newPosition","minHeight","initialSize","childrenList","Pane","SplitButton","dropdownPlacement","dropdownTrigger","spaceSize","Space","getItemStyle","SpeedDialContext","SpeedDial","openIcon","onOpen","containerRef","handleOpen","handleClose","handleToggle","buttonCls","actionsCls","hoverProps","SpeedDialAction","tooltip","getDefaultTooltipPlacement","tooltipCls","DefaultSpeedDial","Action","StepsContext","labelPlacement","clickable","Steps","stepIndex","StepsItem","stepsContext","stepStatus","getStatus","stepItemOnClick","iconNode","DefaultSteps","Step","Statistic","groupSeparator","valueStyle","formatter","formatValue","parts","StrengthIndicator","blocks","colors","displayLabels","bgColor","Switch","checkedText","uncheckedText","switchSize","labelOnClick","ROW_HEIGHT_MAP","getRowKey","record","rowKey","getValue","dataIndex","rowSelection","showHeader","rowClassName","onRow","tableSize","sortField","setSortField","sortOrder","setSortOrder","selectedKeys","setSelectedKeys","selectedRowKeys","defaultSortOrder","sortedData","sorter","sorted","sorterFn","va","vb","rowHeight","tableStyle","wrapperStyle","maxHeight","allPageKeys","allSelected","someSelected","colCount","renderRow","rowIndex","rowCls","rowProps","handleSelectRow","isRadio","newKeys","newRows","colIndex","colKey","tdCls","ellipsis","theadCls","handleSelectAll","allKeys","thCls","newOrder","field","handleSort","renderTbody","topHeight","bottomHeight","Tabs","tabPosition","animated","destroyInactiveTabPane","hideAdd","tabBarExtraContent","tabBarGutter","tabBarStyle","onTabClick","onEdit","resolvedItems","tab","tabKey","forceRender","resolveItemsFromChildren","currentKey","setCurrentKey","getDefaultKey","inkStyle","setInkStyle","baseId","scrollOffset","setScrollOffset","showNav","setShowNav","navWrapRef","navListRef","tabRefs","isHorizontal","checkOverflow","handleTabClick","getMaxScroll","elLeft","elRight","isExtraObj","extraLeft","extraRight","navScrollStyle","prevDisabled","nextDisabled","renderPanels","scrollPrev","tabCls","handleTabKeyDown","itemIndex","enabledItems","currentEnabledIdx","findIndex","targetItem","handleRemove","scrollNext","destroyInactive","activeIdx","containerStyle","panelCls","TabPanel","DefaultTabs","PresetColors","Tag","tagStyle","borderColor","defaultPrevented","CheckableTag","DefaultTag","Textarea","limit","counter","setCount","textareaOnChange","maxLength","Timeline","TimelineItem","dotStyle","DefaultTimeline","disabledItems","panelRef","itemRefs","scrollToItem","smooth","scrollTo","behavior","ClockIcon","generateSteps","showsSeconds","showsMinutes","use12Hours","hourStep","minuteStep","secondStep","disabledTime","hideDisabledOptions","updateTime","setMinutes","setSeconds","disabled12","disabledHours","currentHour","getHours","disabledMinutes","currentMinute","getMinutes","disabledSeconds","hours","minutes","seconds","filteredHours","filteredMinutes","filteredSeconds","getSeconds","period","formatTime","TimePanel","TransferPanel","checkedKeys","allDisabled","query","setQuery","filteredData","checkableData","isAllChecked","isIndeterminate","Transfer","buttonTexts","titles","placeholders","getDataKeys","rightKeys","rightData","leftData","sourceData","setSourceData","targetData","setTargetData","leftCheckedKeys","setLeftCheckedKeys","rightCheckedKeys","setRightCheckedKeys","addToRight","currKeys","addToLeft","leftKeys","targetKey","TreeInstance","defaultCheckedKeys","defaultExpandedKeys","defaultExpandAll","treeNodes","handleTreeNode","parentKey","disableCheckbox","uniqueKey","expanded","getNodeByUniqueKey","numOfChecked","checkChildren","isChecked","checkParent","setNodeChecked","setNodeExpanded","isExpanded","isPropValueTrue","getCheckedKeys","getExpandedKeys","TreeNode","indent","blockNode","checkable","treeClassName","onCheckboxChange","onExpandChange","nodeIcon","switcherOnClick","Tree","onCheck","onExpand","treeInstance","setTreeNodes","tree","Typography","Paragraph","tagGenerator","tag","DefaultTypo","Heading","headingGenerator","htmlType","Text","code","del","strong","italic","sub","sup","Node","ajax","file","filename","method","onProgress","onSuccess","onError","headers","withCredentials","xhr","XMLHttpRequest","onerror","onload","upload","onprogress","loaded","formData","FormData","append","setRequestHeader","send","UploadList","fileList","onRemove","uid","Progress","DraggerCover","onFile","dragOver","setDragOver","handleDragOver","isOver","onDragOver","onDragLeave","onDrop","dataTransfer","files","Upload","defaultFileList","httpRequest","accept","multiple","drag","beforeUpload","onExceed","fileRef","setFileList","updateFileList","updateFile","targetObj","postRequest","uploadFile","xhrOnProgress","updateObj","xhrOnComplete","updatedUploadFile","xhrOnError","uploadFiles","processedFile","handleTriggerOnClick","click","withLocale","WrappedComponent","WithLocale","STORAGE_KEY","getSystemTheme","matchMedia","matches","currentMode","localStorage","getItem","getSnapshot","getServerSnapshot","cb","setThemeMode","setItem","useTheme","useSyncExternalStore","resolvedTheme"],"sourceRoot":""}