@arco-design/mobile-react 2.24.1 → 2.25.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 (830) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.en-US.md +2 -2
  3. package/README.md +2 -2
  4. package/cjs/_helpers/hooks.js +42 -120
  5. package/cjs/_helpers/index.js +2 -13
  6. package/cjs/_helpers/react-dom.js +0 -12
  7. package/cjs/_helpers/render.js +0 -12
  8. package/cjs/action-sheet/index.js +10 -30
  9. package/cjs/action-sheet/methods.js +0 -2
  10. package/cjs/action-sheet/style/css/index.css +1 -1
  11. package/cjs/action-sheet/style/css/index.js +0 -2
  12. package/cjs/action-sheet/style/index.js +0 -2
  13. package/cjs/avatar/group.js +12 -24
  14. package/cjs/avatar/index.js +51 -77
  15. package/cjs/avatar/style/css/index.js +0 -2
  16. package/cjs/avatar/style/index.js +0 -2
  17. package/cjs/badge/index.js +18 -29
  18. package/cjs/badge/style/css/index.css +3 -2
  19. package/cjs/badge/style/css/index.js +0 -1
  20. package/cjs/badge/style/index.js +0 -1
  21. package/cjs/button/hooks.js +15 -20
  22. package/cjs/button/index.js +46 -67
  23. package/cjs/button/style/css/index.js +0 -2
  24. package/cjs/button/style/index.js +0 -2
  25. package/cjs/carousel/demo/style/css/mobile.css +12 -0
  26. package/cjs/carousel/demo/style/mobile.less +8 -0
  27. package/cjs/carousel/index.d.ts +1 -1
  28. package/cjs/carousel/index.js +159 -275
  29. package/cjs/carousel/style/css/index.js +0 -1
  30. package/cjs/carousel/style/index.js +0 -1
  31. package/cjs/cell/arrow.js +0 -3
  32. package/cjs/cell/cell.js +14 -23
  33. package/cjs/cell/group.js +9 -21
  34. package/cjs/cell/index.js +1 -7
  35. package/cjs/cell/style/css/index.js +0 -1
  36. package/cjs/cell/style/index.js +0 -1
  37. package/cjs/checkbox/checkbox.js +31 -57
  38. package/cjs/checkbox/group.js +24 -38
  39. package/cjs/checkbox/hooks/index.js +0 -2
  40. package/cjs/checkbox/hooks/useMergeProps.js +7 -14
  41. package/cjs/checkbox/index.d.ts +4 -1
  42. package/cjs/checkbox/index.js +5 -10
  43. package/cjs/checkbox/style/css/index.js +0 -1
  44. package/cjs/checkbox/style/index.js +0 -1
  45. package/cjs/checkbox/type.js +0 -2
  46. package/cjs/circle-progress/index.js +37 -57
  47. package/cjs/circle-progress/style/css/index.js +0 -1
  48. package/cjs/circle-progress/style/index.js +0 -1
  49. package/cjs/collapse/collapse.js +27 -56
  50. package/cjs/collapse/group.js +20 -44
  51. package/cjs/collapse/index.js +0 -9
  52. package/cjs/collapse/style/css/index.js +0 -1
  53. package/cjs/collapse/style/index.js +0 -1
  54. package/cjs/collapse/utils.js +0 -7
  55. package/cjs/context-provider/index.js +10 -28
  56. package/cjs/context-provider/style/css/index.js +0 -1
  57. package/cjs/context-provider/style/index.js +0 -1
  58. package/cjs/count-down/hooks.js +24 -43
  59. package/cjs/count-down/index.js +29 -37
  60. package/cjs/count-down/singleton.js +2 -12
  61. package/cjs/count-down/style/css/index.js +0 -1
  62. package/cjs/count-down/style/index.js +0 -1
  63. package/cjs/count-down/util.js +33 -47
  64. package/cjs/date-picker/helper.js +7 -14
  65. package/cjs/date-picker/index.d.ts +3 -2
  66. package/cjs/date-picker/index.js +52 -114
  67. package/cjs/date-picker/style/css/index.js +0 -2
  68. package/cjs/date-picker/style/index.js +0 -2
  69. package/cjs/dialog/index.js +28 -54
  70. package/cjs/dialog/methods.js +9 -22
  71. package/cjs/dialog/style/css/index.css +2 -1
  72. package/cjs/dialog/style/css/index.js +0 -2
  73. package/cjs/dialog/style/index.js +0 -2
  74. package/cjs/dropdown/dropdown.js +74 -113
  75. package/cjs/dropdown/index.js +1 -8
  76. package/cjs/dropdown/options.js +12 -28
  77. package/cjs/dropdown/style/css/index.js +0 -1
  78. package/cjs/dropdown/style/index.js +0 -1
  79. package/cjs/dropdown-menu/dropdown-menu.js +49 -84
  80. package/cjs/dropdown-menu/helper.js +6 -27
  81. package/cjs/dropdown-menu/index.js +0 -6
  82. package/cjs/dropdown-menu/style/css/index.js +0 -2
  83. package/cjs/dropdown-menu/style/index.js +0 -2
  84. package/cjs/ellipsis/components/js-ellipsis.js +35 -71
  85. package/cjs/ellipsis/components/native-ellipsis.js +9 -15
  86. package/cjs/ellipsis/index.js +19 -32
  87. package/cjs/ellipsis/style/css/index.css +3 -0
  88. package/cjs/ellipsis/style/css/index.js +0 -1
  89. package/cjs/ellipsis/style/index.js +0 -1
  90. package/cjs/ellipsis/style/index.less +4 -0
  91. package/cjs/ellipsis/utils/dom.js +0 -8
  92. package/cjs/ellipsis/utils/is.js +1 -5
  93. package/cjs/form/form-item-context.d.ts +3 -0
  94. package/cjs/form/form-item-context.js +12 -0
  95. package/cjs/form/form-item.d.ts +4 -0
  96. package/cjs/form/form-item.js +313 -0
  97. package/cjs/form/index.d.ts +16 -0
  98. package/cjs/form/index.js +96 -0
  99. package/cjs/form/style/css/index.css +92 -0
  100. package/cjs/form/style/css/index.d.ts +2 -0
  101. package/cjs/form/style/css/index.js +4 -0
  102. package/cjs/form/style/index.d.ts +2 -0
  103. package/cjs/form/style/index.js +4 -0
  104. package/cjs/form/style/index.less +91 -0
  105. package/cjs/form/type.d.ts +371 -0
  106. package/cjs/form/type.js +30 -0
  107. package/cjs/form/useForm.d.ts +18 -0
  108. package/cjs/form/useForm.js +225 -0
  109. package/cjs/form/utils.d.ts +6 -0
  110. package/cjs/form/utils.js +36 -0
  111. package/cjs/grid/index.js +21 -41
  112. package/cjs/grid/style/css/index.js +0 -1
  113. package/cjs/grid/style/index.js +0 -1
  114. package/cjs/icon/IconAdd/index.js +5 -12
  115. package/cjs/icon/IconArrowBack/index.js +5 -12
  116. package/cjs/icon/IconArrowDown/index.js +5 -12
  117. package/cjs/icon/IconArrowIn/index.js +5 -12
  118. package/cjs/icon/IconArrowUp/index.js +5 -12
  119. package/cjs/icon/IconCheck/index.js +5 -12
  120. package/cjs/icon/IconCheckBold/index.js +5 -12
  121. package/cjs/icon/IconCircleChecked/index.js +5 -12
  122. package/cjs/icon/IconCircleDisabled/index.js +5 -12
  123. package/cjs/icon/IconCircleUnchecked/index.js +5 -12
  124. package/cjs/icon/IconClear/index.js +5 -12
  125. package/cjs/icon/IconClose/index.js +5 -12
  126. package/cjs/icon/IconCloseBold/index.js +5 -12
  127. package/cjs/icon/IconDelete/index.js +5 -12
  128. package/cjs/icon/IconEdit/index.js +5 -12
  129. package/cjs/icon/IconErrorCircle/index.js +5 -12
  130. package/cjs/icon/IconEyeInvisible/index.js +5 -12
  131. package/cjs/icon/IconEyeVisible/index.js +5 -12
  132. package/cjs/icon/IconEyelashInvisible/index.js +5 -12
  133. package/cjs/icon/IconGift/index.js +5 -12
  134. package/cjs/icon/IconHeart/index.js +5 -12
  135. package/cjs/icon/IconHome/index.js +5 -12
  136. package/cjs/icon/IconLikeCircle/index.js +5 -12
  137. package/cjs/icon/IconMinus/index.js +5 -12
  138. package/cjs/icon/IconMore/index.js +5 -12
  139. package/cjs/icon/IconNotice/index.js +5 -12
  140. package/cjs/icon/IconNoticeOff/index.js +5 -12
  141. package/cjs/icon/IconPicture/index.js +5 -12
  142. package/cjs/icon/IconPlay/index.js +5 -12
  143. package/cjs/icon/IconQuestionCircle/index.js +5 -12
  144. package/cjs/icon/IconRefresh/index.js +5 -12
  145. package/cjs/icon/IconSad/index.js +5 -12
  146. package/cjs/icon/IconScan/index.js +5 -12
  147. package/cjs/icon/IconSearch/index.js +5 -12
  148. package/cjs/icon/IconSetting/index.js +5 -12
  149. package/cjs/icon/IconShop/index.js +5 -12
  150. package/cjs/icon/IconShopping/index.js +5 -12
  151. package/cjs/icon/IconSmileFill/index.js +5 -12
  152. package/cjs/icon/IconSound/index.js +5 -12
  153. package/cjs/icon/IconSquareChecked/index.js +5 -12
  154. package/cjs/icon/IconSquareDisabled/index.js +5 -12
  155. package/cjs/icon/IconSquareUnchecked/index.js +5 -12
  156. package/cjs/icon/IconStar/index.js +5 -12
  157. package/cjs/icon/IconStarFill/index.js +5 -12
  158. package/cjs/icon/IconStarHalf/index.js +5 -12
  159. package/cjs/icon/IconSubway/index.js +5 -12
  160. package/cjs/icon/IconSuccessCircle/index.js +5 -12
  161. package/cjs/icon/IconTriDown/index.js +5 -12
  162. package/cjs/icon/IconTriUp/index.js +5 -12
  163. package/cjs/icon/IconUpload/index.js +5 -12
  164. package/cjs/icon/IconUser/index.js +5 -12
  165. package/cjs/icon/IconUserFill/index.js +5 -12
  166. package/cjs/icon/IconWarnCircle/index.js +5 -12
  167. package/cjs/icon/IconWarnCircleFill/index.js +5 -12
  168. package/cjs/icon/index.js +0 -111
  169. package/cjs/image/index.js +53 -92
  170. package/cjs/image/style/css/index.js +0 -2
  171. package/cjs/image/style/index.js +0 -2
  172. package/cjs/image-picker/add-icon.js +0 -3
  173. package/cjs/image-picker/index.d.ts +3 -2
  174. package/cjs/image-picker/index.js +62 -103
  175. package/cjs/image-picker/style/css/index.js +0 -2
  176. package/cjs/image-picker/style/index.js +0 -2
  177. package/cjs/image-preview/demo/style/css/mobile.css +10 -0
  178. package/cjs/image-preview/demo/style/mobile.less +11 -0
  179. package/cjs/image-preview/index.d.ts +5 -0
  180. package/cjs/image-preview/index.js +124 -239
  181. package/cjs/image-preview/methods.js +5 -18
  182. package/cjs/image-preview/style/css/index.css +1 -0
  183. package/cjs/image-preview/style/css/index.js +0 -4
  184. package/cjs/image-preview/style/index.js +0 -4
  185. package/cjs/image-preview/style/index.less +1 -1
  186. package/cjs/index.d.ts +7 -6
  187. package/cjs/index.js +15 -120
  188. package/cjs/input/hooks.js +42 -75
  189. package/cjs/input/index.d.ts +3 -2
  190. package/cjs/input/index.js +36 -47
  191. package/cjs/input/style/css/index.css +1 -1
  192. package/cjs/input/style/css/index.js +0 -1
  193. package/cjs/input/style/index.js +0 -1
  194. package/cjs/load-more/index.js +29 -56
  195. package/cjs/load-more/style/css/index.js +0 -1
  196. package/cjs/load-more/style/index.js +0 -1
  197. package/cjs/loading/index.js +19 -48
  198. package/cjs/loading/style/css/index.js +0 -1
  199. package/cjs/loading/style/index.js +0 -1
  200. package/cjs/masking/index.js +46 -79
  201. package/cjs/masking/methods.js +4 -19
  202. package/cjs/masking/style/css/index.js +0 -2
  203. package/cjs/masking/style/index.js +0 -2
  204. package/cjs/nav-bar/back-icon.js +1 -5
  205. package/cjs/nav-bar/index.js +36 -60
  206. package/cjs/nav-bar/style/css/index.js +0 -1
  207. package/cjs/nav-bar/style/index.js +0 -1
  208. package/cjs/notice-bar/index.js +31 -54
  209. package/cjs/notice-bar/style/css/index.js +0 -1
  210. package/cjs/notice-bar/style/index.js +0 -1
  211. package/cjs/notify/index.d.ts +8 -8
  212. package/cjs/notify/index.js +20 -49
  213. package/cjs/notify/methods.js +2 -17
  214. package/cjs/notify/style/css/index.css +2 -2
  215. package/cjs/notify/style/css/index.js +0 -1
  216. package/cjs/notify/style/index.js +0 -1
  217. package/cjs/pagination/arrow.js +0 -3
  218. package/cjs/pagination/index.js +27 -58
  219. package/cjs/pagination/style/css/index.js +0 -1
  220. package/cjs/pagination/style/index.js +0 -1
  221. package/cjs/picker/index.d.ts +3 -2
  222. package/cjs/picker/index.js +50 -89
  223. package/cjs/picker/style/css/index.js +0 -3
  224. package/cjs/picker/style/index.js +0 -3
  225. package/cjs/picker-view/components/cascader.js +14 -31
  226. package/cjs/picker-view/components/multi-picker.js +6 -20
  227. package/cjs/picker-view/components/picker-cell.js +45 -97
  228. package/cjs/picker-view/index.d.ts +3 -2
  229. package/cjs/picker-view/index.js +36 -77
  230. package/cjs/picker-view/style/css/index.js +0 -1
  231. package/cjs/picker-view/style/index.js +0 -1
  232. package/cjs/popover/hooks/index.js +0 -4
  233. package/cjs/popover/hooks/useEvent.js +25 -49
  234. package/cjs/popover/hooks/usePosition.js +94 -151
  235. package/cjs/popover/index.js +1 -8
  236. package/cjs/popover/menu.js +32 -51
  237. package/cjs/popover/popover-inner.js +30 -47
  238. package/cjs/popover/popover.js +69 -101
  239. package/cjs/popover/style/css/index.js +0 -2
  240. package/cjs/popover/style/index.js +0 -2
  241. package/cjs/popup/index.js +22 -39
  242. package/cjs/popup/methods.js +0 -2
  243. package/cjs/popup/style/css/index.js +0 -2
  244. package/cjs/popup/style/index.js +0 -2
  245. package/cjs/popup-swiper/index.js +38 -80
  246. package/cjs/popup-swiper/methods.js +0 -2
  247. package/cjs/popup-swiper/style/css/index.js +0 -2
  248. package/cjs/popup-swiper/style/index.js +0 -2
  249. package/cjs/portal/index.js +3 -8
  250. package/cjs/portal/style/css/index.js +0 -1
  251. package/cjs/portal/style/index.js +0 -1
  252. package/cjs/progress/index.js +27 -44
  253. package/cjs/progress/style/css/index.js +0 -1
  254. package/cjs/progress/style/index.js +0 -1
  255. package/cjs/pull-refresh/android-pull-refresh.js +58 -100
  256. package/cjs/pull-refresh/hooks.js +11 -32
  257. package/cjs/pull-refresh/index.d.ts +9 -3
  258. package/cjs/pull-refresh/index.js +5 -15
  259. package/cjs/pull-refresh/ios-pull-refresh.js +53 -80
  260. package/cjs/pull-refresh/model.js +0 -1
  261. package/cjs/pull-refresh/style/css/index.js +0 -2
  262. package/cjs/pull-refresh/style/index.js +0 -2
  263. package/cjs/radio/group.js +20 -34
  264. package/cjs/radio/index.d.ts +4 -1
  265. package/cjs/radio/index.js +5 -10
  266. package/cjs/radio/radio.js +0 -10
  267. package/cjs/radio/style/css/index.js +0 -1
  268. package/cjs/radio/style/index.js +0 -1
  269. package/cjs/rate/index.d.ts +3 -2
  270. package/cjs/rate/index.js +34 -57
  271. package/cjs/rate/style/css/index.js +0 -1
  272. package/cjs/rate/style/index.js +0 -1
  273. package/cjs/search-bar/association.js +14 -32
  274. package/cjs/search-bar/cancel-button.js +8 -16
  275. package/cjs/search-bar/highlight.js +14 -25
  276. package/cjs/search-bar/index.js +77 -97
  277. package/cjs/search-bar/style/css/index.js +0 -1
  278. package/cjs/search-bar/style/index.js +0 -1
  279. package/cjs/show-monitor/index.js +34 -93
  280. package/cjs/show-monitor/style/css/index.js +0 -1
  281. package/cjs/show-monitor/style/index.js +0 -1
  282. package/cjs/slider/hooks/index.js +0 -13
  283. package/cjs/slider/hooks/useSliderEvents.js +26 -55
  284. package/cjs/slider/hooks/useSliderIcon.js +6 -20
  285. package/cjs/slider/hooks/useSliderInit.js +32 -52
  286. package/cjs/slider/hooks/useSliderStyle.js +12 -24
  287. package/cjs/slider/index.d.ts +3 -2
  288. package/cjs/slider/index.js +56 -80
  289. package/cjs/slider/marks.js +12 -26
  290. package/cjs/slider/popover.js +4 -13
  291. package/cjs/slider/style/css/index.js +0 -2
  292. package/cjs/slider/style/index.js +0 -2
  293. package/cjs/slider/thumb.js +8 -23
  294. package/cjs/stepper/hooks/useButtonClick.js +19 -28
  295. package/cjs/stepper/hooks/useInputEvent.js +9 -18
  296. package/cjs/stepper/hooks/useValue.js +9 -14
  297. package/cjs/stepper/index.d.ts +3 -2
  298. package/cjs/stepper/index.js +92 -103
  299. package/cjs/stepper/style/css/index.js +0 -1
  300. package/cjs/stepper/style/index.js +0 -1
  301. package/cjs/steps/index.js +22 -40
  302. package/cjs/steps/step.js +10 -27
  303. package/cjs/steps/style/css/index.css +2 -2
  304. package/cjs/steps/style/css/index.js +0 -1
  305. package/cjs/steps/style/index.js +0 -1
  306. package/cjs/sticky/index.js +37 -66
  307. package/cjs/sticky/style/css/index.js +0 -1
  308. package/cjs/sticky/style/index.js +0 -1
  309. package/cjs/style.d.ts +7 -6
  310. package/cjs/style.js +7 -59
  311. package/cjs/swipe-action/index.js +40 -92
  312. package/cjs/swipe-action/item.js +9 -17
  313. package/cjs/swipe-action/style/css/index.js +0 -1
  314. package/cjs/swipe-action/style/index.js +0 -1
  315. package/cjs/swipe-load/index.js +55 -83
  316. package/cjs/swipe-load/style/css/index.js +0 -1
  317. package/cjs/swipe-load/style/index.js +0 -1
  318. package/cjs/switch/index.d.ts +3 -2
  319. package/cjs/switch/index.js +37 -54
  320. package/cjs/switch/style/css/index.js +0 -1
  321. package/cjs/switch/style/index.js +0 -1
  322. package/cjs/tab-bar/index.js +0 -7
  323. package/cjs/tab-bar/item.js +6 -24
  324. package/cjs/tab-bar/style/css/index.js +0 -1
  325. package/cjs/tab-bar/style/index.js +0 -1
  326. package/cjs/tab-bar/tab-bar.js +15 -31
  327. package/cjs/tabs/index.js +129 -192
  328. package/cjs/tabs/style/css/index.js +0 -1
  329. package/cjs/tabs/style/index.js +0 -1
  330. package/cjs/tabs/tab-cell-underline.js +25 -64
  331. package/cjs/tabs/tab-cell.js +66 -108
  332. package/cjs/tabs/tab-pane.js +49 -94
  333. package/cjs/tag/index.js +1 -8
  334. package/cjs/tag/list.js +11 -26
  335. package/cjs/tag/style/css/index.js +0 -1
  336. package/cjs/tag/style/index.js +0 -1
  337. package/cjs/tag/tag.js +20 -32
  338. package/cjs/textarea/index.d.ts +3 -2
  339. package/cjs/textarea/index.js +45 -63
  340. package/cjs/textarea/style/css/index.css +1 -1
  341. package/cjs/textarea/style/css/index.js +0 -2
  342. package/cjs/textarea/style/index.js +0 -2
  343. package/cjs/toast/index.d.ts +12 -12
  344. package/cjs/toast/index.js +26 -61
  345. package/cjs/toast/methods.js +2 -16
  346. package/cjs/toast/style/css/index.js +0 -3
  347. package/cjs/toast/style/index.js +0 -3
  348. package/cjs/transition/index.js +10 -18
  349. package/cjs/transition/style/css/index.js +0 -1
  350. package/cjs/transition/style/index.js +0 -1
  351. package/dist/index.js +21033 -20542
  352. package/dist/index.min.js +12 -3
  353. package/dist/style.css +826 -740
  354. package/dist/style.min.css +1 -1
  355. package/esm/_helpers/hooks.js +41 -99
  356. package/esm/_helpers/index.js +2 -3
  357. package/esm/_helpers/react-dom.js +0 -10
  358. package/esm/_helpers/render.js +0 -7
  359. package/esm/action-sheet/index.js +10 -16
  360. package/esm/action-sheet/style/css/index.css +1 -1
  361. package/esm/avatar/group.js +12 -16
  362. package/esm/avatar/index.js +51 -62
  363. package/esm/badge/index.js +18 -22
  364. package/esm/badge/style/css/index.css +3 -2
  365. package/esm/button/hooks.js +15 -18
  366. package/esm/button/index.js +46 -57
  367. package/esm/carousel/demo/style/css/mobile.css +12 -0
  368. package/esm/carousel/demo/style/mobile.less +8 -0
  369. package/esm/carousel/index.d.ts +1 -1
  370. package/esm/carousel/index.js +159 -267
  371. package/esm/cell/cell.js +14 -14
  372. package/esm/cell/group.js +9 -11
  373. package/esm/cell/index.js +1 -1
  374. package/esm/checkbox/checkbox.js +31 -42
  375. package/esm/checkbox/group.js +24 -28
  376. package/esm/checkbox/hooks/useMergeProps.js +7 -9
  377. package/esm/checkbox/index.d.ts +4 -1
  378. package/esm/checkbox/index.js +5 -3
  379. package/esm/checkbox/type.js +0 -1
  380. package/esm/circle-progress/index.js +37 -49
  381. package/esm/collapse/collapse.js +27 -46
  382. package/esm/collapse/group.js +20 -34
  383. package/esm/collapse/index.js +1 -1
  384. package/esm/collapse/utils.js +0 -1
  385. package/esm/context-provider/index.js +10 -18
  386. package/esm/count-down/hooks.js +24 -37
  387. package/esm/count-down/index.js +30 -29
  388. package/esm/count-down/singleton.js +2 -5
  389. package/esm/count-down/util.js +33 -42
  390. package/esm/date-picker/helper.js +7 -9
  391. package/esm/date-picker/index.d.ts +3 -2
  392. package/esm/date-picker/index.js +53 -103
  393. package/esm/dialog/index.js +28 -39
  394. package/esm/dialog/methods.js +9 -11
  395. package/esm/dialog/style/css/index.css +2 -1
  396. package/esm/dropdown/dropdown.js +74 -102
  397. package/esm/dropdown/index.js +1 -1
  398. package/esm/dropdown/options.js +12 -20
  399. package/esm/dropdown-menu/dropdown-menu.js +49 -74
  400. package/esm/dropdown-menu/helper.js +6 -16
  401. package/esm/dropdown-menu/index.js +1 -1
  402. package/esm/ellipsis/components/js-ellipsis.js +35 -62
  403. package/esm/ellipsis/components/native-ellipsis.js +9 -11
  404. package/esm/ellipsis/index.js +20 -21
  405. package/esm/ellipsis/style/css/index.css +3 -0
  406. package/esm/ellipsis/style/index.less +4 -0
  407. package/esm/ellipsis/utils/dom.js +0 -7
  408. package/esm/ellipsis/utils/is.js +1 -1
  409. package/esm/form/form-item-context.d.ts +3 -0
  410. package/esm/form/form-item-context.js +6 -0
  411. package/esm/form/form-item.d.ts +4 -0
  412. package/esm/form/form-item.js +306 -0
  413. package/esm/form/index.d.ts +16 -0
  414. package/esm/form/index.js +79 -0
  415. package/esm/form/style/css/index.css +92 -0
  416. package/esm/form/style/css/index.d.ts +2 -0
  417. package/esm/form/style/css/index.js +2 -0
  418. package/esm/form/style/index.d.ts +2 -0
  419. package/esm/form/style/index.js +2 -0
  420. package/esm/form/style/index.less +91 -0
  421. package/esm/form/type.d.ts +371 -0
  422. package/esm/form/type.js +24 -0
  423. package/esm/form/useForm.d.ts +18 -0
  424. package/esm/form/useForm.js +217 -0
  425. package/esm/form/utils.d.ts +6 -0
  426. package/esm/form/utils.js +30 -0
  427. package/esm/grid/index.js +21 -34
  428. package/esm/icon/IconAdd/index.js +5 -6
  429. package/esm/icon/IconArrowBack/index.js +5 -6
  430. package/esm/icon/IconArrowDown/index.js +5 -6
  431. package/esm/icon/IconArrowIn/index.js +5 -6
  432. package/esm/icon/IconArrowUp/index.js +5 -6
  433. package/esm/icon/IconCheck/index.js +5 -6
  434. package/esm/icon/IconCheckBold/index.js +5 -6
  435. package/esm/icon/IconCircleChecked/index.js +5 -6
  436. package/esm/icon/IconCircleDisabled/index.js +5 -6
  437. package/esm/icon/IconCircleUnchecked/index.js +5 -6
  438. package/esm/icon/IconClear/index.js +5 -6
  439. package/esm/icon/IconClose/index.js +5 -6
  440. package/esm/icon/IconCloseBold/index.js +5 -6
  441. package/esm/icon/IconDelete/index.js +5 -6
  442. package/esm/icon/IconEdit/index.js +5 -6
  443. package/esm/icon/IconErrorCircle/index.js +5 -6
  444. package/esm/icon/IconEyeInvisible/index.js +5 -6
  445. package/esm/icon/IconEyeVisible/index.js +5 -6
  446. package/esm/icon/IconEyelashInvisible/index.js +5 -6
  447. package/esm/icon/IconGift/index.js +5 -6
  448. package/esm/icon/IconHeart/index.js +5 -6
  449. package/esm/icon/IconHome/index.js +5 -6
  450. package/esm/icon/IconLikeCircle/index.js +5 -6
  451. package/esm/icon/IconMinus/index.js +5 -6
  452. package/esm/icon/IconMore/index.js +5 -6
  453. package/esm/icon/IconNotice/index.js +5 -6
  454. package/esm/icon/IconNoticeOff/index.js +5 -6
  455. package/esm/icon/IconPicture/index.js +5 -6
  456. package/esm/icon/IconPlay/index.js +5 -6
  457. package/esm/icon/IconQuestionCircle/index.js +5 -6
  458. package/esm/icon/IconRefresh/index.js +5 -6
  459. package/esm/icon/IconSad/index.js +5 -6
  460. package/esm/icon/IconScan/index.js +5 -6
  461. package/esm/icon/IconSearch/index.js +5 -6
  462. package/esm/icon/IconSetting/index.js +5 -6
  463. package/esm/icon/IconShop/index.js +5 -6
  464. package/esm/icon/IconShopping/index.js +5 -6
  465. package/esm/icon/IconSmileFill/index.js +5 -6
  466. package/esm/icon/IconSound/index.js +5 -6
  467. package/esm/icon/IconSquareChecked/index.js +5 -6
  468. package/esm/icon/IconSquareDisabled/index.js +5 -6
  469. package/esm/icon/IconSquareUnchecked/index.js +5 -6
  470. package/esm/icon/IconStar/index.js +5 -6
  471. package/esm/icon/IconStarFill/index.js +5 -6
  472. package/esm/icon/IconStarHalf/index.js +5 -6
  473. package/esm/icon/IconSubway/index.js +5 -6
  474. package/esm/icon/IconSuccessCircle/index.js +5 -6
  475. package/esm/icon/IconTriDown/index.js +5 -6
  476. package/esm/icon/IconTriUp/index.js +5 -6
  477. package/esm/icon/IconUpload/index.js +5 -6
  478. package/esm/icon/IconUser/index.js +5 -6
  479. package/esm/icon/IconUserFill/index.js +5 -6
  480. package/esm/icon/IconWarnCircle/index.js +5 -6
  481. package/esm/icon/IconWarnCircleFill/index.js +5 -6
  482. package/esm/image/index.js +53 -83
  483. package/esm/image-picker/index.d.ts +3 -2
  484. package/esm/image-picker/index.js +63 -90
  485. package/esm/image-preview/demo/style/css/mobile.css +10 -0
  486. package/esm/image-preview/demo/style/mobile.less +11 -0
  487. package/esm/image-preview/index.d.ts +5 -0
  488. package/esm/image-preview/index.js +124 -218
  489. package/esm/image-preview/methods.js +4 -14
  490. package/esm/image-preview/style/css/index.css +1 -0
  491. package/esm/image-preview/style/index.less +1 -1
  492. package/esm/index.d.ts +7 -6
  493. package/esm/index.js +7 -6
  494. package/esm/input/hooks.js +42 -67
  495. package/esm/input/index.d.ts +3 -2
  496. package/esm/input/index.js +37 -40
  497. package/esm/input/style/css/index.css +1 -1
  498. package/esm/load-more/index.js +29 -48
  499. package/esm/loading/index.js +19 -40
  500. package/esm/masking/index.js +46 -64
  501. package/esm/masking/methods.js +4 -15
  502. package/esm/nav-bar/back-icon.js +1 -3
  503. package/esm/nav-bar/index.js +36 -51
  504. package/esm/notice-bar/index.js +31 -47
  505. package/esm/notify/index.d.ts +8 -8
  506. package/esm/notify/index.js +20 -33
  507. package/esm/notify/methods.js +2 -13
  508. package/esm/notify/style/css/index.css +2 -2
  509. package/esm/pagination/index.js +27 -50
  510. package/esm/picker/index.d.ts +3 -2
  511. package/esm/picker/index.js +51 -76
  512. package/esm/picker-view/components/cascader.js +14 -23
  513. package/esm/picker-view/components/multi-picker.js +6 -16
  514. package/esm/picker-view/components/picker-cell.js +45 -89
  515. package/esm/picker-view/index.d.ts +3 -2
  516. package/esm/picker-view/index.js +36 -63
  517. package/esm/popover/hooks/useEvent.js +26 -41
  518. package/esm/popover/hooks/usePosition.js +94 -144
  519. package/esm/popover/index.js +2 -2
  520. package/esm/popover/menu.js +32 -41
  521. package/esm/popover/popover-inner.js +30 -38
  522. package/esm/popover/popover.js +69 -90
  523. package/esm/popup/index.js +22 -25
  524. package/esm/popup-swiper/index.js +38 -64
  525. package/esm/portal/index.js +3 -5
  526. package/esm/progress/index.js +27 -36
  527. package/esm/pull-refresh/android-pull-refresh.js +58 -90
  528. package/esm/pull-refresh/hooks.js +11 -23
  529. package/esm/pull-refresh/index.d.ts +9 -3
  530. package/esm/pull-refresh/index.js +5 -6
  531. package/esm/pull-refresh/ios-pull-refresh.js +53 -68
  532. package/esm/pull-refresh/model.js +0 -1
  533. package/esm/radio/group.js +20 -24
  534. package/esm/radio/index.d.ts +4 -1
  535. package/esm/radio/index.js +5 -3
  536. package/esm/rate/index.d.ts +3 -2
  537. package/esm/rate/index.js +35 -49
  538. package/esm/search-bar/association.js +14 -27
  539. package/esm/search-bar/cancel-button.js +8 -11
  540. package/esm/search-bar/highlight.js +14 -20
  541. package/esm/search-bar/index.js +77 -86
  542. package/esm/show-monitor/index.js +34 -85
  543. package/esm/slider/hooks/useSliderEvents.js +26 -51
  544. package/esm/slider/hooks/useSliderIcon.js +6 -13
  545. package/esm/slider/hooks/useSliderInit.js +32 -46
  546. package/esm/slider/hooks/useSliderStyle.js +12 -20
  547. package/esm/slider/index.d.ts +3 -2
  548. package/esm/slider/index.js +57 -72
  549. package/esm/slider/marks.js +12 -18
  550. package/esm/slider/popover.js +4 -6
  551. package/esm/slider/thumb.js +8 -15
  552. package/esm/stepper/hooks/useButtonClick.js +19 -27
  553. package/esm/stepper/hooks/useInputEvent.js +9 -16
  554. package/esm/stepper/hooks/useValue.js +9 -12
  555. package/esm/stepper/index.d.ts +3 -2
  556. package/esm/stepper/index.js +93 -92
  557. package/esm/steps/index.js +22 -27
  558. package/esm/steps/step.js +10 -19
  559. package/esm/steps/style/css/index.css +2 -2
  560. package/esm/sticky/index.js +37 -57
  561. package/esm/style.d.ts +7 -6
  562. package/esm/style.js +7 -6
  563. package/esm/swipe-action/index.js +40 -80
  564. package/esm/swipe-action/item.js +9 -12
  565. package/esm/swipe-load/index.js +56 -75
  566. package/esm/switch/index.d.ts +3 -2
  567. package/esm/switch/index.js +38 -49
  568. package/esm/tab-bar/index.js +0 -1
  569. package/esm/tab-bar/item.js +6 -13
  570. package/esm/tab-bar/tab-bar.js +15 -21
  571. package/esm/tabs/index.js +130 -180
  572. package/esm/tabs/tab-cell-underline.js +25 -56
  573. package/esm/tabs/tab-cell.js +66 -98
  574. package/esm/tabs/tab-pane.js +49 -85
  575. package/esm/tag/index.js +2 -2
  576. package/esm/tag/list.js +11 -16
  577. package/esm/tag/tag.js +20 -22
  578. package/esm/textarea/index.d.ts +3 -2
  579. package/esm/textarea/index.js +46 -56
  580. package/esm/textarea/style/css/index.css +1 -1
  581. package/esm/toast/index.d.ts +12 -12
  582. package/esm/toast/index.js +26 -42
  583. package/esm/toast/methods.js +2 -12
  584. package/esm/transition/index.js +10 -12
  585. package/package.json +3 -4
  586. package/style/css/public.css +1 -0
  587. package/tokens/app/arcodesign/default/css-variables.less +17 -7
  588. package/tokens/app/arcodesign/default/index.d.ts +10 -0
  589. package/tokens/app/arcodesign/default/index.js +18 -10
  590. package/tokens/app/arcodesign/default/index.json +139 -23
  591. package/tokens/app/arcodesign/default/index.less +17 -7
  592. package/umd/_helpers/hooks.js +42 -117
  593. package/umd/_helpers/index.js +2 -6
  594. package/umd/_helpers/react-dom.js +0 -11
  595. package/umd/_helpers/render.js +0 -9
  596. package/umd/action-sheet/index.js +10 -22
  597. package/umd/action-sheet/methods.js +0 -1
  598. package/umd/action-sheet/style/css/index.css +1 -1
  599. package/umd/avatar/group.js +12 -20
  600. package/umd/avatar/index.js +51 -68
  601. package/umd/badge/index.js +18 -25
  602. package/umd/badge/style/css/index.css +3 -2
  603. package/umd/button/hooks.js +15 -19
  604. package/umd/button/index.js +46 -60
  605. package/umd/carousel/demo/style/css/mobile.css +12 -0
  606. package/umd/carousel/demo/style/mobile.less +8 -0
  607. package/umd/carousel/index.d.ts +1 -1
  608. package/umd/carousel/index.js +159 -270
  609. package/umd/cell/arrow.js +0 -2
  610. package/umd/cell/cell.js +14 -18
  611. package/umd/cell/group.js +9 -17
  612. package/umd/cell/index.js +1 -2
  613. package/umd/checkbox/checkbox.js +31 -45
  614. package/umd/checkbox/group.js +24 -34
  615. package/umd/checkbox/hooks/useMergeProps.js +7 -12
  616. package/umd/checkbox/index.d.ts +4 -1
  617. package/umd/checkbox/index.js +5 -5
  618. package/umd/checkbox/type.js +0 -2
  619. package/umd/circle-progress/index.js +37 -52
  620. package/umd/collapse/collapse.js +27 -50
  621. package/umd/collapse/group.js +20 -38
  622. package/umd/collapse/index.js +0 -3
  623. package/umd/collapse/utils.js +0 -5
  624. package/umd/context-provider/index.js +10 -23
  625. package/umd/count-down/hooks.js +24 -39
  626. package/umd/count-down/index.js +29 -31
  627. package/umd/count-down/singleton.js +2 -10
  628. package/umd/count-down/util.js +33 -47
  629. package/umd/date-picker/helper.js +7 -13
  630. package/umd/date-picker/index.d.ts +3 -2
  631. package/umd/date-picker/index.js +52 -105
  632. package/umd/dialog/index.js +28 -44
  633. package/umd/dialog/methods.js +9 -18
  634. package/umd/dialog/style/css/index.css +2 -1
  635. package/umd/dropdown/dropdown.js +74 -106
  636. package/umd/dropdown/index.js +1 -3
  637. package/umd/dropdown/options.js +12 -24
  638. package/umd/dropdown-menu/dropdown-menu.js +49 -78
  639. package/umd/dropdown-menu/helper.js +6 -25
  640. package/umd/dropdown-menu/index.js +0 -2
  641. package/umd/ellipsis/components/js-ellipsis.js +35 -68
  642. package/umd/ellipsis/components/native-ellipsis.js +9 -13
  643. package/umd/ellipsis/index.js +19 -24
  644. package/umd/ellipsis/style/css/index.css +3 -0
  645. package/umd/ellipsis/style/index.less +4 -0
  646. package/umd/ellipsis/utils/dom.js +0 -8
  647. package/umd/ellipsis/utils/is.js +1 -5
  648. package/umd/form/form-item-context.d.ts +3 -0
  649. package/umd/form/form-item-context.js +25 -0
  650. package/umd/form/form-item.d.ts +4 -0
  651. package/umd/form/form-item.js +322 -0
  652. package/umd/form/index.d.ts +16 -0
  653. package/umd/form/index.js +106 -0
  654. package/umd/form/style/css/index.css +92 -0
  655. package/umd/form/style/css/index.d.ts +2 -0
  656. package/umd/form/style/css/index.js +15 -0
  657. package/umd/form/style/index.d.ts +2 -0
  658. package/umd/form/style/index.js +15 -0
  659. package/umd/form/style/index.less +91 -0
  660. package/umd/form/type.d.ts +371 -0
  661. package/umd/form/type.js +44 -0
  662. package/umd/form/useForm.d.ts +18 -0
  663. package/umd/form/useForm.js +238 -0
  664. package/umd/form/utils.d.ts +6 -0
  665. package/umd/form/utils.js +50 -0
  666. package/umd/grid/index.js +21 -37
  667. package/umd/icon/IconAdd/index.js +5 -7
  668. package/umd/icon/IconArrowBack/index.js +5 -7
  669. package/umd/icon/IconArrowDown/index.js +5 -7
  670. package/umd/icon/IconArrowIn/index.js +5 -7
  671. package/umd/icon/IconArrowUp/index.js +5 -7
  672. package/umd/icon/IconCheck/index.js +5 -7
  673. package/umd/icon/IconCheckBold/index.js +5 -7
  674. package/umd/icon/IconCircleChecked/index.js +5 -7
  675. package/umd/icon/IconCircleDisabled/index.js +5 -7
  676. package/umd/icon/IconCircleUnchecked/index.js +5 -7
  677. package/umd/icon/IconClear/index.js +5 -7
  678. package/umd/icon/IconClose/index.js +5 -7
  679. package/umd/icon/IconCloseBold/index.js +5 -7
  680. package/umd/icon/IconDelete/index.js +5 -7
  681. package/umd/icon/IconEdit/index.js +5 -7
  682. package/umd/icon/IconErrorCircle/index.js +5 -7
  683. package/umd/icon/IconEyeInvisible/index.js +5 -7
  684. package/umd/icon/IconEyeVisible/index.js +5 -7
  685. package/umd/icon/IconEyelashInvisible/index.js +5 -7
  686. package/umd/icon/IconGift/index.js +5 -7
  687. package/umd/icon/IconHeart/index.js +5 -7
  688. package/umd/icon/IconHome/index.js +5 -7
  689. package/umd/icon/IconLikeCircle/index.js +5 -7
  690. package/umd/icon/IconMinus/index.js +5 -7
  691. package/umd/icon/IconMore/index.js +5 -7
  692. package/umd/icon/IconNotice/index.js +5 -7
  693. package/umd/icon/IconNoticeOff/index.js +5 -7
  694. package/umd/icon/IconPicture/index.js +5 -7
  695. package/umd/icon/IconPlay/index.js +5 -7
  696. package/umd/icon/IconQuestionCircle/index.js +5 -7
  697. package/umd/icon/IconRefresh/index.js +5 -7
  698. package/umd/icon/IconSad/index.js +5 -7
  699. package/umd/icon/IconScan/index.js +5 -7
  700. package/umd/icon/IconSearch/index.js +5 -7
  701. package/umd/icon/IconSetting/index.js +5 -7
  702. package/umd/icon/IconShop/index.js +5 -7
  703. package/umd/icon/IconShopping/index.js +5 -7
  704. package/umd/icon/IconSmileFill/index.js +5 -7
  705. package/umd/icon/IconSound/index.js +5 -7
  706. package/umd/icon/IconSquareChecked/index.js +5 -7
  707. package/umd/icon/IconSquareDisabled/index.js +5 -7
  708. package/umd/icon/IconSquareUnchecked/index.js +5 -7
  709. package/umd/icon/IconStar/index.js +5 -7
  710. package/umd/icon/IconStarFill/index.js +5 -7
  711. package/umd/icon/IconStarHalf/index.js +5 -7
  712. package/umd/icon/IconSubway/index.js +5 -7
  713. package/umd/icon/IconSuccessCircle/index.js +5 -7
  714. package/umd/icon/IconTriDown/index.js +5 -7
  715. package/umd/icon/IconTriUp/index.js +5 -7
  716. package/umd/icon/IconUpload/index.js +5 -7
  717. package/umd/icon/IconUser/index.js +5 -7
  718. package/umd/icon/IconUserFill/index.js +5 -7
  719. package/umd/icon/IconWarnCircle/index.js +5 -7
  720. package/umd/icon/IconWarnCircleFill/index.js +5 -7
  721. package/umd/icon/index.js +0 -1
  722. package/umd/image/index.js +53 -86
  723. package/umd/image-picker/add-icon.js +0 -2
  724. package/umd/image-picker/index.d.ts +3 -2
  725. package/umd/image-picker/index.js +62 -92
  726. package/umd/image-preview/demo/style/css/mobile.css +10 -0
  727. package/umd/image-preview/demo/style/mobile.less +11 -0
  728. package/umd/image-preview/index.d.ts +5 -0
  729. package/umd/image-preview/index.js +124 -224
  730. package/umd/image-preview/methods.js +5 -15
  731. package/umd/image-preview/style/css/index.css +1 -0
  732. package/umd/image-preview/style/index.less +1 -1
  733. package/umd/index.d.ts +7 -6
  734. package/umd/index.js +19 -18
  735. package/umd/input/hooks.js +42 -71
  736. package/umd/input/index.d.ts +3 -2
  737. package/umd/input/index.js +36 -42
  738. package/umd/input/style/css/index.css +1 -1
  739. package/umd/load-more/index.js +29 -51
  740. package/umd/loading/index.js +19 -43
  741. package/umd/masking/index.js +46 -71
  742. package/umd/masking/methods.js +4 -16
  743. package/umd/nav-bar/back-icon.js +1 -4
  744. package/umd/nav-bar/index.js +36 -54
  745. package/umd/notice-bar/index.js +31 -50
  746. package/umd/notify/index.d.ts +8 -8
  747. package/umd/notify/index.js +20 -40
  748. package/umd/notify/methods.js +2 -14
  749. package/umd/notify/style/css/index.css +2 -2
  750. package/umd/pagination/arrow.js +0 -2
  751. package/umd/pagination/index.js +27 -53
  752. package/umd/picker/index.d.ts +3 -2
  753. package/umd/picker/index.js +50 -78
  754. package/umd/picker-view/components/cascader.js +14 -27
  755. package/umd/picker-view/components/multi-picker.js +6 -19
  756. package/umd/picker-view/components/picker-cell.js +45 -93
  757. package/umd/picker-view/index.d.ts +3 -2
  758. package/umd/picker-view/index.js +39 -69
  759. package/umd/popover/hooks/useEvent.js +25 -44
  760. package/umd/popover/hooks/usePosition.js +94 -145
  761. package/umd/popover/index.js +1 -3
  762. package/umd/popover/menu.js +32 -45
  763. package/umd/popover/popover-inner.js +30 -42
  764. package/umd/popover/popover.js +69 -94
  765. package/umd/popup/index.js +22 -31
  766. package/umd/popup/methods.js +0 -1
  767. package/umd/popup-swiper/index.js +38 -71
  768. package/umd/popup-swiper/methods.js +0 -1
  769. package/umd/portal/index.js +3 -6
  770. package/umd/progress/index.js +27 -39
  771. package/umd/pull-refresh/android-pull-refresh.js +58 -93
  772. package/umd/pull-refresh/hooks.js +11 -29
  773. package/umd/pull-refresh/index.d.ts +9 -3
  774. package/umd/pull-refresh/index.js +5 -8
  775. package/umd/pull-refresh/ios-pull-refresh.js +53 -72
  776. package/umd/pull-refresh/model.js +0 -1
  777. package/umd/radio/group.js +20 -30
  778. package/umd/radio/index.d.ts +4 -1
  779. package/umd/radio/index.js +5 -5
  780. package/umd/radio/radio.js +0 -5
  781. package/umd/rate/index.d.ts +3 -2
  782. package/umd/rate/index.js +34 -51
  783. package/umd/search-bar/association.js +14 -29
  784. package/umd/search-bar/cancel-button.js +8 -14
  785. package/umd/search-bar/highlight.js +14 -21
  786. package/umd/search-bar/index.js +77 -87
  787. package/umd/show-monitor/index.js +34 -89
  788. package/umd/slider/hooks/index.js +0 -4
  789. package/umd/slider/hooks/useSliderEvents.js +26 -52
  790. package/umd/slider/hooks/useSliderIcon.js +6 -17
  791. package/umd/slider/hooks/useSliderInit.js +32 -50
  792. package/umd/slider/hooks/useSliderStyle.js +12 -22
  793. package/umd/slider/index.d.ts +3 -2
  794. package/umd/slider/index.js +56 -73
  795. package/umd/slider/marks.js +12 -21
  796. package/umd/slider/popover.js +4 -10
  797. package/umd/slider/thumb.js +8 -18
  798. package/umd/stepper/hooks/useButtonClick.js +19 -27
  799. package/umd/stepper/hooks/useInputEvent.js +9 -17
  800. package/umd/stepper/hooks/useValue.js +9 -13
  801. package/umd/stepper/index.d.ts +3 -2
  802. package/umd/stepper/index.js +92 -94
  803. package/umd/steps/index.js +22 -32
  804. package/umd/steps/step.js +10 -22
  805. package/umd/steps/style/css/index.css +2 -2
  806. package/umd/sticky/index.js +37 -60
  807. package/umd/style.d.ts +7 -6
  808. package/umd/style.js +4 -4
  809. package/umd/swipe-action/index.js +40 -84
  810. package/umd/swipe-action/item.js +9 -14
  811. package/umd/swipe-load/index.js +55 -77
  812. package/umd/switch/index.d.ts +3 -2
  813. package/umd/switch/index.js +37 -50
  814. package/umd/tab-bar/index.js +0 -2
  815. package/umd/tab-bar/item.js +6 -19
  816. package/umd/tab-bar/tab-bar.js +15 -26
  817. package/umd/tabs/index.js +129 -183
  818. package/umd/tabs/tab-cell-underline.js +25 -60
  819. package/umd/tabs/tab-cell.js +66 -103
  820. package/umd/tabs/tab-pane.js +49 -89
  821. package/umd/tag/index.js +1 -3
  822. package/umd/tag/list.js +11 -20
  823. package/umd/tag/tag.js +20 -26
  824. package/umd/textarea/index.d.ts +3 -2
  825. package/umd/textarea/index.js +45 -58
  826. package/umd/textarea/style/css/index.css +1 -1
  827. package/umd/toast/index.d.ts +12 -12
  828. package/umd/toast/index.js +26 -49
  829. package/umd/toast/methods.js +2 -13
  830. package/umd/transition/index.js +10 -12
