@arco-design/mobile-react 2.25.3 → 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 (816) hide show
  1. package/CHANGELOG.md +33 -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/type.d.ts +3 -3
  102. package/cjs/ellipsis/utils/dom.js +8 -0
  103. package/cjs/ellipsis/utils/is.js +5 -1
  104. package/cjs/form/form-item-context.js +5 -0
  105. package/cjs/form/form-item.js +124 -42
  106. package/cjs/form/index.js +35 -17
  107. package/cjs/form/style/css/index.js +1 -0
  108. package/cjs/form/style/index.js +1 -0
  109. package/cjs/form/type.js +3 -0
  110. package/cjs/form/useForm.js +76 -18
  111. package/cjs/form/utils.js +10 -3
  112. package/cjs/grid/index.js +41 -21
  113. package/cjs/grid/style/css/index.js +1 -0
  114. package/cjs/grid/style/index.js +1 -0
  115. package/cjs/icon/IconAdd/index.js +12 -5
  116. package/cjs/icon/IconArrowBack/index.js +12 -5
  117. package/cjs/icon/IconArrowDown/index.js +12 -5
  118. package/cjs/icon/IconArrowIn/index.js +12 -5
  119. package/cjs/icon/IconArrowUp/index.js +12 -5
  120. package/cjs/icon/IconCheck/index.js +12 -5
  121. package/cjs/icon/IconCheckBold/index.js +12 -5
  122. package/cjs/icon/IconCircleChecked/index.js +12 -5
  123. package/cjs/icon/IconCircleDisabled/index.js +12 -5
  124. package/cjs/icon/IconCircleUnchecked/index.js +12 -5
  125. package/cjs/icon/IconClear/index.js +12 -5
  126. package/cjs/icon/IconClose/index.js +12 -5
  127. package/cjs/icon/IconCloseBold/index.js +12 -5
  128. package/cjs/icon/IconDelete/index.js +12 -5
  129. package/cjs/icon/IconEdit/index.js +12 -5
  130. package/cjs/icon/IconErrorCircle/index.js +12 -5
  131. package/cjs/icon/IconEyeInvisible/index.js +12 -5
  132. package/cjs/icon/IconEyeVisible/index.js +12 -5
  133. package/cjs/icon/IconEyelashInvisible/index.js +12 -5
  134. package/cjs/icon/IconGift/index.js +12 -5
  135. package/cjs/icon/IconHeart/index.js +12 -5
  136. package/cjs/icon/IconHome/index.js +12 -5
  137. package/cjs/icon/IconLikeCircle/index.js +12 -5
  138. package/cjs/icon/IconMinus/index.js +12 -5
  139. package/cjs/icon/IconMore/index.js +12 -5
  140. package/cjs/icon/IconNotice/index.js +12 -5
  141. package/cjs/icon/IconNoticeOff/index.js +12 -5
  142. package/cjs/icon/IconPicture/index.js +12 -5
  143. package/cjs/icon/IconPlay/index.js +12 -5
  144. package/cjs/icon/IconQuestionCircle/index.js +12 -5
  145. package/cjs/icon/IconRefresh/index.js +12 -5
  146. package/cjs/icon/IconSad/index.js +12 -5
  147. package/cjs/icon/IconScan/index.js +12 -5
  148. package/cjs/icon/IconSearch/index.js +12 -5
  149. package/cjs/icon/IconSetting/index.js +12 -5
  150. package/cjs/icon/IconShop/index.js +12 -5
  151. package/cjs/icon/IconShopping/index.js +12 -5
  152. package/cjs/icon/IconSmileFill/index.js +12 -5
  153. package/cjs/icon/IconSound/index.js +12 -5
  154. package/cjs/icon/IconSquareChecked/index.js +12 -5
  155. package/cjs/icon/IconSquareDisabled/index.js +12 -5
  156. package/cjs/icon/IconSquareUnchecked/index.js +12 -5
  157. package/cjs/icon/IconStar/index.js +12 -5
  158. package/cjs/icon/IconStarFill/index.js +12 -5
  159. package/cjs/icon/IconStarHalf/index.js +12 -5
  160. package/cjs/icon/IconSubway/index.js +12 -5
  161. package/cjs/icon/IconSuccessCircle/index.js +12 -5
  162. package/cjs/icon/IconTriDown/index.js +12 -5
  163. package/cjs/icon/IconTriUp/index.js +12 -5
  164. package/cjs/icon/IconUpload/index.js +12 -5
  165. package/cjs/icon/IconUser/index.js +12 -5
  166. package/cjs/icon/IconUserFill/index.js +12 -5
  167. package/cjs/icon/IconWarnCircle/index.js +12 -5
  168. package/cjs/icon/IconWarnCircleFill/index.js +12 -5
  169. package/cjs/icon/index.js +111 -0
  170. package/cjs/image/index.js +92 -56
  171. package/cjs/image/style/css/index.css +1 -0
  172. package/cjs/image/style/css/index.js +2 -0
  173. package/cjs/image/style/index.js +2 -0
  174. package/cjs/image/style/index.less +1 -0
  175. package/cjs/image-picker/add-icon.js +3 -0
  176. package/cjs/image-picker/index.js +96 -52
  177. package/cjs/image-picker/style/css/index.js +2 -0
  178. package/cjs/image-picker/style/index.js +2 -0
  179. package/cjs/image-preview/index.d.ts +2 -2
  180. package/cjs/image-preview/index.js +239 -119
  181. package/cjs/image-preview/methods.js +18 -5
  182. package/cjs/image-preview/style/css/index.js +4 -0
  183. package/cjs/image-preview/style/index.js +4 -0
  184. package/cjs/index.d.ts +10 -9
  185. package/cjs/index.js +132 -19
  186. package/cjs/input/demo/style/css/mobile.css +5 -1
  187. package/cjs/input/demo/style/mobile.less +2 -2
  188. package/cjs/input/hooks.js +104 -42
  189. package/cjs/input/index.js +40 -26
  190. package/cjs/input/props.d.ts +6 -0
  191. package/cjs/input/style/css/index.css +9 -0
  192. package/cjs/input/style/css/index.js +1 -0
  193. package/cjs/input/style/index.js +1 -0
  194. package/cjs/input/style/index.less +2 -2
  195. package/cjs/load-more/index.js +56 -29
  196. package/cjs/load-more/style/css/index.js +1 -0
  197. package/cjs/load-more/style/index.js +1 -0
  198. package/cjs/loading/index.js +48 -19
  199. package/cjs/loading/style/css/index.js +1 -0
  200. package/cjs/loading/style/index.js +1 -0
  201. package/cjs/masking/index.d.ts +2 -2
  202. package/cjs/masking/index.js +79 -46
  203. package/cjs/masking/methods.js +19 -4
  204. package/cjs/masking/style/css/index.js +2 -0
  205. package/cjs/masking/style/index.js +2 -0
  206. package/cjs/nav-bar/back-icon.js +5 -1
  207. package/cjs/nav-bar/index.js +61 -37
  208. package/cjs/nav-bar/style/css/index.js +1 -0
  209. package/cjs/nav-bar/style/index.js +1 -0
  210. package/cjs/notice-bar/index.js +61 -33
  211. package/cjs/notice-bar/style/css/index.css +33 -0
  212. package/cjs/notice-bar/style/css/index.js +1 -0
  213. package/cjs/notice-bar/style/index.js +1 -0
  214. package/cjs/notice-bar/style/index.less +16 -3
  215. package/cjs/notify/index.d.ts +8 -8
  216. package/cjs/notify/index.js +49 -20
  217. package/cjs/notify/methods.js +17 -2
  218. package/cjs/notify/style/css/index.js +1 -0
  219. package/cjs/notify/style/index.js +1 -0
  220. package/cjs/pagination/arrow.js +3 -0
  221. package/cjs/pagination/index.js +58 -27
  222. package/cjs/pagination/style/css/index.js +1 -0
  223. package/cjs/pagination/style/index.js +1 -0
  224. package/cjs/picker/index.js +81 -40
  225. package/cjs/picker/style/css/index.js +3 -0
  226. package/cjs/picker/style/index.js +3 -0
  227. package/cjs/picker-view/components/cascader.js +31 -14
  228. package/cjs/picker-view/components/multi-picker.js +20 -6
  229. package/cjs/picker-view/components/picker-cell.js +97 -45
  230. package/cjs/picker-view/index.js +71 -25
  231. package/cjs/picker-view/style/css/index.js +1 -0
  232. package/cjs/picker-view/style/index.js +1 -0
  233. package/cjs/popover/hooks/index.js +4 -0
  234. package/cjs/popover/hooks/useEvent.js +49 -25
  235. package/cjs/popover/hooks/usePosition.js +151 -94
  236. package/cjs/popover/index.js +8 -1
  237. package/cjs/popover/menu.js +51 -32
  238. package/cjs/popover/popover-inner.js +47 -30
  239. package/cjs/popover/popover.js +101 -69
  240. package/cjs/popover/style/css/index.js +2 -0
  241. package/cjs/popover/style/index.js +2 -0
  242. package/cjs/popup/index.d.ts +2 -2
  243. package/cjs/popup/index.js +39 -22
  244. package/cjs/popup/methods.js +2 -0
  245. package/cjs/popup/style/css/index.js +2 -0
  246. package/cjs/popup/style/index.js +2 -0
  247. package/cjs/popup-swiper/index.d.ts +2 -2
  248. package/cjs/popup-swiper/index.js +80 -38
  249. package/cjs/popup-swiper/methods.js +2 -0
  250. package/cjs/popup-swiper/style/css/index.js +2 -0
  251. package/cjs/popup-swiper/style/index.js +2 -0
  252. package/cjs/portal/index.js +8 -3
  253. package/cjs/portal/style/css/index.js +1 -0
  254. package/cjs/portal/style/index.js +1 -0
  255. package/cjs/progress/index.js +44 -27
  256. package/cjs/progress/style/css/index.js +1 -0
  257. package/cjs/progress/style/index.js +1 -0
  258. package/cjs/pull-refresh/android-pull-refresh.js +100 -58
  259. package/cjs/pull-refresh/hooks.js +32 -11
  260. package/cjs/pull-refresh/index.js +14 -3
  261. package/cjs/pull-refresh/ios-pull-refresh.js +80 -53
  262. package/cjs/pull-refresh/model.js +1 -0
  263. package/cjs/pull-refresh/style/css/index.js +2 -0
  264. package/cjs/pull-refresh/style/index.js +2 -0
  265. package/cjs/radio/group.js +34 -20
  266. package/cjs/radio/index.js +8 -1
  267. package/cjs/radio/radio.js +10 -0
  268. package/cjs/radio/style/css/index.js +1 -0
  269. package/cjs/radio/style/index.js +1 -0
  270. package/cjs/rate/index.js +50 -24
  271. package/cjs/rate/style/css/index.js +1 -0
  272. package/cjs/rate/style/index.js +1 -0
  273. package/cjs/search-bar/association.js +32 -14
  274. package/cjs/search-bar/cancel-button.js +16 -8
  275. package/cjs/search-bar/highlight.js +25 -14
  276. package/cjs/search-bar/index.js +97 -77
  277. package/cjs/search-bar/style/css/index.css +1 -0
  278. package/cjs/search-bar/style/css/index.js +1 -0
  279. package/cjs/search-bar/style/index.js +1 -0
  280. package/cjs/search-bar/style/index.less +1 -0
  281. package/cjs/show-monitor/index.js +93 -34
  282. package/cjs/show-monitor/style/css/index.js +1 -0
  283. package/cjs/show-monitor/style/index.js +1 -0
  284. package/cjs/slider/hooks/index.js +13 -0
  285. package/cjs/slider/hooks/useSliderEvents.js +55 -26
  286. package/cjs/slider/hooks/useSliderIcon.js +20 -6
  287. package/cjs/slider/hooks/useSliderInit.js +52 -32
  288. package/cjs/slider/hooks/useSliderStyle.js +24 -12
  289. package/cjs/slider/index.js +72 -46
  290. package/cjs/slider/marks.js +26 -12
  291. package/cjs/slider/popover.js +13 -4
  292. package/cjs/slider/style/css/index.js +2 -0
  293. package/cjs/slider/style/index.js +2 -0
  294. package/cjs/slider/thumb.js +23 -8
  295. package/cjs/stepper/hooks/useButtonClick.js +28 -19
  296. package/cjs/stepper/hooks/useInputEvent.js +18 -9
  297. package/cjs/stepper/hooks/useValue.js +14 -9
  298. package/cjs/stepper/index.js +96 -82
  299. package/cjs/stepper/style/css/index.js +1 -0
  300. package/cjs/stepper/style/index.js +1 -0
  301. package/cjs/steps/index.js +40 -22
  302. package/cjs/steps/step.js +27 -10
  303. package/cjs/steps/style/css/index.js +1 -0
  304. package/cjs/steps/style/index.js +1 -0
  305. package/cjs/sticky/index.js +65 -36
  306. package/cjs/sticky/style/css/index.js +1 -0
  307. package/cjs/sticky/style/index.js +1 -0
  308. package/cjs/style.d.ts +9 -8
  309. package/cjs/style.js +64 -8
  310. package/cjs/swipe-action/index.js +92 -40
  311. package/cjs/swipe-action/item.js +17 -9
  312. package/cjs/swipe-action/style/css/index.js +1 -0
  313. package/cjs/swipe-action/style/index.js +1 -0
  314. package/cjs/swipe-load/index.js +83 -55
  315. package/cjs/swipe-load/style/css/index.js +1 -0
  316. package/cjs/swipe-load/style/index.js +1 -0
  317. package/cjs/switch/index.js +47 -27
  318. package/cjs/switch/style/css/index.js +1 -0
  319. package/cjs/switch/style/index.js +1 -0
  320. package/cjs/tab-bar/index.js +7 -0
  321. package/cjs/tab-bar/item.js +24 -6
  322. package/cjs/tab-bar/style/css/index.js +1 -0
  323. package/cjs/tab-bar/style/index.js +1 -0
  324. package/cjs/tab-bar/tab-bar.js +31 -15
  325. package/cjs/tabs/index.js +195 -129
  326. package/cjs/tabs/style/css/index.js +1 -0
  327. package/cjs/tabs/style/index.js +1 -0
  328. package/cjs/tabs/tab-cell-underline.js +111 -38
  329. package/cjs/tabs/tab-cell.js +124 -70
  330. package/cjs/tabs/tab-pane.js +94 -49
  331. package/cjs/tabs/type.d.ts +18 -2
  332. package/cjs/tag/index.js +8 -1
  333. package/cjs/tag/list.js +26 -11
  334. package/cjs/tag/style/css/index.js +1 -0
  335. package/cjs/tag/style/index.js +1 -0
  336. package/cjs/tag/tag.js +32 -20
  337. package/cjs/textarea/index.js +56 -35
  338. package/cjs/textarea/style/css/index.js +2 -0
  339. package/cjs/textarea/style/index.js +2 -0
  340. package/cjs/toast/index.d.ts +12 -12
  341. package/cjs/toast/index.js +61 -26
  342. package/cjs/toast/methods.js +16 -2
  343. package/cjs/toast/style/css/index.js +3 -0
  344. package/cjs/toast/style/index.js +3 -0
  345. package/cjs/transition/index.js +18 -10
  346. package/cjs/transition/style/css/index.js +1 -0
  347. package/cjs/transition/style/index.js +1 -0
  348. package/dist/index.js +21588 -19198
  349. package/dist/index.min.js +4 -4
  350. package/dist/style.css +3766 -3629
  351. package/dist/style.min.css +1 -1
  352. package/esm/_helpers/hooks.js +103 -42
  353. package/esm/_helpers/index.js +3 -2
  354. package/esm/_helpers/react-dom.js +10 -0
  355. package/esm/_helpers/render.js +7 -0
  356. package/esm/action-sheet/index.d.ts +2 -2
  357. package/esm/action-sheet/index.js +16 -10
  358. package/esm/avatar/group.js +16 -12
  359. package/esm/avatar/index.js +62 -51
  360. package/esm/badge/index.js +22 -18
  361. package/esm/button/hooks.js +18 -15
  362. package/esm/button/index.js +57 -46
  363. package/esm/carousel/index.d.ts +6 -0
  364. package/esm/carousel/index.js +336 -186
  365. package/esm/carousel/style/css/index.css +50 -15
  366. package/esm/carousel/style/index.less +19 -14
  367. package/esm/cell/cell.js +14 -14
  368. package/esm/cell/demo/style/css/mobile.css +8 -0
  369. package/esm/cell/demo/style/mobile.less +2 -2
  370. package/esm/cell/group.js +11 -9
  371. package/esm/cell/index.js +1 -1
  372. package/esm/cell/style/css/index.css +16 -0
  373. package/esm/cell/style/index.less +6 -4
  374. package/esm/checkbox/checkbox.js +42 -31
  375. package/esm/checkbox/group.js +28 -24
  376. package/esm/checkbox/hooks/useMergeProps.js +9 -7
  377. package/esm/checkbox/index.js +2 -2
  378. package/esm/checkbox/type.js +1 -0
  379. package/esm/circle-progress/index.js +49 -37
  380. package/esm/collapse/collapse.js +46 -27
  381. package/esm/collapse/group.js +34 -20
  382. package/esm/collapse/index.js +1 -1
  383. package/esm/collapse/utils.js +1 -0
  384. package/esm/context-provider/index.d.ts +6 -0
  385. package/esm/context-provider/index.js +20 -11
  386. package/esm/count-down/hooks.js +37 -24
  387. package/esm/count-down/index.js +29 -30
  388. package/esm/count-down/singleton.js +5 -2
  389. package/esm/count-down/util.js +42 -33
  390. package/esm/date-picker/helper.js +9 -7
  391. package/esm/date-picker/index.js +93 -42
  392. package/esm/dialog/index.d.ts +2 -2
  393. package/esm/dialog/index.js +39 -28
  394. package/esm/dialog/methods.js +11 -9
  395. package/esm/divider/demo/style/css/mobile.css +7 -0
  396. package/esm/divider/demo/style/mobile.less +12 -0
  397. package/esm/divider/index.d.ts +49 -0
  398. package/esm/divider/index.js +49 -0
  399. package/esm/divider/style/css/index.css +69 -0
  400. package/esm/divider/style/css/index.d.ts +2 -0
  401. package/esm/divider/style/css/index.js +2 -0
  402. package/esm/divider/style/index.d.ts +2 -0
  403. package/esm/divider/style/index.js +2 -0
  404. package/esm/divider/style/index.less +66 -0
  405. package/esm/dropdown/dropdown.js +102 -74
  406. package/esm/dropdown/index.js +1 -1
  407. package/esm/dropdown/options.js +20 -12
  408. package/esm/dropdown-menu/dropdown-menu.js +74 -49
  409. package/esm/dropdown-menu/helper.js +16 -6
  410. package/esm/dropdown-menu/index.js +1 -1
  411. package/esm/ellipsis/components/js-ellipsis.js +63 -33
  412. package/esm/ellipsis/components/native-ellipsis.js +11 -9
  413. package/esm/ellipsis/index.js +21 -20
  414. package/esm/ellipsis/type.d.ts +3 -3
  415. package/esm/ellipsis/utils/dom.js +7 -0
  416. package/esm/ellipsis/utils/is.js +1 -1
  417. package/esm/form/form-item.js +110 -42
  418. package/esm/form/index.js +20 -17
  419. package/esm/form/type.js +3 -0
  420. package/esm/form/useForm.js +71 -17
  421. package/esm/form/utils.js +6 -3
  422. package/esm/grid/index.js +34 -21
  423. package/esm/icon/IconAdd/index.js +6 -5
  424. package/esm/icon/IconArrowBack/index.js +6 -5
  425. package/esm/icon/IconArrowDown/index.js +6 -5
  426. package/esm/icon/IconArrowIn/index.js +6 -5
  427. package/esm/icon/IconArrowUp/index.js +6 -5
  428. package/esm/icon/IconCheck/index.js +6 -5
  429. package/esm/icon/IconCheckBold/index.js +6 -5
  430. package/esm/icon/IconCircleChecked/index.js +6 -5
  431. package/esm/icon/IconCircleDisabled/index.js +6 -5
  432. package/esm/icon/IconCircleUnchecked/index.js +6 -5
  433. package/esm/icon/IconClear/index.js +6 -5
  434. package/esm/icon/IconClose/index.js +6 -5
  435. package/esm/icon/IconCloseBold/index.js +6 -5
  436. package/esm/icon/IconDelete/index.js +6 -5
  437. package/esm/icon/IconEdit/index.js +6 -5
  438. package/esm/icon/IconErrorCircle/index.js +6 -5
  439. package/esm/icon/IconEyeInvisible/index.js +6 -5
  440. package/esm/icon/IconEyeVisible/index.js +6 -5
  441. package/esm/icon/IconEyelashInvisible/index.js +6 -5
  442. package/esm/icon/IconGift/index.js +6 -5
  443. package/esm/icon/IconHeart/index.js +6 -5
  444. package/esm/icon/IconHome/index.js +6 -5
  445. package/esm/icon/IconLikeCircle/index.js +6 -5
  446. package/esm/icon/IconMinus/index.js +6 -5
  447. package/esm/icon/IconMore/index.js +6 -5
  448. package/esm/icon/IconNotice/index.js +6 -5
  449. package/esm/icon/IconNoticeOff/index.js +6 -5
  450. package/esm/icon/IconPicture/index.js +6 -5
  451. package/esm/icon/IconPlay/index.js +6 -5
  452. package/esm/icon/IconQuestionCircle/index.js +6 -5
  453. package/esm/icon/IconRefresh/index.js +6 -5
  454. package/esm/icon/IconSad/index.js +6 -5
  455. package/esm/icon/IconScan/index.js +6 -5
  456. package/esm/icon/IconSearch/index.js +6 -5
  457. package/esm/icon/IconSetting/index.js +6 -5
  458. package/esm/icon/IconShop/index.js +6 -5
  459. package/esm/icon/IconShopping/index.js +6 -5
  460. package/esm/icon/IconSmileFill/index.js +6 -5
  461. package/esm/icon/IconSound/index.js +6 -5
  462. package/esm/icon/IconSquareChecked/index.js +6 -5
  463. package/esm/icon/IconSquareDisabled/index.js +6 -5
  464. package/esm/icon/IconSquareUnchecked/index.js +6 -5
  465. package/esm/icon/IconStar/index.js +6 -5
  466. package/esm/icon/IconStarFill/index.js +6 -5
  467. package/esm/icon/IconStarHalf/index.js +6 -5
  468. package/esm/icon/IconSubway/index.js +6 -5
  469. package/esm/icon/IconSuccessCircle/index.js +6 -5
  470. package/esm/icon/IconTriDown/index.js +6 -5
  471. package/esm/icon/IconTriUp/index.js +6 -5
  472. package/esm/icon/IconUpload/index.js +6 -5
  473. package/esm/icon/IconUser/index.js +6 -5
  474. package/esm/icon/IconUserFill/index.js +6 -5
  475. package/esm/icon/IconWarnCircle/index.js +6 -5
  476. package/esm/icon/IconWarnCircleFill/index.js +6 -5
  477. package/esm/image/index.js +84 -57
  478. package/esm/image/style/css/index.css +1 -0
  479. package/esm/image/style/index.less +1 -0
  480. package/esm/image-picker/index.js +80 -52
  481. package/esm/image-preview/index.d.ts +2 -2
  482. package/esm/image-preview/index.js +217 -119
  483. package/esm/image-preview/methods.js +14 -4
  484. package/esm/index.d.ts +10 -9
  485. package/esm/index.js +10 -9
  486. package/esm/input/demo/style/css/mobile.css +5 -1
  487. package/esm/input/demo/style/mobile.less +2 -2
  488. package/esm/input/hooks.js +96 -42
  489. package/esm/input/index.js +30 -26
  490. package/esm/input/props.d.ts +6 -0
  491. package/esm/input/style/css/index.css +9 -0
  492. package/esm/input/style/index.less +2 -2
  493. package/esm/load-more/index.js +48 -29
  494. package/esm/loading/index.js +40 -19
  495. package/esm/masking/index.d.ts +2 -2
  496. package/esm/masking/index.js +64 -46
  497. package/esm/masking/methods.js +15 -4
  498. package/esm/nav-bar/back-icon.js +3 -1
  499. package/esm/nav-bar/index.js +52 -37
  500. package/esm/notice-bar/index.js +56 -35
  501. package/esm/notice-bar/style/css/index.css +33 -0
  502. package/esm/notice-bar/style/index.less +16 -3
  503. package/esm/notify/index.d.ts +8 -8
  504. package/esm/notify/index.js +33 -20
  505. package/esm/notify/methods.js +13 -2
  506. package/esm/pagination/index.js +50 -27
  507. package/esm/picker/index.js +66 -40
  508. package/esm/picker-view/components/cascader.js +23 -14
  509. package/esm/picker-view/components/multi-picker.js +16 -6
  510. package/esm/picker-view/components/picker-cell.js +89 -45
  511. package/esm/picker-view/index.js +54 -25
  512. package/esm/popover/hooks/useEvent.js +41 -26
  513. package/esm/popover/hooks/usePosition.js +144 -94
  514. package/esm/popover/index.js +2 -2
  515. package/esm/popover/menu.js +41 -32
  516. package/esm/popover/popover-inner.js +38 -30
  517. package/esm/popover/popover.js +90 -69
  518. package/esm/popup/index.d.ts +2 -2
  519. package/esm/popup/index.js +25 -22
  520. package/esm/popup-swiper/index.d.ts +2 -2
  521. package/esm/popup-swiper/index.js +64 -38
  522. package/esm/portal/index.js +5 -3
  523. package/esm/progress/index.js +36 -27
  524. package/esm/pull-refresh/android-pull-refresh.js +90 -58
  525. package/esm/pull-refresh/hooks.js +23 -11
  526. package/esm/pull-refresh/index.js +5 -3
  527. package/esm/pull-refresh/ios-pull-refresh.js +68 -53
  528. package/esm/pull-refresh/model.js +1 -0
  529. package/esm/radio/group.js +24 -20
  530. package/esm/radio/index.js +2 -2
  531. package/esm/rate/index.js +39 -24
  532. package/esm/search-bar/association.js +27 -14
  533. package/esm/search-bar/cancel-button.js +11 -8
  534. package/esm/search-bar/highlight.js +20 -14
  535. package/esm/search-bar/index.js +86 -77
  536. package/esm/search-bar/style/css/index.css +1 -0
  537. package/esm/search-bar/style/index.less +1 -0
  538. package/esm/show-monitor/index.js +85 -34
  539. package/esm/slider/hooks/useSliderEvents.js +51 -26
  540. package/esm/slider/hooks/useSliderIcon.js +13 -6
  541. package/esm/slider/hooks/useSliderInit.js +46 -32
  542. package/esm/slider/hooks/useSliderStyle.js +20 -12
  543. package/esm/slider/index.js +62 -46
  544. package/esm/slider/marks.js +18 -12
  545. package/esm/slider/popover.js +6 -4
  546. package/esm/slider/thumb.js +15 -8
  547. package/esm/stepper/hooks/useButtonClick.js +27 -19
  548. package/esm/stepper/hooks/useInputEvent.js +16 -9
  549. package/esm/stepper/hooks/useValue.js +12 -9
  550. package/esm/stepper/index.js +82 -82
  551. package/esm/steps/index.js +27 -22
  552. package/esm/steps/step.js +19 -10
  553. package/esm/sticky/index.js +56 -36
  554. package/esm/style.d.ts +9 -8
  555. package/esm/style.js +9 -8
  556. package/esm/swipe-action/index.js +80 -40
  557. package/esm/swipe-action/item.js +12 -9
  558. package/esm/swipe-load/index.js +75 -56
  559. package/esm/switch/index.js +39 -27
  560. package/esm/tab-bar/index.js +1 -0
  561. package/esm/tab-bar/item.js +13 -6
  562. package/esm/tab-bar/tab-bar.js +21 -15
  563. package/esm/tabs/index.js +183 -130
  564. package/esm/tabs/tab-cell-underline.js +103 -38
  565. package/esm/tabs/tab-cell.js +114 -70
  566. package/esm/tabs/tab-pane.js +85 -49
  567. package/esm/tabs/type.d.ts +18 -2
  568. package/esm/tag/index.js +2 -2
  569. package/esm/tag/list.js +16 -11
  570. package/esm/tag/tag.js +22 -20
  571. package/esm/textarea/index.js +46 -35
  572. package/esm/toast/index.d.ts +12 -12
  573. package/esm/toast/index.js +42 -26
  574. package/esm/toast/methods.js +12 -2
  575. package/esm/transition/index.js +12 -10
  576. package/package.json +3 -3
  577. package/tokens/app/arcodesign/default/css-variables.less +22 -0
  578. package/tokens/app/arcodesign/default/index.d.ts +22 -0
  579. package/tokens/app/arcodesign/default/index.js +25 -1
  580. package/tokens/app/arcodesign/default/index.json +262 -0
  581. package/tokens/app/arcodesign/default/index.less +22 -0
  582. package/tokens/mixin/index.less +19 -1
  583. package/umd/_helpers/hooks.js +121 -43
  584. package/umd/_helpers/index.js +6 -2
  585. package/umd/_helpers/react-dom.js +11 -0
  586. package/umd/_helpers/render.js +9 -0
  587. package/umd/action-sheet/index.d.ts +2 -2
  588. package/umd/action-sheet/index.js +22 -10
  589. package/umd/action-sheet/methods.js +1 -0
  590. package/umd/avatar/group.js +20 -12
  591. package/umd/avatar/index.js +68 -51
  592. package/umd/badge/index.js +25 -18
  593. package/umd/button/hooks.js +19 -15
  594. package/umd/button/index.js +60 -46
  595. package/umd/carousel/index.d.ts +6 -0
  596. package/umd/carousel/index.js +337 -184
  597. package/umd/carousel/style/css/index.css +50 -15
  598. package/umd/carousel/style/index.less +19 -14
  599. package/umd/cell/arrow.js +2 -0
  600. package/umd/cell/cell.js +18 -14
  601. package/umd/cell/demo/style/css/mobile.css +8 -0
  602. package/umd/cell/demo/style/mobile.less +2 -2
  603. package/umd/cell/group.js +17 -9
  604. package/umd/cell/index.js +2 -1
  605. package/umd/cell/style/css/index.css +16 -0
  606. package/umd/cell/style/index.less +6 -4
  607. package/umd/checkbox/checkbox.js +45 -31
  608. package/umd/checkbox/group.js +34 -24
  609. package/umd/checkbox/hooks/useMergeProps.js +12 -7
  610. package/umd/checkbox/index.js +3 -1
  611. package/umd/checkbox/type.js +2 -0
  612. package/umd/circle-progress/index.js +52 -37
  613. package/umd/collapse/collapse.js +50 -27
  614. package/umd/collapse/group.js +38 -20
  615. package/umd/collapse/index.js +3 -0
  616. package/umd/collapse/utils.js +5 -0
  617. package/umd/context-provider/index.d.ts +6 -0
  618. package/umd/context-provider/index.js +25 -11
  619. package/umd/count-down/hooks.js +39 -24
  620. package/umd/count-down/index.js +31 -29
  621. package/umd/count-down/singleton.js +10 -2
  622. package/umd/count-down/util.js +47 -33
  623. package/umd/date-picker/helper.js +13 -7
  624. package/umd/date-picker/index.js +97 -42
  625. package/umd/dialog/index.d.ts +2 -2
  626. package/umd/dialog/index.js +44 -28
  627. package/umd/dialog/methods.js +18 -9
  628. package/umd/divider/demo/style/css/mobile.css +7 -0
  629. package/umd/divider/demo/style/mobile.less +12 -0
  630. package/umd/divider/index.d.ts +49 -0
  631. package/umd/divider/index.js +71 -0
  632. package/umd/divider/style/css/index.css +69 -0
  633. package/umd/divider/style/css/index.d.ts +2 -0
  634. package/umd/divider/style/css/index.js +15 -0
  635. package/umd/divider/style/index.d.ts +2 -0
  636. package/umd/divider/style/index.js +15 -0
  637. package/umd/divider/style/index.less +66 -0
  638. package/umd/dropdown/dropdown.js +106 -74
  639. package/umd/dropdown/index.js +3 -1
  640. package/umd/dropdown/options.js +24 -12
  641. package/umd/dropdown-menu/dropdown-menu.js +78 -49
  642. package/umd/dropdown-menu/helper.js +25 -6
  643. package/umd/dropdown-menu/index.js +2 -0
  644. package/umd/ellipsis/components/js-ellipsis.js +69 -33
  645. package/umd/ellipsis/components/native-ellipsis.js +13 -9
  646. package/umd/ellipsis/index.js +24 -19
  647. package/umd/ellipsis/type.d.ts +3 -3
  648. package/umd/ellipsis/utils/dom.js +8 -0
  649. package/umd/ellipsis/utils/is.js +5 -1
  650. package/umd/form/form-item-context.js +3 -0
  651. package/umd/form/form-item.js +114 -42
  652. package/umd/form/index.js +25 -17
  653. package/umd/form/type.js +3 -0
  654. package/umd/form/useForm.js +72 -18
  655. package/umd/form/utils.js +10 -3
  656. package/umd/grid/index.js +37 -21
  657. package/umd/icon/IconAdd/index.js +7 -5
  658. package/umd/icon/IconArrowBack/index.js +7 -5
  659. package/umd/icon/IconArrowDown/index.js +7 -5
  660. package/umd/icon/IconArrowIn/index.js +7 -5
  661. package/umd/icon/IconArrowUp/index.js +7 -5
  662. package/umd/icon/IconCheck/index.js +7 -5
  663. package/umd/icon/IconCheckBold/index.js +7 -5
  664. package/umd/icon/IconCircleChecked/index.js +7 -5
  665. package/umd/icon/IconCircleDisabled/index.js +7 -5
  666. package/umd/icon/IconCircleUnchecked/index.js +7 -5
  667. package/umd/icon/IconClear/index.js +7 -5
  668. package/umd/icon/IconClose/index.js +7 -5
  669. package/umd/icon/IconCloseBold/index.js +7 -5
  670. package/umd/icon/IconDelete/index.js +7 -5
  671. package/umd/icon/IconEdit/index.js +7 -5
  672. package/umd/icon/IconErrorCircle/index.js +7 -5
  673. package/umd/icon/IconEyeInvisible/index.js +7 -5
  674. package/umd/icon/IconEyeVisible/index.js +7 -5
  675. package/umd/icon/IconEyelashInvisible/index.js +7 -5
  676. package/umd/icon/IconGift/index.js +7 -5
  677. package/umd/icon/IconHeart/index.js +7 -5
  678. package/umd/icon/IconHome/index.js +7 -5
  679. package/umd/icon/IconLikeCircle/index.js +7 -5
  680. package/umd/icon/IconMinus/index.js +7 -5
  681. package/umd/icon/IconMore/index.js +7 -5
  682. package/umd/icon/IconNotice/index.js +7 -5
  683. package/umd/icon/IconNoticeOff/index.js +7 -5
  684. package/umd/icon/IconPicture/index.js +7 -5
  685. package/umd/icon/IconPlay/index.js +7 -5
  686. package/umd/icon/IconQuestionCircle/index.js +7 -5
  687. package/umd/icon/IconRefresh/index.js +7 -5
  688. package/umd/icon/IconSad/index.js +7 -5
  689. package/umd/icon/IconScan/index.js +7 -5
  690. package/umd/icon/IconSearch/index.js +7 -5
  691. package/umd/icon/IconSetting/index.js +7 -5
  692. package/umd/icon/IconShop/index.js +7 -5
  693. package/umd/icon/IconShopping/index.js +7 -5
  694. package/umd/icon/IconSmileFill/index.js +7 -5
  695. package/umd/icon/IconSound/index.js +7 -5
  696. package/umd/icon/IconSquareChecked/index.js +7 -5
  697. package/umd/icon/IconSquareDisabled/index.js +7 -5
  698. package/umd/icon/IconSquareUnchecked/index.js +7 -5
  699. package/umd/icon/IconStar/index.js +7 -5
  700. package/umd/icon/IconStarFill/index.js +7 -5
  701. package/umd/icon/IconStarHalf/index.js +7 -5
  702. package/umd/icon/IconSubway/index.js +7 -5
  703. package/umd/icon/IconSuccessCircle/index.js +7 -5
  704. package/umd/icon/IconTriDown/index.js +7 -5
  705. package/umd/icon/IconTriUp/index.js +7 -5
  706. package/umd/icon/IconUpload/index.js +7 -5
  707. package/umd/icon/IconUser/index.js +7 -5
  708. package/umd/icon/IconUserFill/index.js +7 -5
  709. package/umd/icon/IconWarnCircle/index.js +7 -5
  710. package/umd/icon/IconWarnCircleFill/index.js +7 -5
  711. package/umd/icon/index.js +1 -0
  712. package/umd/image/index.js +86 -56
  713. package/umd/image/style/css/index.css +1 -0
  714. package/umd/image/style/index.less +1 -0
  715. package/umd/image-picker/add-icon.js +2 -0
  716. package/umd/image-picker/index.js +85 -52
  717. package/umd/image-preview/index.d.ts +2 -2
  718. package/umd/image-preview/index.js +224 -119
  719. package/umd/image-preview/methods.js +15 -5
  720. package/umd/index.d.ts +10 -9
  721. package/umd/index.js +26 -23
  722. package/umd/input/demo/style/css/mobile.css +5 -1
  723. package/umd/input/demo/style/mobile.less +2 -2
  724. package/umd/input/hooks.js +100 -42
  725. package/umd/input/index.js +35 -26
  726. package/umd/input/props.d.ts +6 -0
  727. package/umd/input/style/css/index.css +9 -0
  728. package/umd/input/style/index.less +2 -2
  729. package/umd/load-more/index.js +51 -29
  730. package/umd/loading/index.js +43 -19
  731. package/umd/masking/index.d.ts +2 -2
  732. package/umd/masking/index.js +71 -46
  733. package/umd/masking/methods.js +16 -4
  734. package/umd/nav-bar/back-icon.js +4 -1
  735. package/umd/nav-bar/index.js +55 -37
  736. package/umd/notice-bar/index.js +57 -33
  737. package/umd/notice-bar/style/css/index.css +33 -0
  738. package/umd/notice-bar/style/index.less +16 -3
  739. package/umd/notify/index.d.ts +8 -8
  740. package/umd/notify/index.js +40 -20
  741. package/umd/notify/methods.js +14 -2
  742. package/umd/pagination/arrow.js +2 -0
  743. package/umd/pagination/index.js +53 -27
  744. package/umd/picker/index.js +70 -40
  745. package/umd/picker-view/components/cascader.js +27 -14
  746. package/umd/picker-view/components/multi-picker.js +19 -6
  747. package/umd/picker-view/components/picker-cell.js +93 -45
  748. package/umd/picker-view/index.js +58 -25
  749. package/umd/popover/hooks/useEvent.js +44 -25
  750. package/umd/popover/hooks/usePosition.js +145 -94
  751. package/umd/popover/index.js +3 -1
  752. package/umd/popover/menu.js +45 -32
  753. package/umd/popover/popover-inner.js +42 -30
  754. package/umd/popover/popover.js +94 -69
  755. package/umd/popup/index.d.ts +2 -2
  756. package/umd/popup/index.js +31 -22
  757. package/umd/popup/methods.js +1 -0
  758. package/umd/popup-swiper/index.d.ts +2 -2
  759. package/umd/popup-swiper/index.js +71 -38
  760. package/umd/popup-swiper/methods.js +1 -0
  761. package/umd/portal/index.js +6 -3
  762. package/umd/progress/index.js +39 -27
  763. package/umd/pull-refresh/android-pull-refresh.js +93 -58
  764. package/umd/pull-refresh/hooks.js +29 -11
  765. package/umd/pull-refresh/index.js +7 -3
  766. package/umd/pull-refresh/ios-pull-refresh.js +72 -53
  767. package/umd/pull-refresh/model.js +1 -0
  768. package/umd/radio/group.js +30 -20
  769. package/umd/radio/index.js +3 -1
  770. package/umd/radio/radio.js +5 -0
  771. package/umd/rate/index.js +44 -24
  772. package/umd/search-bar/association.js +29 -14
  773. package/umd/search-bar/cancel-button.js +14 -8
  774. package/umd/search-bar/highlight.js +21 -14
  775. package/umd/search-bar/index.js +87 -77
  776. package/umd/search-bar/style/css/index.css +1 -0
  777. package/umd/search-bar/style/index.less +1 -0
  778. package/umd/show-monitor/index.js +89 -34
  779. package/umd/slider/hooks/index.js +4 -0
  780. package/umd/slider/hooks/useSliderEvents.js +52 -26
  781. package/umd/slider/hooks/useSliderIcon.js +17 -6
  782. package/umd/slider/hooks/useSliderInit.js +50 -32
  783. package/umd/slider/hooks/useSliderStyle.js +22 -12
  784. package/umd/slider/index.js +65 -46
  785. package/umd/slider/marks.js +21 -12
  786. package/umd/slider/popover.js +10 -4
  787. package/umd/slider/thumb.js +18 -8
  788. package/umd/stepper/hooks/useButtonClick.js +27 -19
  789. package/umd/stepper/hooks/useInputEvent.js +17 -9
  790. package/umd/stepper/hooks/useValue.js +13 -9
  791. package/umd/stepper/index.js +87 -82
  792. package/umd/steps/index.js +32 -22
  793. package/umd/steps/step.js +22 -10
  794. package/umd/sticky/index.js +59 -36
  795. package/umd/style.d.ts +9 -8
  796. package/umd/style.js +4 -4
  797. package/umd/swipe-action/index.js +84 -40
  798. package/umd/swipe-action/item.js +14 -9
  799. package/umd/swipe-load/index.js +77 -55
  800. package/umd/switch/index.js +43 -27
  801. package/umd/tab-bar/index.js +2 -0
  802. package/umd/tab-bar/item.js +19 -6
  803. package/umd/tab-bar/tab-bar.js +26 -15
  804. package/umd/tabs/index.js +186 -129
  805. package/umd/tabs/tab-cell-underline.js +107 -38
  806. package/umd/tabs/tab-cell.js +119 -70
  807. package/umd/tabs/tab-pane.js +89 -49
  808. package/umd/tabs/type.d.ts +18 -2
  809. package/umd/tag/index.js +3 -1
  810. package/umd/tag/list.js +20 -11
  811. package/umd/tag/tag.js +26 -20
  812. package/umd/textarea/index.js +51 -35
  813. package/umd/toast/index.d.ts +12 -12
  814. package/umd/toast/index.js +49 -26
  815. package/umd/toast/methods.js +13 -2
  816. package/umd/transition/index.js +12 -10
