@arco-design/mobile-react 2.25.4 → 2.27.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 (947) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.en-US.md +2 -2
  3. package/README.md +2 -2
  4. package/cjs/_helpers/hooks.js +124 -43
  5. package/cjs/_helpers/index.js +13 -2
  6. package/cjs/_helpers/react-dom.js +12 -0
  7. package/cjs/_helpers/render.js +12 -0
  8. package/cjs/action-sheet/index.d.ts +2 -2
  9. package/cjs/action-sheet/index.js +30 -10
  10. package/cjs/action-sheet/methods.js +2 -0
  11. package/cjs/action-sheet/style/css/index.js +2 -0
  12. package/cjs/action-sheet/style/index.js +2 -0
  13. package/cjs/avatar/group.js +24 -12
  14. package/cjs/avatar/index.js +77 -51
  15. package/cjs/avatar/style/css/index.js +2 -0
  16. package/cjs/avatar/style/index.js +2 -0
  17. package/cjs/badge/index.js +29 -18
  18. package/cjs/badge/style/css/index.js +1 -0
  19. package/cjs/badge/style/index.js +1 -0
  20. package/cjs/button/hooks.js +20 -15
  21. package/cjs/button/index.js +67 -46
  22. package/cjs/button/style/css/index.js +2 -0
  23. package/cjs/button/style/index.js +2 -0
  24. package/cjs/carousel/index.d.ts +6 -0
  25. package/cjs/carousel/index.js +342 -184
  26. package/cjs/carousel/style/css/index.css +50 -15
  27. package/cjs/carousel/style/css/index.js +1 -0
  28. package/cjs/carousel/style/index.js +1 -0
  29. package/cjs/carousel/style/index.less +19 -14
  30. package/cjs/cell/arrow.js +3 -0
  31. package/cjs/cell/cell.js +23 -14
  32. package/cjs/cell/demo/style/css/mobile.css +8 -0
  33. package/cjs/cell/demo/style/mobile.less +2 -2
  34. package/cjs/cell/group.js +21 -9
  35. package/cjs/cell/index.js +7 -1
  36. package/cjs/cell/style/css/index.css +16 -0
  37. package/cjs/cell/style/css/index.js +1 -0
  38. package/cjs/cell/style/index.js +1 -0
  39. package/cjs/cell/style/index.less +6 -4
  40. package/cjs/checkbox/checkbox.js +57 -31
  41. package/cjs/checkbox/group.js +38 -24
  42. package/cjs/checkbox/hooks/index.js +2 -0
  43. package/cjs/checkbox/hooks/useMergeProps.js +14 -7
  44. package/cjs/checkbox/index.js +8 -1
  45. package/cjs/checkbox/style/css/index.js +1 -0
  46. package/cjs/checkbox/style/index.js +1 -0
  47. package/cjs/checkbox/type.js +2 -0
  48. package/cjs/circle-progress/index.js +57 -37
  49. package/cjs/circle-progress/style/css/index.js +1 -0
  50. package/cjs/circle-progress/style/index.js +1 -0
  51. package/cjs/collapse/collapse.js +56 -27
  52. package/cjs/collapse/group.js +44 -20
  53. package/cjs/collapse/index.js +9 -0
  54. package/cjs/collapse/style/css/index.js +1 -0
  55. package/cjs/collapse/style/index.js +1 -0
  56. package/cjs/collapse/utils.js +7 -0
  57. package/cjs/context-provider/index.d.ts +6 -0
  58. package/cjs/context-provider/index.js +30 -11
  59. package/cjs/context-provider/style/css/index.js +1 -0
  60. package/cjs/context-provider/style/index.js +1 -0
  61. package/cjs/count-down/hooks.js +43 -24
  62. package/cjs/count-down/index.js +37 -29
  63. package/cjs/count-down/singleton.js +12 -2
  64. package/cjs/count-down/style/css/index.js +1 -0
  65. package/cjs/count-down/style/index.js +1 -0
  66. package/cjs/count-down/util.js +47 -33
  67. package/cjs/date-picker/helper.js +14 -7
  68. package/cjs/date-picker/index.js +106 -42
  69. package/cjs/date-picker/style/css/index.js +2 -0
  70. package/cjs/date-picker/style/index.js +2 -0
  71. package/cjs/dialog/index.d.ts +2 -2
  72. package/cjs/dialog/index.js +54 -28
  73. package/cjs/dialog/methods.js +22 -9
  74. package/cjs/dialog/style/css/index.js +2 -0
  75. package/cjs/dialog/style/index.js +2 -0
  76. package/cjs/divider/demo/style/css/mobile.css +7 -0
  77. package/cjs/divider/demo/style/mobile.less +12 -0
  78. package/cjs/divider/index.d.ts +49 -0
  79. package/cjs/divider/index.js +65 -0
  80. package/cjs/divider/style/css/index.css +69 -0
  81. package/cjs/divider/style/css/index.d.ts +2 -0
  82. package/cjs/divider/style/css/index.js +5 -0
  83. package/cjs/divider/style/index.d.ts +2 -0
  84. package/cjs/divider/style/index.js +5 -0
  85. package/cjs/divider/style/index.less +66 -0
  86. package/cjs/dropdown/dropdown.js +113 -74
  87. package/cjs/dropdown/index.js +8 -1
  88. package/cjs/dropdown/options.js +28 -12
  89. package/cjs/dropdown/style/css/index.js +1 -0
  90. package/cjs/dropdown/style/index.js +1 -0
  91. package/cjs/dropdown-menu/dropdown-menu.js +84 -49
  92. package/cjs/dropdown-menu/helper.js +27 -6
  93. package/cjs/dropdown-menu/index.js +6 -0
  94. package/cjs/dropdown-menu/style/css/index.js +2 -0
  95. package/cjs/dropdown-menu/style/index.js +2 -0
  96. package/cjs/ellipsis/components/js-ellipsis.js +72 -33
  97. package/cjs/ellipsis/components/native-ellipsis.js +15 -9
  98. package/cjs/ellipsis/index.js +32 -19
  99. package/cjs/ellipsis/style/css/index.js +1 -0
  100. package/cjs/ellipsis/style/index.js +1 -0
  101. package/cjs/ellipsis/utils/dom.js +8 -0
  102. package/cjs/ellipsis/utils/is.js +5 -1
  103. package/cjs/form/form-item-context.js +5 -0
  104. package/cjs/form/form-item.js +126 -42
  105. package/cjs/form/index.js +35 -17
  106. package/cjs/form/style/css/index.js +1 -0
  107. package/cjs/form/style/index.js +1 -0
  108. package/cjs/form/type.js +3 -0
  109. package/cjs/form/useForm.js +76 -18
  110. package/cjs/form/utils.js +10 -3
  111. package/cjs/grid/index.js +41 -21
  112. package/cjs/grid/style/css/index.js +1 -0
  113. package/cjs/grid/style/index.js +1 -0
  114. package/cjs/icon/IconAdd/index.js +12 -5
  115. package/cjs/icon/IconArrowBack/index.js +12 -5
  116. package/cjs/icon/IconArrowDown/index.js +12 -5
  117. package/cjs/icon/IconArrowIn/index.js +12 -5
  118. package/cjs/icon/IconArrowUp/index.js +12 -5
  119. package/cjs/icon/IconCheck/index.js +12 -5
  120. package/cjs/icon/IconCheckBold/index.js +12 -5
  121. package/cjs/icon/IconCircleChecked/index.js +12 -5
  122. package/cjs/icon/IconCircleDisabled/index.js +12 -5
  123. package/cjs/icon/IconCircleUnchecked/index.js +12 -5
  124. package/cjs/icon/IconClear/index.js +12 -5
  125. package/cjs/icon/IconClose/index.js +12 -5
  126. package/cjs/icon/IconCloseBold/index.js +12 -5
  127. package/cjs/icon/IconDelete/index.js +12 -5
  128. package/cjs/icon/IconEdit/index.js +12 -5
  129. package/cjs/icon/IconErrorCircle/index.js +12 -5
  130. package/cjs/icon/IconEyeInvisible/index.js +12 -5
  131. package/cjs/icon/IconEyeVisible/index.js +12 -5
  132. package/cjs/icon/IconEyelashInvisible/index.js +12 -5
  133. package/cjs/icon/IconGift/index.js +12 -5
  134. package/cjs/icon/IconHeart/index.js +13 -6
  135. package/cjs/icon/IconHome/index.js +12 -5
  136. package/cjs/icon/IconKeyboard/index.d.ts +7 -0
  137. package/cjs/icon/IconKeyboard/index.js +48 -0
  138. package/cjs/icon/IconKeyboardDelete/index.d.ts +7 -0
  139. package/cjs/icon/IconKeyboardDelete/index.js +44 -0
  140. package/cjs/icon/IconLikeCircle/index.js +12 -5
  141. package/cjs/icon/IconMinus/index.js +13 -6
  142. package/cjs/icon/IconMore/index.js +13 -6
  143. package/cjs/icon/IconNotice/index.js +13 -6
  144. package/cjs/icon/IconNoticeOff/index.js +13 -6
  145. package/cjs/icon/IconPicture/index.js +12 -5
  146. package/cjs/icon/IconPlay/index.js +13 -6
  147. package/cjs/icon/IconQuestionCircle/index.js +12 -5
  148. package/cjs/icon/IconRefresh/index.js +12 -5
  149. package/cjs/icon/IconSad/index.js +12 -5
  150. package/cjs/icon/IconScan/index.js +12 -5
  151. package/cjs/icon/IconSearch/index.js +12 -5
  152. package/cjs/icon/IconSetting/index.js +14 -7
  153. package/cjs/icon/IconShop/index.js +12 -5
  154. package/cjs/icon/IconShopping/index.js +12 -5
  155. package/cjs/icon/IconSmileFill/index.js +12 -5
  156. package/cjs/icon/IconSound/index.js +13 -6
  157. package/cjs/icon/IconSquareChecked/index.js +12 -5
  158. package/cjs/icon/IconSquareDisabled/index.js +12 -5
  159. package/cjs/icon/IconSquareUnchecked/index.js +12 -5
  160. package/cjs/icon/IconStar/index.js +13 -6
  161. package/cjs/icon/IconStarFill/index.js +13 -6
  162. package/cjs/icon/IconStarHalf/index.js +12 -5
  163. package/cjs/icon/IconSubway/index.js +12 -5
  164. package/cjs/icon/IconSuccessCircle/index.js +12 -5
  165. package/cjs/icon/IconTriDown/index.js +13 -6
  166. package/cjs/icon/IconTriUp/index.js +13 -6
  167. package/cjs/icon/IconUpload/index.js +13 -6
  168. package/cjs/icon/IconUser/index.js +12 -5
  169. package/cjs/icon/IconUserFill/index.js +12 -5
  170. package/cjs/icon/IconWarnCircle/index.js +13 -6
  171. package/cjs/icon/IconWarnCircleFill/index.js +13 -6
  172. package/cjs/icon/index.d.ts +2 -0
  173. package/cjs/icon/index.js +123 -2
  174. package/cjs/image/index.js +92 -56
  175. package/cjs/image/style/css/index.css +1 -0
  176. package/cjs/image/style/css/index.js +2 -0
  177. package/cjs/image/style/index.js +2 -0
  178. package/cjs/image/style/index.less +1 -0
  179. package/cjs/image-picker/add-icon.js +3 -0
  180. package/cjs/image-picker/index.js +96 -52
  181. package/cjs/image-picker/style/css/index.d.ts +1 -0
  182. package/cjs/image-picker/style/css/index.js +4 -0
  183. package/cjs/image-picker/style/index.d.ts +1 -0
  184. package/cjs/image-picker/style/index.js +4 -0
  185. package/cjs/image-preview/index.d.ts +2 -2
  186. package/cjs/image-preview/index.js +239 -119
  187. package/cjs/image-preview/methods.js +18 -5
  188. package/cjs/image-preview/style/css/index.js +4 -0
  189. package/cjs/image-preview/style/index.js +4 -0
  190. package/cjs/index-bar/context.d.ts +3 -0
  191. package/cjs/index-bar/context.js +15 -0
  192. package/cjs/index-bar/demo/style/css/mobile.css +23 -0
  193. package/cjs/index-bar/demo/style/mobile.less +26 -0
  194. package/cjs/index-bar/group.d.ts +3 -0
  195. package/cjs/index-bar/group.js +101 -0
  196. package/cjs/index-bar/index.d.ts +15 -0
  197. package/cjs/index-bar/index.js +276 -0
  198. package/cjs/index-bar/side-bar.d.ts +3 -0
  199. package/cjs/index-bar/side-bar.js +102 -0
  200. package/cjs/index-bar/style/css/index.css +164 -0
  201. package/cjs/index-bar/style/css/index.d.ts +3 -0
  202. package/cjs/index-bar/style/css/index.js +7 -0
  203. package/cjs/index-bar/style/index.d.ts +3 -0
  204. package/cjs/index-bar/style/index.js +7 -0
  205. package/cjs/index-bar/style/index.less +122 -0
  206. package/cjs/index-bar/type.d.ts +195 -0
  207. package/cjs/index-bar/type.js +3 -0
  208. package/cjs/index-bar/utils.d.ts +6 -0
  209. package/cjs/index-bar/utils.js +68 -0
  210. package/cjs/index.d.ts +12 -9
  211. package/cjs/index.js +140 -19
  212. package/cjs/input/demo/style/css/mobile.css +5 -1
  213. package/cjs/input/demo/style/mobile.less +2 -2
  214. package/cjs/input/hooks.js +104 -42
  215. package/cjs/input/index.js +40 -26
  216. package/cjs/input/props.d.ts +6 -0
  217. package/cjs/input/style/css/index.css +9 -0
  218. package/cjs/input/style/css/index.js +1 -0
  219. package/cjs/input/style/index.js +1 -0
  220. package/cjs/input/style/index.less +2 -2
  221. package/cjs/keyboard/demo/style/css/mobile.css +4 -0
  222. package/cjs/keyboard/demo/style/mobile.less +8 -0
  223. package/cjs/keyboard/index.d.ts +13 -0
  224. package/cjs/keyboard/index.js +270 -0
  225. package/cjs/keyboard/style/css/index.css +93 -0
  226. package/cjs/keyboard/style/css/index.d.ts +3 -0
  227. package/cjs/keyboard/style/css/index.js +7 -0
  228. package/cjs/keyboard/style/index.d.ts +3 -0
  229. package/cjs/keyboard/style/index.js +7 -0
  230. package/cjs/keyboard/style/index.less +80 -0
  231. package/cjs/keyboard/type.d.ts +102 -0
  232. package/cjs/keyboard/type.js +3 -0
  233. package/cjs/load-more/index.js +56 -29
  234. package/cjs/load-more/style/css/index.js +1 -0
  235. package/cjs/load-more/style/index.js +1 -0
  236. package/cjs/loading/index.js +48 -19
  237. package/cjs/loading/style/css/index.js +1 -0
  238. package/cjs/loading/style/index.js +1 -0
  239. package/cjs/masking/index.d.ts +2 -2
  240. package/cjs/masking/index.js +79 -46
  241. package/cjs/masking/methods.js +19 -4
  242. package/cjs/masking/style/css/index.js +2 -0
  243. package/cjs/masking/style/index.js +2 -0
  244. package/cjs/nav-bar/back-icon.js +5 -1
  245. package/cjs/nav-bar/index.js +61 -37
  246. package/cjs/nav-bar/style/css/index.js +1 -0
  247. package/cjs/nav-bar/style/index.js +1 -0
  248. package/cjs/notice-bar/index.js +61 -33
  249. package/cjs/notice-bar/style/css/index.css +33 -0
  250. package/cjs/notice-bar/style/css/index.js +1 -0
  251. package/cjs/notice-bar/style/index.js +1 -0
  252. package/cjs/notice-bar/style/index.less +16 -3
  253. package/cjs/notify/index.d.ts +8 -8
  254. package/cjs/notify/index.js +49 -20
  255. package/cjs/notify/methods.js +17 -2
  256. package/cjs/notify/style/css/index.js +1 -0
  257. package/cjs/notify/style/index.js +1 -0
  258. package/cjs/pagination/arrow.js +3 -0
  259. package/cjs/pagination/index.js +58 -27
  260. package/cjs/pagination/style/css/index.js +1 -0
  261. package/cjs/pagination/style/index.js +1 -0
  262. package/cjs/picker/index.js +75 -70
  263. package/cjs/picker/style/css/index.js +3 -0
  264. package/cjs/picker/style/index.js +3 -0
  265. package/cjs/picker/type.d.ts +1 -1
  266. package/cjs/picker-view/components/cascader.d.ts +2 -3
  267. package/cjs/picker-view/components/cascader.js +38 -19
  268. package/cjs/picker-view/components/multi-picker.d.ts +2 -3
  269. package/cjs/picker-view/components/multi-picker.js +45 -35
  270. package/cjs/picker-view/components/picker-cell.d.ts +1 -1
  271. package/cjs/picker-view/components/picker-cell.js +102 -52
  272. package/cjs/picker-view/index.d.ts +1 -1
  273. package/cjs/picker-view/index.js +78 -43
  274. package/cjs/picker-view/style/css/index.js +1 -0
  275. package/cjs/picker-view/style/index.js +1 -0
  276. package/cjs/picker-view/type.d.ts +2 -2
  277. package/cjs/popover/hooks/index.js +4 -0
  278. package/cjs/popover/hooks/useEvent.js +49 -25
  279. package/cjs/popover/hooks/usePosition.js +151 -94
  280. package/cjs/popover/index.js +8 -1
  281. package/cjs/popover/menu.js +51 -32
  282. package/cjs/popover/popover-inner.js +47 -30
  283. package/cjs/popover/popover.js +101 -69
  284. package/cjs/popover/style/css/index.js +2 -0
  285. package/cjs/popover/style/index.js +2 -0
  286. package/cjs/popup/index.d.ts +2 -2
  287. package/cjs/popup/index.js +39 -22
  288. package/cjs/popup/methods.js +2 -0
  289. package/cjs/popup/style/css/index.js +2 -0
  290. package/cjs/popup/style/index.js +2 -0
  291. package/cjs/popup-swiper/index.d.ts +2 -2
  292. package/cjs/popup-swiper/index.js +80 -38
  293. package/cjs/popup-swiper/methods.js +2 -0
  294. package/cjs/popup-swiper/style/css/index.js +2 -0
  295. package/cjs/popup-swiper/style/index.js +2 -0
  296. package/cjs/portal/index.js +8 -3
  297. package/cjs/portal/style/css/index.js +1 -0
  298. package/cjs/portal/style/index.js +1 -0
  299. package/cjs/progress/index.js +44 -27
  300. package/cjs/progress/style/css/index.js +1 -0
  301. package/cjs/progress/style/index.js +1 -0
  302. package/cjs/pull-refresh/android-pull-refresh.js +100 -58
  303. package/cjs/pull-refresh/hooks.js +32 -11
  304. package/cjs/pull-refresh/index.js +14 -3
  305. package/cjs/pull-refresh/ios-pull-refresh.js +80 -53
  306. package/cjs/pull-refresh/model.js +1 -0
  307. package/cjs/pull-refresh/style/css/index.js +2 -0
  308. package/cjs/pull-refresh/style/index.js +2 -0
  309. package/cjs/radio/group.js +34 -20
  310. package/cjs/radio/index.js +8 -1
  311. package/cjs/radio/radio.js +10 -0
  312. package/cjs/radio/style/css/index.js +1 -0
  313. package/cjs/radio/style/index.js +1 -0
  314. package/cjs/rate/index.js +50 -24
  315. package/cjs/rate/style/css/index.js +1 -0
  316. package/cjs/rate/style/index.js +1 -0
  317. package/cjs/search-bar/association.js +32 -14
  318. package/cjs/search-bar/cancel-button.js +16 -8
  319. package/cjs/search-bar/highlight.js +25 -14
  320. package/cjs/search-bar/index.js +97 -77
  321. package/cjs/search-bar/style/css/index.js +1 -0
  322. package/cjs/search-bar/style/index.js +1 -0
  323. package/cjs/show-monitor/index.js +93 -34
  324. package/cjs/show-monitor/style/css/index.js +1 -0
  325. package/cjs/show-monitor/style/index.js +1 -0
  326. package/cjs/slider/hooks/index.js +13 -0
  327. package/cjs/slider/hooks/useSliderEvents.js +73 -44
  328. package/cjs/slider/hooks/useSliderIcon.js +20 -6
  329. package/cjs/slider/hooks/useSliderInit.js +52 -32
  330. package/cjs/slider/hooks/useSliderStyle.js +24 -12
  331. package/cjs/slider/index.js +72 -46
  332. package/cjs/slider/marks.js +26 -12
  333. package/cjs/slider/popover.js +13 -4
  334. package/cjs/slider/style/css/index.js +2 -0
  335. package/cjs/slider/style/index.js +2 -0
  336. package/cjs/slider/thumb.js +23 -8
  337. package/cjs/stepper/hooks/useButtonClick.js +28 -19
  338. package/cjs/stepper/hooks/useInputEvent.js +18 -9
  339. package/cjs/stepper/hooks/useValue.js +14 -9
  340. package/cjs/stepper/index.js +96 -82
  341. package/cjs/stepper/style/css/index.js +1 -0
  342. package/cjs/stepper/style/index.js +1 -0
  343. package/cjs/steps/index.js +40 -22
  344. package/cjs/steps/step.js +27 -10
  345. package/cjs/steps/style/css/index.js +1 -0
  346. package/cjs/steps/style/index.js +1 -0
  347. package/cjs/sticky/index.js +67 -38
  348. package/cjs/sticky/style/css/index.js +1 -0
  349. package/cjs/sticky/style/index.js +1 -0
  350. package/cjs/style.d.ts +11 -8
  351. package/cjs/style.js +68 -8
  352. package/cjs/swipe-action/index.js +92 -40
  353. package/cjs/swipe-action/item.js +17 -9
  354. package/cjs/swipe-action/style/css/index.js +1 -0
  355. package/cjs/swipe-action/style/index.js +1 -0
  356. package/cjs/swipe-load/index.js +83 -55
  357. package/cjs/swipe-load/style/css/index.js +1 -0
  358. package/cjs/swipe-load/style/index.js +1 -0
  359. package/cjs/switch/index.js +47 -27
  360. package/cjs/switch/style/css/index.js +1 -0
  361. package/cjs/switch/style/index.js +1 -0
  362. package/cjs/tab-bar/index.js +7 -0
  363. package/cjs/tab-bar/item.js +24 -6
  364. package/cjs/tab-bar/style/css/index.js +1 -0
  365. package/cjs/tab-bar/style/index.js +1 -0
  366. package/cjs/tab-bar/tab-bar.js +31 -15
  367. package/cjs/tabs/index.js +195 -129
  368. package/cjs/tabs/style/css/index.js +1 -0
  369. package/cjs/tabs/style/index.js +1 -0
  370. package/cjs/tabs/tab-cell-underline.js +111 -38
  371. package/cjs/tabs/tab-cell.js +124 -70
  372. package/cjs/tabs/tab-pane.js +94 -49
  373. package/cjs/tabs/type.d.ts +18 -2
  374. package/cjs/tag/index.js +8 -1
  375. package/cjs/tag/list.js +26 -11
  376. package/cjs/tag/style/css/index.js +1 -0
  377. package/cjs/tag/style/index.js +1 -0
  378. package/cjs/tag/tag.js +32 -20
  379. package/cjs/textarea/index.js +56 -35
  380. package/cjs/textarea/style/css/index.js +2 -0
  381. package/cjs/textarea/style/index.js +2 -0
  382. package/cjs/toast/index.d.ts +12 -12
  383. package/cjs/toast/index.js +61 -26
  384. package/cjs/toast/methods.js +16 -2
  385. package/cjs/toast/style/css/index.js +3 -0
  386. package/cjs/toast/style/index.js +3 -0
  387. package/cjs/transition/index.js +18 -10
  388. package/cjs/transition/style/css/index.js +1 -0
  389. package/cjs/transition/style/index.js +1 -0
  390. package/dist/index.js +19803 -16103
  391. package/dist/index.min.js +4 -4
  392. package/dist/style.css +4028 -3678
  393. package/dist/style.min.css +1 -1
  394. package/esm/_helpers/hooks.js +103 -42
  395. package/esm/_helpers/index.js +3 -2
  396. package/esm/_helpers/react-dom.js +10 -0
  397. package/esm/_helpers/render.js +7 -0
  398. package/esm/action-sheet/index.d.ts +2 -2
  399. package/esm/action-sheet/index.js +16 -10
  400. package/esm/avatar/group.js +16 -12
  401. package/esm/avatar/index.js +62 -51
  402. package/esm/badge/index.js +22 -18
  403. package/esm/button/hooks.js +18 -15
  404. package/esm/button/index.js +57 -46
  405. package/esm/carousel/index.d.ts +6 -0
  406. package/esm/carousel/index.js +336 -186
  407. package/esm/carousel/style/css/index.css +50 -15
  408. package/esm/carousel/style/index.less +19 -14
  409. package/esm/cell/cell.js +14 -14
  410. package/esm/cell/demo/style/css/mobile.css +8 -0
  411. package/esm/cell/demo/style/mobile.less +2 -2
  412. package/esm/cell/group.js +11 -9
  413. package/esm/cell/index.js +1 -1
  414. package/esm/cell/style/css/index.css +16 -0
  415. package/esm/cell/style/index.less +6 -4
  416. package/esm/checkbox/checkbox.js +42 -31
  417. package/esm/checkbox/group.js +28 -24
  418. package/esm/checkbox/hooks/useMergeProps.js +9 -7
  419. package/esm/checkbox/index.js +2 -2
  420. package/esm/checkbox/type.js +1 -0
  421. package/esm/circle-progress/index.js +49 -37
  422. package/esm/collapse/collapse.js +46 -27
  423. package/esm/collapse/group.js +34 -20
  424. package/esm/collapse/index.js +1 -1
  425. package/esm/collapse/utils.js +1 -0
  426. package/esm/context-provider/index.d.ts +6 -0
  427. package/esm/context-provider/index.js +20 -11
  428. package/esm/count-down/hooks.js +37 -24
  429. package/esm/count-down/index.js +29 -30
  430. package/esm/count-down/singleton.js +5 -2
  431. package/esm/count-down/util.js +42 -33
  432. package/esm/date-picker/helper.js +9 -7
  433. package/esm/date-picker/index.js +93 -42
  434. package/esm/dialog/index.d.ts +2 -2
  435. package/esm/dialog/index.js +39 -28
  436. package/esm/dialog/methods.js +11 -9
  437. package/esm/divider/demo/style/css/mobile.css +7 -0
  438. package/esm/divider/demo/style/mobile.less +12 -0
  439. package/esm/divider/index.d.ts +49 -0
  440. package/esm/divider/index.js +49 -0
  441. package/esm/divider/style/css/index.css +69 -0
  442. package/esm/divider/style/css/index.d.ts +2 -0
  443. package/esm/divider/style/css/index.js +2 -0
  444. package/esm/divider/style/index.d.ts +2 -0
  445. package/esm/divider/style/index.js +2 -0
  446. package/esm/divider/style/index.less +66 -0
  447. package/esm/dropdown/dropdown.js +102 -74
  448. package/esm/dropdown/index.js +1 -1
  449. package/esm/dropdown/options.js +20 -12
  450. package/esm/dropdown-menu/dropdown-menu.js +74 -49
  451. package/esm/dropdown-menu/helper.js +16 -6
  452. package/esm/dropdown-menu/index.js +1 -1
  453. package/esm/ellipsis/components/js-ellipsis.js +63 -33
  454. package/esm/ellipsis/components/native-ellipsis.js +11 -9
  455. package/esm/ellipsis/index.js +21 -20
  456. package/esm/ellipsis/utils/dom.js +7 -0
  457. package/esm/ellipsis/utils/is.js +1 -1
  458. package/esm/form/form-item.js +112 -42
  459. package/esm/form/index.js +20 -17
  460. package/esm/form/type.js +3 -0
  461. package/esm/form/useForm.js +71 -17
  462. package/esm/form/utils.js +6 -3
  463. package/esm/grid/index.js +34 -21
  464. package/esm/icon/IconAdd/index.js +6 -5
  465. package/esm/icon/IconArrowBack/index.js +6 -5
  466. package/esm/icon/IconArrowDown/index.js +6 -5
  467. package/esm/icon/IconArrowIn/index.js +6 -5
  468. package/esm/icon/IconArrowUp/index.js +6 -5
  469. package/esm/icon/IconCheck/index.js +6 -5
  470. package/esm/icon/IconCheckBold/index.js +6 -5
  471. package/esm/icon/IconCircleChecked/index.js +6 -5
  472. package/esm/icon/IconCircleDisabled/index.js +6 -5
  473. package/esm/icon/IconCircleUnchecked/index.js +6 -5
  474. package/esm/icon/IconClear/index.js +6 -5
  475. package/esm/icon/IconClose/index.js +6 -5
  476. package/esm/icon/IconCloseBold/index.js +6 -5
  477. package/esm/icon/IconDelete/index.js +6 -5
  478. package/esm/icon/IconEdit/index.js +6 -5
  479. package/esm/icon/IconErrorCircle/index.js +6 -5
  480. package/esm/icon/IconEyeInvisible/index.js +6 -5
  481. package/esm/icon/IconEyeVisible/index.js +6 -5
  482. package/esm/icon/IconEyelashInvisible/index.js +6 -5
  483. package/esm/icon/IconGift/index.js +6 -5
  484. package/esm/icon/IconHeart/index.js +7 -6
  485. package/esm/icon/IconHome/index.js +6 -5
  486. package/esm/icon/IconKeyboard/index.d.ts +7 -0
  487. package/esm/icon/IconKeyboard/index.js +37 -0
  488. package/esm/icon/IconKeyboardDelete/index.d.ts +7 -0
  489. package/esm/icon/IconKeyboardDelete/index.js +33 -0
  490. package/esm/icon/IconLikeCircle/index.js +6 -5
  491. package/esm/icon/IconMinus/index.js +7 -6
  492. package/esm/icon/IconMore/index.js +7 -6
  493. package/esm/icon/IconNotice/index.js +7 -6
  494. package/esm/icon/IconNoticeOff/index.js +7 -6
  495. package/esm/icon/IconPicture/index.js +6 -5
  496. package/esm/icon/IconPlay/index.js +7 -6
  497. package/esm/icon/IconQuestionCircle/index.js +6 -5
  498. package/esm/icon/IconRefresh/index.js +6 -5
  499. package/esm/icon/IconSad/index.js +6 -5
  500. package/esm/icon/IconScan/index.js +6 -5
  501. package/esm/icon/IconSearch/index.js +6 -5
  502. package/esm/icon/IconSetting/index.js +8 -7
  503. package/esm/icon/IconShop/index.js +6 -5
  504. package/esm/icon/IconShopping/index.js +6 -5
  505. package/esm/icon/IconSmileFill/index.js +6 -5
  506. package/esm/icon/IconSound/index.js +7 -6
  507. package/esm/icon/IconSquareChecked/index.js +6 -5
  508. package/esm/icon/IconSquareDisabled/index.js +6 -5
  509. package/esm/icon/IconSquareUnchecked/index.js +6 -5
  510. package/esm/icon/IconStar/index.js +7 -6
  511. package/esm/icon/IconStarFill/index.js +7 -6
  512. package/esm/icon/IconStarHalf/index.js +6 -5
  513. package/esm/icon/IconSubway/index.js +6 -5
  514. package/esm/icon/IconSuccessCircle/index.js +6 -5
  515. package/esm/icon/IconTriDown/index.js +7 -6
  516. package/esm/icon/IconTriUp/index.js +7 -6
  517. package/esm/icon/IconUpload/index.js +7 -6
  518. package/esm/icon/IconUser/index.js +6 -5
  519. package/esm/icon/IconUserFill/index.js +6 -5
  520. package/esm/icon/IconWarnCircle/index.js +7 -6
  521. package/esm/icon/IconWarnCircleFill/index.js +7 -6
  522. package/esm/icon/index.d.ts +2 -0
  523. package/esm/icon/index.js +2 -0
  524. package/esm/image/index.js +84 -57
  525. package/esm/image/style/css/index.css +1 -0
  526. package/esm/image/style/index.less +1 -0
  527. package/esm/image-picker/index.js +80 -52
  528. package/esm/image-picker/style/css/index.d.ts +1 -0
  529. package/esm/image-picker/style/css/index.js +1 -0
  530. package/esm/image-picker/style/index.d.ts +1 -0
  531. package/esm/image-picker/style/index.js +1 -0
  532. package/esm/image-preview/index.d.ts +2 -2
  533. package/esm/image-preview/index.js +217 -119
  534. package/esm/image-preview/methods.js +14 -4
  535. package/esm/index-bar/context.d.ts +3 -0
  536. package/esm/index-bar/context.js +8 -0
  537. package/esm/index-bar/demo/style/css/mobile.css +23 -0
  538. package/esm/index-bar/demo/style/mobile.less +26 -0
  539. package/esm/index-bar/group.d.ts +3 -0
  540. package/esm/index-bar/group.js +83 -0
  541. package/esm/index-bar/index.d.ts +15 -0
  542. package/esm/index-bar/index.js +254 -0
  543. package/esm/index-bar/side-bar.d.ts +3 -0
  544. package/esm/index-bar/side-bar.js +90 -0
  545. package/esm/index-bar/style/css/index.css +164 -0
  546. package/esm/index-bar/style/css/index.d.ts +3 -0
  547. package/esm/index-bar/style/css/index.js +3 -0
  548. package/esm/index-bar/style/index.d.ts +3 -0
  549. package/esm/index-bar/style/index.js +3 -0
  550. package/esm/index-bar/style/index.less +122 -0
  551. package/esm/index-bar/type.d.ts +195 -0
  552. package/esm/index-bar/type.js +1 -0
  553. package/esm/index-bar/utils.d.ts +6 -0
  554. package/esm/index-bar/utils.js +53 -0
  555. package/esm/index.d.ts +12 -9
  556. package/esm/index.js +12 -9
  557. package/esm/input/demo/style/css/mobile.css +5 -1
  558. package/esm/input/demo/style/mobile.less +2 -2
  559. package/esm/input/hooks.js +96 -42
  560. package/esm/input/index.js +30 -26
  561. package/esm/input/props.d.ts +6 -0
  562. package/esm/input/style/css/index.css +9 -0
  563. package/esm/input/style/index.less +2 -2
  564. package/esm/keyboard/demo/style/css/mobile.css +4 -0
  565. package/esm/keyboard/demo/style/mobile.less +8 -0
  566. package/esm/keyboard/index.d.ts +13 -0
  567. package/esm/keyboard/index.js +243 -0
  568. package/esm/keyboard/style/css/index.css +93 -0
  569. package/esm/keyboard/style/css/index.d.ts +3 -0
  570. package/esm/keyboard/style/css/index.js +3 -0
  571. package/esm/keyboard/style/index.d.ts +3 -0
  572. package/esm/keyboard/style/index.js +3 -0
  573. package/esm/keyboard/style/index.less +80 -0
  574. package/esm/keyboard/type.d.ts +102 -0
  575. package/esm/keyboard/type.js +1 -0
  576. package/esm/load-more/index.js +48 -29
  577. package/esm/loading/index.js +40 -19
  578. package/esm/masking/index.d.ts +2 -2
  579. package/esm/masking/index.js +64 -46
  580. package/esm/masking/methods.js +15 -4
  581. package/esm/nav-bar/back-icon.js +3 -1
  582. package/esm/nav-bar/index.js +52 -37
  583. package/esm/notice-bar/index.js +56 -35
  584. package/esm/notice-bar/style/css/index.css +33 -0
  585. package/esm/notice-bar/style/index.less +16 -3
  586. package/esm/notify/index.d.ts +8 -8
  587. package/esm/notify/index.js +33 -20
  588. package/esm/notify/methods.js +13 -2
  589. package/esm/pagination/index.js +50 -27
  590. package/esm/picker/index.js +59 -70
  591. package/esm/picker/type.d.ts +1 -1
  592. package/esm/picker-view/components/cascader.d.ts +2 -3
  593. package/esm/picker-view/components/cascader.js +30 -19
  594. package/esm/picker-view/components/multi-picker.d.ts +2 -3
  595. package/esm/picker-view/components/multi-picker.js +42 -35
  596. package/esm/picker-view/components/picker-cell.d.ts +1 -1
  597. package/esm/picker-view/components/picker-cell.js +94 -52
  598. package/esm/picker-view/index.d.ts +1 -1
  599. package/esm/picker-view/index.js +62 -44
  600. package/esm/picker-view/type.d.ts +2 -2
  601. package/esm/popover/hooks/useEvent.js +41 -26
  602. package/esm/popover/hooks/usePosition.js +144 -94
  603. package/esm/popover/index.js +2 -2
  604. package/esm/popover/menu.js +41 -32
  605. package/esm/popover/popover-inner.js +38 -30
  606. package/esm/popover/popover.js +90 -69
  607. package/esm/popup/index.d.ts +2 -2
  608. package/esm/popup/index.js +25 -22
  609. package/esm/popup-swiper/index.d.ts +2 -2
  610. package/esm/popup-swiper/index.js +64 -38
  611. package/esm/portal/index.js +5 -3
  612. package/esm/progress/index.js +36 -27
  613. package/esm/pull-refresh/android-pull-refresh.js +90 -58
  614. package/esm/pull-refresh/hooks.js +23 -11
  615. package/esm/pull-refresh/index.js +5 -3
  616. package/esm/pull-refresh/ios-pull-refresh.js +68 -53
  617. package/esm/pull-refresh/model.js +1 -0
  618. package/esm/radio/group.js +24 -20
  619. package/esm/radio/index.js +2 -2
  620. package/esm/rate/index.js +39 -24
  621. package/esm/search-bar/association.js +27 -14
  622. package/esm/search-bar/cancel-button.js +11 -8
  623. package/esm/search-bar/highlight.js +20 -14
  624. package/esm/search-bar/index.js +86 -77
  625. package/esm/show-monitor/index.js +85 -34
  626. package/esm/slider/hooks/useSliderEvents.js +69 -44
  627. package/esm/slider/hooks/useSliderIcon.js +13 -6
  628. package/esm/slider/hooks/useSliderInit.js +46 -32
  629. package/esm/slider/hooks/useSliderStyle.js +20 -12
  630. package/esm/slider/index.js +62 -46
  631. package/esm/slider/marks.js +18 -12
  632. package/esm/slider/popover.js +6 -4
  633. package/esm/slider/thumb.js +15 -8
  634. package/esm/stepper/hooks/useButtonClick.js +27 -19
  635. package/esm/stepper/hooks/useInputEvent.js +16 -9
  636. package/esm/stepper/hooks/useValue.js +12 -9
  637. package/esm/stepper/index.js +82 -82
  638. package/esm/steps/index.js +27 -22
  639. package/esm/steps/step.js +19 -10
  640. package/esm/sticky/index.js +58 -38
  641. package/esm/style.d.ts +11 -8
  642. package/esm/style.js +11 -8
  643. package/esm/swipe-action/index.js +80 -40
  644. package/esm/swipe-action/item.js +12 -9
  645. package/esm/swipe-load/index.js +75 -56
  646. package/esm/switch/index.js +39 -27
  647. package/esm/tab-bar/index.js +1 -0
  648. package/esm/tab-bar/item.js +13 -6
  649. package/esm/tab-bar/tab-bar.js +21 -15
  650. package/esm/tabs/index.js +183 -130
  651. package/esm/tabs/tab-cell-underline.js +103 -38
  652. package/esm/tabs/tab-cell.js +114 -70
  653. package/esm/tabs/tab-pane.js +85 -49
  654. package/esm/tabs/type.d.ts +18 -2
  655. package/esm/tag/index.js +2 -2
  656. package/esm/tag/list.js +16 -11
  657. package/esm/tag/tag.js +22 -20
  658. package/esm/textarea/index.js +46 -35
  659. package/esm/toast/index.d.ts +12 -12
  660. package/esm/toast/index.js +42 -26
  661. package/esm/toast/methods.js +12 -2
  662. package/esm/transition/index.js +12 -10
  663. package/package.json +3 -3
  664. package/tokens/app/arcodesign/default/css-variables.less +51 -0
  665. package/tokens/app/arcodesign/default/index.d.ts +51 -0
  666. package/tokens/app/arcodesign/default/index.js +54 -1
  667. package/tokens/app/arcodesign/default/index.json +610 -0
  668. package/tokens/app/arcodesign/default/index.less +51 -0
  669. package/tokens/mixin/index.less +19 -1
  670. package/umd/_helpers/hooks.js +121 -43
  671. package/umd/_helpers/index.js +6 -2
  672. package/umd/_helpers/react-dom.js +11 -0
  673. package/umd/_helpers/render.js +9 -0
  674. package/umd/action-sheet/index.d.ts +2 -2
  675. package/umd/action-sheet/index.js +22 -10
  676. package/umd/action-sheet/methods.js +1 -0
  677. package/umd/avatar/group.js +20 -12
  678. package/umd/avatar/index.js +68 -51
  679. package/umd/badge/index.js +25 -18
  680. package/umd/button/hooks.js +19 -15
  681. package/umd/button/index.js +60 -46
  682. package/umd/carousel/index.d.ts +6 -0
  683. package/umd/carousel/index.js +337 -184
  684. package/umd/carousel/style/css/index.css +50 -15
  685. package/umd/carousel/style/index.less +19 -14
  686. package/umd/cell/arrow.js +2 -0
  687. package/umd/cell/cell.js +18 -14
  688. package/umd/cell/demo/style/css/mobile.css +8 -0
  689. package/umd/cell/demo/style/mobile.less +2 -2
  690. package/umd/cell/group.js +17 -9
  691. package/umd/cell/index.js +2 -1
  692. package/umd/cell/style/css/index.css +16 -0
  693. package/umd/cell/style/index.less +6 -4
  694. package/umd/checkbox/checkbox.js +45 -31
  695. package/umd/checkbox/group.js +34 -24
  696. package/umd/checkbox/hooks/useMergeProps.js +12 -7
  697. package/umd/checkbox/index.js +3 -1
  698. package/umd/checkbox/type.js +2 -0
  699. package/umd/circle-progress/index.js +52 -37
  700. package/umd/collapse/collapse.js +50 -27
  701. package/umd/collapse/group.js +38 -20
  702. package/umd/collapse/index.js +3 -0
  703. package/umd/collapse/utils.js +5 -0
  704. package/umd/context-provider/index.d.ts +6 -0
  705. package/umd/context-provider/index.js +25 -11
  706. package/umd/count-down/hooks.js +39 -24
  707. package/umd/count-down/index.js +31 -29
  708. package/umd/count-down/singleton.js +10 -2
  709. package/umd/count-down/util.js +47 -33
  710. package/umd/date-picker/helper.js +13 -7
  711. package/umd/date-picker/index.js +97 -42
  712. package/umd/dialog/index.d.ts +2 -2
  713. package/umd/dialog/index.js +44 -28
  714. package/umd/dialog/methods.js +18 -9
  715. package/umd/divider/demo/style/css/mobile.css +7 -0
  716. package/umd/divider/demo/style/mobile.less +12 -0
  717. package/umd/divider/index.d.ts +49 -0
  718. package/umd/divider/index.js +71 -0
  719. package/umd/divider/style/css/index.css +69 -0
  720. package/umd/divider/style/css/index.d.ts +2 -0
  721. package/umd/divider/style/css/index.js +15 -0
  722. package/umd/divider/style/index.d.ts +2 -0
  723. package/umd/divider/style/index.js +15 -0
  724. package/umd/divider/style/index.less +66 -0
  725. package/umd/dropdown/dropdown.js +106 -74
  726. package/umd/dropdown/index.js +3 -1
  727. package/umd/dropdown/options.js +24 -12
  728. package/umd/dropdown-menu/dropdown-menu.js +78 -49
  729. package/umd/dropdown-menu/helper.js +25 -6
  730. package/umd/dropdown-menu/index.js +2 -0
  731. package/umd/ellipsis/components/js-ellipsis.js +69 -33
  732. package/umd/ellipsis/components/native-ellipsis.js +13 -9
  733. package/umd/ellipsis/index.js +24 -19
  734. package/umd/ellipsis/utils/dom.js +8 -0
  735. package/umd/ellipsis/utils/is.js +5 -1
  736. package/umd/form/form-item-context.js +3 -0
  737. package/umd/form/form-item.js +116 -42
  738. package/umd/form/index.js +25 -17
  739. package/umd/form/type.js +3 -0
  740. package/umd/form/useForm.js +72 -18
  741. package/umd/form/utils.js +10 -3
  742. package/umd/grid/index.js +37 -21
  743. package/umd/icon/IconAdd/index.js +7 -5
  744. package/umd/icon/IconArrowBack/index.js +7 -5
  745. package/umd/icon/IconArrowDown/index.js +7 -5
  746. package/umd/icon/IconArrowIn/index.js +7 -5
  747. package/umd/icon/IconArrowUp/index.js +7 -5
  748. package/umd/icon/IconCheck/index.js +7 -5
  749. package/umd/icon/IconCheckBold/index.js +7 -5
  750. package/umd/icon/IconCircleChecked/index.js +7 -5
  751. package/umd/icon/IconCircleDisabled/index.js +7 -5
  752. package/umd/icon/IconCircleUnchecked/index.js +7 -5
  753. package/umd/icon/IconClear/index.js +7 -5
  754. package/umd/icon/IconClose/index.js +7 -5
  755. package/umd/icon/IconCloseBold/index.js +7 -5
  756. package/umd/icon/IconDelete/index.js +7 -5
  757. package/umd/icon/IconEdit/index.js +7 -5
  758. package/umd/icon/IconErrorCircle/index.js +7 -5
  759. package/umd/icon/IconEyeInvisible/index.js +7 -5
  760. package/umd/icon/IconEyeVisible/index.js +7 -5
  761. package/umd/icon/IconEyelashInvisible/index.js +7 -5
  762. package/umd/icon/IconGift/index.js +7 -5
  763. package/umd/icon/IconHeart/index.js +8 -6
  764. package/umd/icon/IconHome/index.js +7 -5
  765. package/umd/icon/IconKeyboard/index.d.ts +7 -0
  766. package/umd/icon/IconKeyboard/index.js +56 -0
  767. package/umd/icon/IconKeyboardDelete/index.d.ts +7 -0
  768. package/umd/icon/IconKeyboardDelete/index.js +52 -0
  769. package/umd/icon/IconLikeCircle/index.js +7 -5
  770. package/umd/icon/IconMinus/index.js +8 -6
  771. package/umd/icon/IconMore/index.js +8 -6
  772. package/umd/icon/IconNotice/index.js +8 -6
  773. package/umd/icon/IconNoticeOff/index.js +8 -6
  774. package/umd/icon/IconPicture/index.js +7 -5
  775. package/umd/icon/IconPlay/index.js +8 -6
  776. package/umd/icon/IconQuestionCircle/index.js +7 -5
  777. package/umd/icon/IconRefresh/index.js +7 -5
  778. package/umd/icon/IconSad/index.js +7 -5
  779. package/umd/icon/IconScan/index.js +7 -5
  780. package/umd/icon/IconSearch/index.js +7 -5
  781. package/umd/icon/IconSetting/index.js +9 -7
  782. package/umd/icon/IconShop/index.js +7 -5
  783. package/umd/icon/IconShopping/index.js +7 -5
  784. package/umd/icon/IconSmileFill/index.js +7 -5
  785. package/umd/icon/IconSound/index.js +8 -6
  786. package/umd/icon/IconSquareChecked/index.js +7 -5
  787. package/umd/icon/IconSquareDisabled/index.js +7 -5
  788. package/umd/icon/IconSquareUnchecked/index.js +7 -5
  789. package/umd/icon/IconStar/index.js +8 -6
  790. package/umd/icon/IconStarFill/index.js +8 -6
  791. package/umd/icon/IconStarHalf/index.js +7 -5
  792. package/umd/icon/IconSubway/index.js +7 -5
  793. package/umd/icon/IconSuccessCircle/index.js +7 -5
  794. package/umd/icon/IconTriDown/index.js +8 -6
  795. package/umd/icon/IconTriUp/index.js +8 -6
  796. package/umd/icon/IconUpload/index.js +8 -6
  797. package/umd/icon/IconUser/index.js +7 -5
  798. package/umd/icon/IconUserFill/index.js +7 -5
  799. package/umd/icon/IconWarnCircle/index.js +8 -6
  800. package/umd/icon/IconWarnCircleFill/index.js +8 -6
  801. package/umd/icon/index.d.ts +2 -0
  802. package/umd/icon/index.js +13 -6
  803. package/umd/image/index.js +86 -56
  804. package/umd/image/style/css/index.css +1 -0
  805. package/umd/image/style/index.less +1 -0
  806. package/umd/image-picker/add-icon.js +2 -0
  807. package/umd/image-picker/index.js +85 -52
  808. package/umd/image-picker/style/css/index.d.ts +1 -0
  809. package/umd/image-picker/style/css/index.js +4 -4
  810. package/umd/image-picker/style/index.d.ts +1 -0
  811. package/umd/image-picker/style/index.js +4 -4
  812. package/umd/image-preview/index.d.ts +2 -2
  813. package/umd/image-preview/index.js +224 -119
  814. package/umd/image-preview/methods.js +15 -5
  815. package/umd/index-bar/context.d.ts +3 -0
  816. package/umd/index-bar/context.js +26 -0
  817. package/umd/index-bar/demo/style/css/mobile.css +23 -0
  818. package/umd/index-bar/demo/style/mobile.less +26 -0
  819. package/umd/index-bar/group.d.ts +3 -0
  820. package/umd/index-bar/group.js +107 -0
  821. package/umd/index-bar/index.d.ts +15 -0
  822. package/umd/index-bar/index.js +274 -0
  823. package/umd/index-bar/side-bar.d.ts +3 -0
  824. package/umd/index-bar/side-bar.js +113 -0
  825. package/umd/index-bar/style/css/index.css +164 -0
  826. package/umd/index-bar/style/css/index.d.ts +3 -0
  827. package/umd/index-bar/style/css/index.js +15 -0
  828. package/umd/index-bar/style/index.d.ts +3 -0
  829. package/umd/index-bar/style/index.js +15 -0
  830. package/umd/index-bar/style/index.less +122 -0
  831. package/umd/index-bar/type.d.ts +195 -0
  832. package/umd/index-bar/type.js +17 -0
  833. package/umd/index-bar/utils.d.ts +6 -0
  834. package/umd/index-bar/utils.js +78 -0
  835. package/umd/index.d.ts +12 -9
  836. package/umd/index.js +30 -23
  837. package/umd/input/demo/style/css/mobile.css +5 -1
  838. package/umd/input/demo/style/mobile.less +2 -2
  839. package/umd/input/hooks.js +100 -42
  840. package/umd/input/index.js +35 -26
  841. package/umd/input/props.d.ts +6 -0
  842. package/umd/input/style/css/index.css +9 -0
  843. package/umd/input/style/index.less +2 -2
  844. package/umd/keyboard/demo/style/css/mobile.css +4 -0
  845. package/umd/keyboard/demo/style/mobile.less +8 -0
  846. package/umd/keyboard/index.d.ts +13 -0
  847. package/umd/keyboard/index.js +271 -0
  848. package/umd/keyboard/style/css/index.css +93 -0
  849. package/umd/keyboard/style/css/index.d.ts +3 -0
  850. package/umd/keyboard/style/css/index.js +15 -0
  851. package/umd/keyboard/style/index.d.ts +3 -0
  852. package/umd/keyboard/style/index.js +15 -0
  853. package/umd/keyboard/style/index.less +80 -0
  854. package/umd/keyboard/type.d.ts +102 -0
  855. package/umd/keyboard/type.js +17 -0
  856. package/umd/load-more/index.js +51 -29
  857. package/umd/loading/index.js +43 -19
  858. package/umd/masking/index.d.ts +2 -2
  859. package/umd/masking/index.js +71 -46
  860. package/umd/masking/methods.js +16 -4
  861. package/umd/nav-bar/back-icon.js +4 -1
  862. package/umd/nav-bar/index.js +55 -37
  863. package/umd/notice-bar/index.js +57 -33
  864. package/umd/notice-bar/style/css/index.css +33 -0
  865. package/umd/notice-bar/style/index.less +16 -3
  866. package/umd/notify/index.d.ts +8 -8
  867. package/umd/notify/index.js +40 -20
  868. package/umd/notify/methods.js +14 -2
  869. package/umd/pagination/arrow.js +2 -0
  870. package/umd/pagination/index.js +53 -27
  871. package/umd/picker/index.js +64 -70
  872. package/umd/picker/type.d.ts +1 -1
  873. package/umd/picker-view/components/cascader.d.ts +2 -3
  874. package/umd/picker-view/components/cascader.js +34 -19
  875. package/umd/picker-view/components/multi-picker.d.ts +2 -3
  876. package/umd/picker-view/components/multi-picker.js +44 -35
  877. package/umd/picker-view/components/picker-cell.d.ts +1 -1
  878. package/umd/picker-view/components/picker-cell.js +98 -52
  879. package/umd/picker-view/index.d.ts +1 -1
  880. package/umd/picker-view/index.js +65 -43
  881. package/umd/picker-view/type.d.ts +2 -2
  882. package/umd/popover/hooks/useEvent.js +44 -25
  883. package/umd/popover/hooks/usePosition.js +145 -94
  884. package/umd/popover/index.js +3 -1
  885. package/umd/popover/menu.js +45 -32
  886. package/umd/popover/popover-inner.js +42 -30
  887. package/umd/popover/popover.js +94 -69
  888. package/umd/popup/index.d.ts +2 -2
  889. package/umd/popup/index.js +31 -22
  890. package/umd/popup/methods.js +1 -0
  891. package/umd/popup-swiper/index.d.ts +2 -2
  892. package/umd/popup-swiper/index.js +71 -38
  893. package/umd/popup-swiper/methods.js +1 -0
  894. package/umd/portal/index.js +6 -3
  895. package/umd/progress/index.js +39 -27
  896. package/umd/pull-refresh/android-pull-refresh.js +93 -58
  897. package/umd/pull-refresh/hooks.js +29 -11
  898. package/umd/pull-refresh/index.js +7 -3
  899. package/umd/pull-refresh/ios-pull-refresh.js +72 -53
  900. package/umd/pull-refresh/model.js +1 -0
  901. package/umd/radio/group.js +30 -20
  902. package/umd/radio/index.js +3 -1
  903. package/umd/radio/radio.js +5 -0
  904. package/umd/rate/index.js +44 -24
  905. package/umd/search-bar/association.js +29 -14
  906. package/umd/search-bar/cancel-button.js +14 -8
  907. package/umd/search-bar/highlight.js +21 -14
  908. package/umd/search-bar/index.js +87 -77
  909. package/umd/show-monitor/index.js +89 -34
  910. package/umd/slider/hooks/index.js +4 -0
  911. package/umd/slider/hooks/useSliderEvents.js +70 -44
  912. package/umd/slider/hooks/useSliderIcon.js +17 -6
  913. package/umd/slider/hooks/useSliderInit.js +50 -32
  914. package/umd/slider/hooks/useSliderStyle.js +22 -12
  915. package/umd/slider/index.js +65 -46
  916. package/umd/slider/marks.js +21 -12
  917. package/umd/slider/popover.js +10 -4
  918. package/umd/slider/thumb.js +18 -8
  919. package/umd/stepper/hooks/useButtonClick.js +27 -19
  920. package/umd/stepper/hooks/useInputEvent.js +17 -9
  921. package/umd/stepper/hooks/useValue.js +13 -9
  922. package/umd/stepper/index.js +87 -82
  923. package/umd/steps/index.js +32 -22
  924. package/umd/steps/step.js +22 -10
  925. package/umd/sticky/index.js +61 -38
  926. package/umd/style.d.ts +11 -8
  927. package/umd/style.js +4 -4
  928. package/umd/swipe-action/index.js +84 -40
  929. package/umd/swipe-action/item.js +14 -9
  930. package/umd/swipe-load/index.js +77 -55
  931. package/umd/switch/index.js +43 -27
  932. package/umd/tab-bar/index.js +2 -0
  933. package/umd/tab-bar/item.js +19 -6
  934. package/umd/tab-bar/tab-bar.js +26 -15
  935. package/umd/tabs/index.js +186 -129
  936. package/umd/tabs/tab-cell-underline.js +107 -38
  937. package/umd/tabs/tab-cell.js +119 -70
  938. package/umd/tabs/tab-pane.js +89 -49
  939. package/umd/tabs/type.d.ts +18 -2
  940. package/umd/tag/index.js +3 -1
  941. package/umd/tag/list.js +20 -11
  942. package/umd/tag/tag.js +26 -20
  943. package/umd/textarea/index.js +51 -35
  944. package/umd/toast/index.d.ts +12 -12
  945. package/umd/toast/index.js +49 -26
  946. package/umd/toast/methods.js +13 -2
  947. package/umd/transition/index.js +12 -10