@@ -1,104 +1,84 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  exports.__esModule = true;
6
5
  var _exportNames = {
7
6
  methodsGenerator: true
8
7
  };
9
8
  exports.default = void 0;
10
9
  exports.methodsGenerator = methodsGenerator;
11
-
12
10
  var _extends5 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
-
14
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
15
-
16
12
  var _react = _interopRequireWildcard(require("react"));
17
-
18
13
  var _mobileUtils = require("@arco-design/mobile-utils");
19
-
20
14
  var _transformable = _interopRequireDefault(require("@arco-design/transformable"));
21
-
22
15
  var _contextProvider = require("../context-provider");
23
-
24
16
  var _carousel = _interopRequireDefault(require("../carousel"));
25
-
26
17
  var _transition = _interopRequireDefault(require("../transition"));
27
-
28
18
  var _image = _interopRequireDefault(require("../image"));
29
-
30
19
  var _helpers = require("../_helpers");
31
-
32
20
  var _portal = _interopRequireDefault(require("../portal"));
33
-
34
21
  var _methods = require("./methods");
35
-
36
22
  Object.keys(_methods).forEach(function (key) {
37
23
  if (key === "default" || key === "__esModule") return;
38
24
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
39
25
  if (key in exports && exports[key] === _methods[key]) return;
40
26
  exports[key] = _methods[key];
41
27
  });