@@ -4,37 +4,43 @@ import { cls } from '@arco-design/mobile-utils';
4
4
  import { getStyleWithVendor, useMountedState, useRefState } from '../../_helpers';
5
5
  var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
6
6
  var prefixCls = props.prefixCls,
7
- style = props.style,
8
- data = props.data,
9
- clickable = props.clickable,
10
- itemHeight = props.itemHeight,
11
- wrapperHeight = props.wrapperHeight,
12
- selectedValue = props.selectedValue,
13
- onValueChange = props.onValueChange,
14
- disabled = props.disabled,
15
- hideEmptyCols = props.hideEmptyCols,
16
- _props$rows = props.rows,
17
- rows = _props$rows === void 0 ? 5 : _props$rows,
18
- _props$touchToStop = props.touchToStop,
19
- touchToStop = _props$touchToStop === void 0 ? false : _props$touchToStop;
7
+ style = props.style,
8
+ data = props.data,
9
+ clickable = props.clickable,
10
+ itemHeight = props.itemHeight,
11
+ wrapperHeight = props.wrapperHeight,
12
+ selectedValue = props.selectedValue,
13
+ onValueChange = props.onValueChange,
14
+ disabled = props.disabled,
15
+ hideEmptyCols = props.hideEmptyCols,
16
+ _props$rows = props.rows,
17
+ rows = _props$rows === void 0 ? 5 : _props$rows,
18
+ _props$touchToStop = props.touchToStop,
19
+ touchToStop = _props$touchToStop === void 0 ? false : _props$touchToStop;
20
+
20
21
  var _useMountedState = useMountedState(''),
