@arco-design/mobile-react 2.25.4 → 2.26.0

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 (807) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.en-US.md +2 -2
  3. package/README.md +2 -2
  4. package/cjs/_helpers/hooks.js +124 -43
  5. package/cjs/_helpers/index.js +13 -2
  6. package/cjs/_helpers/react-dom.js +12 -0
  7. package/cjs/_helpers/render.js +12 -0
  8. package/cjs/action-sheet/index.d.ts +2 -2
  9. package/cjs/action-sheet/index.js +30 -10
  10. package/cjs/action-sheet/methods.js +2 -0
  11. package/cjs/action-sheet/style/css/index.js +2 -0
  12. package/cjs/action-sheet/style/index.js +2 -0
  13. package/cjs/avatar/group.js +24 -12
  14. package/cjs/avatar/index.js +77 -51
  15. package/cjs/avatar/style/css/index.js +2 -0
  16. package/cjs/avatar/style/index.js +2 -0
  17. package/cjs/badge/index.js +29 -18
  18. package/cjs/badge/style/css/index.js +1 -0
  19. package/cjs/badge/style/index.js +1 -0
  20. package/cjs/button/hooks.js +20 -15
  21. package/cjs/button/index.js +67 -46
  22. package/cjs/button/style/css/index.js +2 -0
  23. package/cjs/button/style/index.js +2 -0
  24. package/cjs/carousel/index.d.ts +6 -0
  25. package/cjs/carousel/index.js +342 -184
  26. package/cjs/carousel/style/css/index.css +50 -15
  27. package/cjs/carousel/style/css/index.js +1 -0
  28. package/cjs/carousel/style/index.js +1 -0
  29. package/cjs/carousel/style/index.less +19 -14
  30. package/cjs/cell/arrow.js +3 -0
  31. package/cjs/cell/cell.js +23 -14
  32. package/cjs/cell/demo/style/css/mobile.css +8 -0
  33. package/cjs/cell/demo/style/mobile.less +2 -2
  34. package/cjs/cell/group.js +21 -9
  35. package/cjs/cell/index.js +7 -1
  36. package/cjs/cell/style/css/index.css +16 -0
  37. package/cjs/cell/style/css/index.js +1 -0
  38. package/cjs/cell/style/index.js +1 -0
  39. package/cjs/cell/style/index.less +6 -4
  40. package/cjs/checkbox/checkbox.js +57 -31
  41. package/cjs/checkbox/group.js +38 -24
  42. package/cjs/checkbox/hooks/index.js +2 -0
  43. package/cjs/checkbox/hooks/useMergeProps.js +14 -7
  44. package/cjs/checkbox/index.js +8 -1
  45. package/cjs/checkbox/style/css/index.js +1 -0
  46. package/cjs/checkbox/style/index.js +1 -0
  47. package/cjs/checkbox/type.js +2 -0
  48. package/cjs/circle-progress/index.js +57 -37
  49. package/cjs/circle-progress/style/css/index.js +1 -0
  50. package/cjs/circle-progress/style/index.js +1 -0
  51. package/cjs/collapse/collapse.js +56 -27
  52. package/cjs/collapse/group.js +44 -20
  53. package/cjs/collapse/index.js +9 -0
  54. package/cjs/collapse/style/css/index.js +1 -0
  55. package/cjs/collapse/style/index.js +1 -0
  56. package/cjs/collapse/utils.js +7 -0
  57. package/cjs/context-provider/index.d.ts +6 -0
  58. package/cjs/context-provider/index.js +30 -11
  59. package/cjs/context-provider/style/css/index.js +1 -0
  60. package/cjs/context-provider/style/index.js +1 -0
  61. package/cjs/count-down/hooks.js +43 -24
  62. package/cjs/count-down/index.js +37 -29
  63. package/cjs/count-down/singleton.js +12 -2
  64. package/cjs/count-down/style/css/index.js +1 -0
  65. package/cjs/count-down/style/index.js +1 -0
  66. package/cjs/count-down/util.js +47 -33
  67. package/cjs/date-picker/helper.js +14 -7
  68. package/cjs/date-picker/index.js +106 -42
  69. package/cjs/date-picker/style/css/index.js +2 -0
  70. package/cjs/date-picker/style/index.js +2 -0
  71. package/cjs/dialog/index.d.ts +2 -2
  72. package/cjs/dialog/index.js +54 -28
  73. package/cjs/dialog/methods.js +22 -9
  74. package/cjs/dialog/style/css/index.js +2 -0
  75. package/cjs/dialog/style/index.js +2 -0
  76. package/cjs/divider/demo/style/css/mobile.css +7 -0
  77. package/cjs/divider/demo/style/mobile.less +12 -0
  78. package/cjs/divider/index.d.ts +49 -0
  79. package/cjs/divider/index.js +65 -0
  80. package/cjs/divider/style/css/index.css +69 -0
  81. package/cjs/divider/style/css/index.d.ts +2 -0
  82. package/cjs/divider/style/css/index.js +5 -0
  83. package/cjs/divider/style/index.d.ts +2 -0
  84. package/cjs/divider/style/index.js +5 -0
  85. package/cjs/divider/style/index.less +66 -0
  86. package/cjs/dropdown/dropdown.js +113 -74
  87. package/cjs/dropdown/index.js +8 -1
  88. package/cjs/dropdown/options.js +28 -12
  89. package/cjs/dropdown/style/css/index.js +1 -0
  90. package/cjs/dropdown/style/index.js +1 -0
  91. package/cjs/dropdown-menu/dropdown-menu.js +84 -49
  92. package/cjs/dropdown-menu/helper.js +27 -6
  93. package/cjs/dropdown-menu/index.js +6 -0
  94. package/cjs/dropdown-menu/style/css/index.js +2 -0
  95. package/cjs/dropdown-menu/style/index.js +2 -0
  96. package/cjs/ellipsis/components/js-ellipsis.js +72 -33
  97. package/cjs/ellipsis/components/native-ellipsis.js +15 -9
  98. package/cjs/ellipsis/index.js +32 -19
  99. package/cjs/ellipsis/style/css/index.js +1 -0
  100. package/cjs/ellipsis/style/index.js +1 -0
  101. package/cjs/ellipsis/utils/dom.js +8 -0
  102. package/cjs/ellipsis/utils/is.js +5 -1
  103. package/cjs/form/form-item-context.js +5 -0
  104. package/cjs/form/form-item.js +124 -42
  105. package/cjs/form/index.js +35 -17
  106. package/cjs/form/style/css/index.js +1 -0
  107. package/cjs/form/style/index.js +1 -0
  108. package/cjs/form/type.js +3 -0
  109. package/cjs/form/useForm.js +76 -18
  110. package/cjs/form/utils.js +10 -3
  111. package/cjs/grid/index.js +41 -21
  112. package/cjs/grid/style/css/index.js +1 -0
  113. package/cjs/grid/style/index.js +1 -0
  114. package/cjs/icon/IconAdd/index.js +12 -5
  115. package/cjs/icon/IconArrowBack/index.js +12 -5
  116. package/cjs/icon/IconArrowDown/index.js +12 -5
  117. package/cjs/icon/IconArrowIn/index.js +12 -5
  118. package/cjs/icon/IconArrowUp/index.js +12 -5
  119. package/cjs/icon/IconCheck/index.js +12 -5
  120. package/cjs/icon/IconCheckBold/index.js +12 -5
  121. package/cjs/icon/IconCircleChecked/index.js +12 -5
  122. package/cjs/icon/IconCircleDisabled/index.js +12 -5
  123. package/cjs/icon/IconCircleUnchecked/index.js +12 -5
  124. package/cjs/icon/IconClear/index.js +12 -5
  125. package/cjs/icon/IconClose/index.js +12 -5
  126. package/cjs/icon/IconCloseBold/index.js +12 -5
  127. package/cjs/icon/IconDelete/index.js +12 -5
  128. package/cjs/icon/IconEdit/index.js +12 -5
  129. package/cjs/icon/IconErrorCircle/index.js +12 -5
  130. package/cjs/icon/IconEyeInvisible/index.js +12 -5
  131. package/cjs/icon/IconEyeVisible/index.js +12 -5
  132. package/cjs/icon/IconEyelashInvisible/index.js +12 -5
  133. package/cjs/icon/IconGift/index.js +12 -5
  134. package/cjs/icon/IconHeart/index.js +12 -5
  135. package/cjs/icon/IconHome/index.js +12 -5
  136. package/cjs/icon/IconLikeCircle/index.js +12 -5
  137. package/cjs/icon/IconMinus/index.js +12 -5
  138. package/cjs/icon/IconMore/index.js +12 -5
  139. package/cjs/icon/IconNotice/index.js +12 -5
  140. package/cjs/icon/IconNoticeOff/index.js +12 -5
  141. package/cjs/icon/IconPicture/index.js +12 -5
  142. package/cjs/icon/IconPlay/index.js +12 -5
  143. package/cjs/icon/IconQuestionCircle/index.js +12 -5
  144. package/cjs/icon/IconRefresh/index.js +12 -5
  145. package/cjs/icon/IconSad/index.js +12 -5
  146. package/cjs/icon/IconScan/index.js +12 -5
  147. package/cjs/icon/IconSearch/index.js +12 -5
  148. package/cjs/icon/IconSetting/index.js +12 -5
  149. package/cjs/icon/IconShop/index.js +12 -5
  150. package/cjs/icon/IconShopping/index.js +12 -5
  151. package/cjs/icon/IconSmileFill/index.js +12 -5
  152. package/cjs/icon/IconSound/index.js +12 -5
  153. package/cjs/icon/IconSquareChecked/index.js +12 -5
  154. package/cjs/icon/IconSquareDisabled/index.js +12 -5
  155. package/cjs/icon/IconSquareUnchecked/index.js +12 -5
  156. package/cjs/icon/IconStar/index.js +12 -5
  157. package/cjs/icon/IconStarFill/index.js +12 -5
  158. package/cjs/icon/IconStarHalf/index.js +12 -5
  159. package/cjs/icon/IconSubway/index.js +12 -5
  160. package/cjs/icon/IconSuccessCircle/index.js +12 -5
  161. package/cjs/icon/IconTriDown/index.js +12 -5
  162. package/cjs/icon/IconTriUp/index.js +12 -5
  163. package/cjs/icon/IconUpload/index.js +12 -5
  164. package/cjs/icon/IconUser/index.js +12 -5
  165. package/cjs/icon/IconUserFill/index.js +12 -5
  166. package/cjs/icon/IconWarnCircle/index.js +12 -5
  167. package/cjs/icon/IconWarnCircleFill/index.js +12 -5
  168. package/cjs/icon/index.js +111 -0
  169. package/cjs/image/index.js +92 -56
  170. package/cjs/image/style/css/index.css +1 -0
  171. package/cjs/image/style/css/index.js +2 -0
  172. package/cjs/image/style/index.js +2 -0
  173. package/cjs/image/style/index.less +1 -0
  174. package/cjs/image-picker/add-icon.js +3 -0
  175. package/cjs/image-picker/index.js +96 -52
  176. package/cjs/image-picker/style/css/index.js +2 -0
  177. package/cjs/image-picker/style/index.js +2 -0
  178. package/cjs/image-preview/index.d.ts +2 -2
  179. package/cjs/image-preview/index.js +239 -119
  180. package/cjs/image-preview/methods.js +18 -5
  181. package/cjs/image-preview/style/css/index.js +4 -0
  182. package/cjs/image-preview/style/index.js +4 -0
  183. package/cjs/index.d.ts +10 -9
  184. package/cjs/index.js +132 -19
  185. package/cjs/input/demo/style/css/mobile.css +5 -1
  186. package/cjs/input/demo/style/mobile.less +2 -2
  187. package/cjs/input/hooks.js +104 -42
  188. package/cjs/input/index.js +40 -26
  189. package/cjs/input/props.d.ts +6 -0
  190. package/cjs/input/style/css/index.css +9 -0
  191. package/cjs/input/style/css/index.js +1 -0
  192. package/cjs/input/style/index.js +1 -0
  193. package/cjs/input/style/index.less +2 -2
  194. package/cjs/load-more/index.js +56 -29
  195. package/cjs/load-more/style/css/index.js +1 -0
  196. package/cjs/load-more/style/index.js +1 -0
  197. package/cjs/loading/index.js +48 -19
  198. package/cjs/loading/style/css/index.js +1 -0
  199. package/cjs/loading/style/index.js +1 -0
  200. package/cjs/masking/index.d.ts +2 -2
  201. package/cjs/masking/index.js +79 -46
  202. package/cjs/masking/methods.js +19 -4
  203. package/cjs/masking/style/css/index.js +2 -0
  204. package/cjs/masking/style/index.js +2 -0
  205. package/cjs/nav-bar/back-icon.js +5 -1
  206. package/cjs/nav-bar/index.js +61 -37
  207. package/cjs/nav-bar/style/css/index.js +1 -0
  208. package/cjs/nav-bar/style/index.js +1 -0
  209. package/cjs/notice-bar/index.js +61 -33
  210. package/cjs/notice-bar/style/css/index.css +33 -0
  211. package/cjs/notice-bar/style/css/index.js +1 -0
  212. package/cjs/notice-bar/style/index.js +1 -0
  213. package/cjs/notice-bar/style/index.less +16 -3
  214. package/cjs/notify/index.d.ts +8 -8
  215. package/cjs/notify/index.js +49 -20
  216. package/cjs/notify/methods.js +17 -2
  217. package/cjs/notify/style/css/index.js +1 -0
  218. package/cjs/notify/style/index.js +1 -0
  219. package/cjs/pagination/arrow.js +3 -0
  220. package/cjs/pagination/index.js +58 -27
  221. package/cjs/pagination/style/css/index.js +1 -0
  222. package/cjs/pagination/style/index.js +1 -0
  223. package/cjs/picker/index.js +81 -40
  224. package/cjs/picker/style/css/index.js +3 -0
  225. package/cjs/picker/style/index.js +3 -0
  226. package/cjs/picker-view/components/cascader.js +31 -14
  227. package/cjs/picker-view/components/multi-picker.js +20 -6
  228. package/cjs/picker-view/components/picker-cell.js +97 -45
  229. package/cjs/picker-view/index.js +71 -25
  230. package/cjs/picker-view/style/css/index.js +1 -0
  231. package/cjs/picker-view/style/index.js +1 -0
  232. package/cjs/popover/hooks/index.js +4 -0
  233. package/cjs/popover/hooks/useEvent.js +49 -25
  234. package/cjs/popover/hooks/usePosition.js +151 -94
  235. package/cjs/popover/index.js +8 -1
  236. package/cjs/popover/menu.js +51 -32
  237. package/cjs/popover/popover-inner.js +47 -30
  238. package/cjs/popover/popover.js +101 -69
  239. package/cjs/popover/style/css/index.js +2 -0
  240. package/cjs/popover/style/index.js +2 -0
  241. package/cjs/popup/index.d.ts +2 -2
  242. package/cjs/popup/index.js +39 -22
  243. package/cjs/popup/methods.js +2 -0
  244. package/cjs/popup/style/css/index.js +2 -0
  245. package/cjs/popup/style/index.js +2 -0
  246. package/cjs/popup-swiper/index.d.ts +2 -2
  247. package/cjs/popup-swiper/index.js +80 -38
  248. package/cjs/popup-swiper/methods.js +2 -0
  249. package/cjs/popup-swiper/style/css/index.js +2 -0
  250. package/cjs/popup-swiper/style/index.js +2 -0
  251. package/cjs/portal/index.js +8 -3
  252. package/cjs/portal/style/css/index.js +1 -0
  253. package/cjs/portal/style/index.js +1 -0
  254. package/cjs/progress/index.js +44 -27
  255. package/cjs/progress/style/css/index.js +1 -0
  256. package/cjs/progress/style/index.js +1 -0
  257. package/cjs/pull-refresh/android-pull-refresh.js +100 -58
  258. package/cjs/pull-refresh/hooks.js +32 -11
  259. package/cjs/pull-refresh/index.js +14 -3
  260. package/cjs/pull-refresh/ios-pull-refresh.js +80 -53
  261. package/cjs/pull-refresh/model.js +1 -0
  262. package/cjs/pull-refresh/style/css/index.js +2 -0
  263. package/cjs/pull-refresh/style/index.js +2 -0
  264. package/cjs/radio/group.js +34 -20
  265. package/cjs/radio/index.js +8 -1
  266. package/cjs/radio/radio.js +10 -0
  267. package/cjs/radio/style/css/index.js +1 -0
  268. package/cjs/radio/style/index.js +1 -0
  269. package/cjs/rate/index.js +50 -24
  270. package/cjs/rate/style/css/index.js +1 -0
  271. package/cjs/rate/style/index.js +1 -0
  272. package/cjs/search-bar/association.js +32 -14
  273. package/cjs/search-bar/cancel-button.js +16 -8
  274. package/cjs/search-bar/highlight.js +25 -14
  275. package/cjs/search-bar/index.js +97 -77
  276. package/cjs/search-bar/style/css/index.js +1 -0
  277. package/cjs/search-bar/style/index.js +1 -0
  278. package/cjs/show-monitor/index.js +93 -34
  279. package/cjs/show-monitor/style/css/index.js +1 -0
  280. package/cjs/show-monitor/style/index.js +1 -0
  281. package/cjs/slider/hooks/index.js +13 -0
  282. package/cjs/slider/hooks/useSliderEvents.js +55 -26
  283. package/cjs/slider/hooks/useSliderIcon.js +20 -6
  284. package/cjs/slider/hooks/useSliderInit.js +52 -32
  285. package/cjs/slider/hooks/useSliderStyle.js +24 -12
  286. package/cjs/slider/index.js +72 -46
  287. package/cjs/slider/marks.js +26 -12
  288. package/cjs/slider/popover.js +13 -4
  289. package/cjs/slider/style/css/index.js +2 -0
  290. package/cjs/slider/style/index.js +2 -0
  291. package/cjs/slider/thumb.js +23 -8
  292. package/cjs/stepper/hooks/useButtonClick.js +28 -19
  293. package/cjs/stepper/hooks/useInputEvent.js +18 -9
  294. package/cjs/stepper/hooks/useValue.js +14 -9
  295. package/cjs/stepper/index.js +96 -82
  296. package/cjs/stepper/style/css/index.js +1 -0
  297. package/cjs/stepper/style/index.js +1 -0
  298. package/cjs/steps/index.js +40 -22
  299. package/cjs/steps/step.js +27 -10
  300. package/cjs/steps/style/css/index.js +1 -0
  301. package/cjs/steps/style/index.js +1 -0
  302. package/cjs/sticky/index.js +65 -36
  303. package/cjs/sticky/style/css/index.js +1 -0
  304. package/cjs/sticky/style/index.js +1 -0
  305. package/cjs/style.d.ts +9 -8
  306. package/cjs/style.js +64 -8
  307. package/cjs/swipe-action/index.js +92 -40
  308. package/cjs/swipe-action/item.js +17 -9
  309. package/cjs/swipe-action/style/css/index.js +1 -0
  310. package/cjs/swipe-action/style/index.js +1 -0
  311. package/cjs/swipe-load/index.js +83 -55
  312. package/cjs/swipe-load/style/css/index.js +1 -0
  313. package/cjs/swipe-load/style/index.js +1 -0
  314. package/cjs/switch/index.js +47 -27
  315. package/cjs/switch/style/css/index.js +1 -0
  316. package/cjs/switch/style/index.js +1 -0
  317. package/cjs/tab-bar/index.js +7 -0
  318. package/cjs/tab-bar/item.js +24 -6
  319. package/cjs/tab-bar/style/css/index.js +1 -0
  320. package/cjs/tab-bar/style/index.js +1 -0
  321. package/cjs/tab-bar/tab-bar.js +31 -15
  322. package/cjs/tabs/index.js +195 -129
  323. package/cjs/tabs/style/css/index.js +1 -0
  324. package/cjs/tabs/style/index.js +1 -0
  325. package/cjs/tabs/tab-cell-underline.js +111 -38
  326. package/cjs/tabs/tab-cell.js +124 -70
  327. package/cjs/tabs/tab-pane.js +94 -49
  328. package/cjs/tabs/type.d.ts +18 -2
  329. package/cjs/tag/index.js +8 -1
  330. package/cjs/tag/list.js +26 -11
  331. package/cjs/tag/style/css/index.js +1 -0
  332. package/cjs/tag/style/index.js +1 -0
  333. package/cjs/tag/tag.js +32 -20
  334. package/cjs/textarea/index.js +56 -35
  335. package/cjs/textarea/style/css/index.js +2 -0
  336. package/cjs/textarea/style/index.js +2 -0
  337. package/cjs/toast/index.d.ts +12 -12
  338. package/cjs/toast/index.js +61 -26
  339. package/cjs/toast/methods.js +16 -2
  340. package/cjs/toast/style/css/index.js +3 -0
  341. package/cjs/toast/style/index.js +3 -0
  342. package/cjs/transition/index.js +18 -10
  343. package/cjs/transition/style/css/index.js +1 -0
  344. package/cjs/transition/style/index.js +1 -0
  345. package/dist/index.js +21588 -19198
  346. package/dist/index.min.js +4 -4
  347. package/dist/style.css +3637 -3501
  348. package/dist/style.min.css +1 -1
  349. package/esm/_helpers/hooks.js +103 -42
  350. package/esm/_helpers/index.js +3 -2
  351. package/esm/_helpers/react-dom.js +10 -0
  352. package/esm/_helpers/render.js +7 -0
  353. package/esm/action-sheet/index.d.ts +2 -2
  354. package/esm/action-sheet/index.js +16 -10
  355. package/esm/avatar/group.js +16 -12
  356. package/esm/avatar/index.js +62 -51
  357. package/esm/badge/index.js +22 -18
  358. package/esm/button/hooks.js +18 -15
  359. package/esm/button/index.js +57 -46
  360. package/esm/carousel/index.d.ts +6 -0
  361. package/esm/carousel/index.js +336 -186
  362. package/esm/carousel/style/css/index.css +50 -15
  363. package/esm/carousel/style/index.less +19 -14
  364. package/esm/cell/cell.js +14 -14
  365. package/esm/cell/demo/style/css/mobile.css +8 -0
  366. package/esm/cell/demo/style/mobile.less +2 -2
  367. package/esm/cell/group.js +11 -9
  368. package/esm/cell/index.js +1 -1
  369. package/esm/cell/style/css/index.css +16 -0
  370. package/esm/cell/style/index.less +6 -4
  371. package/esm/checkbox/checkbox.js +42 -31
  372. package/esm/checkbox/group.js +28 -24
  373. package/esm/checkbox/hooks/useMergeProps.js +9 -7
  374. package/esm/checkbox/index.js +2 -2
  375. package/esm/checkbox/type.js +1 -0
  376. package/esm/circle-progress/index.js +49 -37
  377. package/esm/collapse/collapse.js +46 -27
  378. package/esm/collapse/group.js +34 -20
  379. package/esm/collapse/index.js +1 -1
  380. package/esm/collapse/utils.js +1 -0
  381. package/esm/context-provider/index.d.ts +6 -0
  382. package/esm/context-provider/index.js +20 -11
  383. package/esm/count-down/hooks.js +37 -24
  384. package/esm/count-down/index.js +29 -30
  385. package/esm/count-down/singleton.js +5 -2
  386. package/esm/count-down/util.js +42 -33
  387. package/esm/date-picker/helper.js +9 -7
  388. package/esm/date-picker/index.js +93 -42
  389. package/esm/dialog/index.d.ts +2 -2
  390. package/esm/dialog/index.js +39 -28
  391. package/esm/dialog/methods.js +11 -9
  392. package/esm/divider/demo/style/css/mobile.css +7 -0
  393. package/esm/divider/demo/style/mobile.less +12 -0
  394. package/esm/divider/index.d.ts +49 -0
  395. package/esm/divider/index.js +49 -0
  396. package/esm/divider/style/css/index.css +69 -0
  397. package/esm/divider/style/css/index.d.ts +2 -0
  398. package/esm/divider/style/css/index.js +2 -0
  399. package/esm/divider/style/index.d.ts +2 -0
  400. package/esm/divider/style/index.js +2 -0
  401. package/esm/divider/style/index.less +66 -0
  402. package/esm/dropdown/dropdown.js +102 -74
  403. package/esm/dropdown/index.js +1 -1
  404. package/esm/dropdown/options.js +20 -12
  405. package/esm/dropdown-menu/dropdown-menu.js +74 -49
  406. package/esm/dropdown-menu/helper.js +16 -6
  407. package/esm/dropdown-menu/index.js +1 -1
  408. package/esm/ellipsis/components/js-ellipsis.js +63 -33
  409. package/esm/ellipsis/components/native-ellipsis.js +11 -9
  410. package/esm/ellipsis/index.js +21 -20
  411. package/esm/ellipsis/utils/dom.js +7 -0
  412. package/esm/ellipsis/utils/is.js +1 -1
  413. package/esm/form/form-item.js +110 -42
  414. package/esm/form/index.js +20 -17
  415. package/esm/form/type.js +3 -0
  416. package/esm/form/useForm.js +71 -17
  417. package/esm/form/utils.js +6 -3
  418. package/esm/grid/index.js +34 -21
  419. package/esm/icon/IconAdd/index.js +6 -5
  420. package/esm/icon/IconArrowBack/index.js +6 -5
  421. package/esm/icon/IconArrowDown/index.js +6 -5
  422. package/esm/icon/IconArrowIn/index.js +6 -5
  423. package/esm/icon/IconArrowUp/index.js +6 -5
  424. package/esm/icon/IconCheck/index.js +6 -5
  425. package/esm/icon/IconCheckBold/index.js +6 -5
  426. package/esm/icon/IconCircleChecked/index.js +6 -5
  427. package/esm/icon/IconCircleDisabled/index.js +6 -5
  428. package/esm/icon/IconCircleUnchecked/index.js +6 -5
  429. package/esm/icon/IconClear/index.js +6 -5
  430. package/esm/icon/IconClose/index.js +6 -5
  431. package/esm/icon/IconCloseBold/index.js +6 -5
  432. package/esm/icon/IconDelete/index.js +6 -5
  433. package/esm/icon/IconEdit/index.js +6 -5
  434. package/esm/icon/IconErrorCircle/index.js +6 -5
  435. package/esm/icon/IconEyeInvisible/index.js +6 -5
  436. package/esm/icon/IconEyeVisible/index.js +6 -5
  437. package/esm/icon/IconEyelashInvisible/index.js +6 -5
  438. package/esm/icon/IconGift/index.js +6 -5
  439. package/esm/icon/IconHeart/index.js +6 -5
  440. package/esm/icon/IconHome/index.js +6 -5
  441. package/esm/icon/IconLikeCircle/index.js +6 -5
  442. package/esm/icon/IconMinus/index.js +6 -5
  443. package/esm/icon/IconMore/index.js +6 -5
  444. package/esm/icon/IconNotice/index.js +6 -5
  445. package/esm/icon/IconNoticeOff/index.js +6 -5
  446. package/esm/icon/IconPicture/index.js +6 -5
  447. package/esm/icon/IconPlay/index.js +6 -5
  448. package/esm/icon/IconQuestionCircle/index.js +6 -5
  449. package/esm/icon/IconRefresh/index.js +6 -5
  450. package/esm/icon/IconSad/index.js +6 -5
  451. package/esm/icon/IconScan/index.js +6 -5
  452. package/esm/icon/IconSearch/index.js +6 -5
  453. package/esm/icon/IconSetting/index.js +6 -5
  454. package/esm/icon/IconShop/index.js +6 -5
  455. package/esm/icon/IconShopping/index.js +6 -5
  456. package/esm/icon/IconSmileFill/index.js +6 -5
  457. package/esm/icon/IconSound/index.js +6 -5
  458. package/esm/icon/IconSquareChecked/index.js +6 -5
  459. package/esm/icon/IconSquareDisabled/index.js +6 -5
  460. package/esm/icon/IconSquareUnchecked/index.js +6 -5
  461. package/esm/icon/IconStar/index.js +6 -5
  462. package/esm/icon/IconStarFill/index.js +6 -5
  463. package/esm/icon/IconStarHalf/index.js +6 -5
  464. package/esm/icon/IconSubway/index.js +6 -5
  465. package/esm/icon/IconSuccessCircle/index.js +6 -5
  466. package/esm/icon/IconTriDown/index.js +6 -5
  467. package/esm/icon/IconTriUp/index.js +6 -5
  468. package/esm/icon/IconUpload/index.js +6 -5
  469. package/esm/icon/IconUser/index.js +6 -5
  470. package/esm/icon/IconUserFill/index.js +6 -5
  471. package/esm/icon/IconWarnCircle/index.js +6 -5
  472. package/esm/icon/IconWarnCircleFill/index.js +6 -5
  473. package/esm/image/index.js +84 -57
  474. package/esm/image/style/css/index.css +1 -0
  475. package/esm/image/style/index.less +1 -0
  476. package/esm/image-picker/index.js +80 -52
  477. package/esm/image-preview/index.d.ts +2 -2
  478. package/esm/image-preview/index.js +217 -119
  479. package/esm/image-preview/methods.js +14 -4
  480. package/esm/index.d.ts +10 -9
  481. package/esm/index.js +10 -9
  482. package/esm/input/demo/style/css/mobile.css +5 -1
  483. package/esm/input/demo/style/mobile.less +2 -2
  484. package/esm/input/hooks.js +96 -42
  485. package/esm/input/index.js +30 -26
  486. package/esm/input/props.d.ts +6 -0
  487. package/esm/input/style/css/index.css +9 -0
  488. package/esm/input/style/index.less +2 -2
  489. package/esm/load-more/index.js +48 -29
  490. package/esm/loading/index.js +40 -19
  491. package/esm/masking/index.d.ts +2 -2
  492. package/esm/masking/index.js +64 -46
  493. package/esm/masking/methods.js +15 -4
  494. package/esm/nav-bar/back-icon.js +3 -1
  495. package/esm/nav-bar/index.js +52 -37
  496. package/esm/notice-bar/index.js +56 -35
  497. package/esm/notice-bar/style/css/index.css +33 -0
  498. package/esm/notice-bar/style/index.less +16 -3
  499. package/esm/notify/index.d.ts +8 -8
  500. package/esm/notify/index.js +33 -20
  501. package/esm/notify/methods.js +13 -2
  502. package/esm/pagination/index.js +50 -27
  503. package/esm/picker/index.js +66 -40
  504. package/esm/picker-view/components/cascader.js +23 -14
  505. package/esm/picker-view/components/multi-picker.js +16 -6
  506. package/esm/picker-view/components/picker-cell.js +89 -45
  507. package/esm/picker-view/index.js +54 -25
  508. package/esm/popover/hooks/useEvent.js +41 -26
  509. package/esm/popover/hooks/usePosition.js +144 -94
  510. package/esm/popover/index.js +2 -2
  511. package/esm/popover/menu.js +41 -32
  512. package/esm/popover/popover-inner.js +38 -30
  513. package/esm/popover/popover.js +90 -69
  514. package/esm/popup/index.d.ts +2 -2
  515. package/esm/popup/index.js +25 -22
  516. package/esm/popup-swiper/index.d.ts +2 -2
  517. package/esm/popup-swiper/index.js +64 -38
  518. package/esm/portal/index.js +5 -3
  519. package/esm/progress/index.js +36 -27
  520. package/esm/pull-refresh/android-pull-refresh.js +90 -58
  521. package/esm/pull-refresh/hooks.js +23 -11
  522. package/esm/pull-refresh/index.js +5 -3
  523. package/esm/pull-refresh/ios-pull-refresh.js +68 -53
  524. package/esm/pull-refresh/model.js +1 -0
  525. package/esm/radio/group.js +24 -20
  526. package/esm/radio/index.js +2 -2
  527. package/esm/rate/index.js +39 -24
  528. package/esm/search-bar/association.js +27 -14
  529. package/esm/search-bar/cancel-button.js +11 -8
  530. package/esm/search-bar/highlight.js +20 -14
  531. package/esm/search-bar/index.js +86 -77
  532. package/esm/show-monitor/index.js +85 -34
  533. package/esm/slider/hooks/useSliderEvents.js +51 -26
  534. package/esm/slider/hooks/useSliderIcon.js +13 -6
  535. package/esm/slider/hooks/useSliderInit.js +46 -32
  536. package/esm/slider/hooks/useSliderStyle.js +20 -12
  537. package/esm/slider/index.js +62 -46
  538. package/esm/slider/marks.js +18 -12
  539. package/esm/slider/popover.js +6 -4
  540. package/esm/slider/thumb.js +15 -8
  541. package/esm/stepper/hooks/useButtonClick.js +27 -19
  542. package/esm/stepper/hooks/useInputEvent.js +16 -9
  543. package/esm/stepper/hooks/useValue.js +12 -9
  544. package/esm/stepper/index.js +82 -82
  545. package/esm/steps/index.js +27 -22
  546. package/esm/steps/step.js +19 -10
  547. package/esm/sticky/index.js +56 -36
  548. package/esm/style.d.ts +9 -8
  549. package/esm/style.js +9 -8
  550. package/esm/swipe-action/index.js +80 -40
  551. package/esm/swipe-action/item.js +12 -9
  552. package/esm/swipe-load/index.js +75 -56
  553. package/esm/switch/index.js +39 -27
  554. package/esm/tab-bar/index.js +1 -0
  555. package/esm/tab-bar/item.js +13 -6
  556. package/esm/tab-bar/tab-bar.js +21 -15
  557. package/esm/tabs/index.js +183 -130
  558. package/esm/tabs/tab-cell-underline.js +103 -38
  559. package/esm/tabs/tab-cell.js +114 -70
  560. package/esm/tabs/tab-pane.js +85 -49
  561. package/esm/tabs/type.d.ts +18 -2
  562. package/esm/tag/index.js +2 -2
  563. package/esm/tag/list.js +16 -11
  564. package/esm/tag/tag.js +22 -20
  565. package/esm/textarea/index.js +46 -35
  566. package/esm/toast/index.d.ts +12 -12
  567. package/esm/toast/index.js +42 -26
  568. package/esm/toast/methods.js +12 -2
  569. package/esm/transition/index.js +12 -10
  570. package/package.json +3 -3
  571. package/tokens/app/arcodesign/default/css-variables.less +8 -0
  572. package/tokens/app/arcodesign/default/index.d.ts +8 -0
  573. package/tokens/app/arcodesign/default/index.js +11 -1
  574. package/tokens/app/arcodesign/default/index.json +94 -0
  575. package/tokens/app/arcodesign/default/index.less +8 -0
  576. package/tokens/mixin/index.less +19 -1
  577. package/umd/_helpers/hooks.js +121 -43
  578. package/umd/_helpers/index.js +6 -2
  579. package/umd/_helpers/react-dom.js +11 -0
  580. package/umd/_helpers/render.js +9 -0
  581. package/umd/action-sheet/index.d.ts +2 -2
  582. package/umd/action-sheet/index.js +22 -10
  583. package/umd/action-sheet/methods.js +1 -0
  584. package/umd/avatar/group.js +20 -12
  585. package/umd/avatar/index.js +68 -51
  586. package/umd/badge/index.js +25 -18
  587. package/umd/button/hooks.js +19 -15
  588. package/umd/button/index.js +60 -46
  589. package/umd/carousel/index.d.ts +6 -0
  590. package/umd/carousel/index.js +337 -184
  591. package/umd/carousel/style/css/index.css +50 -15
  592. package/umd/carousel/style/index.less +19 -14
  593. package/umd/cell/arrow.js +2 -0
  594. package/umd/cell/cell.js +18 -14
  595. package/umd/cell/demo/style/css/mobile.css +8 -0
  596. package/umd/cell/demo/style/mobile.less +2 -2
  597. package/umd/cell/group.js +17 -9
  598. package/umd/cell/index.js +2 -1
  599. package/umd/cell/style/css/index.css +16 -0
  600. package/umd/cell/style/index.less +6 -4
  601. package/umd/checkbox/checkbox.js +45 -31
  602. package/umd/checkbox/group.js +34 -24
  603. package/umd/checkbox/hooks/useMergeProps.js +12 -7
  604. package/umd/checkbox/index.js +3 -1
  605. package/umd/checkbox/type.js +2 -0
  606. package/umd/circle-progress/index.js +52 -37
  607. package/umd/collapse/collapse.js +50 -27
  608. package/umd/collapse/group.js +38 -20
  609. package/umd/collapse/index.js +3 -0
  610. package/umd/collapse/utils.js +5 -0
  611. package/umd/context-provider/index.d.ts +6 -0
  612. package/umd/context-provider/index.js +25 -11
  613. package/umd/count-down/hooks.js +39 -24
  614. package/umd/count-down/index.js +31 -29
  615. package/umd/count-down/singleton.js +10 -2
  616. package/umd/count-down/util.js +47 -33
  617. package/umd/date-picker/helper.js +13 -7
  618. package/umd/date-picker/index.js +97 -42
  619. package/umd/dialog/index.d.ts +2 -2
  620. package/umd/dialog/index.js +44 -28
  621. package/umd/dialog/methods.js +18 -9
  622. package/umd/divider/demo/style/css/mobile.css +7 -0
  623. package/umd/divider/demo/style/mobile.less +12 -0
  624. package/umd/divider/index.d.ts +49 -0
  625. package/umd/divider/index.js +71 -0
  626. package/umd/divider/style/css/index.css +69 -0
  627. package/umd/divider/style/css/index.d.ts +2 -0
  628. package/umd/divider/style/css/index.js +15 -0
  629. package/umd/divider/style/index.d.ts +2 -0
  630. package/umd/divider/style/index.js +15 -0
  631. package/umd/divider/style/index.less +66 -0
  632. package/umd/dropdown/dropdown.js +106 -74
  633. package/umd/dropdown/index.js +3 -1
  634. package/umd/dropdown/options.js +24 -12
  635. package/umd/dropdown-menu/dropdown-menu.js +78 -49
  636. package/umd/dropdown-menu/helper.js +25 -6
  637. package/umd/dropdown-menu/index.js +2 -0
  638. package/umd/ellipsis/components/js-ellipsis.js +69 -33
  639. package/umd/ellipsis/components/native-ellipsis.js +13 -9
  640. package/umd/ellipsis/index.js +24 -19
  641. package/umd/ellipsis/utils/dom.js +8 -0
  642. package/umd/ellipsis/utils/is.js +5 -1
  643. package/umd/form/form-item-context.js +3 -0
  644. package/umd/form/form-item.js +114 -42
  645. package/umd/form/index.js +25 -17
  646. package/umd/form/type.js +3 -0
  647. package/umd/form/useForm.js +72 -18
  648. package/umd/form/utils.js +10 -3
  649. package/umd/grid/index.js +37 -21
  650. package/umd/icon/IconAdd/index.js +7 -5
  651. package/umd/icon/IconArrowBack/index.js +7 -5
  652. package/umd/icon/IconArrowDown/index.js +7 -5
  653. package/umd/icon/IconArrowIn/index.js +7 -5
  654. package/umd/icon/IconArrowUp/index.js +7 -5
  655. package/umd/icon/IconCheck/index.js +7 -5
  656. package/umd/icon/IconCheckBold/index.js +7 -5
  657. package/umd/icon/IconCircleChecked/index.js +7 -5
  658. package/umd/icon/IconCircleDisabled/index.js +7 -5
  659. package/umd/icon/IconCircleUnchecked/index.js +7 -5
  660. package/umd/icon/IconClear/index.js +7 -5
  661. package/umd/icon/IconClose/index.js +7 -5
  662. package/umd/icon/IconCloseBold/index.js +7 -5
  663. package/umd/icon/IconDelete/index.js +7 -5
  664. package/umd/icon/IconEdit/index.js +7 -5
  665. package/umd/icon/IconErrorCircle/index.js +7 -5
  666. package/umd/icon/IconEyeInvisible/index.js +7 -5
  667. package/umd/icon/IconEyeVisible/index.js +7 -5
  668. package/umd/icon/IconEyelashInvisible/index.js +7 -5
  669. package/umd/icon/IconGift/index.js +7 -5
  670. package/umd/icon/IconHeart/index.js +7 -5
  671. package/umd/icon/IconHome/index.js +7 -5
  672. package/umd/icon/IconLikeCircle/index.js +7 -5
  673. package/umd/icon/IconMinus/index.js +7 -5
  674. package/umd/icon/IconMore/index.js +7 -5
  675. package/umd/icon/IconNotice/index.js +7 -5
  676. package/umd/icon/IconNoticeOff/index.js +7 -5
  677. package/umd/icon/IconPicture/index.js +7 -5
  678. package/umd/icon/IconPlay/index.js +7 -5
  679. package/umd/icon/IconQuestionCircle/index.js +7 -5
  680. package/umd/icon/IconRefresh/index.js +7 -5
  681. package/umd/icon/IconSad/index.js +7 -5
  682. package/umd/icon/IconScan/index.js +7 -5
  683. package/umd/icon/IconSearch/index.js +7 -5
  684. package/umd/icon/IconSetting/index.js +7 -5
  685. package/umd/icon/IconShop/index.js +7 -5
  686. package/umd/icon/IconShopping/index.js +7 -5
  687. package/umd/icon/IconSmileFill/index.js +7 -5
  688. package/umd/icon/IconSound/index.js +7 -5
  689. package/umd/icon/IconSquareChecked/index.js +7 -5
  690. package/umd/icon/IconSquareDisabled/index.js +7 -5
  691. package/umd/icon/IconSquareUnchecked/index.js +7 -5
  692. package/umd/icon/IconStar/index.js +7 -5
  693. package/umd/icon/IconStarFill/index.js +7 -5
  694. package/umd/icon/IconStarHalf/index.js +7 -5
  695. package/umd/icon/IconSubway/index.js +7 -5
  696. package/umd/icon/IconSuccessCircle/index.js +7 -5
  697. package/umd/icon/IconTriDown/index.js +7 -5
  698. package/umd/icon/IconTriUp/index.js +7 -5
  699. package/umd/icon/IconUpload/index.js +7 -5
  700. package/umd/icon/IconUser/index.js +7 -5
  701. package/umd/icon/IconUserFill/index.js +7 -5
  702. package/umd/icon/IconWarnCircle/index.js +7 -5
  703. package/umd/icon/IconWarnCircleFill/index.js +7 -5
  704. package/umd/icon/index.js +1 -0
  705. package/umd/image/index.js +86 -56
  706. package/umd/image/style/css/index.css +1 -0
  707. package/umd/image/style/index.less +1 -0
  708. package/umd/image-picker/add-icon.js +2 -0
  709. package/umd/image-picker/index.js +85 -52
  710. package/umd/image-preview/index.d.ts +2 -2
  711. package/umd/image-preview/index.js +224 -119
  712. package/umd/image-preview/methods.js +15 -5
  713. package/umd/index.d.ts +10 -9
  714. package/umd/index.js +26 -23
  715. package/umd/input/demo/style/css/mobile.css +5 -1
  716. package/umd/input/demo/style/mobile.less +2 -2
  717. package/umd/input/hooks.js +100 -42
  718. package/umd/input/index.js +35 -26
  719. package/umd/input/props.d.ts +6 -0
  720. package/umd/input/style/css/index.css +9 -0
  721. package/umd/input/style/index.less +2 -2
  722. package/umd/load-more/index.js +51 -29
  723. package/umd/loading/index.js +43 -19
  724. package/umd/masking/index.d.ts +2 -2
  725. package/umd/masking/index.js +71 -46
  726. package/umd/masking/methods.js +16 -4
  727. package/umd/nav-bar/back-icon.js +4 -1
  728. package/umd/nav-bar/index.js +55 -37
  729. package/umd/notice-bar/index.js +57 -33
  730. package/umd/notice-bar/style/css/index.css +33 -0
  731. package/umd/notice-bar/style/index.less +16 -3
  732. package/umd/notify/index.d.ts +8 -8
  733. package/umd/notify/index.js +40 -20
  734. package/umd/notify/methods.js +14 -2
  735. package/umd/pagination/arrow.js +2 -0
  736. package/umd/pagination/index.js +53 -27
  737. package/umd/picker/index.js +70 -40
  738. package/umd/picker-view/components/cascader.js +27 -14
  739. package/umd/picker-view/components/multi-picker.js +19 -6
  740. package/umd/picker-view/components/picker-cell.js +93 -45
  741. package/umd/picker-view/index.js +58 -25
  742. package/umd/popover/hooks/useEvent.js +44 -25
  743. package/umd/popover/hooks/usePosition.js +145 -94
  744. package/umd/popover/index.js +3 -1
  745. package/umd/popover/menu.js +45 -32
  746. package/umd/popover/popover-inner.js +42 -30
  747. package/umd/popover/popover.js +94 -69
  748. package/umd/popup/index.d.ts +2 -2
  749. package/umd/popup/index.js +31 -22
  750. package/umd/popup/methods.js +1 -0
  751. package/umd/popup-swiper/index.d.ts +2 -2
  752. package/umd/popup-swiper/index.js +71 -38
  753. package/umd/popup-swiper/methods.js +1 -0
  754. package/umd/portal/index.js +6 -3
  755. package/umd/progress/index.js +39 -27
  756. package/umd/pull-refresh/android-pull-refresh.js +93 -58
  757. package/umd/pull-refresh/hooks.js +29 -11
  758. package/umd/pull-refresh/index.js +7 -3
  759. package/umd/pull-refresh/ios-pull-refresh.js +72 -53
  760. package/umd/pull-refresh/model.js +1 -0
  761. package/umd/radio/group.js +30 -20
  762. package/umd/radio/index.js +3 -1
  763. package/umd/radio/radio.js +5 -0
  764. package/umd/rate/index.js +44 -24
  765. package/umd/search-bar/association.js +29 -14
  766. package/umd/search-bar/cancel-button.js +14 -8
  767. package/umd/search-bar/highlight.js +21 -14
  768. package/umd/search-bar/index.js +87 -77
  769. package/umd/show-monitor/index.js +89 -34
  770. package/umd/slider/hooks/index.js +4 -0
  771. package/umd/slider/hooks/useSliderEvents.js +52 -26
  772. package/umd/slider/hooks/useSliderIcon.js +17 -6
  773. package/umd/slider/hooks/useSliderInit.js +50 -32
  774. package/umd/slider/hooks/useSliderStyle.js +22 -12
  775. package/umd/slider/index.js +65 -46
  776. package/umd/slider/marks.js +21 -12
  777. package/umd/slider/popover.js +10 -4
  778. package/umd/slider/thumb.js +18 -8
  779. package/umd/stepper/hooks/useButtonClick.js +27 -19
  780. package/umd/stepper/hooks/useInputEvent.js +17 -9
  781. package/umd/stepper/hooks/useValue.js +13 -9
  782. package/umd/stepper/index.js +87 -82
  783. package/umd/steps/index.js +32 -22
  784. package/umd/steps/step.js +22 -10
  785. package/umd/sticky/index.js +59 -36
  786. package/umd/style.d.ts +9 -8
  787. package/umd/style.js +4 -4
  788. package/umd/swipe-action/index.js +84 -40
  789. package/umd/swipe-action/item.js +14 -9
  790. package/umd/swipe-load/index.js +77 -55
  791. package/umd/switch/index.js +43 -27
  792. package/umd/tab-bar/index.js +2 -0
  793. package/umd/tab-bar/item.js +19 -6
  794. package/umd/tab-bar/tab-bar.js +26 -15
  795. package/umd/tabs/index.js +186 -129
  796. package/umd/tabs/tab-cell-underline.js +107 -38
  797. package/umd/tabs/tab-cell.js +119 -70
  798. package/umd/tabs/tab-pane.js +89 -49
  799. package/umd/tabs/type.d.ts +18 -2
  800. package/umd/tag/index.js +3 -1
  801. package/umd/tag/list.js +20 -11
  802. package/umd/tag/tag.js +26 -20
  803. package/umd/textarea/index.js +51 -35
  804. package/umd/toast/index.d.ts +12 -12
  805. package/umd/toast/index.js +49 -26
  806. package/umd/toast/methods.js +13 -2
  807. package/umd/transition/index.js +12 -10