42
-
43
28
  var _loading = _interopRequireDefault(require("../loading"));
44
-
45
29
  var _excluded = ["style", "className", "images", "loop", "openIndex", "fit", "noselect", "displayDuration", "spaceBetween", "showLoading", "loadingArea", "errorArea", "showError", "retryTime", "staticLabel", "replaceFallbackWhenLoaded", "scrollBezier", "lazyloadCount", "swipeToClose", "getMinScale", "getMaxScale", "getDoubleClickScale", "getContainer", "getThumbBounds", "renderIndicator", "onChange", "onAfterChange", "onImageClick", "onImageDoubleClick", "onImageLongTap", "close", "onClose", "onTouchStart", "onTouchMove", "onTouchEnd", "indicatorPos"];
46
-
47
30
  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); }
48
-
49
31
  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; }
50
-
51
32
  var MAX_ZOOM = 5;
52
33
  var MIN_ZOOM = 0.7;
53
34
  var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
54
35
  var _imagesStatus$openInd, _imagesStatus$openInd2;
55
-
56
36
  var style = props.style,
57
- className = props.className,
58
- images = props.images,
59
- _props$loop = props.loop,
60
- loop = _props$loop === void 0 ? false : _props$loop,
61
- openIndex = props.openIndex,
62
- fit = props.fit,
63
- _props$noselect = props.noselect,
64
- noselect = _props$noselect === void 0 ? true : _props$noselect,
65
- _props$displayDuratio = props.displayDuration,
66
- displayDuration = _props$displayDuratio === void 0 ? 350 : _props$displayDuratio,
67
- _props$spaceBetween = props.spaceBetween,
68
- spaceBetween = _props$spaceBetween === void 0 ? 0 : _props$spaceBetween,
69
- _props$showLoading = props.showLoading,
70
- showLoading = _props$showLoading === void 0 ? true : _props$showLoading,
71
- loadingArea = props.loadingArea,
72
- errorArea = props.errorArea,
73
- _props$showError = props.showError,
74
- showError = _props$showError === void 0 ? true : _props$showError,
75
- retryTime = props.retryTime,
76
- staticLabel = props.staticLabel,
77
- replaceFallbackWhenLoaded = props.replaceFallbackWhenLoaded,
78
- scrollBezier = props.scrollBezier,
79
- _props$lazyloadCount = props.lazyloadCount,
80
- lazyloadCount = _props$lazyloadCount === void 0 ? 1 : _props$lazyloadCount,
81
- _props$swipeToClose = props.swipeToClose,
82
- swipeToClose = _props$swipeToClose === void 0 ? true : _props$swipeToClose,
83
- getMinScale = props.getMinScale,
84
- getMaxScale = props.getMaxScale,
85
- getDoubleClickScale = props.getDoubleClickScale,
86
- getContainer = props.getContainer,
87
- getThumbBounds = props.getThumbBounds,
88
- renderIndicator = props.renderIndicator,
89
- _onChange = props.onChange,
90
- _onAfterChange = props.onAfterChange,
91
- onImageClick = props.onImageClick,
92
- onImageDoubleClick = props.onImageDoubleClick,
93
- onImageLongTap = props.onImageLongTap,
94
- close = props.close,
95
- onClose = props.onClose,
96
- onTouchStart = props.onTouchStart,
97
- onTouchMove = props.onTouchMove,
98
- onTouchEnd = props.onTouchEnd,
99
- _props$indicatorPos = props.indicatorPos,
100
- indicatorPos = _props$indicatorPos === void 0 ? 'start' : _props$indicatorPos,
101
- otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
37
+ className = props.className,
38
+ images = props.images,
39
+ _props$loop = props.loop,
40
+ loop = _props$loop === void 0 ? false : _props$loop,
41
+ openIndex = props.openIndex,
42
+ fit = props.fit,
43
+ _props$noselect = props.noselect,
44
+ noselect = _props$noselect === void 0 ? true : _props$noselect,
45
+ _props$displayDuratio = props.displayDuration,
46
+ displayDuration = _props$displayDuratio === void 0 ? 350 : _props$displayDuratio,
47
+ _props$spaceBetween = props.spaceBetween,
48
+ spaceBetween = _props$spaceBetween === void 0 ? 0 : _props$spaceBetween,
49
+ _props$showLoading = props.showLoading,
50
+ showLoading = _props$showLoading === void 0 ? true : _props$showLoading,
51
+ loadingArea = props.loadingArea,
52
+ errorArea = props.errorArea,
53
+ _props$showError = props.showError,
54
+ showError = _props$showError === void 0 ? true : _props$showError,
55
+ retryTime = props.retryTime,
56
+ staticLabel = props.staticLabel,
57
+ replaceFallbackWhenLoaded = props.replaceFallbackWhenLoaded,
58
+ scrollBezier = props.scrollBezier,
59
+ _props$lazyloadCount = props.lazyloadCount,
60
+ lazyloadCount = _props$lazyloadCount === void 0 ? 1 : _props$lazyloadCount,
61
+ _props$swipeToClose = props.swipeToClose,
62
+ swipeToClose = _props$swipeToClose === void 0 ? true : _props$swipeToClose,
63
+ getMinScale = props.getMinScale,
64
+ getMaxScale = props.getMaxScale,
65
+ getDoubleClickScale = props.getDoubleClickScale,
66
+ getContainer = props.getContainer,
67
+ getThumbBounds = props.getThumbBounds,
68
+ renderIndicator = props.renderIndicator,
69
+ _onChange = props.onChange,
70
+ _onAfterChange = props.onAfterChange,
71
+ onImageClick = props.onImageClick,
72
+ onImageDoubleClick = props.onImageDoubleClick,
73
+ onImageLongTap = props.onImageLongTap,
74
+ close = props.close,
75
+ onClose = props.onClose,
76
+ onTouchStart = props.onTouchStart,
77
+ onTouchMove = props.onTouchMove,
78
+ onTouchEnd = props.onTouchEnd,
79
+ _props$indicatorPos = props.indicatorPos,
80
+ indicatorPos = _props$indicatorPos === void 0 ? 'start' : _props$indicatorPos,
81
+ otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
102
82
  var system = (0, _helpers.useSystem)();