21
- transitionDuration = _useMountedState[0],
22
- setTransitionDuration = _useMountedState[1];
22
+ transitionDuration = _useMountedState[0],
23
+ setTransitionDuration = _useMountedState[1];
24
+
23
25
  var _useState = useState(''),
24
- bezier = _useState[0],
25
- setBezier = _useState[1];
26
+ bezier = _useState[0],
27
+ setBezier = _useState[1];
28
+
26
29
  var _useMountedState2 = useMountedState(0),
27
- currentIndex = _useMountedState2[0],
28
- setCurrentIndex = _useMountedState2[1];
30
+ currentIndex = _useMountedState2[0],
31
+ setCurrentIndex = _useMountedState2[1];
32
+
29
33
  var _useMountedState3 = useMountedState(selectedValue),
30
- currentValue = _useMountedState3[0],
31
- setCurrentValue = _useMountedState3[1];
32
- // 是否开始touch
34
+ currentValue = _useMountedState3[0],
35
+ setCurrentValue = _useMountedState3[1]; // 是否开始touch
33
36
  // @en whether to start touch
37
+
38
+
34
39
  var _useRefState = useRefState(0),
35
- transformY = _useRefState[0],
36
- transformYRef = _useRefState[1],
37
- setTransformY = _useRefState[2];
40
+ transformY = _useRefState[0],
41
+ transformYRef = _useRefState[1],
42
+ setTransformY = _useRefState[2];
43
+
38
44
  var lastTransformYRef = useRef(0);
