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