@arco-design/mobile-react 2.25.3 → 2.26.0

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