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