39
45
  var touchStartTimeRef = useRef(0);
40
46
  var latestCallbackTimer = useRef(0);
@@ -59,66 +65,80 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
59
65
  paddingTop: (rowCount - 1) / 2 * itemHeight + "px"
60
66
  }));
61
67
  }, [transitionDuration, transformY, bezier, itemHeight, rowCount]);
68
+
62
69
  function _scrollingComplete(nowItemIndex) {
63
70
  // index有改变时再抛出
64
71
  // @en Throws again when index changes
65
72
  if (currentIndex !== nowItemIndex) {
66
73
  setCurrentIndex(nowItemIndex);
67
74
  var newValue = data[nowItemIndex] && data[nowItemIndex].value;
75
+
68
76
  if (newValue !== currentValue) {
69
77
  // if (!('selectedValue' in props)) {
70
78
  // setCurrentValue(newValue);
71
79
  // }
72
80
  setCurrentValue(newValue);
81
+
73
82
  if (onValueChange) {
74
83
  onValueChange(newValue);
75
84
  }
76
85
  }
77
86
  }
78
87
  }
88
+
79
89
  function _scrollTo(transY, transDuration, callback) {
80
90
  if (transDuration === void 0) {
81
91
  transDuration = 0;
82
92
  }
93
+
83
94
  if (callback === void 0) {
84
95
  callback = function callback() {};
85
96
  }
97
+
86
98
  setTransitionDuration(transDuration ? transDuration + "ms" : '');
87
- setTransformY(transY);
88
- // 处理连续滑动的情况:
99
+ setTransformY(transY); // 处理连续滑动的情况:
89
100
  // @en handle the case of continuous sliding:
90
101
  // 如果上一次callback还未执行,先cancel掉上一次回调,只执行最近的一次回调
91
102
  // @en If the last callback has not been executed, cancel the last callback first, and only execute the latest callback
103
+
92
104
  if (latestCallbackTimer.current) {
93
105
  clearTimeout(latestCallbackTimer.current);
94
106
  }
107
+
95
108
  latestCallbackTimer.current = window.setTimeout(function () {
96
109
  movingStatusRef.current = 'normal';
97
110
  setTransitionDuration('');
98
111
  callback();
99
112
  }, transDuration);
100
113
  }