@@ -14,14 +14,18 @@
14
14
  "use strict";
15
15
 
16
16
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
17
+
17
18
  _exports.__esModule = true;
18
19
  _exports.default = void 0;
19
20
  _extends2 = _interopRequireDefault(_extends2);
20
21
  _objectWithoutPropertiesLoose2 = _interopRequireDefault(_objectWithoutPropertiesLoose2);
21
22
  _react = _interopRequireWildcard(_react);
22
23
  var _excluded = ["inputClass", "inputStyle", "type", "nativeProps", "id", "name", "maxLength", "placeholder", "readOnly", "onKeyUp", "onKeyPress", "disabled", "pattern", "prefix", "append", "textAlign", "actionButton", "clearable", "clearShowType", "shape", "className", "enableAssociation", "associationVisible", "associationShowType", "associationItems", "highlightClassName", "highlightMode", "highlightStyle", "onCancel", "onAssociationClick", "onAssociationItemClick", "renderAssociation", "renderAssociationItem"];
24
+
23
25
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
+
24
27
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
28
+
25
29
  /**
26
30
  * 搜索栏组件
27
31
  * @en SearchBar component
@@ -32,70 +36,72 @@
32
36
  */
33
37
  var SearchBar = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
34
38
  var _useContext = (0, _react.useContext)(_contextProvider.GlobalContext),