103
83
  var domRef = (0, _react.useRef)(null);
104
84
  var imagesRef = (0, _react.useRef)([]);
@@ -118,28 +98,22 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
118
98
  var lastScaleRef = (0, _react.useRef)(0);
119
99
  var closingRef = (0, _react.useRef)(false);
120
100
  var isInitialMount = (0, _react.useRef)(false);
121
-
122
101
  var _useState = (0, _react.useState)({}),
123
- showPlaceholders = _useState[0],
124
- setPlaceholders = _useState[1];
125
-
102
+ showPlaceholders = _useState[0],
103
+ setPlaceholders = _useState[1];
126
104
  var _useRefState = (0, _helpers.useRefState)([]),
127
- imagesStatus = _useRefState[0],
128
- imagesStatusRef = _useRefState[1],
129
- setImagesStatus = _useRefState[2];
130
-
105
+ imagesStatus = _useRefState[0],
106
+ imagesStatusRef = _useRefState[1],
107
+ setImagesStatus = _useRefState[2];
131
108
  var _useState2 = (0, _react.useState)(null),
132
- transImageInfo = _useState2[0],
133
- setTransImageInfo = _useState2[1];
134
-
109
+ transImageInfo = _useState2[0],
110
+ setTransImageInfo = _useState2[1];
135
111
  var openLoaded = (_imagesStatus$openInd = imagesStatus[openIndex]) == null ? void 0 : _imagesStatus$openInd.loaded;