114
+
101
115
  function _scrollToIndex(itemIndex, transDuration, callback) {
102
116
  if (transDuration === void 0) {
103
117
  transDuration = 0;
104
118
  }
119
+
105
120
  if (callback === void 0) {
106
121
  callback = function callback() {};
107
122
  }
123
+
108
124
  _scrollTo(-1 * itemIndex * itemHeight, transDuration, callback);
109
125
  }
126
+
110
127
  function _scrollToIndexWithChange(itemIndex, transDuration) {
111
128
  if (transDuration === void 0) {
112
129
  transDuration = 0;
113
130
  }
131
+
114
132
  _scrollToIndex(itemIndex, transDuration, function () {
115
133
  _scrollingComplete(itemIndex);
116
134
  });
117
135
  }
136
+
118
137
  var _handleColumnTouchStart = useCallback(function (e) {
119
138
  if (disabled) {
120
139
  return;
121
140
  }
141
+
122
142
  isTouchMoveRef.current = false;
123
143
  movingStatusRef.current = 'moving';
124
144
  var x = e.touches[0].screenX;
@@ -130,38 +150,44 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
130
150
  touchStartYRef.current = y;
131
151
  lastTransformYRef.current = transformYRef.current;
132
152
  }, [disabled]);
153
+
133
154
  var _handleColumnTouchMove = useCallback(function (e) {
134
155
  if (disabled || !touchingRef.current) {
135
156
  return;
136
157
  }
158
+
137
159
  isTouchMoveRef.current = true;
138
160
  var lastTransformY = lastTransformYRef.current;
139
161
  var touchMoveX = e.touches[0].screenX;
140
162
  var touchMoveY = e.touches[0].screenY;
141
163
  var distanceX = touchMoveX - touchStartXRef.current;
142
164
  var distance = touchMoveY - touchStartYRef.current;
165
+
143
166
  if (touchingXRef.current === null) {
144
167
  touchingXRef.current = Math.abs(distanceX) > Math.abs(distance);
145
168
  }
169
+
146
170
  if (touchingXRef.current) {
147
171
  return;
148
172
  }
173
+
149
174
  e.cancelable && e.preventDefault();
150
175
  var newPos = lastTransformY + distance;
151
- var maxPos = -1 * (data.length - 1) * itemHeight;
152
- // 当滚动到上边界或下边界时增加阻尼效果
176
+ var maxPos = -1 * (data.length - 1) * itemHeight; // 当滚动到上边界或下边界时增加阻尼效果
153
177
  // @en Add damping effect when scrolling to the upper or lower border
178
+
154
179
  setTransformY(lastTransformY >= 0 && distance > 0 || lastTransformY <= maxPos && distance < 0 ? lastTransformY + distance / 4 : newPos);
155
180
  }, [data.length, disabled, itemHeight]);