35
- prefixCls = _useContext.prefixCls,
36
- locale = _useContext.locale;
39
+ prefixCls = _useContext.prefixCls,
40
+ locale = _useContext.locale;
41
+
37
42
  var searchBarPrefixCls = prefixCls + "-search-bar";
38
43
  var inputClass = props.inputClass,
39
- inputStyle = props.inputStyle,
40
- _props$type = props.type,
41
- type = _props$type === void 0 ? 'search' : _props$type,
42
- nativeProps = props.nativeProps,
43
- id = props.id,
44
- name = props.name,
45
- maxLength = props.maxLength,
46
- _props$placeholder = props.placeholder,
47
- placeholder = _props$placeholder === void 0 ? locale == null ? void 0 : locale.SearchBar.placeholder : _props$placeholder,
48
- readOnly = props.readOnly,
49
- onKeyUp = props.onKeyUp,
50
- onKeyPress = props.onKeyPress,
51
- disabled = props.disabled,
52
- pattern = props.pattern,
53
- _props$prefix = props.prefix,
54
- prefix = _props$prefix === void 0 ? /*#__PURE__*/_react.default.createElement(_icon.IconSearch, {
55
- className: searchBarPrefixCls + "-search-icon"
56
- }) : _props$prefix,
57
- append = props.append,
58
- _props$textAlign = props.textAlign,
59
- textAlign = _props$textAlign === void 0 ? 'left' : _props$textAlign,
60
- actionButton = props.actionButton,
61
- _props$clearable = props.clearable,
62
- clearable = _props$clearable === void 0 ? true : _props$clearable,
63
- _props$clearShowType = props.clearShowType,
64
- clearShowType = _props$clearShowType === void 0 ? 'value' : _props$clearShowType,
65
- _props$shape = props.shape,
66
- shape = _props$shape === void 0 ? 'square' : _props$shape,
67
- className = props.className,
68
- _props$enableAssociat = props.enableAssociation,
69
- enableAssociation = _props$enableAssociat === void 0 ? false : _props$enableAssociat,
70
- associationVisible = props.associationVisible,
71
- _props$associationSho = props.associationShowType,
72
- associationShowType = _props$associationSho === void 0 ? 'default' : _props$associationSho,
73
- associationItems = props.associationItems,
74
- highlightClassName = props.highlightClassName,
75
- highlightMode = props.highlightMode,
76
- highlightStyle = props.highlightStyle,
77
- onCancel = props.onCancel,
78
- onAssociationClick = props.onAssociationClick,
79
- onAssociationItemClick = props.onAssociationItemClick,
80
- renderAssociation = props.renderAssociation,
81
- renderAssociationItem = props.renderAssociationItem,
82
- inputProps = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
44
+ inputStyle = props.inputStyle,
45
+ _props$type = props.type,
46
+ type = _props$type === void 0 ? 'search' : _props$type,
47
+ nativeProps = props.nativeProps,
48
+ id = props.id,
49
+ name = props.name,
50
+ maxLength = props.maxLength,
51
+ _props$placeholder = props.placeholder,
52
+ placeholder = _props$placeholder === void 0 ? locale == null ? void 0 : locale.SearchBar.placeholder : _props$placeholder,
53
+ readOnly = props.readOnly,
54
+ onKeyUp = props.onKeyUp,
55
+ onKeyPress = props.onKeyPress,
56
+ disabled = props.disabled,
57
+ pattern = props.pattern,
58
+ _props$prefix = props.prefix,
59
+ prefix = _props$prefix === void 0 ? /*#__PURE__*/_react.default.createElement(_icon.IconSearch, {
60
+ className: searchBarPrefixCls + "-search-icon"
61
+ }) : _props$prefix,
62
+ append = props.append,
63
+ _props$textAlign = props.textAlign,
64
+ textAlign = _props$textAlign === void 0 ? 'left' : _props$textAlign,
65
+ actionButton = props.actionButton,
66
+ _props$clearable = props.clearable,
67
+ clearable = _props$clearable === void 0 ? true : _props$clearable,
68
+ _props$clearShowType = props.clearShowType,
69
+ clearShowType = _props$clearShowType === void 0 ? 'value' : _props$clearShowType,
70
+ _props$shape = props.shape,
71
+ shape = _props$shape === void 0 ? 'square' : _props$shape,
72
+ className = props.className,
73
+ _props$enableAssociat = props.enableAssociation,
74
+ enableAssociation = _props$enableAssociat === void 0 ? false : _props$enableAssociat,
75
+ associationVisible = props.associationVisible,
76
+ _props$associationSho = props.associationShowType,
77
+ associationShowType = _props$associationSho === void 0 ? 'default' : _props$associationSho,
78
+ associationItems = props.associationItems,
79
+ highlightClassName = props.highlightClassName,
80
+ highlightMode = props.highlightMode,
81
+ highlightStyle = props.highlightStyle,
82
+ onCancel = props.onCancel,
83
+ onAssociationClick = props.onAssociationClick,
84
+ onAssociationItemClick = props.onAssociationItemClick,
85
+ renderAssociation = props.renderAssociation,
86
+ renderAssociationItem = props.renderAssociationItem,
87
+ inputProps = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
83
88
  var inputRef = (0, _react.useRef)(null);