136
112
  var openAnimated = (_imagesStatus$openInd2 = imagesStatus[openIndex]) == null ? void 0 : _imagesStatus$openInd2.animated;
137
113
  var visible = openIndex >= 0 && openIndex < images.length;
138
-
139
114
  var _useWindowSize = (0, _helpers.useWindowSize)(true),
140
- windowWidth = _useWindowSize.windowWidth,
141
- windowHeight = _useWindowSize.windowHeight;
142
-
115
+ windowWidth = _useWindowSize.windowWidth,
116
+ windowHeight = _useWindowSize.windowHeight;
143
117
  (0, _react.useImperativeHandle)(ref, function () {
144
118
  return {
145
119
  dom: domRef.current,
@@ -156,7 +130,6 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
156
130
  carouselRef.current && carouselRef.current.changeIndex(openIndex, true);
157
131
  setImagesStatus(images.map(function (_, index) {
158
132
  var _imagesStatusRef$curr;
159
-
160
133
  return {
161
134
  firstLoaded: ((_imagesStatusRef$curr = imagesStatusRef.current[index]) == null ? void 0 : _imagesStatusRef$curr.firstLoaded) || false,
162
135
  animated: index !== openIndex
@@ -167,18 +140,18 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
167
140
  // 移除长按事件监听
168
141
  // @en Remove long press event listener
169
142
  longTimerRef.current && clearTimeout(longTimerRef.current);
170
- longTapCheckingRef.current = false; // 图片状态重置
143
+ longTapCheckingRef.current = false;
144
+ // 图片状态重置
171
145
  // @en Reset image state
172
-
173
146
  setImagesStatus(imagesStatusRef.current.map(function (status) {
174
147
  return (0, _extends5.default)({}, status, {
175
148
  animated: false,
176
149
  loaded: false
177
150
  });
178
151
  }));
179
- transformersRef.current = []; // 移除过渡图片
152
+ transformersRef.current = [];
153
+ // 移除过渡图片
180
154
  // @en Remove transition image
181
-
182
155
  removeChild(document.querySelector('.image-preview-fake-trans-image'));
183
156
  setTransImageInfo(null);
184
157
  setPlaceholders({});
@@ -187,7 +160,6 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
187
160
  mounted && onClose && onClose();
188
161
  }, displayDuration);
189
162
  }
190
-
191
163
  isInitialMount.current = true;
192
164
  }, [visible]);
193
165
  (0, _react.useEffect)(function () {
@@ -219,36 +191,31 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
219
191
  transformer && transformer.setMaxScale(getImageMaxScale(index));
220
192
  });
221
193
  }, [getMaxScale]);