181
+
156
182
  function _handleScrollEnd() {
157
183
  var maxIndex = data.length - 1;
158
- var nowIndex = Math.max(0, Math.min(maxIndex, Math.round(-1 * transformY / itemHeight)));
159
- // 滚动(包括加动量的滚动)完成之后定位到最近的一个index上
184
+ var nowIndex = Math.max(0, Math.min(maxIndex, Math.round(-1 * transformY / itemHeight))); // 滚动(包括加动量的滚动)完成之后定位到最近的一个index上
160
185
  // @en After scrolling (including scrolling with momentum) is completed, it is positioned on the nearest index
186
+
161
187
  _scrollToIndexWithChange(nowIndex, 200);
162
- }
188
+ } // Reference: https://juejin.im/post/6844904185121488910
189
+
163
190
 
164
- // Reference: https://juejin.im/post/6844904185121488910
165
191
  function momentum(current, start, duration, minY, maxY) {
166
192
  var durationMap = {
167
193
  noBounce: 2000,
@@ -173,23 +199,24 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
173
199
  weekBounce: 'cubic-bezier(.25, .46, .45, .94)',
174
200
  strongBounce: 'cubic-bezier(.25, .46, .45, .94)'
175
201
  };
176
- var type = 'noBounce';
177
- // 惯性滑动加速度
202
+ var type = 'noBounce'; // 惯性滑动加速度
178
203
  // @en inertial sliding acceleration
179
- var deceleration = 0.003;
180
- // 回弹阻力
204
+
205
+ var deceleration = 0.003; // 回弹阻力
181
206
  // @en rebound resistance
182
- var bounceRate = 5;
183
- // 强弱回弹的分割值
207
+
208
+ var bounceRate = 5; // 强弱回弹的分割值
184
209
  // @en Split value of strong and weak rebound
185
- var bounceThreshold = 300;
186
- // 回弹的最大限度
210
+
211
+ var bounceThreshold = 300; // 回弹的最大限度
187
212
  // @en maximum rebound
213
+
188
214
  var maxOverflowY = wrapperHeight / 6;
189
215
  var overflowY;
190
216
  var distance = current - start;
191
217
  var speed = 2 * Math.abs(distance) / duration;
192
218
  var destination = current + speed / deceleration * (distance < 0 ? -1 : 1);
219
+
193
220
  if (destination < minY) {
194
221
  overflowY = minY - destination;
195
222
  type = overflowY > bounceThreshold ? 'strongBounce' : 'weekBounce';
@@ -199,31 +226,37 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
199
226
  type = overflowY > bounceThreshold ? 'strongBounce' : 'weekBounce';
200
227
  destination = Math.min(maxY + maxOverflowY, maxY + overflowY / bounceRate);
201
228
  }
229
+
202
230
  return {
203
231
  destination: destination,
204
232
  duration: durationMap[type],
205
233
  bezier: bezierMap[type]
206
234
  };
207
235
  }