@@ -4,34 +4,40 @@ import { addCssKeyframes, cls, nextTick, removeCssStyleDom } from '@arco-design/
4
4
  import { getStyleWithVendor, useRefState, useSystem } from '../_helpers';
5
5
  var TabCellUnderline = /*#__PURE__*/forwardRef(function (props, ref) {
6
6
  var prefix = props.prefix,
7
- useCaterpillar = props.useCaterpillar,
8
- distance = props.distance,
9
- tabDirection = props.tabDirection,
10
- underlineInnerStyle = props.underlineInnerStyle,
11
- duration = props.duration,
12
- cellTrans = props.cellTrans,
13
- showLine = props.showLine,
14
- activeIndex = props.activeIndex,
15
- wrapWidth = props.wrapWidth,
16
- wrapHeight = props.wrapHeight,
17
- jumpingDis = props.jumpingDis,
18
- translateZ = props.translateZ,
19
- caterpillarMaxScale = props.caterpillarMaxScale,
20
- caterpillarProperty = props.caterpillarProperty,
21
- underlineSize = props.underlineSize,
22
- underlineThick = props.underlineThick,
23
- renderUnderline = props.renderUnderline,
24
- getTabCenterLeft = props.getTabCenterLeft;
7
+ useCaterpillar = props.useCaterpillar,
8
+ distance = props.distance,
9
+ tabDirection = props.tabDirection,
10
+ underlineInnerStyle = props.underlineInnerStyle,
11
+ duration = props.duration,
12
+ cellTrans = props.cellTrans,
13
+ showLine = props.showLine,
14
+ activeIndex = props.activeIndex,
15
+ wrapWidth = props.wrapWidth,
16
+ wrapHeight = props.wrapHeight,
17
+ jumpingDis = props.jumpingDis,
18
+ translateZ = props.translateZ,
19
+ caterpillarMaxScale = props.caterpillarMaxScale,
20
+ caterpillarProperty = props.caterpillarProperty,
21
+ underlineSize = props.underlineSize,
22
+ underlineThick = props.underlineThick,
23
+ underlineAdaptive = props.underlineAdaptive,
24
+ renderUnderline = props.renderUnderline,
25
+ getTabRect = props.getTabRect,
26
+ getTabCenterLeft = props.getTabCenterLeft;
27
+
25
28
  var _useState = useState({}),
26
- underlineStyle = _useState[0],
27
- setUnderlineStyle = _useState[1];
29
+ underlineStyle = _useState[0],
30
+ setUnderlineStyle = _useState[1];
31
+
28
32
  var _useRefState = useRefState(false),
29
- caterpillar = _useRefState[0],
30
- caterpillarRef = _useRefState[1],
31
- setCaterpillar = _useRefState[2];
33
+ caterpillar = _useRefState[0],
34
+ caterpillarRef = _useRefState[1],
35
+ setCaterpillar = _useRefState[2];
36
+
32
37
  var _useState2 = useState(0),
33
- caterpillarDelay = _useState2[0],
34
- setCaterpillarDelay = _useState2[1];
38
+ caterpillarDelay = _useState2[0],
39
+ setCaterpillarDelay = _useState2[1];
40
+
35
41
  var lineRef = useRef(null);
36
42
  var timeRef = useRef(0);
37
43
  var system = useSystem();
@@ -48,24 +54,30 @@ var TabCellUnderline = /*#__PURE__*/forwardRef(function (props, ref) {
48
54
  if (!useCaterpillar) {
49
55
  return '';
50
56
  }
57
+
51
58
  if (caterpillarProperty === 'size') {
52
59
  return "tabsCaterpillar" + (isVertical ? 'W' : 'H') + maxScaleWithDefault;
53
60
  }
61
+
54
62
  if (caterpillarMaxScale) {
55
63
  return "tabsCaterpillar" + (isVertical ? 'X' : 'Y') + caterpillarMaxScale;
56
64
  }
65
+
57
66
  return '';
58
67
  }, [useCaterpillar, isVertical, caterpillarMaxScale, caterpillarProperty]);
59
68
  useEffect(function () {
60
69
  if (!animationKey) {
61
70
  return;
62
71
  }
72
+
63
73
  var dir = isVertical ? 'X' : 'Y';
74
+
64
75
  if (caterpillarProperty === 'size') {
65
76
  var attr = isVertical ? 'width' : 'height';
66
77
  addCssKeyframes(animationKey, "{\n 0% {\n " + attr + ": 100%;\n }\n 50% {\n " + attr + ": " + 100 * maxScaleWithDefault + "%;\n }\n 100% {\n " + attr + ": 100%;\n }\n }");
67
78
  return;
68
79
  }
80
+
69
81
  addCssKeyframes(animationKey, "{\n 0% {\n transform: scale" + dir + "(1)" + translateZStr + ";\n -webkit-transform: scale" + dir + "(1)" + translateZStr + ";\n }\n 50% {\n transform: scale" + dir + "(" + caterpillarMaxScale + ")" + translateZStr + ";\n -webkit-transform: scale" + dir + "(" + caterpillarMaxScale + ")" + translateZStr + ";\n }\n 100% {\n transform: scale" + dir + "(1)" + translateZStr + ";\n -webkit-transform: scale" + dir + "(1)" + translateZStr + ";\n }\n }");
70
82
  return function () {
71
83
  removeCssStyleDom(animationKey);
@@ -79,40 +91,79 @@ var TabCellUnderline = /*#__PURE__*/forwardRef(function (props, ref) {
79
91
  }, [jumpingDis]);
80
92
  useEffect(function () {
81
93
  resetUnderlineStyle();
82
- }, [useCaterpillar, caterpillar, cellTrans, duration, tabDirection, wrapWidth, wrapHeight, distance, animationKey, caterpillarDelay]);
83
- function getLineLeft(index) {
94
+ }, [useCaterpillar, caterpillar, cellTrans, duration, tabDirection, wrapWidth, wrapHeight, distance, animationKey, caterpillarDelay, underlineSize, underlineThick, underlineAdaptive]);
95
+
96
+ function getLineWidth(index) {
84
97
  var _lineRef$current, _lineRef$current2;
98
+
99
+ if (underlineAdaptive) {
100
+ return getTabRect(index).width;
101
+ }
102
+
85
103
  var offsetSize = isVertical ? (_lineRef$current = lineRef.current) == null ? void 0 : _lineRef$current.offsetWidth : (_lineRef$current2 = lineRef.current) == null ? void 0 : _lineRef$current2.offsetHeight;
86
104
  var lineWidth = offsetSize || 0;
105
+ return lineWidth;
106
+ }
107
+
108
+ function getLineLeft(index) {
109
+ if (underlineAdaptive) {
110
+ return getTabRect(index).left;
111
+ }
112
+
113
+ var lineWidth = getLineWidth(index);
87
114
  return getTabCenterLeft(index) - lineWidth / 2;
88
115
  }
116
+
89
117
  function getDescIndex() {
90
118
  if (distance > 0) {
91
119
  return activeIndex - 1;
92
120
  }
121
+
93
122
  if (distance < 0) {
94
123
  return activeIndex + 1;
95
124
  }
125
+
96
126
  return activeIndex;
97
127
  }
128
+
98
129
  function getLineScale(ratio) {
99
130
  var absRatio = Math.abs(ratio);
100
131
  return absRatio > 0.5 ? (1 - absRatio) * 2 * (maxScaleWithDefault - 1) + 1 : absRatio * 2 * (maxScaleWithDefault - 1) + 1;
101
132
  }
133
+
102
134
  function getLineStyle() {
103
135
  var _ref;
136
+
104
137
  if (!lineRef.current) {
105
138
  return {};
106
139
  }
140
+
107
141
  var currentLeft = getLineLeft(activeIndex);
108
142
  var descIndex = getDescIndex();
109
143
  var descLeft = getLineLeft(descIndex);
110
144
  var moveRatio = wrapWidth ? distance / wrapWidth : 0;
111
145
  var leftOffset = moveRatio * (currentLeft - descLeft);
112
146
  var direc = isVertical ? 'X' : 'Y';
113
- var transStyle = useCaterpillar && !jumpingDis ? caterpillarProperty === 'size' ? (_ref = {}, _ref[isVertical ? 'width' : 'height'] = 100 * getLineScale(moveRatio) + "%", _ref.willChange = 'width', _ref) : {
147
+ var transStyle = useCaterpillar && !jumpingDis && !underlineAdaptive ? caterpillarProperty === 'size' ? (_ref = {}, _ref[isVertical ? 'width' : 'height'] = 100 * getLineScale(moveRatio) + "%", _ref.willChange = 'width', _ref) : {
114
148
  transform: "scale" + direc + "(" + getLineScale(moveRatio) + ")"
115
149
  } : {};
150
+ var adaptiveStyle = {};
151
+ var adaptiveOuterStyle = {};
152
+
153
+ if (underlineAdaptive) {
154
+ var _adaptiveStyle;
155
+
156
+ var currentWidth = getLineWidth(activeIndex);
157
+ var descWidth = getLineWidth(descIndex);
158
+ var widthOffset = moveRatio * (currentWidth - descWidth);
159
+ adaptiveStyle = (_adaptiveStyle = {}, _adaptiveStyle[isVertical ? 'width' : 'height'] = distance > 0 ? currentWidth - widthOffset : currentWidth + widthOffset, _adaptiveStyle.willChange = 'width', _adaptiveStyle);
160
+ adaptiveOuterStyle = isVertical ? {
161
+ width: 'auto'
162
+ } : {
163
+ height: 'auto'
164
+ };
165
+ }
166
+
116
167
  var outerSize = isVertical ? {
117
168
  width: underlineSize,
118
169
  height: underlineThick
@@ -123,21 +174,28 @@ var TabCellUnderline = /*#__PURE__*/forwardRef(function (props, ref) {
123
174
  return {
124
175
  outer: _extends({
125
176
  transform: "translate" + direc + "(" + (distance > 0 ? currentLeft - leftOffset : currentLeft + leftOffset) + "px)" + translateZStr
126
- }, outerSize),
127
- inner: _extends({}, transStyle)
177
+ }, outerSize, adaptiveOuterStyle),
178
+ inner: _extends({}, transStyle, adaptiveStyle)
128
179
  };
129
180
  }
181
+
130
182
  function getUnderlineStyle() {
131
183
  var transStyle = {};
132
- if (useCaterpillar) {
133
- transStyle.animationDuration = duration + "ms";
134
- }
135
- if (caterpillarRef.current && animationKey) {
136
- transStyle.animationName = animationKey;
137
- }
138
- if (caterpillarDelay) {
139
- transStyle.animationDelay = "-" + caterpillarDelay + "ms";
184
+
185
+ if (!underlineAdaptive) {
186
+ if (useCaterpillar) {
187
+ transStyle.animationDuration = duration + "ms";
188
+ }
189
+
190
+ if (caterpillarRef.current && animationKey) {
191
+ transStyle.animationName = animationKey;
192
+ }
193
+
194
+ if (caterpillarDelay) {
195
+ transStyle.animationDelay = "-" + caterpillarDelay + "ms";
196
+ }
140
197
  }
198
+
141
199
  var lineStyle = getLineStyle();
142
200
  return {
143
201
  outer: getStyleWithVendor(_extends({
@@ -146,29 +204,36 @@ var TabCellUnderline = /*#__PURE__*/forwardRef(function (props, ref) {
146
204
  inner: getStyleWithVendor(_extends({}, transStyle, lineStyle.inner || {}))
147
205
  };
148
206
  }
207
+
149
208
  function resetUnderlineStyle() {
150
209
  setUnderlineStyle(getUnderlineStyle());
151
210
  }
211
+
152
212
  function setCaterpillarAnimate(movedRatio) {
153
213
  if (movedRatio === void 0) {
154
214
  movedRatio = 0;
155
215
  }
216
+
156
217
  if (!duration) {
157
218
  return;
158
219
  }
220
+
159
221
  var movedTime = (duration || 0) * Math.abs(movedRatio);
160
222
  setCaterpillarDelay(movedTime);
161
223
  nextTick(function () {
162
224
  setCaterpillar(true);
163
225
  });
226
+
164
227
  if (timeRef.current) {
165
228
  clearTimeout(timeRef.current);
166
229
  }
230
+
167
231
  timeRef.current = window.setTimeout(function () {
168
232
  setCaterpillar(false);
169
233
  setCaterpillarDelay(0);
170
234
  }, (duration || 0) - movedTime + 20);
171
235
  }
236
+
172
237
  return renderUnderline ? /*#__PURE__*/React.createElement(React.Fragment, null, renderUnderline(underlineStyle, showLine, lineRef)) : /*#__PURE__*/React.createElement("div", {
173
238
  className: cls(prefix + "-underline", {
174
239
  show: showLine
@@ -5,72 +5,78 @@ import { useSystem } from '../_helpers';
5
5
  import TabCellUnderline from './tab-cell-underline';
6
6
  var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
7
7
  var tabs = props.tabs,
8
- prefixCls = props.prefixCls,
9
- activeIndex = props.activeIndex,
10
- activeIndexRef = props.activeIndexRef,
11
- tabDirection = props.tabDirection,
12
- type = props.type,
13
- onTabClick = props.onTabClick,
14
- changeIndex = props.changeIndex,
15
- tabBarPosition = props.tabBarPosition,
16
- tabBarArrange = props.tabBarArrange,
17
- tabBarScroll = props.tabBarScroll,
18
- tabBarFixed = props.tabBarFixed,
19
- renderUnderline = props.renderUnderline,
20
- duration = props.duration,
21
- transitionDuration = props.transitionDuration,
22
- useCaterpillar = props.useCaterpillar,
23
- wrapWidth = props.wrapWidth,
24
- wrapHeight = props.wrapHeight,
25
- cellTrans = props.cellTrans,
26
- distance = props.distance,
27
- jumpingDis = props.jumpingDis,
28
- tabBarExtra = props.tabBarExtra,
29
- onTabBarOverflowChange = props.onTabBarOverflowChange,
30
- tabBarGutter = props.tabBarGutter,
31
- tabBarPadding = props.tabBarPadding,
32
- underlineSize = props.underlineSize,
33
- underlineThick = props.underlineThick,
34
- underlineInnerStyle = props.underlineInnerStyle,
35
- caterpillarMaxScale = props.caterpillarMaxScale,
36
- caterpillarProperty = props.caterpillarProperty,
37
- onTabBarScroll = props.onTabBarScroll,
38
- hideTabBarBeforeMounted = props.hideTabBarBeforeMounted,
39
- _props$overflowThresh = props.overflowThreshold,
40
- overflowThreshold = _props$overflowThresh === void 0 ? 5 : _props$overflowThresh,
41
- tabBarScrollBezier = props.tabBarScrollBezier,
42
- tabBarScrollDuration = props.tabBarScrollDuration,
43
- tabBarScrollChance = props.tabBarScrollChance,
44
- tabBarHasDivider = props.tabBarHasDivider,
45
- showUnderline = props.showUnderline,
46
- disabled = props.disabled,
47
- renderTabBarItem = props.renderTabBarItem,
48
- renderTabBarInner = props.renderTabBarInner,
49
- tabBarStyle = props.tabBarStyle,
50
- tabBarClass = props.tabBarClass,
51
- translateZ = props.translateZ,
52
- tabBarStopPropagation = props.tabBarStopPropagation;
8
+ prefixCls = props.prefixCls,
9
+ activeIndex = props.activeIndex,
10
+ activeIndexRef = props.activeIndexRef,
11
+ tabDirection = props.tabDirection,
12
+ type = props.type,
13
+ onTabClick = props.onTabClick,
14
+ changeIndex = props.changeIndex,
15
+ tabBarPosition = props.tabBarPosition,
16
+ tabBarArrange = props.tabBarArrange,
17
+ tabBarScroll = props.tabBarScroll,
18
+ tabBarFixed = props.tabBarFixed,
19
+ renderUnderline = props.renderUnderline,
20
+ duration = props.duration,
21
+ transitionDuration = props.transitionDuration,
22
+ useCaterpillar = props.useCaterpillar,
23
+ wrapWidth = props.wrapWidth,
24
+ wrapHeight = props.wrapHeight,
25
+ cellTrans = props.cellTrans,
26
+ distance = props.distance,
27
+ jumpingDis = props.jumpingDis,
28
+ tabBarExtra = props.tabBarExtra,
29
+ onTabBarOverflowChange = props.onTabBarOverflowChange,
30
+ tabBarGutter = props.tabBarGutter,
31
+ tabBarPadding = props.tabBarPadding,
32
+ underlineSize = props.underlineSize,
33
+ underlineThick = props.underlineThick,
34
+ underlineInnerStyle = props.underlineInnerStyle,
35
+ caterpillarMaxScale = props.caterpillarMaxScale,
36
+ caterpillarProperty = props.caterpillarProperty,
37
+ onTabBarScroll = props.onTabBarScroll,
38
+ hideTabBarBeforeMounted = props.hideTabBarBeforeMounted,
39
+ _props$overflowThresh = props.overflowThreshold,
40
+ overflowThreshold = _props$overflowThresh === void 0 ? 5 : _props$overflowThresh,
41
+ tabBarScrollBezier = props.tabBarScrollBezier,
42
+ tabBarScrollDuration = props.tabBarScrollDuration,
43
+ tabBarScrollChance = props.tabBarScrollChance,
44
+ tabBarHasDivider = props.tabBarHasDivider,
45
+ showUnderline = props.showUnderline,
46
+ underlineAdaptive = props.underlineAdaptive,
47
+ disabled = props.disabled,
48
+ renderTabBarItem = props.renderTabBarItem,
49
+ renderTabBarInner = props.renderTabBarInner,
50
+ tabBarStyle = props.tabBarStyle,
51
+ tabBarClass = props.tabBarClass,
52
+ translateZ = props.translateZ,
53
+ tabBarStopPropagation = props.tabBarStopPropagation;
53
54
  var prefix = prefixCls + "-tab-cell";
54
55
  var domRef = useRef(null);
55
56
  var underlineRef = useRef(null);
56
57
  var allCellRectRef = useRef([]);
58
+
57
59
  var _useState = useState(false),
58
- showLine = _useState[0],
59
- setShowLine = _useState[1];
60
+ showLine = _useState[0],
61
+ setShowLine = _useState[1];
62
+
60
63
  var _useState2 = useState(false),
61
- hasOverflow = _useState2[0],
62
- setHasOverflow = _useState2[1];
64
+ hasOverflow = _useState2[0],
65
+ setHasOverflow = _useState2[1];
66
+
63
67
  var _useState3 = useState(function () {
64
- return tabs.length < overflowThreshold ? tabBarArrange : 'start';
65
- }),
66
- originArrange = _useState3[0],
67
- setOriginArrange = _useState3[1];
68
- // 默认tab小于overflowThreshold个时不开启加载前隐藏,大于overflowThreshold个时开启
68
+ return tabs.length < overflowThreshold ? tabBarArrange : 'start';
69
+ }),
70
+ originArrange = _useState3[0],
71
+ setOriginArrange = _useState3[1]; // 默认tab小于overflowThreshold个时不开启加载前隐藏,大于overflowThreshold个时开启
72
+
73
+
69
74
  var _useState4 = useState(function () {
70
- return hideTabBarBeforeMounted === void 0 ? tabs.length < overflowThreshold || activeIndex === 0 : !hideTabBarBeforeMounted;
71
- }),
72
- showTab = _useState4[0],
73
- setShowTab = _useState4[1];
75
+ return hideTabBarBeforeMounted === void 0 ? tabs.length < overflowThreshold || activeIndex === 0 : !hideTabBarBeforeMounted;
76
+ }),
77
+ showTab = _useState4[0],
78
+ setShowTab = _useState4[1];
79
+
74
80
  var isVertical = tabDirection === 'vertical';
75
81
  var isLine = (type || '').indexOf('line') !== -1;
76
82
  var isCard = type === 'card';
@@ -78,6 +84,7 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
78
84
  * 非card类型才有间隙和两侧留白
79
85
  * @en Non-card types have gaps and blank on both sides
80
86
  */
87
+
81
88
  var cellPadding = isCard ? void 0 : tabBarPadding;
82
89
  var cellGutter = isCard ? void 0 : tabBarGutter;
83
90
  var hasDivider = tabBarHasDivider === void 0 ? isLine : tabBarHasDivider;
@@ -85,12 +92,12 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
85
92
  var system = useSystem();
86
93
  useEffect(function () {
87
94
  nextTick(function () {
88
- setCellOverflow();
89
- // dom出来之后originArrange置空,交由tabBarArrange控制
95
+ setCellOverflow(); // dom出来之后originArrange置空,交由tabBarArrange控制
90
96
  // @en After the dom comes out, originArrange is left empty and controlled by tabBarArrange
91
- setOriginArrange(void 0);
92
- // dom出来了才知道布局,计算完成后展示出来防止跳动的情况
97
+
98
+ setOriginArrange(void 0); // dom出来了才知道布局,计算完成后展示出来防止跳动的情况
93
99
  // @en The layout is determined only when the dom comes out. It is displayed to prevent the jumping after the calculation is completed
100
+
94
101
  setShowTab(true);
95
102
  setShowLine(true);
96
103
  });
@@ -98,6 +105,7 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
98
105
  useEffect(function () {
99
106
  nextTick(function () {
100
107
  var _underlineRef$current;
108
+
101
109
  (_underlineRef$current = underlineRef.current) == null ? void 0 : _underlineRef$current.resetUnderlineStyle();
102
110
  });
103
111
  }, [activeIndex, tabs, getCellPadding('left'), getCellPadding('right'), tabBarGutter, tabDirection]);
@@ -109,10 +117,12 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
109
117
  hasOverflow: hasOverflow,
110
118
  setCaterpillarAnimate: function setCaterpillarAnimate(ratio) {
111
119
  var _underlineRef$current2;
120
+
112
121
  return (_underlineRef$current2 = underlineRef.current) == null ? void 0 : _underlineRef$current2.setCaterpillarAnimate(ratio);
113
122
  },
114
123
  resetUnderlineStyle: function resetUnderlineStyle() {
115
124
  var _underlineRef$current3;
125
+
116
126
  return (_underlineRef$current3 = underlineRef.current) == null ? void 0 : _underlineRef$current3.resetUnderlineStyle();
117
127
  }
118
128
  };
@@ -125,16 +135,18 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
125
135
  }
126
136
  }, [activeIndex, wrapSize]);
127
137
  useEffect(function () {
128
- tabBarScrollChance !== 'none' && scrollToCenter(true);
129
- // TabCell左右可滚动时,防止触发父级touchmove事件导致滚不动
138
+ tabBarScrollChance !== 'none' && scrollToCenter(true); // TabCell左右可滚动时,防止触发父级touchmove事件导致滚不动
130
139
  // @en When the TabCell can be scrolled left and right, prevent the parent touchmove event from being triggered which result in inability to scroll
140
+
131
141
  var stopFunc = function stopFunc(e) {
132
142
  return e.stopPropagation();
133
143
  };
144
+
134
145
  if (isVertical && hasOverflow && domRef.current && tabBarStopPropagation) {
135
146
  domRef.current.addEventListener('touchstart', stopFunc);
136
147
  domRef.current.addEventListener('touchmove', stopFunc);
137
148
  }
149
+
138
150
  return function () {
139
151
  if (isVertical && hasOverflow && domRef.current && tabBarStopPropagation) {
140
152
  domRef.current.removeEventListener('touchstart', stopFunc);
@@ -142,35 +154,43 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
142
154
  }
143
155
  };
144
156
  }, [hasOverflow]);
157
+
145
158
  function setCellOverflow() {
146
159
  var overflow = false;
160
+
147
161
  if (domRef.current) {
148
162
  overflow = isVertical ? domRef.current.scrollWidth > domRef.current.offsetWidth : domRef.current.scrollHeight > domRef.current.offsetHeight;
149
163
  }
164
+
150
165
  if (overflow !== hasOverflow) {
151
166
  onTabBarOverflowChange && onTabBarOverflowChange(overflow);
152
167
  }
168
+
153
169
  setHasOverflow(overflow);
154
170
  }
171
+
155
172
  function scrollToCenter(rightNow) {
156
173
  if (!wrapSize || !hasOverflow) {
157
174
  return;
158
175
  }
176
+
159
177
  var currentTabLeft = getTabCenterLeft(activeIndexRef.current);
160
178
  var newLeft = currentTabLeft - wrapSize / 2;
161
179
  scrollTo(newLeft, rightNow);
162
180
  }
181
+
163
182
  function scrollTo(position, rightNow) {
164
183
  if (!domRef.current) {
165
184
  return;
166
185
  }
167
- var needRafScroll = false;
168
- // 部分安卓机在动画和raf同时执行时会卡顿
186
+
187
+ var needRafScroll = false; // 部分安卓机在动画和raf同时执行时会卡顿
169
188
  // @en Some Android machines will freeze when animation and raf are executed at the same time
170
189
  // 如果是安卓机,且对滚动的时长和变化曲线无要求时,优先用原生顺滑滚动
171
190
  // @en If it is an Android device, and there is no requirement for the scrolling duration and change curve, the native smooth scrolling is preferred
172
191
  // 当浏览器不支持原生顺滑滚动,或对上述滚动参数有要求时,用raf滚动兜底
173
192
  // @en When the browser does not support native smooth scrolling, or there are requirements for the above scrolling parameters, use raf to scroll the bottom line
193
+
174
194
  if (system === 'android' && tabBarScrollBezier === void 0 && tabBarScrollDuration === void 0) {
175
195
  try {
176
196
  var disObj = isVertical ? {
@@ -187,6 +207,7 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
187
207
  } else {
188
208
  needRafScroll = true;
189
209
  }
210
+
190
211
  if (needRafScroll) {
191
212
  scrollWithAnimation(isVertical ? domRef.current.scrollLeft : domRef.current.scrollTop, position, function (top) {
192
213
  if (domRef.current) {
@@ -199,44 +220,63 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
199
220
  }, rightNow ? 0 : tabBarScrollDuration, tabBarScrollBezier);
200
221
  }
201
222
  }
202
- function getTabCenterLeft(index) {
223
+
224
+ function getTabRect(index) {
203
225
  var currentTab = allCellRectRef.current[index] || {};
204
- var currentTabWidth = (isVertical ? currentTab.width : currentTab.height) || 0;
205
- var currentTabLeft = (isVertical ? currentTab.left : currentTab.top) || 0;
226
+ return {
227
+ left: (isVertical ? currentTab.left : currentTab.top) || 0,
228
+ width: (isVertical ? currentTab.width : currentTab.height) || 0
229
+ };
230
+ }
231
+
232
+ function getTabCenterLeft(index) {
233
+ var _getTabRect = getTabRect(index),
234
+ currentTabLeft = _getTabRect.left,
235
+ currentTabWidth = _getTabRect.width;
236
+
206
237
  return currentTabLeft + currentTabWidth / 2;
207
238
  }
239
+
208
240
  function getCellPadding(pType) {
209
241
  if (typeof cellPadding === 'object') {
210
242
  return cellPadding[pType];
211
243
  }
244
+
212
245
  return cellPadding;
213
246
  }
247
+
214
248
  function getCellStyle(index) {
215
249
  if (!isVertical) {
216
250
  return {};
217
251
  }
252
+
218
253
  if (index === 0) {
219
254
  return {
220
255
  marginRight: cellGutter,
221
256
  marginLeft: getCellPadding('left')
222
257
  };
223
258
  }
259
+
224
260
  return {
225
261
  marginRight: index === tabs.length - 1 ? void 0 : cellGutter
226
262
  };
227
263
  }
264
+
228
265
  function renderBarItem(tab, index) {
229
266
  if (renderTabBarItem) {
230
267
  return renderTabBarItem(tab, index, {
231
268
  active: index === activeIndex
232
269
  });
233
270
  }
271
+
234
272
  return typeof tab === 'string' ? tab : tab.title;
235
273
  }
274
+
236
275
  function renderTabUnderline() {
237
276
  if (!showUnderline || !isLine) {
238
277
  return null;
239
278
  }
279
+
240
280
  var lineProps = {
241
281
  prefix: prefix,
242
282
  showLine: showLine,
@@ -255,13 +295,16 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
255
295
  translateZ: translateZ,
256
296
  underlineSize: underlineSize,
257
297
  underlineThick: underlineThick,
298
+ underlineAdaptive: underlineAdaptive,
258
299
  renderUnderline: renderUnderline
259
300
  };
260
301
  return /*#__PURE__*/React.createElement(TabCellUnderline, _extends({
261
302
  ref: underlineRef,
262
- getTabCenterLeft: getTabCenterLeft
303
+ getTabCenterLeft: getTabCenterLeft,
304
+ getTabRect: getTabRect
263
305
  }, lineProps));
264
306
  }
307
+
265
308
  var cellInner = /*#__PURE__*/React.createElement(React.Fragment, null, tabs.map(function (tab, index) {
266
309
  return /*#__PURE__*/React.createElement("div", {
267
310
  key: index,
@@ -279,6 +322,7 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
279
322
  if (disabled) {
280
323
  return;
281
324
  }
325
+
282
326
  changeIndex(index, 'click');
283
327
  onTabClick && onTabClick(tab, index, e);
284
328
  },