84
-
85
89
  /**
86
90
  * 格式化搜索输入框尾部要插入的内容
87
91
  * @en Format the content to be inserted at the end of the search input box
88
92
  */
93
+
89
94
  var formatAppendProp = function formatAppendProp(focusing, currentInputValue) {
90
95
  var appendNode = null;
96
+
91
97
  if (typeof append === 'function') {
92
98
  appendNode = append(focusing, currentInputValue);
93
99
  } else {
94
100
  appendNode = append;
95
- }
96
-
97
- // 默认情况下,在激活时或有内容时插入一个cancelBtn
101
+ } // 默认情况下,在激活时或有内容时插入一个cancelBtn
98
102
  // @en By default inserts a cancelBtn on activation or when there is content
103
+
104
+
99
105
  var formatActionButton = typeof actionButton === 'undefined' ? /*#__PURE__*/_react.default.createElement(_cancelButton.CancelButton, {
100
106
  focusing: focusing,
101
107
  currentInputValue: currentInputValue,
@@ -105,8 +111,7 @@
105
111
  }) : actionButton;
106
112
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, appendNode, formatActionButton, enableAssociation ? /*#__PURE__*/_react.default.createElement(_association.SearchBarAssociation, {
107
113
  prefixCls: searchBarPrefixCls,
108
- keyword: currentInputValue
109
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
114
+ keyword: currentInputValue // eslint-disable-next-line @typescript-eslint/no-use-before-define
110
115
  ,
111
116
  visible: actualVisible,
112
117
  associationItems: associationItems,
@@ -119,27 +124,30 @@
119
124
  renderAssociationItem: renderAssociationItem
120
125
  }) : null);