236
+
208
237
  function _handleColumnTouchEnd() {
209
238
  _clearTimer();
239
+
210
240
  movingStatusRef.current = 'normal';
211
241
  var lastTransformY = lastTransformYRef.current;
242
+
212
243
  if (!isTouchMoveRef.current || transformY === lastTransformY) {
213
244
  return;
214
245
  }
246
+
215
247
  touchingRef.current = false;
216
248
  var endTime = Date.now();
217
249
  var scrollerHeight = (data.length + rowCount - 1) * itemHeight;
218
250
  var duration = endTime - touchStartTimeRef.current;
219
- var absDistY = Math.abs(transformY - lastTransformY);
220
- // 计算动量,保证滚动顺畅,条件:手势时间小于300ms && 移动距离绝对值大于30时
251
+ var absDistY = Math.abs(transformY - lastTransformY); // 计算动量,保证滚动顺畅,条件:手势时间小于300ms && 移动距离绝对值大于30时
221
252
  // @en Calculate the momentum to ensure smooth scrolling, condition: the gesture time is less than 300ms && the absolute value of the moving distance is greater than 30
253
+
222
254
  if (duration < 300 && absDistY > 30) {
223
255
  var momentumY = momentum(transformY, lastTransformY, duration, wrapperHeight - scrollerHeight, 0);
224
256
  var newItemIndex = Math.max(0, Math.min(data.length - 1, Math.round(-1 * momentumY.destination / itemHeight)));
225
257
  setBezier(momentumY.bezier);
226
258
  movingStatusRef.current = 'scrolling';
259
+
227
260
  _scrollToIndex(newItemIndex, momentumY.duration, function () {
228
261
  _scrollingComplete(newItemIndex);
229
262
  });
@@ -231,27 +264,32 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
231
264
  _handleScrollEnd();
232
265
  }
233
266
  }
267
+
234
268
  function scrollToCurrentIndex() {
235
269
  if (!wrapRef.current) {
236
270
  return;
237
271
  }
272
+
238
273
  var curStyle = window.getComputedStyle(wrapRef.current);
239
274
  var transformMatrix = curStyle.transform || curStyle.webkitTransform || '';
240
275
  var transY = Number(transformMatrix.replace(/matrix\((.*?)\)/, '$1').split(/,\s*/).slice(-1)[0]) || 0;
241
276
  var maxIndex = data.length - 1;
242
- var nowIndex = Math.max(0, Math.min(maxIndex, Math.round(-1 * transY / itemHeight)));
243
- // 滚动(包括加动量的滚动)完成之后定位到最近的一个index上
277
+ var nowIndex = Math.max(0, Math.min(maxIndex, Math.round(-1 * transY / itemHeight))); // 滚动(包括加动量的滚动)完成之后定位到最近的一个index上
244
278
  // @en After scrolling (including scrolling with momentum) is completed, it is positioned on the nearest index
279
+
245
280
  _scrollToIndexWithChange(nowIndex, 0);
246
281
  }
282
+
247
283
  function _clearTimer() {
248
284
  timeRef.current && clearTimeout(timeRef.current);
249
285
  timeRef.current = null;
250
286
  }
287
+
251
288
  function _handleItemTouchStart() {
252
289
  if (touchToStop === false) {
253
290
  return;
254
291
  }
292
+
255
293
  isTouchStopped.current = false;
256
294
  timeRef.current = window.setTimeout(function () {
257
295
  if (!isTouchMoveRef.current) {
@@ -260,17 +298,21 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
260
298
  }
261
299
  }, touchToStop === true ? 100 : touchToStop);
262
300
  }
301
+
263
302
  function _handleItemClick(itemIndex) {
264
303
  if (!clickable || disabled || touchToStop !== false && isTouchStopped.current) {
265
304
  return;
266
305
  }
306
+
267
307
  _scrollToIndexWithChange(itemIndex, 200);
268
308
  }