222
-
223
194
  function removeChild(child) {
224
195
  try {
225
196
  child && document.body.removeChild(child);
226
197
  } catch (e) {}
227
- } // 监听滑动到上下边缘后还在往外滑动的操作,则关闭弹窗
228
- // @en Monitor the operation of sliding out after sliding to the upper and lower edges, then close the popup
229
-
198
+ }
230
199
 
200
+ // 监听滑动到上下边缘后还在往外滑动的操作,则关闭弹窗
201
+ // @en Monitor the operation of sliding out after sliding to the upper and lower edges, then close the popup
231
202
  function handlePreventCallback(_, dir) {
232
203
  if (!isTransforming() && dir === 'y') {
233
204
  touchingSideDisRef.current += 1;
234
205
  }
235
206
  }
207
+
236
208
  /**
237
209
  * 缩放插件初始化
238
210
  * @en Zoom plugin initialization
239
211
  */
240
-
241
-
242
212
  function initTransformer(index) {
243
213
  var _imagesRef$current$in;
244
-
245
214
  var imageDom = (_imagesRef$current$in = imagesRef.current[index]) == null ? void 0 : _imagesRef$current$in.dom;
246
215
  var wrapDom = imageDom == null ? void 0 : imageDom.parentElement;
247
-
248
216
  if (!imageDom || !wrapDom) {
249
217
  return;
250
218
  }
251
-
252
219
  if (transformersRef.current[index]) {
253
220
  transformersRef.current[index].setDom(wrapDom);
254
221
  } else {
@@ -267,16 +234,15 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
267
234
  },
268
235
  onTransform: function onTransform() {
269
236
  var _transformersRef$curr, _imagesStatusRef$curr2, _imagesStatusRef$curr3;
270
-
271
237
  // 图片放大再缩小,解决ios图片放大后模糊的问题
272
238
  // @en The image is zoomed in and then zoomed out to solve the problem of blurring after zooming in on ios images
273
239
  var img = imageDomsRef.current[index];
274
240
  var trans = ((_transformersRef$curr = transformersRef.current[index]) == null ? void 0 : _transformersRef$curr.getTransform == null ? void 0 : _transformersRef$curr.getTransform()) || {};
275
241
  var width = (_imagesStatusRef$curr2 = imagesStatusRef.current[index]) == null ? void 0 : _imagesStatusRef$curr2.originWidth;
276
242
  var height = (_imagesStatusRef$curr3 = imagesStatusRef.current[index]) == null ? void 0 : _imagesStatusRef$curr3.originHeight;
277
- var scale = trans.scale || 1; // 判断下只有图片缩放发生改变时重写图片样式
243
+ var scale = trans.scale || 1;
244
+ // 判断下只有图片缩放发生改变时重写图片样式
278
245
  // @en It is judged that only the image style is rewritten when the zoom of the image changes.
279
-
280
246
  if (img && width && height && lastScaleRef.current !== scale) {
281
247
  lastScaleRef.current = scale;
282
248
  var atCenter = !imageHasOverflow(img) ? ' translateY(-50%)' : '';
@@ -295,23 +261,18 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
295
261
  onZoomEnd: function onZoomEnd(_1, _2, pinchStartCenter) {
296
262
  setPlaceholders(function (holders) {
297
263
  var _extends2;
298
-
299
264
  return (0, _extends5.default)({}, holders, (_extends2 = {}, _extends2[index] = false, _extends2));
300
265
  });
301
266
  var image = imageDomsRef.current[index];
302
267
  var transformer = transformersRef.current[index];
303
-
304
268
  if (!image || !transformer || transformer.getTransform().scale < 1) {
305
269
  return;
306
270
  }
307
-
308
271
  var imageRect = image.getBoundingClientRect();
309
-
310
272
  if (imageRect.width > windowWidth && imageRect.height > windowHeight) {
311
273
  if (pinchStartCenter && pinchStartCenter.length) {
312
274
  transformer.setCenter.apply(transformer, pinchStartCenter);
313
275
  }
314
-
315
276
  transformer.setFixedX(false);
316
277
  transformer.setFixedY(false);
317
278
  } else if (imageRect.height <= windowHeight) {
@@ -330,24 +291,19 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
330
291
  maxScale: getImageMaxScale(index)
331
292
  });
332
293
  }
333
-
334
294
  setOriginBoundary(index);
335
295
  }
336
-
337
296
  function imageHasOverflow(img) {
338
297
  return Boolean(img && !img.classList.contains('preview-fit-contain-y'));
339
298
  }
340
-
341
299
  function setOriginBoundary(index) {
342
300
  var imageEle = imagesRef.current[index];
343
- var imageDom = imageEle == null ? void 0 : imageEle.dom; // 边界范围变为图片范围和容器范围的并集
301
+ var imageDom = imageEle == null ? void 0 : imageEle.dom;
302
+ // 边界范围变为图片范围和容器范围的并集
344
303
  // @en The bounding range becomes the union of the image range and the container range
345
-
346
304
  if (imageDom != null && imageDom.parentElement && imageEle != null && imageEle.image) {
347
305
  var _rect = imageEle.image.getBoundingClientRect();
348
-
349
306
  var eleRect = imageDom.parentElement.getBoundingClientRect();
350
-
351
307
  if (transformersRef.current[index]) {
352
308
  transformersRef.current[index].setBoundary({
353
309
  left: Math.min(_rect.left, eleRect.left),
@@ -358,137 +314,111 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
358
314
  }
359
315
  }
360
316
  }
317
+
361
318
  /**
362
319
  * 获取最小缩放倍数
363
320
  * @en Get the minimum zoom factor
364
321
  */
365
-
366
-
367
322
  function getImageMinScale(index) {
368
323
  var currentIndex = index === void 0 ? innerIndexRef.current : index;
369
324
  var imageDom = imageDomsRef.current[currentIndex];
370
-
371
325
  if (!imageDom) {
372
326
  return 1;
373
327
  }
374
-
375
328
  if (getMinScale) {
376
329
  return getMinScale(imageDom, currentIndex);
377
330
  }
378
-
379
331
  return MIN_ZOOM;
380
332
  }
333
+
381
334
  /**
382
335
  * 获取最大缩放倍数
383
336
  * @en Get the maximum zoom factor
384
337
  */
385
-
386
-
387
338
  function getImageMaxScale(index) {
388
339
  var currentIndex = index === void 0 ? innerIndexRef.current : index;
389
340
  var imageDom = imageDomsRef.current[currentIndex];
390
-
391
341
  if (!imageDom) {
392
342
  return 1;
393
343
  }
394
-
395
344
  if (getMaxScale) {
396
345
  return getMaxScale(imageDom, currentIndex);
397
346
  }
398
-
399
347
  var imageWidth = imageDom.naturalWidth;
400
348
  var imageHeight = imageDom.naturalHeight;
401
349
  var maxScale = 1;
402
-
403
350
  if (imageWidth > imageHeight) {
404
351
  maxScale = imageWidth / windowWidth * MAX_ZOOM;
405
352
  } else {
406
353
  maxScale = Math.max(MAX_ZOOM, imageWidth / windowWidth);
407
354
  }
408
-
409
355
  return maxScale;
410
356
  }
357
+
411
358
  /**
412
359
  * 计算双击时图片缩放倍数
413
360
  * @en Calculate the zoom factor of the image when double-clicking
414
361
  */
415
-
416
-
417
362
  function getImageDoubleClickScale(currentScale) {
418
363
  var index = innerIndexRef.current;
419
364
  var imageDom = imageDomsRef.current[index];
420
-
421
365
  if (!imageDom) {
422
366
  return 1;
423
367
  }
424
-
425
368
  var maxScale = getImageMaxScale(index);
426
-
427
369
  if (getDoubleClickScale) {
428
370
  return getDoubleClickScale(currentScale, maxScale, imageDom, index);
429
371
  }
430
-
431
372
  var imageWidth = imageDom.naturalWidth;
432
373
  var imageHeight = imageDom.naturalHeight;
433
374
  var fitScale = imageWidth > imageHeight ? imageWidth / windowWidth * windowHeight / imageHeight : 1;
434
375
  var dblScale = 2;
435
-
436
376
  if (fitScale >= 2) {
437
377
  dblScale = Math.min(maxScale, fitScale);
438
378
  }
439
-
440
379
  var current = Number(currentScale.toFixed(3));
441
380
  var dbl = Number(dblScale.toFixed(3));
442
381
  return current >= 1 && current < dbl ? dbl : 1;
443
382
  }
383
+
444
384
  /**
445
385
  * 还原缩放至原始位置
446
386
  * @en Revert zoom to original position
447
387
  */
448
-
449
-
450
388
  function restoreTransformer(index) {
451
389
  var transformer = transformersRef.current[index];
452
-
453
390
  if (transformer) {
454
391
  transformer.restore();
455
392
  }
456
393
  }
394
+
457
395
  /**
458
396
  * 是否正处于缩放状态
459
397
  * @en Whether it is zooming
460
398
  */
461
-
462
-
463
399
  function isTransforming(index) {
464
400
  var _transformersRef$curr2;
465
-
466
401
  var currentIndex = index === void 0 ? innerIndexRef.current : index;
467
402
  return (_transformersRef$curr2 = transformersRef.current[currentIndex]) == null ? void 0 : _transformersRef$curr2.busy == null ? void 0 : _transformersRef$curr2.busy();
468
403
  }
404
+
469
405
  /**
470
406
  * 是否已经放大过
471
407
  * @en Whether is has been zoomed in
472
408
  */
473
-
474
-
475
409
  function isTransformed() {
476
410
  var _transformersRef$curr3;
477
-
478
411
  return (_transformersRef$curr3 = transformersRef.current[innerIndexRef.current]) == null ? void 0 : _transformersRef$curr3.dirty == null ? void 0 : _transformersRef$curr3.dirty();
479
412
  }
480
-
481
413
  function isTapStop() {
482
414
  var _transformersRef$curr4;
483
-
484
415
  return (_transformersRef$curr4 = transformersRef.current[innerIndexRef.current]) == null ? void 0 : _transformersRef$curr4.isTapStop == null ? void 0 : _transformersRef$curr4.isTapStop();
485
416
  }
417
+
486
418
  /**
487
419
  * 计算距离左右侧的距离,如果为0说明到边缘了,可以进行正常轮播操作
488
420
  * @en Calculate the distance from the left and right sides. If it is 0, it means that the edge is reached, and the normal rotation operation can be performed.
489
421
  */
490
-
491
-
492
422
  function transformTouchSide() {
493
423
  var transformer = transformersRef.current[innerIndexRef.current];
494
424
  var toLeft = transformer == null ? void 0 : transformer.toLeft == null ? void 0 : transformer.toLeft();
@@ -499,23 +429,20 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
499
429
  right: !toRight
500
430
  };
501
431
  }
502
-
503
432
  function handleImageWrapTouchStart(e) {
504
433
  if (onTouchStart && onTouchStart(e, innerIndexRef.current)) {
505
434
  return true;
506
435
  }
507
-
508
436
  var touches = e.touches;
509
437
  touchStartXRef.current = e.touches && e.touches[0] ? e.touches[0].clientX : 0;
510
438
  movedRef.current = false;
511
- dblClickingRef.current = false; // 单点长按才触发长按
439
+ dblClickingRef.current = false;
440
+ // 单点长按才触发长按
512
441
  // @en A single long press triggers a long press
513
-
514
442
  if (touches.length === 1) {
515
443
  if (!closingRef.current) {
516
444
  longTapCheckingRef.current = true;
517
445
  }
518
-
519
446
  longTimerRef.current = window.setTimeout(function () {
520
447
  if (longTapCheckingRef.current) {
521
448
  longTapCheckingRef.current = false;
@@ -526,72 +453,61 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
526
453
  } else {
527
454
  longTapCheckingRef.current = false;
528
455
  }
529
-
530
456
  if (isTapStop()) {
531
457
  movedRef.current = true;
532
- } // 缩放状态下,未到边缘时不触发轮播手势
458
+ }
459
+ // 缩放状态下,未到边缘时不触发轮播手势
533
460
  // @en In the zoomed state, the carousel gesture is not triggered when the edge is not reached
534
-
535
-
536
461
  if (isTransforming()) {
537
462
  startTouchingSideRef.current = transformTouchSide().side;
538
463
  return !startTouchingSideRef.current;
539
464
  }
540
465
  }
541
-
542
466
  function handleImageWrapTouchMove(e) {
543
467
  movedRef.current = true;
544
468
  longTapCheckingRef.current = false;
545
469
  longTimerRef.current && clearTimeout(longTimerRef.current);
546
-
547
470
  if (onTouchMove && onTouchMove(e, innerIndexRef.current)) {
548
471
  return true;
549
472
  }
550
-
551
473
  var evt = e.changedTouches[0];
552
474
  var touchMoveX = evt.clientX || 0;
553
- var posDisX = touchMoveX - touchStartXRef.current; // 缩放状态下,到边缘时如果还在往外滑动,则触发轮播手势
475
+ var posDisX = touchMoveX - touchStartXRef.current;
476
+ // 缩放状态下,到边缘时如果还在往外滑动,则触发轮播手势
554
477
  // @en In the zoomed state, if it is still swiped out when reaching the edge, the carousel gesture is triggered
555
-
556
478
  if (isTransforming()) {
557
479
  var sideInfo = transformTouchSide();
558
480
  return !startTouchingSideRef.current || !(sideInfo.left && posDisX > 0 || sideInfo.right && posDisX < 0);
559
481
  }
560
482
  }
561
-
562
483
  function handleImageWrapTouchEnd(e) {
563
484
  if (onTouchEnd && onTouchEnd(e, innerIndexRef.current)) {
564
485
  return true;
565
- } // 滑动到上下边缘后还在往外滑动,则关闭弹窗
486
+ }
487
+ // 滑动到上下边缘后还在往外滑动,则关闭弹窗
566
488
  // @en After sliding to the upper and lower edges and still sliding outwards, close the popup box
567
489
  // needClose为触发touchmove的次数,6和3是相对值,表示判断在往外滑动的敏感度,当未放大时对向外滑动手势更敏感
568
490
  // @en needClose is the number of times the touchmove is triggered, 6 and 3 are relative values, indicating the sensitivity of judging the outward sliding, and it is more sensitive to the outward sliding gesture when it is not zoomed in
569
-
570
-
571
491
  var needClose = swipeToClose && touchingSideDisRef.current >= (isTransformed() ? 6 : 3);
572
492
  touchingSideDisRef.current = 0;
573
493
  longTapCheckingRef.current = false;
574
494
  longTimerRef.current && clearTimeout(longTimerRef.current);
575
-
576
495
  if (needClose) {
577
496
  goClose(e);
578
497
  return true;
579
- } // 缩放状态下,未到边缘时不触发轮播手势
498
+ }
499
+ // 缩放状态下,未到边缘时不触发轮播手势
580
500
  // @en In the zoomed state, the carousel gesture is not triggered when the edge is not reached
581
-
582
-
583
501
  if (isTransforming() && !transformTouchSide().side) {
584
502
  return true;
585
503
  }
586
504
  }
587
-
588
505
  function handleImageClick(e) {
589
506
  if (movedRef.current) {
590
507
  return;
591
- } // 300ms内再次点击则触发doubleClick,否则触发click
508
+ }
509
+ // 300ms内再次点击则触发doubleClick,否则触发click
592
510
  // @en Click again within 300ms to trigger doubleClick, otherwise trigger click
593
-
594
-
595
511
  dblTimerRef.current = window.setTimeout(function () {
596
512
  if (!dblClickingRef.current) {
597
513
  if (!onImageClick || !onImageClick(innerIndexRef.current, e)) {
@@ -600,35 +516,29 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
600
516
  }
601
517
  }, 300);
602
518
  }
603
-
604
519
  function handleImageDoubleClick(e) {
605
520
  if (dblClickingRef.current) {
606
521
  // 防止重复触发dblclick
607
522
  return;
608
523
  }
609
-
610
524
  dblClickingRef.current = true;
611
-
612
525
  if (dblTimerRef.current) {
613
526
  clearTimeout(dblTimerRef.current);
614
527
  dblTimerRef.current = null;
615
528
  }
616
-
617
529
  var index = innerIndexRef.current;
618
- onImageDoubleClick && onImageDoubleClick(index, e); // 双击时根据配置放大或缩小
530
+ onImageDoubleClick && onImageDoubleClick(index, e);
531
+ // 双击时根据配置放大或缩小
619
532
  // @en Zoom in or out according to configuration when double-clicking
620
-
621
533
  var transformer = transformersRef.current[index];
622
-
623
534
  if (transformer) {
624
535
  var trans = transformer.getTransform();
625
536
  var rate = trans.scale || 1;
626
537
  var dblScale = getImageDoubleClickScale(rate);
627
-
628
538
  if (dblScale === 1) {
629
- var img = imageDomsRef.current[index]; // 长图双击还原缩放特殊处理,因为transform和scroll不能完全同步,所以先zoomTo到原点再restore
539
+ var img = imageDomsRef.current[index];
540
+ // 长图双击还原缩放特殊处理,因为transform和scroll不能完全同步,所以先zoomTo到原点再restore
630
541
  // @en Double-click the long image to restore zoom special processing, because transform and scroll cannot be completely synchronized, so first zoomTo to the origin and then restore
631
-
632
542
  if (imageHasOverflow(img)) {
633
543
  transformer.zoomToScreenCenter(1, [windowWidth / 2, windowHeight / 2], {
634
544
  duration: 200,
@@ -648,57 +558,48 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
648
558
  }
649
559
  }
650
560
  }
651
-
652
561
  var handleClick = (0, _helpers.useSingleAndDoubleClick)(handleImageClick, handleImageDoubleClick);
653
-
654
562
  function goClose(e) {
655
563
  if (closingRef.current) {
656
564
  return;
657
565
  }
658
-
659
566
  closingRef.current = true;
660
567
  close(e);
661
568
  }
569
+
662
570
  /**
663
571
  * 更改指定图片状态
664
572
  * @en Change specified image status
665
573
  */
666
-
667
-
668
574
  function setImagesStatusByIndex(index, data) {
669
575
  var newStatus = imagesStatusRef.current.slice();
670
576
  newStatus[index] = (0, _extends5.default)({}, newStatus[index] || {}, data);
671
577
  setImagesStatus(newStatus);
672
578
  }
579
+
673
580
  /**
674
581
  * 缩略图放大过渡动画设置
675
582
  * @en Set thumbnail zoom transition animation
676
583
  */
677
-
678
-
679
584
  function setDisplayAnimation(index) {
680
585
  var _imagesStatusRef$curr4;
681
-
682
586
  var firstLoaded = (_imagesStatusRef$curr4 = imagesStatusRef.current[index]) == null ? void 0 : _imagesStatusRef$curr4.firstLoaded;
683
- var fallbackSrc = replaceFallbackWhenLoaded && firstLoaded ? images[index].src : images[index].fallbackSrc; // 用户设置了getThumbBounds和images的fallbackSrc属性才有放大过渡效果
587
+ var fallbackSrc = replaceFallbackWhenLoaded && firstLoaded ? images[index].src : images[index].fallbackSrc;
588
+ // 用户设置了getThumbBounds和images的fallbackSrc属性才有放大过渡效果
684
589
  // @en Set the fallbackSrc attribute of getThumbBounds and images to have a zoom-in transition effect
685
-
686
590
  if (!getThumbBounds || !images[index] || !fallbackSrc) {
687
591
  resetAnimation(index);
688
592
  return;
689
- } // 获取缩略图的rect,如果没获取到就取消放大过渡效果
593
+ }
594
+ // 获取缩略图的rect,如果没获取到就取消放大过渡效果
690
595
  // @en Get the rect of the thumbnail, if it is gotten, cancel the zoom transition effect
691
-
692
-
693
596
  var thumbBounds = getThumbBounds(index);
694
-
695
597
  if (!thumbBounds || !thumbBounds.width || !thumbBounds.height) {
696
598
  resetAnimation(index);
697
599
  return;
698
- } // 伪造一个fixed的图做小图放大效果
600
+ }
601
+ // 伪造一个fixed的图做小图放大效果
699
602
  // @en Forge a fixed image to make a small image enlargement effect
700
-
701
-
702
603
  var transImage = new Image();
703
604
  transImageRef.current = transImage;
704
605
  transImage.classList.add('image-preview-fake-trans-image');
@@ -708,25 +609,23 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
708
609
  transImage.style.opacity = '0';
709
610
  transImage.style.transitionDuration = displayDuration + "ms";
710
611
  transImage.style.webkitTransitionDuration = displayDuration + "ms";
711
- document.body.appendChild(transImage); // 拿到放大之后的位置rect,没拿到就取消小图放大效果
612
+ document.body.appendChild(transImage);
613
+ // 拿到放大之后的位置rect,没拿到就取消小图放大效果
712
614
  // @en Get the zoomed-in position rect, and cancel the zoom-in effect if not getting it
713
-
714
615
  getNewImageBounds(index, fallbackSrc, transImage, function (rect) {
715
616
  if (!rect || !rect.width || !rect.height) {
716
617
  removeChild(transImage);
717
618
  resetAnimation(index);
718
619
  return;
719
- } // 通过小图rect变换到大图rect加transition做放大效果
620
+ }
621
+ // 通过小图rect变换到大图rect加transition做放大效果
720
622
  // @en Transform the small image rect to the large image rect and add transition to make a magnification effect
721
-
722
-
723
623
  (0, _mobileUtils.nextTick)(function () {
724
624
  transImage.style.opacity = '1';
725
625
  setImageBounds(transImage, rect, thumbBounds);
726
626
  setTimeout(function () {
727
627
  setPlaceholders(function (holders) {
728
628
  var _extends3;
729
-
730
629
  return (0, _extends5.default)({}, holders, (_extends3 = {}, _extends3[index] = true, _extends3));
731
630
  });
732
631
  }, Math.max(0, displayDuration - 80));
@@ -736,24 +635,22 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
736
635
  });
737
636
  });
738
637
  }
638
+
739
639
  /**
740
640
  * 取消小图放大过渡效果
741
641
  * @en Cancel the thumbnail zoom transition effect
742
642
  */
743
-
744
-
745
643
  function resetAnimation(index) {
746
644
  setImagesStatusByIndex(index, {
747
645
  animated: true
748
646
  });
749
647
  setTransImageInfo(null);
750
648
  }
649
+
751
650
  /**
752
651
  * 根据rect设置图片的位置
753
652
  * @en Set the position of the image according to the rect
754
653
  */
755
-
756
-
757
654
  function setImageBounds(image, rect, thumbRect) {
758
655
  // 这里为保持原有比例,只设置宽度变化,高度会随宽度等比变化
759
656
  image.style.width = thumbRect.width + "px";
@@ -763,18 +660,16 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
763
660
  image.style.transformOrigin = 'left top';
764
661
  image.style.webkitTransformOrigin = 'left top';
765
662
  }
663
+
766
664
  /**
767
665
  * 计算放大之后的位置rect
768
666
  * @en Calculate the position rect after zooming in
769
667
  */
770
-
771
-
772
668
  function getNewImageBounds(index, transSrc, transImage, callback) {
773
669
  if (!transSrc) {
774
670
  callback(null);
775
671
  return;
776
672
  }
777
-
778
673
  setTransImageInfo({
779
674
  src: transSrc,
780
675
  fit: images[index].fit,
@@ -790,19 +685,18 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
790
685
  }
791
686
  });
792
687
  }
688
+
793
689
  /**
794
690
  * @en 渲染轮播+图片展示
795
691
  * Rendering carousel + displaying image
796
692
  */
797
-
798
-
799
693
  function renderContent(carouselProps, allImages, getImageProps) {
800
694
  return /*#__PURE__*/_react.default.createElement(_carousel.default, (0, _extends5.default)({
801
695
  autoPlay: false,
802
696
  loop: loop,
803
697
  lazyloadCount: lazyloadCount
804
698
  }, carouselProps), (allImages || []).map(function (image, index) {
805
- return /*#__PURE__*/_react.default.createElement("div", {
699
+ var innerNode = /*#__PURE__*/_react.default.createElement("div", {
806
700
  key: index,
807
701
  className: "preview-image-wrap",
808
702
  style: {
@@ -815,24 +709,25 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
815
709
  boxHeight: windowHeight,
816
710
  bottomOverlap: null
817
711
  }, getImageProps(image, index))));
712
+ return image.extraNode ? /*#__PURE__*/_react.default.createElement("div", {
713
+ className: "preview-image-wrap-container",
714
+ key: "outer-" + index
715
+ }, innerNode, image.extraNode) : innerNode;
818
716
  }));
819
717
  }
820
-
821
718
  function getImageClass(index) {
822
719
  var _ref = imagesStatus[index] || {},
823
- loaded = _ref.loaded,
824
- animated = _ref.animated;
825
-
720
+ loaded = _ref.loaded,
721
+ animated = _ref.animated;
826
722
  return (0, _mobileUtils.cls)('preview-image', {
827
723
  'preview-hidden': index === openIndex && (!loaded || !animated)
828
724
  });
829
725
  }
726
+
830
727
  /**
831
728
  * 每张图片的样式
832
729
  * @en style of each image
833
730
  */
834
-
835
-
836
731
  function getImageStyle() {
837
732
  // 因为缩放的容器必须是没有transform和transition的纯净元素
838
733
  // @en Because the scaled container must be a pure element without transform and transition
@@ -841,31 +736,29 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
841
736
  return {
842
737
  overflow: 'visible'
843
738
  };
844
- } // 渲染轮播指引器
845
-
739
+ }
846
740
 
741
+ // 渲染轮播指引器
847
742
  function renderPreviewIndicator(currentIndex, total, lastIndex) {
848
743
  if (renderIndicator) {
849
744
  return renderIndicator(currentIndex, total, lastIndex);
850
745
  }
851
-
852
746
  return openLoaded ? /*#__PURE__*/_react.default.createElement(_portal.default, null, /*#__PURE__*/_react.default.createElement("div", {
853
747
  className: "image-preview-indicator"
854
748
  }, currentIndex + 1, "/", total)) : null;
855
- } // ios在重设style时图片会消失一下造成闪动,因此在底下垫一张图
749
+ }
750
+
751
+ // ios在重设style时图片会消失一下造成闪动,因此在底下垫一张图
856
752
  // @en In iOS when resetting the style, the image will disappear and cause flickering, so put a image at the bottom