121
126
  };
127
+
122
128
  var _useInputLogic = (0, _hooks.useInputLogic)((0, _extends2.default)({
123
- className: (0, _mobileUtils.cls)(className, searchBarPrefixCls + "-" + shape),
124
- prefix: prefix,
125
- clearable: clearable,
126
- append: formatAppendProp,
127
- clearShowType: clearShowType
128
- }, inputProps), inputRef),
129
- inputValue = _useInputLogic.inputValue,
130
- handleChange = _useInputLogic.handleChange,
131
- handleInput = _useInputLogic.handleInput,
132
- handleKeyDown = _useInputLogic.handleKeyDown,
133
- handleFocus = _useInputLogic.handleFocus,
134
- handleBlur = _useInputLogic.handleBlur,
135
- handleClick = _useInputLogic.handleClick,
136
- renderWrapper = _useInputLogic.renderWrapper,
137
- wrapRef = _useInputLogic.wrapRef;
129
+ className: (0, _mobileUtils.cls)(className, searchBarPrefixCls + "-" + shape),
130
+ prefix: prefix,
131
+ clearable: clearable,
132
+ append: formatAppendProp,
133
+ clearShowType: clearShowType
134
+ }, inputProps), inputRef),
135
+ inputValue = _useInputLogic.inputValue,
136
+ handleChange = _useInputLogic.handleChange,
137
+ handleInput = _useInputLogic.handleInput,
138
+ handleKeyDown = _useInputLogic.handleKeyDown,
139
+ handleFocus = _useInputLogic.handleFocus,
140
+ handleBlur = _useInputLogic.handleBlur,
141
+ handleClick = _useInputLogic.handleClick,
142
+ renderWrapper = _useInputLogic.renderWrapper,
143
+ wrapRef = _useInputLogic.wrapRef;
144
+
138
145
  var _useState = (0, _react.useState)(associationShowType === 'always' || (associationShowType === 'value' || associationShowType === 'default') && Boolean(inputValue)),