309
+
269
310
  useEffect(function () {
270
311
  if (wrapRef.current) {
271
312
  wrapRef.current.addEventListener('touchstart', _handleColumnTouchStart);
272
313
  wrapRef.current.addEventListener('touchmove', _handleColumnTouchMove);
273
314
  }
315
+
274
316
  return function () {
275
317
  if (wrapRef.current) {
276
318
  wrapRef.current.removeEventListener('touchstart', _handleColumnTouchStart);
@@ -284,6 +326,7 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
284
326
  return item.value === selectedValue;
285
327
  });
286
328
  setCurrentIndex(curIndex);
329
+
287
330
  if (curIndex >= 0) {
288
331
  _scrollToIndexWithChange(curIndex);
289
332
  }
@@ -307,6 +350,7 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
307
350
  "aria-disabled": disabled
308
351
  }, data.map(function (item, index) {
309
352
  var _cls;
353
+
310
354
  var dis = Math.abs(index - currentIndex);
311
355
  return /*#__PURE__*/React.createElement("div", {
312
356
  "aria-label": index === currentIndex ? "" + item.value : '',
@@ -10,34 +10,38 @@ export * from './type';
10
10
  export { MultiPicker, PickerCell, Cascader };
11
11
  var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
12
12
  var _props$className = props.className,
13
- className = _props$className === void 0 ? '' : _props$className,
14
- itemStyle = props.itemStyle,
15
- _props$cascade = props.cascade,
16
- cascade = _props$cascade === void 0 ? true : _props$cascade,
17
- _props$cols = props.cols,
18
- cols = _props$cols === void 0 ? 3 : _props$cols,
19
- _props$rows = props.rows,
20
- rows = _props$rows === void 0 ? 5 : _props$rows,
21
- data = props.data,
22
- _props$disabled = props.disabled,
23
- disabled = _props$disabled === void 0 ? false : _props$disabled,
24
- _props$clickable = props.clickable,
25
- clickable = _props$clickable === void 0 ? true : _props$clickable,
26
- value = props.value,
27
- _props$hideEmptyCols = props.hideEmptyCols,
28
- hideEmptyCols = _props$hideEmptyCols === void 0 ? false : _props$hideEmptyCols,
29
- onPickerChange = props.onPickerChange,
30
- _props$touchToStop = props.touchToStop,
31
- touchToStop = _props$touchToStop === void 0 ? false : _props$touchToStop;
13
+ className = _props$className === void 0 ? '' : _props$className,
14
+ itemStyle = props.itemStyle,
15
+ _props$cascade = props.cascade,
16
+ cascade = _props$cascade === void 0 ? true : _props$cascade,
17
+ _props$cols = props.cols,
18
+ cols = _props$cols === void 0 ? 3 : _props$cols,
19
+ _props$rows = props.rows,
20
+ rows = _props$rows === void 0 ? 5 : _props$rows,
21
+ data = props.data,
22
+ _props$disabled = props.disabled,
23
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
24
+ _props$clickable = props.clickable,
25
+ clickable = _props$clickable === void 0 ? true : _props$clickable,
26
+ value = props.value,
27
+ _props$hideEmptyCols = props.hideEmptyCols,
28
+ hideEmptyCols = _props$hideEmptyCols === void 0 ? false : _props$hideEmptyCols,
29
+ onPickerChange = props.onPickerChange,
30
+ _props$touchToStop = props.touchToStop,
31
+ touchToStop = _props$touchToStop === void 0 ? false : _props$touchToStop;
32
+
32
33
  var _useState = useState(0),
33
- itemHeight = _useState[0],
34
- setItemHeight = _useState[1];
34
+ itemHeight = _useState[0],
35
+ setItemHeight = _useState[1];
36
+
35
37
  var _useState2 = useState(0),
36
- wrapperHeight = _useState2[0],
37
- setWrapperHeight = _useState2[1];
38
+ wrapperHeight = _useState2[0],
39
+ setWrapperHeight = _useState2[1];
40
+
38
41
  var _useMountedState = useMountedState(value),
39
- scrollValue = _useMountedState[0],
40
- setScrollValue = _useMountedState[1];
42
+ scrollValue = _useMountedState[0],
43
+ setScrollValue = _useMountedState[1];
44
+
41
45
  var wrapperRef = useRef(null);
42
46
  var domRef = useRef(null);
43
47
  var barRef = useRef(null);
@@ -46,12 +50,15 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
46
50
  var cascaderRef = useRef(null);
47
51
  var innerData = useMemo(function () {
48
52
  var newData;
53
+
49
54
  var isArray = function isArray(dt) {
50
55
  return dt ? Array.isArray(dt[0]) : false;
51
56
  };
57
+
52
58
  var isStrOrNum = function isStrOrNum(dt) {
53
59
  return typeof dt[0][0] === 'string' || typeof dt[0][0] === 'number';
54
60
  };
61
+
55
62
  if (isArray(data)) {
56
63
  if (isStrOrNum(data)) {
57
64
  newData = data.map(function (item) {
@@ -68,36 +75,46 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
68
75
  } else {
69
76
  newData = [data];
70
77
  }
78
+
71
79
  return newData;
72
80
  }, [data]);
73
81
  useEffect(function () {
74
82
  scrollValueRef.current = scrollValue;
75
83
  }, [scrollValue]);
84
+
76
85
  var getAllColumnValues = function getAllColumnValues() {
77
86
  return scrollValueRef.current;
78
87
  };
88
+
79
89
  function getColumnValue(index) {
80
90
  if (index === void 0) {
81
91
  index = 0;
82
92
  }
93
+
83
94
  return scrollValueRef.current[index];
84
95
  }
96
+
85
97
  function getCellMovingStatus() {
86
98
  var _cascaderRef$current;
99
+
87
100
  return cascade ? ((_cascaderRef$current = cascaderRef.current) == null ? void 0 : _cascaderRef$current.getCellMovingStatus()) || [] : pickerCellsRef.current.map(function (cell) {
88
101
  return cell.movingStatus;
89
102
  });
90
103
  }
104
+
91
105
  function scrollToCurrentIndex() {
92
106
  if (cascade) {
93
107
  var _cascaderRef$current2;
108
+
94
109
  (_cascaderRef$current2 = cascaderRef.current) == null ? void 0 : _cascaderRef$current2.scrollToCurrentIndex();
95
110
  return;
96
111
  }
112
+
97
113
  pickerCellsRef.current.forEach(function (cell) {
98
114
  return cell.scrollToCurrentIndex();
99
115
  });
100
116
  }
117
+
101
118
  useImperativeHandle(ref, function () {
102
119
  return {
103
120
  dom: domRef.current,
@@ -109,18 +126,23 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
109
126
  scrollToCurrentIndex: scrollToCurrentIndex
110
127
  };
111
128
  });
129
+
112
130
  function _onPickerChange(val, index) {
113
131
  setScrollValue(val);
132
+
114
133
  if (onPickerChange) {
115
134
  onPickerChange(val, index);
116
135
  }
117
136
  }
137
+
118
138
  function _onValueChange(val, index) {
119
139
  setScrollValue(val);
140
+
120
141
  if (onPickerChange) {
121
142
  onPickerChange(val, index);
122
143
  }
123
144
  }
145
+
124
146
  useEffect(function () {
125
147
  setScrollValue(value);
126
148
  }, [value, setScrollValue]);
@@ -129,24 +151,30 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
129
151
  setWrapperHeight(wrapperRef.current.offsetHeight);
130
152
  }
131
153
  }, [wrapperRef, setWrapperHeight]);
154
+
132
155
  var updateItemHeight = function updateItemHeight() {
133
156
  if (barRef.current) {
134
157
  setItemHeight(barRef.current.getBoundingClientRect().height);
135
158
  }
136
159
  };
160
+
137
161
  useEffect(function () {
138
162
  updateLayout();
139
163
  }, []);
164
+
140
165
  function updateLayout() {
141
166
  updateWrapperHeight();
142
167
  updateItemHeight();
143
168
  }
169
+
144
170
  function resetValue() {
145
171
  setScrollValue(value);
146
172
  }
173
+
147
174
  var newItemStyle = _extends({
148
175
  height: itemHeight + "px"
149
176
  }, itemStyle);
177
+
150
178
  return /*#__PURE__*/React.createElement(ContextLayout, null, function (_ref) {
151
179
  var prefixCls = _ref.prefixCls;
152
180
  return /*#__PURE__*/React.createElement("div", {
@@ -216,4 +244,5 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
216
244
  * @name_en PickerView
217
245
  * @displayName PickerView
218
246
  */
247
+
219
248
  export default componentWrapper(PickerView, 'PickerView');