857
753
  // 优先过渡图,其次用原图
858
754
  // @en Prioritize the transition image, followed by the original image
859
-
860
-
861
755
  function renderImagePlaceholder(src, index) {
862
756
  var _ref2 = imagesStatus[index] || {},
863
- originWidth = _ref2.originWidth,
864
- originHeight = _ref2.originHeight,
865
- originLeft = _ref2.originLeft,
866
- originTop = _ref2.originTop,
867
- hasOverflow = _ref2.hasOverflow;
868
-
757
+ originWidth = _ref2.originWidth,
758
+ originHeight = _ref2.originHeight,
759
+ originLeft = _ref2.originLeft,
760
+ originTop = _ref2.originTop,
761
+ hasOverflow = _ref2.hasOverflow;
869
762
  var trans = hasOverflow ? {} : (0, _helpers.getStyleWithVendor)({
870
763
  transform: 'translateY(-50%)'
871
764
  });
@@ -880,7 +773,6 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
880
773
  }, trans)
881
774
  }) : null;
882
775
  }
883
-
884
776
  function renderLoadingArea(index) {
885
777
  // loadingArea提出来,放到过渡图上层
886
778
  // @en The loadingArea is extracted and placed on the upper layer of the transition image
@@ -892,7 +784,6 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
892
784
  radius: 7
893
785
  }))) : loadingArea;
