@arco-design/mobile-react 2.31.6 → 2.32.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 (859) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +21 -0
  3. package/README.en-US.md +2 -2
  4. package/README.md +2 -2
  5. package/cjs/_helpers/index.d.ts +1 -0
  6. package/cjs/_helpers/index.js +9 -0
  7. package/cjs/_helpers/react-dom.js +18 -10
  8. package/dist/index.js +91 -66
  9. package/dist/index.min.js +4 -4
  10. package/esm/_helpers/index.d.ts +1 -0
  11. package/esm/_helpers/index.js +1 -0
  12. package/esm/_helpers/react-dom.js +15 -11
  13. package/esnext/_helpers/hooks.d.ts +290 -0
  14. package/esnext/_helpers/hooks.js +660 -0
  15. package/esnext/_helpers/index.d.ts +93 -0
  16. package/esnext/_helpers/index.js +110 -0
  17. package/esnext/_helpers/react-dom.d.ts +13 -0
  18. package/esnext/_helpers/react-dom.js +51 -0
  19. package/esnext/_helpers/render.d.ts +17 -0
  20. package/esnext/_helpers/render.js +38 -0
  21. package/esnext/_helpers/type.d.ts +30 -0
  22. package/esnext/_helpers/type.js +1 -0
  23. package/esnext/action-sheet/index.d.ts +106 -0
  24. package/esnext/action-sheet/index.js +53 -0
  25. package/esnext/action-sheet/methods.d.ts +10 -0
  26. package/esnext/action-sheet/methods.js +4 -0
  27. package/esnext/action-sheet/style/css/index.css +741 -0
  28. package/esnext/action-sheet/style/css/index.d.ts +3 -0
  29. package/esnext/action-sheet/style/css/index.js +3 -0
  30. package/esnext/action-sheet/style/index.d.ts +3 -0
  31. package/esnext/action-sheet/style/index.js +3 -0
  32. package/esnext/action-sheet/style/index.less +119 -0
  33. package/esnext/avatar/group.d.ts +9 -0
  34. package/esnext/avatar/group.js +35 -0
  35. package/esnext/avatar/index.d.ts +17 -0
  36. package/esnext/avatar/index.js +87 -0
  37. package/esnext/avatar/style/css/index.css +792 -0
  38. package/esnext/avatar/style/css/index.d.ts +3 -0
  39. package/esnext/avatar/style/css/index.js +3 -0
  40. package/esnext/avatar/style/index.d.ts +3 -0
  41. package/esnext/avatar/style/index.js +3 -0
  42. package/esnext/avatar/style/index.less +201 -0
  43. package/esnext/avatar/type.d.ts +126 -0
  44. package/esnext/avatar/type.js +1 -0
  45. package/esnext/badge/index.d.ts +80 -0
  46. package/esnext/badge/index.js +29 -0
  47. package/esnext/badge/style/css/index.css +640 -0
  48. package/esnext/badge/style/css/index.d.ts +2 -0
  49. package/esnext/badge/style/css/index.js +2 -0
  50. package/esnext/badge/style/index.d.ts +2 -0
  51. package/esnext/badge/style/index.js +2 -0
  52. package/esnext/badge/style/index.less +109 -0
  53. package/esnext/button/hooks.d.ts +8 -0
  54. package/esnext/button/hooks.js +45 -0
  55. package/esnext/button/index.d.ts +141 -0
  56. package/esnext/button/index.js +61 -0
  57. package/esnext/button/style/css/index.css +816 -0
  58. package/esnext/button/style/css/index.d.ts +3 -0
  59. package/esnext/button/style/css/index.js +3 -0
  60. package/esnext/button/style/index.d.ts +3 -0
  61. package/esnext/button/style/index.js +3 -0
  62. package/esnext/button/style/index.less +242 -0
  63. package/esnext/carousel/index.d.ts +383 -0
  64. package/esnext/carousel/index.js +840 -0
  65. package/esnext/carousel/style/css/index.css +748 -0
  66. package/esnext/carousel/style/css/index.d.ts +2 -0
  67. package/esnext/carousel/style/css/index.js +2 -0
  68. package/esnext/carousel/style/index.d.ts +2 -0
  69. package/esnext/carousel/style/index.js +2 -0
  70. package/esnext/carousel/style/index.less +263 -0
  71. package/esnext/cell/arrow.d.ts +2 -0
  72. package/esnext/cell/arrow.js +5 -0
  73. package/esnext/cell/cell.d.ts +3 -0
  74. package/esnext/cell/cell.js +24 -0
  75. package/esnext/cell/group.d.ts +7 -0
  76. package/esnext/cell/group.js +26 -0
  77. package/esnext/cell/index.d.ts +14 -0
  78. package/esnext/cell/index.js +16 -0
  79. package/esnext/cell/style/css/index.css +1008 -0
  80. package/esnext/cell/style/css/index.d.ts +2 -0
  81. package/esnext/cell/style/css/index.js +2 -0
  82. package/esnext/cell/style/index.d.ts +2 -0
  83. package/esnext/cell/style/index.js +2 -0
  84. package/esnext/cell/style/index.less +214 -0
  85. package/esnext/cell/type.d.ts +125 -0
  86. package/esnext/cell/type.js +1 -0
  87. package/esnext/checkbox/checkbox.d.ts +3 -0
  88. package/esnext/checkbox/checkbox.js +106 -0
  89. package/esnext/checkbox/group.d.ts +4 -0
  90. package/esnext/checkbox/group.js +54 -0
  91. package/esnext/checkbox/hooks/index.d.ts +1 -0
  92. package/esnext/checkbox/hooks/index.js +1 -0
  93. package/esnext/checkbox/hooks/useMergeProps.d.ts +3 -0
  94. package/esnext/checkbox/hooks/useMergeProps.js +20 -0
  95. package/esnext/checkbox/index.d.ts +19 -0
  96. package/esnext/checkbox/index.js +22 -0
  97. package/esnext/checkbox/style/css/index.css +613 -0
  98. package/esnext/checkbox/style/css/index.d.ts +2 -0
  99. package/esnext/checkbox/style/css/index.js +2 -0
  100. package/esnext/checkbox/style/index.d.ts +2 -0
  101. package/esnext/checkbox/style/index.js +2 -0
  102. package/esnext/checkbox/style/index.less +119 -0
  103. package/esnext/checkbox/type.d.ts +162 -0
  104. package/esnext/checkbox/type.js +27 -0
  105. package/esnext/circle-progress/index.d.ts +141 -0
  106. package/esnext/circle-progress/index.js +75 -0
  107. package/esnext/circle-progress/style/css/index.css +582 -0
  108. package/esnext/circle-progress/style/css/index.d.ts +2 -0
  109. package/esnext/circle-progress/style/css/index.js +2 -0
  110. package/esnext/circle-progress/style/index.d.ts +2 -0
  111. package/esnext/circle-progress/style/index.js +2 -0
  112. package/esnext/circle-progress/style/index.less +101 -0
  113. package/esnext/collapse/collapse.d.ts +3 -0
  114. package/esnext/collapse/collapse.js +111 -0
  115. package/esnext/collapse/group.d.ts +21 -0
  116. package/esnext/collapse/group.js +80 -0
  117. package/esnext/collapse/index.d.ts +23 -0
  118. package/esnext/collapse/index.js +14 -0
  119. package/esnext/collapse/style/css/index.css +662 -0
  120. package/esnext/collapse/style/css/index.d.ts +2 -0
  121. package/esnext/collapse/style/css/index.js +2 -0
  122. package/esnext/collapse/style/index.d.ts +2 -0
  123. package/esnext/collapse/style/index.js +2 -0
  124. package/esnext/collapse/style/index.less +106 -0
  125. package/esnext/collapse/type.d.ts +139 -0
  126. package/esnext/collapse/type.js +1 -0
  127. package/esnext/collapse/utils.d.ts +8 -0
  128. package/esnext/collapse/utils.js +16 -0
  129. package/esnext/context-provider/index.d.ts +74 -0
  130. package/esnext/context-provider/index.js +99 -0
  131. package/esnext/context-provider/style/css/index.css +0 -0
  132. package/esnext/context-provider/style/css/index.d.ts +2 -0
  133. package/esnext/context-provider/style/css/index.js +2 -0
  134. package/esnext/context-provider/style/index.d.ts +2 -0
  135. package/esnext/context-provider/style/index.js +2 -0
  136. package/esnext/context-provider/style/index.less +1 -0
  137. package/esnext/count-down/hooks.d.ts +10 -0
  138. package/esnext/count-down/hooks.js +107 -0
  139. package/esnext/count-down/index.d.ts +13 -0
  140. package/esnext/count-down/index.js +37 -0
  141. package/esnext/count-down/singleton.d.ts +15 -0
  142. package/esnext/count-down/singleton.js +52 -0
  143. package/esnext/count-down/style/css/index.css +534 -0
  144. package/esnext/count-down/style/css/index.d.ts +2 -0
  145. package/esnext/count-down/style/css/index.js +2 -0
  146. package/esnext/count-down/style/index.d.ts +2 -0
  147. package/esnext/count-down/style/index.js +2 -0
  148. package/esnext/count-down/style/index.less +37 -0
  149. package/esnext/count-down/type.d.ts +112 -0
  150. package/esnext/count-down/type.js +1 -0
  151. package/esnext/count-down/util.d.ts +8 -0
  152. package/esnext/count-down/util.js +106 -0
  153. package/esnext/date-picker/helper.d.ts +5 -0
  154. package/esnext/date-picker/helper.js +38 -0
  155. package/esnext/date-picker/index.d.ts +24 -0
  156. package/esnext/date-picker/index.js +217 -0
  157. package/esnext/date-picker/style/css/index.css +526 -0
  158. package/esnext/date-picker/style/css/index.d.ts +3 -0
  159. package/esnext/date-picker/style/css/index.js +3 -0
  160. package/esnext/date-picker/style/index.d.ts +3 -0
  161. package/esnext/date-picker/style/index.js +3 -0
  162. package/esnext/date-picker/style/index.less +30 -0
  163. package/esnext/date-picker/type.d.ts +114 -0
  164. package/esnext/date-picker/type.js +1 -0
  165. package/esnext/dialog/index.d.ts +213 -0
  166. package/esnext/dialog/index.js +87 -0
  167. package/esnext/dialog/methods.d.ts +20 -0
  168. package/esnext/dialog/methods.js +42 -0
  169. package/esnext/dialog/style/css/index.css +1111 -0
  170. package/esnext/dialog/style/css/index.d.ts +3 -0
  171. package/esnext/dialog/style/css/index.js +3 -0
  172. package/esnext/dialog/style/index.d.ts +3 -0
  173. package/esnext/dialog/style/index.js +3 -0
  174. package/esnext/dialog/style/index.less +376 -0
  175. package/esnext/divider/index.d.ts +49 -0
  176. package/esnext/divider/index.js +32 -0
  177. package/esnext/divider/style/css/index.css +609 -0
  178. package/esnext/divider/style/css/index.d.ts +2 -0
  179. package/esnext/divider/style/css/index.js +2 -0
  180. package/esnext/divider/style/index.d.ts +2 -0
  181. package/esnext/divider/style/index.js +2 -0
  182. package/esnext/divider/style/index.less +101 -0
  183. package/esnext/dropdown/dropdown.d.ts +3 -0
  184. package/esnext/dropdown/dropdown.js +196 -0
  185. package/esnext/dropdown/index.d.ts +14 -0
  186. package/esnext/dropdown/index.js +16 -0
  187. package/esnext/dropdown/options.d.ts +4 -0
  188. package/esnext/dropdown/options.js +61 -0
  189. package/esnext/dropdown/style/css/index.css +653 -0
  190. package/esnext/dropdown/style/css/index.d.ts +2 -0
  191. package/esnext/dropdown/style/css/index.js +2 -0
  192. package/esnext/dropdown/style/index.d.ts +2 -0
  193. package/esnext/dropdown/style/index.js +2 -0
  194. package/esnext/dropdown/style/index.less +177 -0
  195. package/esnext/dropdown/type.d.ts +269 -0
  196. package/esnext/dropdown/type.js +1 -0
  197. package/esnext/dropdown-menu/dropdown-menu.d.ts +4 -0
  198. package/esnext/dropdown-menu/dropdown-menu.js +161 -0
  199. package/esnext/dropdown-menu/helper.d.ts +34 -0
  200. package/esnext/dropdown-menu/helper.js +88 -0
  201. package/esnext/dropdown-menu/index.d.ts +12 -0
  202. package/esnext/dropdown-menu/index.js +13 -0
  203. package/esnext/dropdown-menu/style/css/index.css +705 -0
  204. package/esnext/dropdown-menu/style/css/index.d.ts +3 -0
  205. package/esnext/dropdown-menu/style/css/index.js +3 -0
  206. package/esnext/dropdown-menu/style/index.d.ts +3 -0
  207. package/esnext/dropdown-menu/style/index.js +3 -0
  208. package/esnext/dropdown-menu/style/index.less +122 -0
  209. package/esnext/dropdown-menu/type.d.ts +168 -0
  210. package/esnext/dropdown-menu/type.js +1 -0
  211. package/esnext/ellipsis/components/js-ellipsis.d.ts +6 -0
  212. package/esnext/ellipsis/components/js-ellipsis.js +178 -0
  213. package/esnext/ellipsis/components/native-ellipsis.d.ts +5 -0
  214. package/esnext/ellipsis/components/native-ellipsis.js +15 -0
  215. package/esnext/ellipsis/index.d.ts +13 -0
  216. package/esnext/ellipsis/index.js +31 -0
  217. package/esnext/ellipsis/style/css/index.css +556 -0
  218. package/esnext/ellipsis/style/css/index.d.ts +2 -0
  219. package/esnext/ellipsis/style/css/index.js +2 -0
  220. package/esnext/ellipsis/style/index.d.ts +2 -0
  221. package/esnext/ellipsis/style/index.js +2 -0
  222. package/esnext/ellipsis/style/index.less +63 -0
  223. package/esnext/ellipsis/type.d.ts +107 -0
  224. package/esnext/ellipsis/type.js +1 -0
  225. package/esnext/ellipsis/utils/dom.d.ts +2 -0
  226. package/esnext/ellipsis/utils/dom.js +35 -0
  227. package/esnext/ellipsis/utils/is.d.ts +3 -0
  228. package/esnext/ellipsis/utils/is.js +3 -0
  229. package/esnext/form/form-item-context.d.ts +3 -0
  230. package/esnext/form/form-item-context.js +6 -0
  231. package/esnext/form/form-item.d.ts +4 -0
  232. package/esnext/form/form-item.js +218 -0
  233. package/esnext/form/index.d.ts +16 -0
  234. package/esnext/form/index.js +50 -0
  235. package/esnext/form/linked-container.d.ts +8 -0
  236. package/esnext/form/linked-container.js +29 -0
  237. package/esnext/form/style/css/index.css +670 -0
  238. package/esnext/form/style/css/index.d.ts +2 -0
  239. package/esnext/form/style/css/index.js +2 -0
  240. package/esnext/form/style/index.d.ts +2 -0
  241. package/esnext/form/style/index.js +2 -0
  242. package/esnext/form/style/index.less +172 -0
  243. package/esnext/form/type.d.ts +373 -0
  244. package/esnext/form/type.js +26 -0
  245. package/esnext/form/useForm.d.ts +18 -0
  246. package/esnext/form/useForm.js +203 -0
  247. package/esnext/form/utils.d.ts +7 -0
  248. package/esnext/form/utils.js +21 -0
  249. package/esnext/grid/index.d.ts +112 -0
  250. package/esnext/grid/index.js +79 -0
  251. package/esnext/grid/style/css/index.css +661 -0
  252. package/esnext/grid/style/css/index.d.ts +2 -0
  253. package/esnext/grid/style/css/index.js +2 -0
  254. package/esnext/grid/style/index.d.ts +2 -0
  255. package/esnext/grid/style/index.js +2 -0
  256. package/esnext/grid/style/index.less +157 -0
  257. package/esnext/icon/IconAdd/index.d.ts +7 -0
  258. package/esnext/icon/IconAdd/index.js +7 -0
  259. package/esnext/icon/IconArrowBack/index.d.ts +7 -0
  260. package/esnext/icon/IconArrowBack/index.js +7 -0
  261. package/esnext/icon/IconArrowDown/index.d.ts +7 -0
  262. package/esnext/icon/IconArrowDown/index.js +7 -0
  263. package/esnext/icon/IconArrowIn/index.d.ts +7 -0
  264. package/esnext/icon/IconArrowIn/index.js +7 -0
  265. package/esnext/icon/IconArrowUp/index.d.ts +7 -0
  266. package/esnext/icon/IconArrowUp/index.js +7 -0
  267. package/esnext/icon/IconCheck/index.d.ts +7 -0
  268. package/esnext/icon/IconCheck/index.js +7 -0
  269. package/esnext/icon/IconCheckBold/index.d.ts +7 -0
  270. package/esnext/icon/IconCheckBold/index.js +8 -0
  271. package/esnext/icon/IconCircleChecked/index.d.ts +7 -0
  272. package/esnext/icon/IconCircleChecked/index.js +7 -0
  273. package/esnext/icon/IconCircleDisabled/index.d.ts +7 -0
  274. package/esnext/icon/IconCircleDisabled/index.js +7 -0
  275. package/esnext/icon/IconCircleUnchecked/index.d.ts +7 -0
  276. package/esnext/icon/IconCircleUnchecked/index.js +7 -0
  277. package/esnext/icon/IconClear/index.d.ts +7 -0
  278. package/esnext/icon/IconClear/index.js +7 -0
  279. package/esnext/icon/IconClose/index.d.ts +7 -0
  280. package/esnext/icon/IconClose/index.js +7 -0
  281. package/esnext/icon/IconCloseBold/index.d.ts +7 -0
  282. package/esnext/icon/IconCloseBold/index.js +8 -0
  283. package/esnext/icon/IconDelete/index.d.ts +7 -0
  284. package/esnext/icon/IconDelete/index.js +7 -0
  285. package/esnext/icon/IconDownload/index.d.ts +7 -0
  286. package/esnext/icon/IconDownload/index.js +7 -0
  287. package/esnext/icon/IconEdit/index.d.ts +7 -0
  288. package/esnext/icon/IconEdit/index.js +7 -0
  289. package/esnext/icon/IconErrorCircle/index.d.ts +7 -0
  290. package/esnext/icon/IconErrorCircle/index.js +8 -0
  291. package/esnext/icon/IconEyeInvisible/index.d.ts +7 -0
  292. package/esnext/icon/IconEyeInvisible/index.js +7 -0
  293. package/esnext/icon/IconEyeVisible/index.d.ts +7 -0
  294. package/esnext/icon/IconEyeVisible/index.js +7 -0
  295. package/esnext/icon/IconEyelashInvisible/index.d.ts +7 -0
  296. package/esnext/icon/IconEyelashInvisible/index.js +7 -0
  297. package/esnext/icon/IconFile/index.d.ts +7 -0
  298. package/esnext/icon/IconFile/index.js +7 -0
  299. package/esnext/icon/IconGift/index.d.ts +7 -0
  300. package/esnext/icon/IconGift/index.js +8 -0
  301. package/esnext/icon/IconHeart/index.d.ts +7 -0
  302. package/esnext/icon/IconHeart/index.js +8 -0
  303. package/esnext/icon/IconHome/index.d.ts +7 -0
  304. package/esnext/icon/IconHome/index.js +7 -0
  305. package/esnext/icon/IconKeyboard/index.d.ts +7 -0
  306. package/esnext/icon/IconKeyboard/index.js +8 -0
  307. package/esnext/icon/IconKeyboardDelete/index.d.ts +7 -0
  308. package/esnext/icon/IconKeyboardDelete/index.js +8 -0
  309. package/esnext/icon/IconLikeCircle/index.d.ts +7 -0
  310. package/esnext/icon/IconLikeCircle/index.js +7 -0
  311. package/esnext/icon/IconMinus/index.d.ts +7 -0
  312. package/esnext/icon/IconMinus/index.js +8 -0
  313. package/esnext/icon/IconMore/index.d.ts +7 -0
  314. package/esnext/icon/IconMore/index.js +7 -0
  315. package/esnext/icon/IconNotice/index.d.ts +7 -0
  316. package/esnext/icon/IconNotice/index.js +8 -0
  317. package/esnext/icon/IconNoticeOff/index.d.ts +7 -0
  318. package/esnext/icon/IconNoticeOff/index.js +8 -0
  319. package/esnext/icon/IconPicture/index.d.ts +7 -0
  320. package/esnext/icon/IconPicture/index.js +7 -0
  321. package/esnext/icon/IconPlay/index.d.ts +7 -0
  322. package/esnext/icon/IconPlay/index.js +8 -0
  323. package/esnext/icon/IconQuestionCircle/index.d.ts +7 -0
  324. package/esnext/icon/IconQuestionCircle/index.js +7 -0
  325. package/esnext/icon/IconRefresh/index.d.ts +7 -0
  326. package/esnext/icon/IconRefresh/index.js +7 -0
  327. package/esnext/icon/IconSad/index.d.ts +7 -0
  328. package/esnext/icon/IconSad/index.js +7 -0
  329. package/esnext/icon/IconScan/index.d.ts +7 -0
  330. package/esnext/icon/IconScan/index.js +7 -0
  331. package/esnext/icon/IconSearch/index.d.ts +7 -0
  332. package/esnext/icon/IconSearch/index.js +7 -0
  333. package/esnext/icon/IconSetting/index.d.ts +7 -0
  334. package/esnext/icon/IconSetting/index.js +8 -0
  335. package/esnext/icon/IconShop/index.d.ts +7 -0
  336. package/esnext/icon/IconShop/index.js +8 -0
  337. package/esnext/icon/IconShopping/index.d.ts +7 -0
  338. package/esnext/icon/IconShopping/index.js +8 -0
  339. package/esnext/icon/IconSmileFill/index.d.ts +7 -0
  340. package/esnext/icon/IconSmileFill/index.js +7 -0
  341. package/esnext/icon/IconSound/index.d.ts +7 -0
  342. package/esnext/icon/IconSound/index.js +8 -0
  343. package/esnext/icon/IconSquareChecked/index.d.ts +7 -0
  344. package/esnext/icon/IconSquareChecked/index.js +7 -0
  345. package/esnext/icon/IconSquareDisabled/index.d.ts +7 -0
  346. package/esnext/icon/IconSquareDisabled/index.js +7 -0
  347. package/esnext/icon/IconSquareUnchecked/index.d.ts +7 -0
  348. package/esnext/icon/IconSquareUnchecked/index.js +7 -0
  349. package/esnext/icon/IconStar/index.d.ts +7 -0
  350. package/esnext/icon/IconStar/index.js +7 -0
  351. package/esnext/icon/IconStarFill/index.d.ts +7 -0
  352. package/esnext/icon/IconStarFill/index.js +8 -0
  353. package/esnext/icon/IconStarHalf/index.d.ts +7 -0
  354. package/esnext/icon/IconStarHalf/index.js +7 -0
  355. package/esnext/icon/IconSubway/index.d.ts +7 -0
  356. package/esnext/icon/IconSubway/index.js +8 -0
  357. package/esnext/icon/IconSuccessCircle/index.d.ts +7 -0
  358. package/esnext/icon/IconSuccessCircle/index.js +8 -0
  359. package/esnext/icon/IconTriDown/index.d.ts +7 -0
  360. package/esnext/icon/IconTriDown/index.js +8 -0
  361. package/esnext/icon/IconTriUp/index.d.ts +7 -0
  362. package/esnext/icon/IconTriUp/index.js +8 -0
  363. package/esnext/icon/IconUpload/index.d.ts +7 -0
  364. package/esnext/icon/IconUpload/index.js +7 -0
  365. package/esnext/icon/IconUser/index.d.ts +7 -0
  366. package/esnext/icon/IconUser/index.js +7 -0
  367. package/esnext/icon/IconUserFill/index.d.ts +7 -0
  368. package/esnext/icon/IconUserFill/index.js +7 -0
  369. package/esnext/icon/IconWarnCircle/index.d.ts +7 -0
  370. package/esnext/icon/IconWarnCircle/index.js +8 -0
  371. package/esnext/icon/IconWarnCircleFill/index.d.ts +7 -0
  372. package/esnext/icon/IconWarnCircleFill/index.js +8 -0
  373. package/esnext/icon/index.d.ts +59 -0
  374. package/esnext/icon/index.js +59 -0
  375. package/esnext/icon/type.d.ts +10 -0
  376. package/esnext/icon/type.js +1 -0
  377. package/esnext/image/index.d.ts +186 -0
  378. package/esnext/image/index.js +223 -0
  379. package/esnext/image/style/css/index.css +734 -0
  380. package/esnext/image/style/css/index.d.ts +3 -0
  381. package/esnext/image/style/css/index.js +3 -0
  382. package/esnext/image/style/index.d.ts +3 -0
  383. package/esnext/image/style/index.js +3 -0
  384. package/esnext/image/style/index.less +198 -0
  385. package/esnext/image-picker/add-icon.d.ts +2 -0
  386. package/esnext/image-picker/add-icon.js +5 -0
  387. package/esnext/image-picker/index.d.ts +16 -0
  388. package/esnext/image-picker/index.js +77 -0
  389. package/esnext/image-picker/style/css/index.css +688 -0
  390. package/esnext/image-picker/style/css/index.d.ts +4 -0
  391. package/esnext/image-picker/style/css/index.js +4 -0
  392. package/esnext/image-picker/style/index.d.ts +4 -0
  393. package/esnext/image-picker/style/index.js +4 -0
  394. package/esnext/image-picker/style/index.less +170 -0
  395. package/esnext/image-picker/type.d.ts +115 -0
  396. package/esnext/image-picker/type.js +1 -0
  397. package/esnext/image-preview/index.d.ts +296 -0
  398. package/esnext/image-preview/index.js +794 -0
  399. package/esnext/image-preview/methods.d.ts +13 -0
  400. package/esnext/image-preview/methods.js +46 -0
  401. package/esnext/image-preview/style/css/index.css +664 -0
  402. package/esnext/image-preview/style/css/index.d.ts +5 -0
  403. package/esnext/image-preview/style/css/index.js +5 -0
  404. package/esnext/image-preview/style/index.d.ts +5 -0
  405. package/esnext/image-preview/style/index.js +5 -0
  406. package/esnext/image-preview/style/index.less +140 -0
  407. package/esnext/index-bar/context.d.ts +3 -0
  408. package/esnext/index-bar/context.js +6 -0
  409. package/esnext/index-bar/group.d.ts +3 -0
  410. package/esnext/index-bar/group.js +33 -0
  411. package/esnext/index-bar/index.d.ts +15 -0
  412. package/esnext/index-bar/index.js +151 -0
  413. package/esnext/index-bar/side-bar.d.ts +3 -0
  414. package/esnext/index-bar/side-bar.js +44 -0
  415. package/esnext/index-bar/style/css/index.css +767 -0
  416. package/esnext/index-bar/style/css/index.d.ts +3 -0
  417. package/esnext/index-bar/style/css/index.js +3 -0
  418. package/esnext/index-bar/style/index.d.ts +3 -0
  419. package/esnext/index-bar/style/index.js +3 -0
  420. package/esnext/index-bar/style/index.less +189 -0
  421. package/esnext/index-bar/type.d.ts +195 -0
  422. package/esnext/index-bar/type.js +1 -0
  423. package/esnext/index-bar/utils.d.ts +6 -0
  424. package/esnext/index-bar/utils.js +44 -0
  425. package/esnext/index.d.ts +59 -0
  426. package/esnext/index.js +59 -0
  427. package/esnext/input/hooks.d.ts +14 -0
  428. package/esnext/input/hooks.js +174 -0
  429. package/esnext/input/index.d.ts +60 -0
  430. package/esnext/input/index.js +28 -0
  431. package/esnext/input/props.d.ts +182 -0
  432. package/esnext/input/props.js +1 -0
  433. package/esnext/input/style/css/index.css +759 -0
  434. package/esnext/input/style/css/index.d.ts +2 -0
  435. package/esnext/input/style/css/index.js +2 -0
  436. package/esnext/input/style/index.d.ts +2 -0
  437. package/esnext/input/style/index.js +2 -0
  438. package/esnext/input/style/index.less +195 -0
  439. package/esnext/keyboard/index.d.ts +13 -0
  440. package/esnext/keyboard/index.js +159 -0
  441. package/esnext/keyboard/style/css/index.css +633 -0
  442. package/esnext/keyboard/style/css/index.d.ts +3 -0
  443. package/esnext/keyboard/style/css/index.js +3 -0
  444. package/esnext/keyboard/style/index.d.ts +3 -0
  445. package/esnext/keyboard/style/index.js +3 -0
  446. package/esnext/keyboard/style/index.less +131 -0
  447. package/esnext/keyboard/type.d.ts +102 -0
  448. package/esnext/keyboard/type.js +1 -0
  449. package/esnext/load-more/index.d.ts +158 -0
  450. package/esnext/load-more/index.js +150 -0
  451. package/esnext/load-more/style/css/index.css +534 -0
  452. package/esnext/load-more/style/css/index.d.ts +2 -0
  453. package/esnext/load-more/style/css/index.js +2 -0
  454. package/esnext/load-more/style/index.d.ts +2 -0
  455. package/esnext/load-more/style/index.js +2 -0
  456. package/esnext/load-more/style/index.less +37 -0
  457. package/esnext/loading/index.d.ts +76 -0
  458. package/esnext/loading/index.js +123 -0
  459. package/esnext/loading/style/css/index.css +648 -0
  460. package/esnext/loading/style/css/index.d.ts +2 -0
  461. package/esnext/loading/style/css/index.js +2 -0
  462. package/esnext/loading/style/index.d.ts +2 -0
  463. package/esnext/loading/style/index.js +2 -0
  464. package/esnext/loading/style/index.less +147 -0
  465. package/esnext/masking/index.d.ts +225 -0
  466. package/esnext/masking/index.js +114 -0
  467. package/esnext/masking/methods.d.ts +23 -0
  468. package/esnext/masking/methods.js +56 -0
  469. package/esnext/masking/style/css/index.css +552 -0
  470. package/esnext/masking/style/css/index.d.ts +3 -0
  471. package/esnext/masking/style/css/index.js +3 -0
  472. package/esnext/masking/style/index.d.ts +3 -0
  473. package/esnext/masking/style/index.js +3 -0
  474. package/esnext/masking/style/index.less +55 -0
  475. package/esnext/nav-bar/back-icon.d.ts +5 -0
  476. package/esnext/nav-bar/back-icon.js +9 -0
  477. package/esnext/nav-bar/index.d.ts +135 -0
  478. package/esnext/nav-bar/index.js +96 -0
  479. package/esnext/nav-bar/style/css/index.css +706 -0
  480. package/esnext/nav-bar/style/css/index.d.ts +2 -0
  481. package/esnext/nav-bar/style/css/index.js +2 -0
  482. package/esnext/nav-bar/style/index.d.ts +2 -0
  483. package/esnext/nav-bar/style/index.js +2 -0
  484. package/esnext/nav-bar/style/index.less +150 -0
  485. package/esnext/notice-bar/index.d.ts +107 -0
  486. package/esnext/notice-bar/index.js +126 -0
  487. package/esnext/notice-bar/style/css/index.css +685 -0
  488. package/esnext/notice-bar/style/css/index.d.ts +2 -0
  489. package/esnext/notice-bar/style/css/index.js +2 -0
  490. package/esnext/notice-bar/style/index.d.ts +2 -0
  491. package/esnext/notice-bar/style/index.js +2 -0
  492. package/esnext/notice-bar/style/index.less +160 -0
  493. package/esnext/notify/index.d.ts +97 -0
  494. package/esnext/notify/index.js +123 -0
  495. package/esnext/notify/methods.d.ts +14 -0
  496. package/esnext/notify/methods.js +63 -0
  497. package/esnext/notify/style/css/index.css +591 -0
  498. package/esnext/notify/style/css/index.d.ts +2 -0
  499. package/esnext/notify/style/css/index.js +2 -0
  500. package/esnext/notify/style/index.d.ts +2 -0
  501. package/esnext/notify/style/index.js +2 -0
  502. package/esnext/notify/style/index.less +90 -0
  503. package/esnext/notify/type.d.ts +70 -0
  504. package/esnext/notify/type.js +1 -0
  505. package/esnext/pagination/arrow.d.ts +2 -0
  506. package/esnext/pagination/arrow.js +5 -0
  507. package/esnext/pagination/index.d.ts +124 -0
  508. package/esnext/pagination/index.js +104 -0
  509. package/esnext/pagination/style/css/index.css +708 -0
  510. package/esnext/pagination/style/css/index.d.ts +2 -0
  511. package/esnext/pagination/style/css/index.js +2 -0
  512. package/esnext/pagination/style/index.d.ts +2 -0
  513. package/esnext/pagination/style/index.js +2 -0
  514. package/esnext/pagination/style/index.less +176 -0
  515. package/esnext/picker/index.d.ts +50 -0
  516. package/esnext/picker/index.js +93 -0
  517. package/esnext/picker/style/css/index.css +592 -0
  518. package/esnext/picker/style/css/index.d.ts +4 -0
  519. package/esnext/picker/style/css/index.js +4 -0
  520. package/esnext/picker/style/index.d.ts +4 -0
  521. package/esnext/picker/style/index.js +4 -0
  522. package/esnext/picker/style/index.less +95 -0
  523. package/esnext/picker/type.d.ts +131 -0
  524. package/esnext/picker/type.js +1 -0
  525. package/esnext/picker-view/components/cascader.d.ts +25 -0
  526. package/esnext/picker-view/components/cascader.js +54 -0
  527. package/esnext/picker-view/components/multi-picker.d.ts +11 -0
  528. package/esnext/picker-view/components/multi-picker.js +32 -0
  529. package/esnext/picker-view/components/picker-cell.d.ts +28 -0
  530. package/esnext/picker-view/components/picker-cell.js +284 -0
  531. package/esnext/picker-view/index.d.ts +62 -0
  532. package/esnext/picker-view/index.js +135 -0
  533. package/esnext/picker-view/style/css/index.css +750 -0
  534. package/esnext/picker-view/style/css/index.d.ts +2 -0
  535. package/esnext/picker-view/style/css/index.js +2 -0
  536. package/esnext/picker-view/style/index.d.ts +2 -0
  537. package/esnext/picker-view/style/index.js +2 -0
  538. package/esnext/picker-view/style/index.less +125 -0
  539. package/esnext/picker-view/type.d.ts +89 -0
  540. package/esnext/picker-view/type.js +1 -0
  541. package/esnext/popover/hooks/index.d.ts +2 -0
  542. package/esnext/popover/hooks/index.js +2 -0
  543. package/esnext/popover/hooks/useEvent.d.ts +8 -0
  544. package/esnext/popover/hooks/useEvent.js +148 -0
  545. package/esnext/popover/hooks/usePosition.d.ts +18 -0
  546. package/esnext/popover/hooks/usePosition.js +419 -0
  547. package/esnext/popover/index.d.ts +14 -0
  548. package/esnext/popover/index.js +20 -0
  549. package/esnext/popover/menu.d.ts +3 -0
  550. package/esnext/popover/menu.js +80 -0
  551. package/esnext/popover/popover-inner.d.ts +3 -0
  552. package/esnext/popover/popover-inner.js +79 -0
  553. package/esnext/popover/popover.d.ts +3 -0
  554. package/esnext/popover/popover.js +132 -0
  555. package/esnext/popover/style/css/index.css +993 -0
  556. package/esnext/popover/style/css/index.d.ts +3 -0
  557. package/esnext/popover/style/css/index.js +3 -0
  558. package/esnext/popover/style/css/menu.css +673 -0
  559. package/esnext/popover/style/index.d.ts +3 -0
  560. package/esnext/popover/style/index.js +3 -0
  561. package/esnext/popover/style/index.less +353 -0
  562. package/esnext/popover/style/menu.less +163 -0
  563. package/esnext/popover/type.d.ts +447 -0
  564. package/esnext/popover/type.js +1 -0
  565. package/esnext/popup/index.d.ts +86 -0
  566. package/esnext/popup/index.js +39 -0
  567. package/esnext/popup/methods.d.ts +10 -0
  568. package/esnext/popup/methods.js +4 -0
  569. package/esnext/popup/style/css/index.css +638 -0
  570. package/esnext/popup/style/css/index.d.ts +3 -0
  571. package/esnext/popup/style/css/index.js +3 -0
  572. package/esnext/popup/style/index.d.ts +3 -0
  573. package/esnext/popup/style/index.js +3 -0
  574. package/esnext/popup/style/index.less +114 -0
  575. package/esnext/popup-swiper/index.d.ts +93 -0
  576. package/esnext/popup-swiper/index.js +192 -0
  577. package/esnext/popup-swiper/methods.d.ts +10 -0
  578. package/esnext/popup-swiper/methods.js +4 -0
  579. package/esnext/popup-swiper/style/css/index.css +531 -0
  580. package/esnext/popup-swiper/style/css/index.d.ts +3 -0
  581. package/esnext/popup-swiper/style/css/index.js +3 -0
  582. package/esnext/popup-swiper/style/index.d.ts +3 -0
  583. package/esnext/popup-swiper/style/index.js +3 -0
  584. package/esnext/popup-swiper/style/index.less +35 -0
  585. package/esnext/portal/index.d.ts +23 -0
  586. package/esnext/portal/index.js +18 -0
  587. package/esnext/portal/style/css/index.css +0 -0
  588. package/esnext/portal/style/css/index.d.ts +2 -0
  589. package/esnext/portal/style/css/index.js +2 -0
  590. package/esnext/portal/style/index.d.ts +2 -0
  591. package/esnext/portal/style/index.js +2 -0
  592. package/esnext/portal/style/index.less +1 -0
  593. package/esnext/progress/index.d.ts +126 -0
  594. package/esnext/progress/index.js +66 -0
  595. package/esnext/progress/style/css/index.css +692 -0
  596. package/esnext/progress/style/css/index.d.ts +2 -0
  597. package/esnext/progress/style/css/index.js +2 -0
  598. package/esnext/progress/style/index.d.ts +2 -0
  599. package/esnext/progress/style/index.js +2 -0
  600. package/esnext/progress/style/index.less +205 -0
  601. package/esnext/pull-refresh/android-pull-refresh.d.ts +3 -0
  602. package/esnext/pull-refresh/android-pull-refresh.js +168 -0
  603. package/esnext/pull-refresh/hooks.d.ts +30 -0
  604. package/esnext/pull-refresh/hooks.js +73 -0
  605. package/esnext/pull-refresh/index.d.ts +28 -0
  606. package/esnext/pull-refresh/index.js +21 -0
  607. package/esnext/pull-refresh/ios-pull-refresh.d.ts +3 -0
  608. package/esnext/pull-refresh/ios-pull-refresh.js +137 -0
  609. package/esnext/pull-refresh/model.d.ts +111 -0
  610. package/esnext/pull-refresh/model.js +8 -0
  611. package/esnext/pull-refresh/style/css/index.css +650 -0
  612. package/esnext/pull-refresh/style/css/index.d.ts +3 -0
  613. package/esnext/pull-refresh/style/css/index.js +3 -0
  614. package/esnext/pull-refresh/style/index.d.ts +3 -0
  615. package/esnext/pull-refresh/style/index.js +3 -0
  616. package/esnext/pull-refresh/style/index.less +131 -0
  617. package/esnext/radio/group.d.ts +5 -0
  618. package/esnext/radio/group.js +50 -0
  619. package/esnext/radio/index.d.ts +19 -0
  620. package/esnext/radio/index.js +22 -0
  621. package/esnext/radio/radio.d.ts +5 -0
  622. package/esnext/radio/radio.js +13 -0
  623. package/esnext/radio/style/css/index.css +604 -0
  624. package/esnext/radio/style/css/index.d.ts +2 -0
  625. package/esnext/radio/style/css/index.js +2 -0
  626. package/esnext/radio/style/index.d.ts +2 -0
  627. package/esnext/radio/style/index.js +2 -0
  628. package/esnext/radio/style/index.less +114 -0
  629. package/esnext/radio/type.d.ts +31 -0
  630. package/esnext/radio/type.js +1 -0
  631. package/esnext/rate/index.d.ts +109 -0
  632. package/esnext/rate/index.js +87 -0
  633. package/esnext/rate/style/css/index.css +595 -0
  634. package/esnext/rate/style/css/index.d.ts +2 -0
  635. package/esnext/rate/style/css/index.js +2 -0
  636. package/esnext/rate/style/index.d.ts +2 -0
  637. package/esnext/rate/style/index.js +2 -0
  638. package/esnext/rate/style/index.less +106 -0
  639. package/esnext/search-bar/association.d.ts +3 -0
  640. package/esnext/search-bar/association.js +51 -0
  641. package/esnext/search-bar/cancel-button.d.ts +10 -0
  642. package/esnext/search-bar/cancel-button.js +18 -0
  643. package/esnext/search-bar/highlight.d.ts +12 -0
  644. package/esnext/search-bar/highlight.js +46 -0
  645. package/esnext/search-bar/index.d.ts +13 -0
  646. package/esnext/search-bar/index.js +109 -0
  647. package/esnext/search-bar/style/css/index.css +765 -0
  648. package/esnext/search-bar/style/css/index.d.ts +2 -0
  649. package/esnext/search-bar/style/css/index.js +2 -0
  650. package/esnext/search-bar/style/index.d.ts +2 -0
  651. package/esnext/search-bar/style/index.js +2 -0
  652. package/esnext/search-bar/style/index.less +198 -0
  653. package/esnext/search-bar/type.d.ts +163 -0
  654. package/esnext/search-bar/type.js +1 -0
  655. package/esnext/show-monitor/index.d.ts +115 -0
  656. package/esnext/show-monitor/index.js +416 -0
  657. package/esnext/show-monitor/style/css/index.css +0 -0
  658. package/esnext/show-monitor/style/css/index.d.ts +2 -0
  659. package/esnext/show-monitor/style/css/index.js +2 -0
  660. package/esnext/show-monitor/style/index.d.ts +2 -0
  661. package/esnext/show-monitor/style/index.js +2 -0
  662. package/esnext/show-monitor/style/index.less +1 -0
  663. package/esnext/skeleton/elements.d.ts +7 -0
  664. package/esnext/skeleton/elements.js +117 -0
  665. package/esnext/skeleton/index.d.ts +19 -0
  666. package/esnext/skeleton/index.js +50 -0
  667. package/esnext/skeleton/skeleton-context.d.ts +3 -0
  668. package/esnext/skeleton/skeleton-context.js +5 -0
  669. package/esnext/skeleton/style/css/index.css +712 -0
  670. package/esnext/skeleton/style/css/index.d.ts +3 -0
  671. package/esnext/skeleton/style/css/index.js +3 -0
  672. package/esnext/skeleton/style/index.d.ts +3 -0
  673. package/esnext/skeleton/style/index.js +3 -0
  674. package/esnext/skeleton/style/index.less +182 -0
  675. package/esnext/skeleton/type.d.ts +105 -0
  676. package/esnext/skeleton/type.js +1 -0
  677. package/esnext/slider/hooks/index.d.ts +12 -0
  678. package/esnext/slider/hooks/index.js +33 -0
  679. package/esnext/slider/hooks/useSliderEvents.d.ts +17 -0
  680. package/esnext/slider/hooks/useSliderEvents.js +128 -0
  681. package/esnext/slider/hooks/useSliderIcon.d.ts +7 -0
  682. package/esnext/slider/hooks/useSliderIcon.js +41 -0
  683. package/esnext/slider/hooks/useSliderInit.d.ts +14 -0
  684. package/esnext/slider/hooks/useSliderInit.js +146 -0
  685. package/esnext/slider/hooks/useSliderStyle.d.ts +13 -0
  686. package/esnext/slider/hooks/useSliderStyle.js +39 -0
  687. package/esnext/slider/index.d.ts +163 -0
  688. package/esnext/slider/index.js +120 -0
  689. package/esnext/slider/marks.d.ts +11 -0
  690. package/esnext/slider/marks.js +17 -0
  691. package/esnext/slider/popover.d.ts +6 -0
  692. package/esnext/slider/popover.js +13 -0
  693. package/esnext/slider/style/css/index.css +863 -0
  694. package/esnext/slider/style/css/index.d.ts +3 -0
  695. package/esnext/slider/style/css/index.js +3 -0
  696. package/esnext/slider/style/index.d.ts +3 -0
  697. package/esnext/slider/style/index.js +3 -0
  698. package/esnext/slider/style/index.less +366 -0
  699. package/esnext/slider/thumb.d.ts +9 -0
  700. package/esnext/slider/thumb.js +21 -0
  701. package/esnext/stepper/hooks/useButtonClick.d.ts +11 -0
  702. package/esnext/stepper/hooks/useButtonClick.js +46 -0
  703. package/esnext/stepper/hooks/useInputEvent.d.ts +10 -0
  704. package/esnext/stepper/hooks/useInputEvent.js +41 -0
  705. package/esnext/stepper/hooks/useValue.d.ts +7 -0
  706. package/esnext/stepper/hooks/useValue.js +33 -0
  707. package/esnext/stepper/index.d.ts +16 -0
  708. package/esnext/stepper/index.js +81 -0
  709. package/esnext/stepper/style/css/index.css +636 -0
  710. package/esnext/stepper/style/css/index.d.ts +2 -0
  711. package/esnext/stepper/style/css/index.js +2 -0
  712. package/esnext/stepper/style/index.d.ts +2 -0
  713. package/esnext/stepper/style/index.js +2 -0
  714. package/esnext/stepper/style/index.less +161 -0
  715. package/esnext/stepper/type.d.ts +159 -0
  716. package/esnext/stepper/type.js +1 -0
  717. package/esnext/steps/index.d.ts +19 -0
  718. package/esnext/steps/index.js +50 -0
  719. package/esnext/steps/step.d.ts +4 -0
  720. package/esnext/steps/step.js +43 -0
  721. package/esnext/steps/style/css/index.css +877 -0
  722. package/esnext/steps/style/css/index.d.ts +2 -0
  723. package/esnext/steps/style/css/index.js +2 -0
  724. package/esnext/steps/style/index.d.ts +2 -0
  725. package/esnext/steps/style/index.js +2 -0
  726. package/esnext/steps/style/index.less +407 -0
  727. package/esnext/steps/type.d.ts +110 -0
  728. package/esnext/steps/type.js +1 -0
  729. package/esnext/sticky/index.d.ts +141 -0
  730. package/esnext/sticky/index.js +165 -0
  731. package/esnext/sticky/style/css/index.css +526 -0
  732. package/esnext/sticky/style/css/index.d.ts +2 -0
  733. package/esnext/sticky/style/css/index.js +2 -0
  734. package/esnext/sticky/style/index.d.ts +2 -0
  735. package/esnext/sticky/style/index.js +2 -0
  736. package/esnext/sticky/style/index.less +30 -0
  737. package/esnext/style.d.ts +60 -0
  738. package/esnext/style.js +60 -0
  739. package/esnext/swipe-action/index.d.ts +13 -0
  740. package/esnext/swipe-action/index.js +220 -0
  741. package/esnext/swipe-action/item.d.ts +11 -0
  742. package/esnext/swipe-action/item.js +20 -0
  743. package/esnext/swipe-action/style/css/index.css +620 -0
  744. package/esnext/swipe-action/style/css/index.d.ts +2 -0
  745. package/esnext/swipe-action/style/css/index.js +2 -0
  746. package/esnext/swipe-action/style/index.d.ts +2 -0
  747. package/esnext/swipe-action/style/index.js +2 -0
  748. package/esnext/swipe-action/style/index.less +132 -0
  749. package/esnext/swipe-action/type.d.ts +123 -0
  750. package/esnext/swipe-action/type.js +1 -0
  751. package/esnext/swipe-load/index.d.ts +13 -0
  752. package/esnext/swipe-load/index.js +255 -0
  753. package/esnext/swipe-load/style/css/index.css +561 -0
  754. package/esnext/swipe-load/style/css/index.d.ts +2 -0
  755. package/esnext/swipe-load/style/css/index.js +2 -0
  756. package/esnext/swipe-load/style/index.d.ts +2 -0
  757. package/esnext/swipe-load/style/index.js +2 -0
  758. package/esnext/swipe-load/style/index.less +66 -0
  759. package/esnext/swipe-load/type.d.ts +152 -0
  760. package/esnext/swipe-load/type.js +1 -0
  761. package/esnext/switch/index.d.ts +105 -0
  762. package/esnext/switch/index.js +83 -0
  763. package/esnext/switch/style/css/index.css +765 -0
  764. package/esnext/switch/style/css/index.d.ts +2 -0
  765. package/esnext/switch/style/css/index.js +2 -0
  766. package/esnext/switch/style/index.d.ts +2 -0
  767. package/esnext/switch/style/index.js +2 -0
  768. package/esnext/switch/style/index.less +217 -0
  769. package/esnext/tab-bar/index.d.ts +14 -0
  770. package/esnext/tab-bar/index.js +16 -0
  771. package/esnext/tab-bar/item.d.ts +3 -0
  772. package/esnext/tab-bar/item.js +31 -0
  773. package/esnext/tab-bar/style/css/index.css +617 -0
  774. package/esnext/tab-bar/style/css/index.d.ts +2 -0
  775. package/esnext/tab-bar/style/css/index.js +2 -0
  776. package/esnext/tab-bar/style/index.d.ts +2 -0
  777. package/esnext/tab-bar/style/index.js +2 -0
  778. package/esnext/tab-bar/style/index.less +96 -0
  779. package/esnext/tab-bar/tab-bar.d.ts +11 -0
  780. package/esnext/tab-bar/tab-bar.js +40 -0
  781. package/esnext/tab-bar/type.d.ts +95 -0
  782. package/esnext/tab-bar/type.js +1 -0
  783. package/esnext/tabs/index.d.ts +13 -0
  784. package/esnext/tabs/index.js +340 -0
  785. package/esnext/tabs/style/css/index.css +1162 -0
  786. package/esnext/tabs/style/css/index.d.ts +2 -0
  787. package/esnext/tabs/style/css/index.js +2 -0
  788. package/esnext/tabs/style/index.d.ts +2 -0
  789. package/esnext/tabs/style/index.js +2 -0
  790. package/esnext/tabs/style/index.less +559 -0
  791. package/esnext/tabs/tab-cell-underline.d.ts +4 -0
  792. package/esnext/tabs/tab-cell-underline.js +237 -0
  793. package/esnext/tabs/tab-cell.d.ts +4 -0
  794. package/esnext/tabs/tab-cell.js +258 -0
  795. package/esnext/tabs/tab-pane.d.ts +4 -0
  796. package/esnext/tabs/tab-pane.js +241 -0
  797. package/esnext/tabs/type.d.ts +629 -0
  798. package/esnext/tabs/type.js +1 -0
  799. package/esnext/tag/index.d.ts +14 -0
  800. package/esnext/tag/index.js +20 -0
  801. package/esnext/tag/list.d.ts +3 -0
  802. package/esnext/tag/list.js +47 -0
  803. package/esnext/tag/style/css/index.css +738 -0
  804. package/esnext/tag/style/css/index.d.ts +2 -0
  805. package/esnext/tag/style/css/index.js +2 -0
  806. package/esnext/tag/style/index.d.ts +2 -0
  807. package/esnext/tag/style/index.js +2 -0
  808. package/esnext/tag/style/index.less +188 -0
  809. package/esnext/tag/tag.d.ts +3 -0
  810. package/esnext/tag/tag.js +32 -0
  811. package/esnext/tag/type.d.ts +159 -0
  812. package/esnext/tag/type.js +1 -0
  813. package/esnext/textarea/index.d.ts +96 -0
  814. package/esnext/textarea/index.js +88 -0
  815. package/esnext/textarea/style/css/index.css +572 -0
  816. package/esnext/textarea/style/css/index.d.ts +3 -0
  817. package/esnext/textarea/style/css/index.js +3 -0
  818. package/esnext/textarea/style/index.d.ts +3 -0
  819. package/esnext/textarea/style/index.js +3 -0
  820. package/esnext/textarea/style/index.less +84 -0
  821. package/esnext/toast/index.d.ts +257 -0
  822. package/esnext/toast/index.js +142 -0
  823. package/esnext/toast/methods.d.ts +16 -0
  824. package/esnext/toast/methods.js +61 -0
  825. package/esnext/toast/style/css/index.css +658 -0
  826. package/esnext/toast/style/css/index.d.ts +4 -0
  827. package/esnext/toast/style/css/index.js +4 -0
  828. package/esnext/toast/style/index.d.ts +4 -0
  829. package/esnext/toast/style/index.js +4 -0
  830. package/esnext/toast/style/index.less +130 -0
  831. package/esnext/transition/index.d.ts +49 -0
  832. package/esnext/transition/index.js +15 -0
  833. package/esnext/transition/style/css/index.css +549 -0
  834. package/esnext/transition/style/css/index.d.ts +2 -0
  835. package/esnext/transition/style/css/index.js +2 -0
  836. package/esnext/transition/style/index.d.ts +2 -0
  837. package/esnext/transition/style/index.js +2 -0
  838. package/esnext/transition/style/index.less +53 -0
  839. package/esnext/uploader/index.d.ts +16 -0
  840. package/esnext/uploader/index.js +75 -0
  841. package/esnext/uploader/style/css/index.css +666 -0
  842. package/esnext/uploader/style/css/index.d.ts +4 -0
  843. package/esnext/uploader/style/css/index.js +4 -0
  844. package/esnext/uploader/style/index.d.ts +4 -0
  845. package/esnext/uploader/style/index.js +4 -0
  846. package/esnext/uploader/style/index.less +161 -0
  847. package/esnext/uploader/type.d.ts +108 -0
  848. package/esnext/uploader/type.js +1 -0
  849. package/esnext/uploader/upload/index.d.ts +2 -0
  850. package/esnext/uploader/upload/index.js +2 -0
  851. package/esnext/uploader/upload/type.d.ts +107 -0
  852. package/esnext/uploader/upload/type.js +1 -0
  853. package/esnext/uploader/upload/upload.d.ts +20 -0
  854. package/esnext/uploader/upload/upload.js +123 -0
  855. package/esnext-tsconfig.json +23 -0
  856. package/package.json +3 -3
  857. package/umd/_helpers/index.d.ts +1 -0
  858. package/umd/_helpers/index.js +10 -4
  859. package/umd/_helpers/react-dom.js +21 -14