139
- visible = _useState[0],
140
- setVisible = _useState[1];
141
- // 真实的控制搜索联想框显隐,受控模式优先生效
146
+ visible = _useState[0],
147
+ setVisible = _useState[1]; // 真实的控制搜索联想框显隐,受控模式优先生效
142
148
  // @en Control the display and hide of the search association box, and the controlled mode takes effect first
149
+
150
+
143
151
  var actualVisible = associationVisible != null ? associationVisible : visible;
144
152
  (0, _react.useImperativeHandle)(ref, function () {
145
153
  return {
@@ -150,7 +158,6 @@
150
158
  }
151
159
  };
152
160
  });
153
-
154
161
  /**
155
162
  * 处理非受控逻辑下,搜索联想框的显隐状态
156
163
  * @en Handle the display state of the search association box under uncontrolled logic
@@ -158,36 +165,38 @@
158
165
  * @param {boolean} newVisible 新的visible
159
166
  * @param {string} newValue 新的输入框值
160
167
  */
168
+
161
169
  var formatSetAssociationVisible = function formatSetAssociationVisible(newVisible, newValue) {
162
170
  if (associationShowType === 'always') {
163
- setVisible(true);
164
- // 聚焦模式下,直接把visible和newVisible对齐即可
171
+ setVisible(true); // 聚焦模式下,直接把visible和newVisible对齐即可
165
172
  // @en In focus mode, just align visible and newVisible directly
166
173
  } else if (associationShowType === 'focus') {
167
- setVisible(newVisible);
168
- // 聚焦 + 有值模式下,需要newVisible为true和newValue.length > 0同时满足
174
+ setVisible(newVisible); // 聚焦 + 有值模式下,需要newVisible为true和newValue.length > 0同时满足
169
175
  // @en In focus + valued mode, newVisible is required to be true and newValue.length > 0 to be satisfied at the same time
170
176
  } else if (associationShowType === 'default') {
171
- setVisible(newVisible && Boolean(newValue));
172
- // 仅有值模式下,visible需要newValue.length > 0
177
+ setVisible(newVisible && Boolean(newValue)); // 仅有值模式下,visible需要newValue.length > 0
173
178
  // @en In value-only mode, visible requires newValue.length > 0
174
179
  } else if (associationShowType === 'value') {
175
180
  setVisible(Boolean(newValue));
176
181
  }
177
182
  };