894
786
  }
895
-
896
787
  return /*#__PURE__*/_react.default.createElement(_contextProvider.ContextLayout, null, function (_ref3) {
897
788
  var prefixCls = _ref3.prefixCls;
898
789
  return /*#__PURE__*/_react.default.createElement(_portal.default, {
@@ -957,20 +848,17 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
957
848
  originLeft: imageEle.offsetLeft,
958
849
  hasOverflow: imageHasOverflow(imageEle)
959
850
  });
960
-
961
851
  if (index === openIndex) {
962
852
  initTransformer(index);
963
853
  } else {
964
854
  setPlaceholders(function (holders) {
965
855
  var _extends4;
966
-
967
856
  return (0, _extends5.default)({}, holders, (_extends4 = {}, _extends4[index] = true, _extends4));
968
857
  });
969
858
  }
970
859
  },
971
860
  onError: function onError() {
972
861
  imageDomsRef.current[index] = null;
973
-
974
862
  if (index === openIndex) {
975
863
  var transImage = transImageInfo == null ? void 0 : transImageInfo.movingImage;
976
864
  removeChild(transImage);
@@ -1003,7 +891,6 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1003
891
  }) : null);
1004
892
  });
1005
893
  });
1006
-
1007
894
  function methodsGenerator(Comp) {
1008
895
  return {
1009
896
  /**
@@ -1015,8 +902,8 @@ function methodsGenerator(Comp) {
1015
902
  open: (0, _methods.open)(Comp)
1016
903
  };
1017
904
  }
1018
-
1019
905
  var ImagePreviewWithGlobalContext = (0, _contextProvider.CompWithGlobalContext)(ImagePreview);
906
+
1020
907
  /**
1021
908
  * 图片预览组件,支持循环轮播、双指/双击缩放、缩略图放大效果。
1022
909
  * @en The image preview, supports circular rotation, two-finger/double-tap zoom, and thumbnail zoom effects.
@@ -1025,7 +912,5 @@ var ImagePreviewWithGlobalContext = (0, _contextProvider.CompWithGlobalContext)(
1025
912
  * @name 图片预览
1026
913
  * @name_en ImagePreview
1027
914
  */
1028
-
1029
915
  var _default = (0, _mobileUtils.componentWrapper)(ImagePreview, methodsGenerator(ImagePreviewWithGlobalContext));
1030
-
1031
916
  exports.default = _default;