@@ -0,0 +1,131 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { PickerData, ValueType } from '../picker-view/type';
3
+ import { PopupProps } from '../popup';
4
+ export declare type DataType = PickerData[] | PickerData[][] | ValueType[][];
5
+ export interface PickerProps extends Omit<PopupProps, 'visible' | 'close' | 'children' | 'getScrollContainer' | 'orientationDirection' | 'direction' | 'maskClosable'> {
6
+ /**
7
+ * 数据源,非级联时data数组的长度决定picker列数,级联时以cols决定 pick列数
8
+ * @en Data source, the length of the data list determines the number of picker columns when not cascading, and is determined by cols when cascading
9
+ */
10
+ data: PickerData[] | PickerData[][] | ValueType[][];
11
+ /**
12
+ * 是否联动
13
+ * @en Whether to cascade
14
+ * @default true
15
+ */
16
+ cascade?: boolean;
17
+ /**
18
+ * 列数(最大为5;cascade=true时才使用)
19
+ * @en Number of columns (maximum 5; only used when cascade=true)
20
+ * @default 3
21
+ */
22
+ cols?: number;
23
+ /**
24
+ * 行数(一列可选项的行数),必须是奇数,最小为3个
25
+ * @en The number of rows (the number of rows in a column of optional items), must be an odd number, the minimum is 3
26
+ * @default 5
27
+ */
28
+ rows?: number;
29
+ /**
30
+ * 是否不可用
31
+ * @en Whether t be disabled
32
+ * @default false
33
+ */
34
+ disabled?: boolean;
35
+ /**
36
+ * 值, 格式是[value1, value2, value3], 对应数据源的相应级层value,如果不传默认选每一列的第一个值
37
+ * @en Value, the format is [value1, value2, value3], corresponding to the corresponding level value of the data source, if not passed, the first value of each column is selected by default
38
+ */
39
+ value?: ValueType[];
40
+ /**
41
+ * 点击遮罩层或取消、确定按钮的隐藏回调
42
+ * @en Callback for clicking on mask layer or cancel button, OK button
43
+ */
44
+ onHide?: (scene?: string) => void;
45
+ /**
46
+ * 选中后的回调
47
+ * @en Callback after selection
48
+ */
49
+ onChange?: (selectedValue: ValueType[]) => void;
50
+ /**
51
+ * 每列数据选择变化后的回调函数
52
+ * @en The callback after each column data selection changes
53
+ */
54
+ onPickerChange?: (value: ValueType[], index: number, data: PickerData[]) => void;
55
+ /**
56
+ * 每列样式
57
+ * @en Stylesheet per column
58
+ */
59
+ itemStyle?: React.CSSProperties;
60
+ /**
61
+ * 是否展示选择器
62
+ * @en whether to show the picker
63
+ * @default false
64
+ */
65
+ visible?: boolean;
66
+ /**
67
+ * 弹窗确认已选值的文案
68
+ * @en Text of confirmed selected value of the popup
69
+ * @default "确定"
70
+ * @default_en "OK"
71
+ */
72
+ okText?: string;
73
+ /**
74
+ * 弹窗取消的文案
75
+ * @en Popup canceled text
76
+ * @default "取消"
77
+ * @default_en "Cancel"
78
+ */
79
+ dismissText?: string;
80
+ /**
81
+ * 点击选中时执行的回调
82
+ * @en Callback when clicking on Ok
83
+ */
84
+ onOk?: (value: ValueType[], data: PickerData[]) => void;
85
+ /**
86
+ * 点击取消时执行的回调
87
+ * @en Callback when clicking to cancel
88
+ */
89
+ onDismiss?: () => void;
90
+ /**
91
+ * 是否可通过点击操作选择内容
92
+ * @en Whether content can be selected by clicking
93
+ * @default true
94
+ */
95
+ clickable?: boolean;
96
+ /**
97
+ * 是否隐藏无数据的空列,常用于级联选择
98
+ * @en Whether to hide empty columns without data, often used for cascading selection
99
+ * @default false
100
+ */
101
+ hideEmptyCols?: boolean;
102
+ /**
103
+ * 选择器标题
104
+ * @en Picker title
105
+ * @default ""
106
+ */
107
+ title?: string;
108
+ /**
109
+ * 点击蒙层是否关闭菜单
110
+ * @en Whether to click the mask to close the menu
111
+ * @default false
112
+ */
113
+ maskClosable?: boolean;
114
+ /**
115
+ * 是否通过长按停止滑动,传入数字 x 表示触摸超过 x 毫秒算长按,传 true 表示 x=100,长按事件与 click 事件互斥
116
+ * @en Whether to stop sliding by long-pressing, inputing in the number x means that the touch exceeds x milliseconds to count as long-pressing, inputing true means that x=100, the long-press event and the click event are mutually exclusive
117
+ * @default false
118
+ */
119
+ touchToStop?: boolean | number;
120
+ /**
121
+ * 是否禁用滚动容器手势判断,禁用后交给业务方自己判断
122
+ * @en Whether to disable the scrolling container gesture judgment, leave it to users to judge
123
+ * @default true
124
+ */
125
+ gestureOutOfControl?: boolean;
126
+ /**
127
+ * 将选择器的展现隐藏状态及选中值的展示与某个容器关联,传入后将同时渲染该容器和选择器组件,此时选择器组件的 visible 和 onHide 属性可不传,点击该容器会唤起选择器
128
+ * @en Associate the hidden state of the picker and the display of the selected value with a container. After passing it in, the container and the picker component will be rendered at the same time. At this time, the visible and onHide attributes of the picker component are optional values. Clicking the container will evoke the picker
129
+ */
130
+ renderLinkedContainer?: (value: ValueType[], data: PickerData[]) => ReactNode;
131
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { PickerData, ValueType, PickerCellMovingStatus } from '../type';
3
+ export interface CascaderProps {
4
+ prefixCls: string;
5
+ cols: number;
6
+ itemStyle?: React.CSSProperties;
7
+ data: PickerData[];
8
+ clickable: boolean;
9
+ disabled: boolean;
10
+ itemHeight: number;
11
+ wrapperHeight: number;
12
+ selectedValue?: ValueType[];
13
+ rows?: number;
14
+ hideEmptyCols?: boolean;
15
+ onValueChange?: (value: ValueType[], index: number, data: PickerData[]) => void;
16
+ touchToStop?: boolean | number;
17
+ }
18
+ export interface CascaderRef {
19
+ getCellMovingStatus: () => PickerCellMovingStatus[];
20
+ scrollToCurrentIndex: () => void;
21
+ getAllCellsValue: () => ValueType[];
22
+ getAllCellsData: () => PickerData[];
23
+ }
24
+ declare const Cascader: React.ForwardRefExoticComponent<CascaderProps & React.RefAttributes<CascaderRef>>;
25
+ export default Cascader;
@@ -0,0 +1,54 @@
1
+ import React, { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';
2
+ import { arrayTreeFilter } from '@arco-design/mobile-utils';
3
+ import MultiPicker from './multi-picker';
4
+ import PickerCell from './picker-cell';
5
+ const Cascader = forwardRef((props, ref) => {
6
+ const { prefixCls, itemStyle, cols, data, disabled, clickable, itemHeight, wrapperHeight, rows, hideEmptyCols, onValueChange, selectedValue = [], touchToStop, } = props;
7
+ const pickerCellsRef = useRef([]);
8
+ useImperativeHandle(ref, () => ({
9
+ getCellMovingStatus,
10
+ scrollToCurrentIndex,
11
+ getAllCellsValue,
12
+ getAllCellsData,
13
+ }));
14
+ function getCellMovingStatus() {
15
+ return pickerCellsRef.current.map(cell => cell.movingStatus);
16
+ }
17
+ function scrollToCurrentIndex() {
18
+ pickerCellsRef.current.forEach(cell => cell.scrollToCurrentIndex());
19
+ }
20
+ function getAllCellsValue() {
21
+ return pickerCellsRef.current.map(cell => cell.getCurrentCellValue());
22
+ }
23
+ function getAllCellsData() {
24
+ return pickerCellsRef.current.map(cell => cell.getCurrentCellData());
25
+ }
26
+ function _onValueChange(value, index, newData) {
27
+ const children = arrayTreeFilter(data, (item, level) => level <= index && item.value === value[level]);
28
+ let child = children[index];
29
+ let i;
30
+ for (i = index + 1; i < cols && child && child.children; i++) {
31
+ child = child.children[0];
32
+ value[i] = child.value;
33
+ newData[i] = child;
34
+ }
35
+ value.length = i;
36
+ newData.length = i;
37
+ onValueChange?.(value, index, newData);
38
+ }
39
+ function _formatData() {
40
+ const childrenTree = arrayTreeFilter(data, (item, level) => item.value === selectedValue?.[level], { fallbackChildIndex: 0 }).map(item => item.children);
41
+ const needPad = cols - childrenTree.length;
42
+ if (needPad > 0) {
43
+ for (let i = 0; i < needPad; i++) {
44
+ childrenTree.push([]);
45
+ }
46
+ }
47
+ childrenTree.length = cols - 1;
48
+ childrenTree.unshift(data);
49
+ return childrenTree;
50
+ }
51
+ const formatData = useMemo(() => _formatData(), [data, selectedValue]);
52
+ return (React.createElement(MultiPicker, { prefixCls: `${prefixCls}-picker`, data: formatData, selectedValue: selectedValue, itemHeight: itemHeight, onValueChange: _onValueChange }, formatData.map((item, index) => (React.createElement(PickerCell, { key: `${index}_picker_cell_cascader`, data: item || [], style: itemStyle, prefixCls: `${prefixCls}-picker`, clickable: clickable, itemHeight: itemHeight, wrapperHeight: wrapperHeight, disabled: disabled, rows: rows, hideEmptyCols: hideEmptyCols, ref: cellRef => cellRef && (pickerCellsRef.current[index] = cellRef), touchToStop: touchToStop })))));
53
+ });
54
+ export default Cascader;
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { PickerData, ValueType } from '../type';
3
+ export interface MultiPickerProps {
4
+ prefixCls: string;
5
+ data: PickerData[][];
6
+ selectedValue?: ValueType[];
7
+ children: any;
8
+ itemHeight: number;
9
+ onValueChange: (value: ValueType[], index: number, data: PickerData[]) => void;
10
+ }
11
+ export default function MultiPicker(props: MultiPickerProps): JSX.Element;
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ export default function MultiPicker(props) {
3
+ const { prefixCls, onValueChange, children, itemHeight, selectedValue, data } = props;
4
+ function getCurrentData() {
5
+ return (data || []).map((item, itemIndex) => {
6
+ const curSelected = selectedValue?.[itemIndex];
7
+ const cur = curSelected ? (item || []).find(i => i.value === curSelected) : undefined;
8
+ return cur || item?.[0];
9
+ });
10
+ }
11
+ function onChange({ index, value, changedData, callback, }) {
12
+ const newData = getCurrentData().concat();
13
+ newData[index] = changedData;
14
+ const newValue = newData.map(d => d?.value);
15
+ newValue[index] = value;
16
+ if (callback) {
17
+ callback(newValue, index, newData);
18
+ }
19
+ }
20
+ function _onValueChange(value, index, changedData) {
21
+ onChange({ index, value, callback: onValueChange, changedData });
22
+ }
23
+ function renderChild() {
24
+ const curData = getCurrentData();
25
+ const value = curData.map(d => d?.value);
26
+ return React.Children.map(children, (col, index) => React.cloneElement(col, {
27
+ onValueChange: (val, changedData) => _onValueChange(val, index, changedData),
28
+ selectedValue: value[index],
29
+ }));
30
+ }
31
+ return (React.createElement("div", { className: `${prefixCls}-multi`, style: { lineHeight: `${itemHeight}px` } }, renderChild()));
32
+ }
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { ValueType, PickerData, PickerCellMovingStatus } from '../type';
3
+ export interface PickerCellProps {
4
+ prefixCls: string;
5
+ style?: React.CSSProperties;
6
+ data: PickerData[];
7
+ clickable: boolean;
8
+ itemHeight: number;
9
+ wrapperHeight: number;
10
+ selectedValue?: ValueType;
11
+ onValueChange?: (value: ValueType, data: PickerData) => void;
12
+ disabled: boolean;
13
+ hideEmptyCols?: boolean;
14
+ /**
15
+ * 一列展示可选项的个数,默认是5,最小为3
16
+ * @en The number of options displayed in a column, the default is 5, the minimum is 3
17
+ */
18
+ rows?: number;
19
+ touchToStop?: boolean | number;
20
+ }
21
+ export interface PickerCellRef {
22
+ movingStatus: PickerCellMovingStatus;
23
+ scrollToCurrentIndex: () => void;
24
+ getCurrentCellValue: () => ValueType;
25
+ getCurrentCellData: () => PickerData;
26
+ }
27
+ declare const PickerCell: React.ForwardRefExoticComponent<PickerCellProps & React.RefAttributes<PickerCellRef>>;
28
+ export default PickerCell;
@@ -0,0 +1,284 @@
1
+ import React, { useState, useLayoutEffect, useMemo, useRef, useCallback, useEffect, forwardRef, useImperativeHandle, } from 'react';
2
+ import { cls } from '@arco-design/mobile-utils';
3
+ import { getStyleWithVendor, useMountedState, useRefState } from '../../_helpers';
4
+ const PickerCell = forwardRef((props, ref) => {
5
+ const { prefixCls, style, data, clickable, itemHeight, wrapperHeight, selectedValue, onValueChange, disabled, hideEmptyCols, rows = 5, touchToStop = false, } = props;
6
+ const [transitionDuration, setTransitionDuration] = useMountedState('');
7
+ const [bezier, setBezier] = useState('');
8
+ const [currentIndex, setCurrentIndex] = useMountedState(0);
9
+ const [currentValue, setCurrentValue] = useMountedState(selectedValue);
10
+ // 是否开始touch
11
+ // @en whether to start touch
12
+ const [transformY, transformYRef, setTransformY] = useRefState(0);
13
+ const lastTransformYRef = useRef(0);
14
+ const touchStartTimeRef = useRef(0);
15
+ const latestCallbackTimer = useRef(0);
16
+ const touchStartXRef = useRef(0);
17
+ const touchStartYRef = useRef(0);
18
+ const touchingRef = useRef(false);
19
+ const touchingXRef = useRef(null);
20
+ const wrapRef = useRef(null);
21
+ const movingStatusRef = useRef('normal');
22
+ const rowCount = Math.max(rows % 2 === 0 ? rows + 1 : rows, 3);
23
+ const isTouchMoveRef = useRef(false);
24
+ const isTouchStopped = useRef(false);
25
+ const unmountCallbackRef = useRef();
26
+ const timeRef = useRef(null);
27
+ const colStyle = useMemo(() => getStyleWithVendor({
28
+ transform: `translate3d(0px, ${transformY || 0}px, 0px)`,
29
+ ...(transitionDuration ? { transitionDuration } : {}),
30
+ transitionTimingFunction: bezier,
31
+ paddingBottom: `${((rowCount - 1) / 2) * itemHeight}px`,
32
+ paddingTop: `${((rowCount - 1) / 2) * itemHeight}px`,
33
+ }), [transitionDuration, transformY, bezier, itemHeight, rowCount]);
34
+ function _scrollingComplete(nowItemIndex) {
35
+ // index有改变时再抛出
36
+ // @en Throws again when index changes
37
+ if (currentIndex !== nowItemIndex) {
38
+ setCurrentIndex(Math.max(nowItemIndex, 0));
39
+ const newData = data[nowItemIndex];
40
+ const newValue = newData?.value;
41
+ if (newValue !== currentValue) {
42
+ setCurrentValue(newValue);
43
+ if (onValueChange) {
44
+ onValueChange(newValue, newData);
45
+ }
46
+ }
47
+ }
48
+ }
49
+ function _scrollTo(transY, transDuration = 0, callback = () => { }) {
50
+ setTransitionDuration(transDuration ? `${transDuration}ms` : '');
51
+ setTransformY(transY);
52
+ // 处理连续滑动的情况:如果上一次callback还未执行,先cancel掉上一次回调
53
+ // @en handle the case of continuous sliding: If the last callback has not been executed, cancel the last callback first
54
+ if (latestCallbackTimer.current) {
55
+ clearTimeout(latestCallbackTimer.current);
56
+ }
57
+ const setNormalStatus = () => {
58
+ // 如果timer顺利执行,则在unmount时不再重复执行
59
+ // @en If the timer is successfully executed, it will not be repeated when unmounting
60
+ unmountCallbackRef.current = undefined;
61
+ movingStatusRef.current = 'normal';
62
+ setTransitionDuration('');
63
+ callback();
64
+ };
65
+ unmountCallbackRef.current = setNormalStatus;
66
+ latestCallbackTimer.current = window.setTimeout(setNormalStatus, transDuration);
67
+ }
68
+ function _scrollToIndex(itemIndex, transDuration = 0, callback = () => { }) {
69
+ _scrollTo(-1 * itemIndex * itemHeight, transDuration, callback);
70
+ }
71
+ function _scrollToIndexWithChange(itemIndex, transDuration = 0) {
72
+ _scrollToIndex(itemIndex, transDuration, () => {
73
+ _scrollingComplete(itemIndex);
74
+ });
75
+ }
76
+ const _handleColumnTouchStart = useCallback((e) => {
77
+ if (disabled) {
78
+ return;
79
+ }
80
+ isTouchMoveRef.current = false;
81
+ movingStatusRef.current = 'moving';
82
+ const x = e.touches[0].screenX;
83
+ const y = e.touches[0].screenY;
84
+ touchStartTimeRef.current = Date.now();
85
+ touchingRef.current = true;
86
+ touchingXRef.current = null;
87
+ touchStartXRef.current = x;
88
+ touchStartYRef.current = y;
89
+ lastTransformYRef.current = transformYRef.current;
90
+ }, [disabled]);
91
+ const _handleColumnTouchMove = useCallback((e) => {
92
+ if (disabled || !touchingRef.current) {
93
+ return;
94
+ }
95
+ isTouchMoveRef.current = true;
96
+ const lastTransformY = lastTransformYRef.current;
97
+ const touchMoveX = e.touches[0].screenX;
98
+ const touchMoveY = e.touches[0].screenY;
99
+ const distanceX = touchMoveX - touchStartXRef.current;
100
+ const distance = touchMoveY - touchStartYRef.current;
101
+ if (touchingXRef.current === null) {
102
+ touchingXRef.current = Math.abs(distanceX) > Math.abs(distance);
103
+ }
104
+ if (touchingXRef.current) {
105
+ return;
106
+ }
107
+ e.cancelable && e.preventDefault();
108
+ const newPos = lastTransformY + distance;
109
+ const maxPos = -1 * (data.length - 1) * itemHeight;
110
+ // 当滚动到上边界或下边界时增加阻尼效果
111
+ // @en Add damping effect when scrolling to the upper or lower border
112
+ setTransformY((lastTransformY >= 0 && distance > 0) || (lastTransformY <= maxPos && distance < 0)
113
+ ? lastTransformY + distance / 4
114
+ : newPos);
115
+ }, [data.length, disabled, itemHeight]);
116
+ function _handleScrollEnd() {
117
+ const maxIndex = data.length - 1;
118
+ const nowIndex = Math.max(0, Math.min(maxIndex, Math.round((-1 * transformY) / itemHeight)));
119
+ // 滚动(包括加动量的滚动)完成之后定位到最近的一个index上
120
+ // @en After scrolling (including scrolling with momentum) is completed, it is positioned on the nearest index
121
+ _scrollToIndexWithChange(nowIndex, 200);
122
+ }
123
+ // Reference: https://juejin.im/post/6844904185121488910
124
+ function momentum(current, start, duration, minY, maxY) {
125
+ const durationMap = {
126
+ noBounce: 400,
127
+ weekBounce: 100,
128
+ strongBounce: 75,
129
+ };
130
+ const bezierMap = {
131
+ noBounce: 'cubic-bezier(.17, .89, .45, 1)',
132
+ weekBounce: 'cubic-bezier(.25, .46, .45, .94)',
133
+ strongBounce: 'cubic-bezier(.25, .46, .45, .94)',
134
+ };
135
+ let type = 'noBounce';
136
+ // 惯性滑动加速度
137
+ // @en inertial sliding acceleration
138
+ const deceleration = 0.003;
139
+ // 回弹阻力
140
+ // @en rebound resistance
141
+ const bounceRate = 5;
142
+ // 强弱回弹的分割值
143
+ // @en Split value of strong and weak rebound
144
+ const bounceThreshold = 300;
145
+ // 回弹的最大限度
146
+ // @en maximum rebound
147
+ const maxOverflowY = wrapperHeight / 6;
148
+ let overflowY;
149
+ const distance = current - start;
150
+ const speed = (2 * Math.abs(distance)) / duration;
151
+ let destination = current + (speed / deceleration) * (distance < 0 ? -1 : 1);
152
+ if (destination < minY) {
153
+ overflowY = minY - destination;
154
+ type = overflowY > bounceThreshold ? 'strongBounce' : 'weekBounce';
155
+ destination = Math.max(minY - maxOverflowY, minY - overflowY / bounceRate);
156
+ }
157
+ else if (destination > maxY) {
158
+ overflowY = destination - maxY;
159
+ type = overflowY > bounceThreshold ? 'strongBounce' : 'weekBounce';
160
+ destination = Math.min(maxY + maxOverflowY, maxY + overflowY / bounceRate);
161
+ }
162
+ return {
163
+ destination,
164
+ duration: durationMap[type],
165
+ bezier: bezierMap[type],
166
+ };
167
+ }
168
+ function _handleColumnTouchEnd() {
169
+ _clearTimer();
170
+ movingStatusRef.current = 'normal';
171
+ const lastTransformY = lastTransformYRef.current;
172
+ if (!isTouchMoveRef.current || transformY === lastTransformY) {
173
+ return;
174
+ }
175
+ touchingRef.current = false;
176
+ const endTime = Date.now();
177
+ const scrollerHeight = (data.length + rowCount - 1) * itemHeight;
178
+ const duration = endTime - touchStartTimeRef.current;
179
+ const absDistY = Math.abs(transformY - lastTransformY);
180
+ // 计算动量,保证滚动顺畅,条件:手势时间小于300ms && 移动距离绝对值大于30时
181
+ // @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
182
+ if (duration < 300 && absDistY > 90) {
183
+ const momentumY = momentum(transformY, lastTransformY, duration, wrapperHeight - scrollerHeight, 0);
184
+ const newItemIndex = Math.max(0, Math.min(data.length - 1, Math.round((-1 * momentumY.destination) / itemHeight)));
185
+ setBezier(momentumY.bezier);
186
+ movingStatusRef.current = 'scrolling';
187
+ _scrollToIndex(newItemIndex, momentumY.duration, () => {
188
+ _scrollingComplete(newItemIndex);
189
+ });
190
+ }
191
+ else {
192
+ _handleScrollEnd();
193
+ }
194
+ }
195
+ function scrollToCurrentIndex() {
196
+ if (!wrapRef.current) {
197
+ return;
198
+ }
199
+ const curStyle = window.getComputedStyle(wrapRef.current);
200
+ const transformMatrix = curStyle.transform || curStyle.webkitTransform || '';
201
+ const transY = Number(transformMatrix
202
+ .replace(/matrix\((.*?)\)/, '$1')
203
+ .split(/,\s*/)
204
+ .slice(-1)[0]) || 0;
205
+ const maxIndex = data.length - 1;
206
+ const nowIndex = Math.max(0, Math.min(maxIndex, Math.round((-1 * transY) / itemHeight)));
207
+ // 滚动(包括加动量的滚动)完成之后定位到最近的一个index上
208
+ // @en After scrolling (including scrolling with momentum) is completed, it is positioned on the nearest index
209
+ _scrollToIndexWithChange(nowIndex, 0);
210
+ }
211
+ function getCurrentCellValue() {
212
+ return data[currentIndex]?.value;
213
+ }
214
+ function getCurrentCellData() {
215
+ return data[currentIndex];
216
+ }
217
+ function _clearTimer() {
218
+ timeRef.current && clearTimeout(timeRef.current);
219
+ timeRef.current = null;
220
+ }
221
+ function _handleItemTouchStart() {
222
+ if (touchToStop === false) {
223
+ return;
224
+ }
225
+ isTouchStopped.current = false;
226
+ timeRef.current = window.setTimeout(() => {
227
+ if (!isTouchMoveRef.current) {
228
+ isTouchStopped.current = true;
229
+ scrollToCurrentIndex();
230
+ }
231
+ }, touchToStop === true ? 100 : touchToStop);
232
+ }
233
+ function _handleItemClick(itemIndex) {
234
+ if (!clickable || disabled || (touchToStop !== false && isTouchStopped.current)) {
235
+ return;
236
+ }
237
+ _scrollToIndexWithChange(itemIndex, 200);
238
+ }
239
+ useEffect(() => {
240
+ return () => {
241
+ // 卸载组件时,如果timer中还有未执行的onchange操作,则立刻执行该操作并移除timer
242
+ // @en When unloading the component, if there is an unexecuted onchange operation in the timer, execute it immediately and remove the timer
243
+ const timerId = latestCallbackTimer.current;
244
+ unmountCallbackRef.current?.();
245
+ timerId && clearTimeout(timerId);
246
+ };
247
+ }, []);
248
+ useEffect(() => {
249
+ if (wrapRef.current) {
250
+ wrapRef.current.addEventListener('touchstart', _handleColumnTouchStart);
251
+ wrapRef.current.addEventListener('touchmove', _handleColumnTouchMove);
252
+ }
253
+ return () => {
254
+ if (wrapRef.current) {
255
+ wrapRef.current.removeEventListener('touchstart', _handleColumnTouchStart);
256
+ wrapRef.current.removeEventListener('touchmove', _handleColumnTouchMove);
257
+ }
258
+ };
259
+ }, [_handleColumnTouchStart, _handleColumnTouchMove]);
260
+ useLayoutEffect(() => {
261
+ if ('selectedValue' in props) {
262
+ const curIndex = data.findIndex((item) => item.value === selectedValue);
263
+ setCurrentIndex(Math.max(curIndex, 0));
264
+ if (curIndex >= 0) {
265
+ _scrollToIndexWithChange(curIndex);
266
+ }
267
+ }
268
+ }, [selectedValue, itemHeight, data]);
269
+ useImperativeHandle(ref, () => ({
270
+ movingStatus: movingStatusRef.current,
271
+ scrollToCurrentIndex,
272
+ getCurrentCellValue,
273
+ getCurrentCellData,
274
+ }));
275
+ return !hideEmptyCols || (data && data.length) ? (React.createElement("div", { className: `${prefixCls}-column` },
276
+ React.createElement("div", { className: `${prefixCls}-column-item-wrap`, style: colStyle, ref: wrapRef, onTouchStart: _handleItemTouchStart, onTouchEnd: _handleColumnTouchEnd, onTouchCancel: _handleColumnTouchEnd, "aria-disabled": disabled }, data.map((item, index) => {
277
+ const dis = Math.abs(index - currentIndex);
278
+ return (React.createElement("div", { "aria-label": index === currentIndex ? `${item.value}` : '', key: `${index}_${item.value}`, className: cls(`${prefixCls}-column-item`, {
279
+ selected: index === currentIndex,
280
+ [`selected-neighbor-${dis}`]: dis && dis <= Math.floor(rowCount / 2),
281
+ }), style: style, onClick: () => _handleItemClick(index) }, item.label));
282
+ })))) : null;
283
+ });
284
+ export default PickerCell;
@@ -0,0 +1,62 @@
1
+ import React from 'react';
2
+ import MultiPicker from '../picker-view/components/multi-picker';
3
+ import PickerCell from '../picker-view/components/picker-cell';
4
+ import Cascader from '../picker-view/components/cascader';
5
+ import { PickerViewProps, ValueType, PickerData, PickerCellMovingStatus } from './type';
6
+ export * from './type';
7
+ export { MultiPicker, PickerCell, Cascader };
8
+ export interface PickerViewRef {
9
+ /**
10
+ * 最外层元素 DOM
11
+ * @en The outermost element DOM
12
+ */
13
+ dom: HTMLDivElement | null;
14
+ /**
15
+ * 每一列的滑动状态
16
+ * @en Sliding state of each column
17
+ */
18
+ getCellMovingStatus: () => PickerCellMovingStatus[];
19
+ /**
20
+ * 获取所有列的值
21
+ * @en Get all column values
22
+ */
23
+ getAllColumnValues: () => ValueType[];
24
+ /**
25
+ * 获取第 n 列的值
26
+ * @en Get the value of the nth column
27
+ */
28
+ getColumnValue: (index: number) => ValueType | undefined;
29
+ /**
30
+ * 手动更新元素布局
31
+ * @en Manually update the element layout
32
+ */
33
+ updateLayout: () => void;
34
+ /**
35
+ * 重置选择器的值为传入的`value`值
36
+ * @en Reset the selector's value to the input value `value`
37
+ */
38
+ resetValue: () => void;
39
+ /**
40
+ * 直接跳到当前最近一行(调用时将中断滚动)
41
+ * @en Jump directly to the current most recent line (will break scrolling when called)
42
+ */
43
+ scrollToCurrentIndex: () => void;
44
+ /**
45
+ * 获取所有列的 data
46
+ * @en Get all column data
47
+ */
48
+ getAllColumnData: () => PickerData[];
49
+ }
50
+ declare const _default: React.ForwardRefExoticComponent<PickerViewProps & React.RefAttributes<PickerViewRef>> & {
51
+ displayName?: string | undefined;
52
+ };
53
+ /**
54
+ * 选择器视图组件,不含弹窗,方便使用方灵活定制选择器。
55
+ * @en The picker view component, not has contain popup, which is convenient for the user to flexibly customize the picker.
56
+ * @type 数据录入
57
+ * @type_en Data Entry
58
+ * @name 选择器视图
59
+ * @name_en PickerView
60
+ * @displayName PickerView
61
+ */
62
+ export default _default;