183
+
178
184
  var handleInputFocus = function handleInputFocus(e) {
179
185
  formatSetAssociationVisible(true, e.target.value);
180
186
  handleFocus(e);
181
187
  };
188
+
182
189
  var handleInputBlur = function handleInputBlur(e) {
183
190
  formatSetAssociationVisible(false, e.target.value);
184
191
  handleBlur(e);
185
192
  };
193
+
186
194
  var handleInputChange = function handleInputChange(e) {
187
195
  var newValue = e.target.value;
188
196
  formatSetAssociationVisible(Boolean(newValue), newValue);
189
197
  handleChange(e);
190
198
  };
199
+
191
200
  var renderSearchBar = function renderSearchBar() {
192
201
  return renderWrapper(searchBarPrefixCls, type, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, nativeProps, {
193
202
  id: id,
@@ -212,6 +221,7 @@
212
221
  onClick: handleClick
213
222
  })));
214
223
  };
224
+
215
225
  return /*#__PURE__*/_react.default.createElement(_contextProvider.ContextLayout, null, renderSearchBar);
216
226
  });
217
227
  var _default = SearchBar;
@@ -14,26 +14,31 @@
14
14
  "use strict";
15
15
 
16
16
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
17
+
17
18
  _exports.__esModule = true;
18
19
  _exports.default = void 0;
19
20
  _react = _interopRequireWildcard(_react);
20
21
  _lodash = _interopRequireDefault(_lodash);
22
+
21
23
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
+
22
25
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
26
+
23
27
  var LISTEN_FLAG = 'data-show-listened';
24
28
  /**
25
29
  * 父 dom 节点集合
26
30
  * @en Parent dom node collection
27
31
  */
32
+
28
33
  var wrapperNodeList = [];
29
34
  /**
30
35
  * 同一父节点下监听队列
31
36
  * @en Listening queue under the same parent node
32
37
  */
38
+
33
39
  var listeners = {};
34
40
  var onOnceEmittedListeners = {};
35
41
  var throttlingVisibleChange;
36
-
37
42
  /**
38
43
  * 通过滚动事件监测 children 是否进入视口或离开视口。
39
44
  * @en Use scroll events to monitor whether children enter or leave the viewport.
@@ -42,60 +47,67 @@
42
47
  * @name 滚动视口监听
43
48
  * @name_en ShowMonitor
44
49
  */
50
+
45
51
  var ShowMonitor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
46
52
  var className = props.className,
47
- style = props.style,
48
- getScrollContainer = props.getScrollContainer,
49
- _props$throttle = props.throttle,
50
- throttle = _props$throttle === void 0 ? 300 : _props$throttle,
51
- _props$listenResize = props.listenResize,
52
- listenResize = _props$listenResize === void 0 ? true : _props$listenResize,
53
- _props$listenScroll = props.listenScroll,
54
- listenScroll = _props$listenScroll === void 0 ? true : _props$listenScroll,
55
- _props$overflow = props.overflow,
56
- overflow = _props$overflow === void 0 ? false : _props$overflow,
57
- _props$offset = props.offset,
58
- offset = _props$offset === void 0 ? 0 : _props$offset,
59
- _props$threshold = props.threshold,
60
- threshold = _props$threshold === void 0 ? 0 : _props$threshold,
61
- _props$once = props.once,
62
- once = _props$once === void 0 ? false : _props$once,
63
- _props$children = props.children,
64
- children = _props$children === void 0 ? null : _props$children,
65
- _props$disabled = props.disabled,
66
- disabled = _props$disabled === void 0 ? false : _props$disabled,
67
- onVisibleChange = props.onVisibleChange,
68
- onClick = props.onClick;
53
+ style = props.style,
54
+ getScrollContainer = props.getScrollContainer,
55
+ _props$throttle = props.throttle,
56
+ throttle = _props$throttle === void 0 ? 300 : _props$throttle,
57
+ _props$listenResize = props.listenResize,
58
+ listenResize = _props$listenResize === void 0 ? true : _props$listenResize,
59
+ _props$listenScroll = props.listenScroll,
60
+ listenScroll = _props$listenScroll === void 0 ? true : _props$listenScroll,
61
+ _props$overflow = props.overflow,
62
+ overflow = _props$overflow === void 0 ? false : _props$overflow,
63
+ _props$offset = props.offset,
64
+ offset = _props$offset === void 0 ? 0 : _props$offset,
65
+ _props$threshold = props.threshold,
66
+ threshold = _props$threshold === void 0 ? 0 : _props$threshold,
67
+ _props$once = props.once,
68
+ once = _props$once === void 0 ? false : _props$once,
69
+ _props$children = props.children,
70
+ children = _props$children === void 0 ? null : _props$children,
71
+ _props$disabled = props.disabled,
72
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
73
+ onVisibleChange = props.onVisibleChange,
74
+ onClick = props.onClick;
69
75
  var domRef = (0, _react.useRef)(null);
70
76
  /**
71
77
  * 滚动容器父级元素
72
78
  * @en Scroll container parent element
73
79
  */
80
+
74
81
  var scrollPort = (0, _react.useRef)(null);
75
82
  /**
76
83
  * 局部滚动元素父节点
77
84
  * @en Parent node of the local scroll element
78
85
  */
86
+
79
87
  var domRefParent = (0, _react.useRef)(null);
80
88
  /**
81
89
  * 当前元素是否在可视区域内
82
90
  * @en Whether the current element is in the visible area
83
91
  */
92
+
84
93
  var isVisible = (0, _react.useRef)(false);
85
94
  /**
86
95
  * 保存当前节点信息,类似于 class component 中 this
87
96
  * @en Save current node information, similar to this in class component
88
97
  */
98
+
89
99
  var listener = (0, _react.useRef)(null);
90
100
  /**
91
101
  * Intersection Observer 实例化对象
92
102
  * @en Instantiated object of Intersection Observer
93
103
  */
104
+
94
105
  var io = (0, _react.useRef)(null);
95
106
  /**
96
107
  * 父容器唯一 key(wrapperNodeList index)
97
108
  * @en The unique key of the parent container (wrapperNodeList index)
98
109
  */
110
+
99
111
  var wrapperKey = (0, _react.useRef)(-1);
100
112
  var isChildrenExist = (0, _react.useRef)(Boolean(children));
101
113
  var isSupportNativeApi = (0, _react.useMemo)(function () {
@@ -105,6 +117,7 @@
105
117
  (0, _react.useImperativeHandle)(ref, function () {
106
118
  return {
107
119
  dom: domRef.current,
120
+
108
121
  /**
109
122
  * 提供检查元素是否可见的api
110
123
  * @en Provides an api to check whether the element is visible
@@ -118,58 +131,70 @@
118
131
  threshold: threshold
119
132
  }, true);
120
133
  },
134
+
121
135
  /**
122
136
  * 重置元素初始可见态为false,并重新对元素可见度发起检测,优先级低于disabled(通常用在对ShowMonitor内部元素变化时发起的重新监听)
123
137
  * @en Reset the initial visible state of the element to false, and re-detect the visibility of the element, the priority is lower than 'disabled'(Usually used to re-listen when elements inside ShowMonitor change)
124
138
  */
125
139
  flushVisibleStatus: function flushVisibleStatus() {
126
140
  isVisible.current = false;
141
+
127
142
  if (isSupportNativeApi && io.current && domRef.current) {
128
143
  disabled ? io.current.unobserve(domRef.current) : io.current.observe(domRef.current);
129
144
  } else if (listener.current) {
130
145
  var _key = wrapperKey.current;
146
+
131
147
  if (once && onOnceEmittedListeners != null && onOnceEmittedListeners[_key]) {
132
148
  onOnceEmittedListeners[_key] = onOnceEmittedListeners[_key].filter(function (emitListener) {
133
149
  return emitListener !== listener.current;
134
150
  });
135
151
  }
152
+
136
153
  if (!disabled && !listeners[_key].find(function (_listener) {
137
154
  return _listener === listener.current;
138
155
  })) {
139
156
  listeners[_key].push(listener.current);
140
157
  }
158
+
141
159
  !disabled && _checkVisible(listener.current);
142
160
  }
143
161
  }
144
162
  };
145
163
  });
164
+
146
165
  function _checkVisible(component, ignoreCheckPreVisibleStatus) {
147
166
  if (ignoreCheckPreVisibleStatus === void 0) {
148
167
  ignoreCheckPreVisibleStatus = false;
149
168
  }
169
+
150
170
  var node = component.node,
151
- compOverflow = component.overflow,
152
- compOnce = component.once,
153
- onCompVisibleChange = component.onVisibleChange,
154
- preVisible = component.isVisible;
171
+ compOverflow = component.overflow,
172
+ compOnce = component.once,
173
+ onCompVisibleChange = component.onVisibleChange,
174
+ preVisible = component.isVisible;
175
+
155
176
  if (!(node instanceof HTMLElement)) {
156
177
  return;
157
178
  }
179
+
158
180
  var parent = (0, _mobileUtils.scrollParent)(node);
159
181
  /**
160
182
  * 当前元素为非 document 元素,即为局部滚动
161
183
  * @en If the current element is a non-document element, it's local scrolling
162
184
  */
185
+
163
186
  var isOverflow = compOverflow && [node.ownerDocument, document, document.documentElement].indexOf(parent) === -1;
164
187
  /**
165
188
  * 检查元素是否可见
166
189
  * @en Check if element is visible
167
190
  */
191
+
168
192
  var curVisible = isOverflow ? (0, _mobileUtils.checkOverflowVisible)(component, parent) : (0, _mobileUtils.checkNormalVisible)(component);
169
193
  /**
170
194
  * 忽略前后可见状态判断
171
195
  * @en Ignore the visible state judgment before and after
172
196
  */
197
+
173
198
  if (ignoreCheckPreVisibleStatus) {
174
199
  return curVisible;
175
200
  }
@@ -177,12 +202,15 @@
177
202
  * 当前元素 visible 对比之前发生改变,触发回调函数
178
203
  * @en The current element visible is changed before the comparison, and the callback function is triggered
179
204
  */
205
+
206
+
180
207
  curVisible !== preVisible.current && handleCheckChildrenExist() && onCompVisibleChange(curVisible, node);
181
208
  var key = wrapperKey.current;
182
209
  /**
183
210
  * 监听一次后加入 pendingList 队列,随后被 listeners 过滤掉
184
211
  * @en After listening once, it is added to the pendingList queue, and then filtered out by listeners
185
212
  */
213
+
186
214
  if (!onOnceEmittedListeners[key]) {
187
215
  onOnceEmittedListeners[key] = [];
188
216
  }
@@ -190,9 +218,12 @@
190
218
  * 当前元素不可见 -> 可见,且 once, 触发回调函数
191
219
  * @en The current element is invisible -> visible, and once, triggers the callback function
192
220
  */
221
+
222
+
193
223
  curVisible && !preVisible.current && compOnce && onOnceEmittedListeners[key].push(component);
194
224
  preVisible.current = curVisible;
195
225
  }
226
+
196
227
  var checkVisibleHandler = (0, _react.useCallback)(function () {
197
228
  var key = wrapperKey.current;
198
229
  var curListeners = listeners[key] || [];
@@ -204,29 +235,35 @@
204
235
  });
205
236
  onOnceEmittedListeners[key] = [];
206
237
  }, []);
238
+
207
239
  function handleCheckChildrenExist() {
208
240
  return isChildrenExist.current && domRef.current && domRef.current.children.length;
209
241
  }
242
+
210
243
  function handleObserverStatusChange(entries) {
211
244
  var _io$current;
245
+
212
246
  var isIntersecting = entries[0].isIntersecting;
213
247
  /**
214
248
  * 当前元素 visible 对比之前发生改变,触发回调函数
215
249
  * @en Callback when the visible status of current element changes before the comparison
216
250
  */
251
+
217
252
  isIntersecting !== isVisible.current && handleCheckChildrenExist() && onVisibleChange(isIntersecting, domRef.current);
218
253
  /**
219
254
  * 当前元素不可见 -> 可见,且 once, 触发回调函数
220
255
  * @en The current element is invisible -> visible, and once, triggers the callback
221
256
  */
257
+
222
258
  isIntersecting && !isVisible.current && once && domRef.current && ((_io$current = io.current) == null ? void 0 : _io$current.unobserve(domRef.current));
223
259
  isVisible.current = isIntersecting;
224
260
  }
225
-
226
261
  /**
227
262
  * 非首次下disabled变化时,重新监听元素
228
263
  * @en Re-listen to the element when it is not the first time that the disabled status changes,
229
264
  */
265
+
266
+
230
267
  (0, _react.useEffect)(function () {
231
268
  if (isSupportNativeApi) {
232
269
  // 非首次下
@@ -245,6 +282,7 @@
245
282
  var isExist = listeners[wrapperKey.current].findIndex(function (item) {
246
283
  return item.node === domRef.current;
247
284
  });
285
+
248
286
  if (isExist !== -1) {
249
287
  listeners[wrapperKey.current].splice(0, 1);
250
288
  }
@@ -263,6 +301,7 @@
263
301
  scrollPort.current = getScrollContainer ? getScrollContainer() : window;
264
302
  if (!scrollPort.current) return;
265
303
  var wrapperNodeIndex = wrapperNodeList.indexOf(scrollPort.current);
304
+
266
305
  if (wrapperNodeIndex === -1) {
267
306
  // 当前滚动视口元素不在 wrapperNodeList 中, 入队列
268
307
  // @en The current scroll viewport element is not in the wrapperNodeList, push it into the list
@@ -273,7 +312,9 @@
273
312
  // @en Take the current index as the key
274
313
  wrapperKey.current = wrapperNodeIndex;
275
314
  }
315
+
276
316
  var curWrapperKey = wrapperKey.current;
317
+
277
318
  if (isSupportNativeApi) {
278
319
  if (domRef.current) {
279
320
  domRefParent.current = (0, _mobileUtils.scrollParent)(domRef.current);
@@ -282,6 +323,7 @@
282
323
  var overflowRoot = isHTMLElement ? parent : null;
283
324
  var root = overflow ? overflowRoot : scrollPort.current === window ? null : scrollPort.current;
284
325
  var rootMargin = '';
326
+
285
327
  if (Array.isArray(offset)) {
286
328
  if (offset.length === 2) {
287
329
  rootMargin = offset[0] + "px 0px " + offset[1] + "px";
@@ -294,6 +336,7 @@
294
336
  } else {
295
337
  rootMargin = offset + "px";
296
338
  }
339
+
297
340
  io.current = new IntersectionObserver(handleObserverStatusChange, {
298
341
  root: root,
299
342
  rootMargin: rootMargin,
@@ -306,25 +349,29 @@
306
349
  // @en Callback after throttling
307
350
  throttlingVisibleChange = checkVisibleHandler;
308
351
  throttle && (throttlingVisibleChange = (0, _lodash.default)(throttlingVisibleChange, throttle));
352
+
309
353
  if (overflow) {
310
354
  if (domRef.current) {
311
355
  domRefParent.current = (0, _mobileUtils.scrollParent)(domRef.current);
312
356
  var _parent = domRefParent.current;
357
+
313
358
  if (_parent && _parent instanceof HTMLElement && typeof _parent.getAttribute === 'function') {
314
359
  var listenerCount = 1 + Number(_parent.getAttribute(LISTEN_FLAG));
360
+
315
361
  if (!listeners[curWrapperKey]) {
316
362
  listeners[curWrapperKey] = [];
317
363
  }
364
+
318
365
  if (listenerCount === 1) {
319
366
  // listener 数量为1时监听事件(列表中插入 ShowMonitor 时做判断)
320
367
  // @en Listen when the number of listeners is 1 (judging when ShowMonitor is inserted into the list)
321
368
  _parent.addEventListener('scroll', throttlingVisibleChange);
322
369
  }
370
+
323
371
  _parent.setAttribute(LISTEN_FLAG, String(listenerCount));
324
372
  }
325
373
  }
326
- } else if (!listeners[curWrapperKey] || listeners[curWrapperKey].length === 0 ||
327
- // 相同curWrapperKey内全部为overflow场景,需要单独注册scroll事件
374
+ } else if (!listeners[curWrapperKey] || listeners[curWrapperKey].length === 0 || // 相同curWrapperKey内全部为overflow场景,需要单独注册scroll事件
328
375
  // @en It need to register the scroll event separately when all values in the same curWrapperKey are overflow
329
376
  listeners[curWrapperKey] && listeners[curWrapperKey].every(function (it) {
330
377
  return it.overflow;
@@ -332,9 +379,11 @@
332
379
  if (!listeners[curWrapperKey]) {
333
380
  listeners[curWrapperKey] = [];
334
381
  }
382
+
335
383
  listenScroll && scrollPort.current.addEventListener('scroll', throttlingVisibleChange);
336
384
  listenResize && scrollPort.current.addEventListener('resize', throttlingVisibleChange);
337
385
  }
386
+
338
387
  listener.current = {
339
388
  node: domRef.current,
340
389
  isVisible: isVisible,
@@ -343,8 +392,8 @@
343
392
  offset: offset,
344
393
  threshold: threshold,
345
394
  onVisibleChange: onVisibleChange
346
- };
347
- // 将当前 listener 存入 listeners
395
+ }; // 将当前 listener 存入 listeners
396
+
348
397
  !disabled && listeners[curWrapperKey].push(listener.current);
349
398
  (0, _mobileUtils.nextTick)(function () {
350
399
  !disabled && _checkVisible(listener.current);
@@ -355,12 +404,15 @@
355
404
  return function () {
356
405
  if (isSupportNativeApi) {
357
406
  var _io$current2;
407
+
358
408
  domRef.current && ((_io$current2 = io.current) == null ? void 0 : _io$current2.unobserve(domRef.current));
359
409
  } else {
360
410
  if (overflow) {
361
411
  var parent = domRefParent.current;
412
+
362
413
  if (parent && parent instanceof HTMLElement && typeof parent.getAttribute === 'function') {
363
414
  var listenerCount = Number(parent.getAttribute(LISTEN_FLAG) || 0) - 1;
415
+
364
416
  if (listenerCount === 0) {
365
417
  // 如果监听队列中无节点,解绑事件
366
418
  // @en If there is no node in the listening queue, unbind the event
@@ -372,17 +424,20 @@
372
424
  }
373
425
  }
374
426
  }
427
+
375
428
  var _key2 = wrapperKey.current;
376
429
  var curListeners = listeners[_key2];
430
+
377
431
  if (curListeners) {
378
432
  // 不在监听队列中,移除
379
433
  // @en Not in the listening queue, remove it
380
434
  var index = curListeners.indexOf(listener.current);
381
- index !== -1 && curListeners.splice(index, 1);
382
- // 监听队列为空,解绑 scroll、resize 事件
435
+ index !== -1 && curListeners.splice(index, 1); // 监听队列为空,解绑 scroll、resize 事件
383
436
  // @en When the listening queue is empty, unbind scroll and resize events
437
+
384
438
  if (curListeners.length === 0) {
385
439
  delete listeners[_key2];
440
+
386
441
  if (scrollPort.current) {
387
442
  scrollPort.current.removeEventListener('scroll', throttlingVisibleChange);
388
443
  scrollPort.current.removeEventListener('resize', throttlingVisibleChange);