@arco-design/mobile-react 2.25.4 → 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 (807) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.en-US.md +2 -2
  3. package/README.md +2 -2
  4. package/cjs/_helpers/hooks.js +124 -43
  5. package/cjs/_helpers/index.js +13 -2
  6. package/cjs/_helpers/react-dom.js +12 -0
  7. package/cjs/_helpers/render.js +12 -0
  8. package/cjs/action-sheet/index.d.ts +2 -2
  9. package/cjs/action-sheet/index.js +30 -10
  10. package/cjs/action-sheet/methods.js +2 -0
  11. package/cjs/action-sheet/style/css/index.js +2 -0
  12. package/cjs/action-sheet/style/index.js +2 -0
  13. package/cjs/avatar/group.js +24 -12
  14. package/cjs/avatar/index.js +77 -51
  15. package/cjs/avatar/style/css/index.js +2 -0
  16. package/cjs/avatar/style/index.js +2 -0
  17. package/cjs/badge/index.js +29 -18
  18. package/cjs/badge/style/css/index.js +1 -0
  19. package/cjs/badge/style/index.js +1 -0
  20. package/cjs/button/hooks.js +20 -15
  21. package/cjs/button/index.js +67 -46
  22. package/cjs/button/style/css/index.js +2 -0
  23. package/cjs/button/style/index.js +2 -0
  24. package/cjs/carousel/index.d.ts +6 -0
  25. package/cjs/carousel/index.js +342 -184
  26. package/cjs/carousel/style/css/index.css +50 -15
  27. package/cjs/carousel/style/css/index.js +1 -0
  28. package/cjs/carousel/style/index.js +1 -0
  29. package/cjs/carousel/style/index.less +19 -14
  30. package/cjs/cell/arrow.js +3 -0
  31. package/cjs/cell/cell.js +23 -14
  32. package/cjs/cell/demo/style/css/mobile.css +8 -0
  33. package/cjs/cell/demo/style/mobile.less +2 -2
  34. package/cjs/cell/group.js +21 -9
  35. package/cjs/cell/index.js +7 -1
  36. package/cjs/cell/style/css/index.css +16 -0
  37. package/cjs/cell/style/css/index.js +1 -0
  38. package/cjs/cell/style/index.js +1 -0
  39. package/cjs/cell/style/index.less +6 -4
  40. package/cjs/checkbox/checkbox.js +57 -31
  41. package/cjs/checkbox/group.js +38 -24
  42. package/cjs/checkbox/hooks/index.js +2 -0
  43. package/cjs/checkbox/hooks/useMergeProps.js +14 -7
  44. package/cjs/checkbox/index.js +8 -1
  45. package/cjs/checkbox/style/css/index.js +1 -0
  46. package/cjs/checkbox/style/index.js +1 -0
  47. package/cjs/checkbox/type.js +2 -0
  48. package/cjs/circle-progress/index.js +57 -37
  49. package/cjs/circle-progress/style/css/index.js +1 -0
  50. package/cjs/circle-progress/style/index.js +1 -0
  51. package/cjs/collapse/collapse.js +56 -27
  52. package/cjs/collapse/group.js +44 -20
  53. package/cjs/collapse/index.js +9 -0
  54. package/cjs/collapse/style/css/index.js +1 -0
  55. package/cjs/collapse/style/index.js +1 -0
  56. package/cjs/collapse/utils.js +7 -0
  57. package/cjs/context-provider/index.d.ts +6 -0
  58. package/cjs/context-provider/index.js +30 -11
  59. package/cjs/context-provider/style/css/index.js +1 -0
  60. package/cjs/context-provider/style/index.js +1 -0
  61. package/cjs/count-down/hooks.js +43 -24
  62. package/cjs/count-down/index.js +37 -29
  63. package/cjs/count-down/singleton.js +12 -2
  64. package/cjs/count-down/style/css/index.js +1 -0
  65. package/cjs/count-down/style/index.js +1 -0
  66. package/cjs/count-down/util.js +47 -33
  67. package/cjs/date-picker/helper.js +14 -7
  68. package/cjs/date-picker/index.js +106 -42
  69. package/cjs/date-picker/style/css/index.js +2 -0
  70. package/cjs/date-picker/style/index.js +2 -0
  71. package/cjs/dialog/index.d.ts +2 -2
  72. package/cjs/dialog/index.js +54 -28
  73. package/cjs/dialog/methods.js +22 -9
  74. package/cjs/dialog/style/css/index.js +2 -0
  75. package/cjs/dialog/style/index.js +2 -0
  76. package/cjs/divider/demo/style/css/mobile.css +7 -0
  77. package/cjs/divider/demo/style/mobile.less +12 -0
  78. package/cjs/divider/index.d.ts +49 -0
  79. package/cjs/divider/index.js +65 -0
  80. package/cjs/divider/style/css/index.css +69 -0
  81. package/cjs/divider/style/css/index.d.ts +2 -0
  82. package/cjs/divider/style/css/index.js +5 -0
  83. package/cjs/divider/style/index.d.ts +2 -0
  84. package/cjs/divider/style/index.js +5 -0
  85. package/cjs/divider/style/index.less +66 -0
  86. package/cjs/dropdown/dropdown.js +113 -74
  87. package/cjs/dropdown/index.js +8 -1
  88. package/cjs/dropdown/options.js +28 -12
  89. package/cjs/dropdown/style/css/index.js +1 -0
  90. package/cjs/dropdown/style/index.js +1 -0
  91. package/cjs/dropdown-menu/dropdown-menu.js +84 -49
  92. package/cjs/dropdown-menu/helper.js +27 -6
  93. package/cjs/dropdown-menu/index.js +6 -0
  94. package/cjs/dropdown-menu/style/css/index.js +2 -0
  95. package/cjs/dropdown-menu/style/index.js +2 -0
  96. package/cjs/ellipsis/components/js-ellipsis.js +72 -33
  97. package/cjs/ellipsis/components/native-ellipsis.js +15 -9
  98. package/cjs/ellipsis/index.js +32 -19
  99. package/cjs/ellipsis/style/css/index.js +1 -0
  100. package/cjs/ellipsis/style/index.js +1 -0
  101. package/cjs/ellipsis/utils/dom.js +8 -0
  102. package/cjs/ellipsis/utils/is.js +5 -1
  103. package/cjs/form/form-item-context.js +5 -0
  104. package/cjs/form/form-item.js +124 -42
  105. package/cjs/form/index.js +35 -17
  106. package/cjs/form/style/css/index.js +1 -0
  107. package/cjs/form/style/index.js +1 -0
  108. package/cjs/form/type.js +3 -0
  109. package/cjs/form/useForm.js +76 -18
  110. package/cjs/form/utils.js +10 -3
  111. package/cjs/grid/index.js +41 -21
  112. package/cjs/grid/style/css/index.js +1 -0
  113. package/cjs/grid/style/index.js +1 -0
  114. package/cjs/icon/IconAdd/index.js +12 -5
  115. package/cjs/icon/IconArrowBack/index.js +12 -5
  116. package/cjs/icon/IconArrowDown/index.js +12 -5
  117. package/cjs/icon/IconArrowIn/index.js +12 -5
  118. package/cjs/icon/IconArrowUp/index.js +12 -5
  119. package/cjs/icon/IconCheck/index.js +12 -5
  120. package/cjs/icon/IconCheckBold/index.js +12 -5
  121. package/cjs/icon/IconCircleChecked/index.js +12 -5
  122. package/cjs/icon/IconCircleDisabled/index.js +12 -5
  123. package/cjs/icon/IconCircleUnchecked/index.js +12 -5
  124. package/cjs/icon/IconClear/index.js +12 -5
  125. package/cjs/icon/IconClose/index.js +12 -5
  126. package/cjs/icon/IconCloseBold/index.js +12 -5
  127. package/cjs/icon/IconDelete/index.js +12 -5
  128. package/cjs/icon/IconEdit/index.js +12 -5
  129. package/cjs/icon/IconErrorCircle/index.js +12 -5
  130. package/cjs/icon/IconEyeInvisible/index.js +12 -5
  131. package/cjs/icon/IconEyeVisible/index.js +12 -5
  132. package/cjs/icon/IconEyelashInvisible/index.js +12 -5
  133. package/cjs/icon/IconGift/index.js +12 -5
  134. package/cjs/icon/IconHeart/index.js +12 -5
  135. package/cjs/icon/IconHome/index.js +12 -5
  136. package/cjs/icon/IconLikeCircle/index.js +12 -5
  137. package/cjs/icon/IconMinus/index.js +12 -5
  138. package/cjs/icon/IconMore/index.js +12 -5
  139. package/cjs/icon/IconNotice/index.js +12 -5
  140. package/cjs/icon/IconNoticeOff/index.js +12 -5
  141. package/cjs/icon/IconPicture/index.js +12 -5
  142. package/cjs/icon/IconPlay/index.js +12 -5
  143. package/cjs/icon/IconQuestionCircle/index.js +12 -5
  144. package/cjs/icon/IconRefresh/index.js +12 -5
  145. package/cjs/icon/IconSad/index.js +12 -5
  146. package/cjs/icon/IconScan/index.js +12 -5
  147. package/cjs/icon/IconSearch/index.js +12 -5
  148. package/cjs/icon/IconSetting/index.js +12 -5
  149. package/cjs/icon/IconShop/index.js +12 -5
  150. package/cjs/icon/IconShopping/index.js +12 -5
  151. package/cjs/icon/IconSmileFill/index.js +12 -5
  152. package/cjs/icon/IconSound/index.js +12 -5
  153. package/cjs/icon/IconSquareChecked/index.js +12 -5
  154. package/cjs/icon/IconSquareDisabled/index.js +12 -5
  155. package/cjs/icon/IconSquareUnchecked/index.js +12 -5
  156. package/cjs/icon/IconStar/index.js +12 -5
  157. package/cjs/icon/IconStarFill/index.js +12 -5
  158. package/cjs/icon/IconStarHalf/index.js +12 -5
  159. package/cjs/icon/IconSubway/index.js +12 -5
  160. package/cjs/icon/IconSuccessCircle/index.js +12 -5
  161. package/cjs/icon/IconTriDown/index.js +12 -5
  162. package/cjs/icon/IconTriUp/index.js +12 -5
  163. package/cjs/icon/IconUpload/index.js +12 -5
  164. package/cjs/icon/IconUser/index.js +12 -5
  165. package/cjs/icon/IconUserFill/index.js +12 -5
  166. package/cjs/icon/IconWarnCircle/index.js +12 -5
  167. package/cjs/icon/IconWarnCircleFill/index.js +12 -5
  168. package/cjs/icon/index.js +111 -0
  169. package/cjs/image/index.js +92 -56
  170. package/cjs/image/style/css/index.css +1 -0
  171. package/cjs/image/style/css/index.js +2 -0
  172. package/cjs/image/style/index.js +2 -0
  173. package/cjs/image/style/index.less +1 -0
  174. package/cjs/image-picker/add-icon.js +3 -0
  175. package/cjs/image-picker/index.js +96 -52
  176. package/cjs/image-picker/style/css/index.js +2 -0
  177. package/cjs/image-picker/style/index.js +2 -0
  178. package/cjs/image-preview/index.d.ts +2 -2
  179. package/cjs/image-preview/index.js +239 -119
  180. package/cjs/image-preview/methods.js +18 -5
  181. package/cjs/image-preview/style/css/index.js +4 -0
  182. package/cjs/image-preview/style/index.js +4 -0
  183. package/cjs/index.d.ts +10 -9
  184. package/cjs/index.js +132 -19
  185. package/cjs/input/demo/style/css/mobile.css +5 -1
  186. package/cjs/input/demo/style/mobile.less +2 -2
  187. package/cjs/input/hooks.js +104 -42
  188. package/cjs/input/index.js +40 -26
  189. package/cjs/input/props.d.ts +6 -0
  190. package/cjs/input/style/css/index.css +9 -0
  191. package/cjs/input/style/css/index.js +1 -0
  192. package/cjs/input/style/index.js +1 -0
  193. package/cjs/input/style/index.less +2 -2
  194. package/cjs/load-more/index.js +56 -29
  195. package/cjs/load-more/style/css/index.js +1 -0
  196. package/cjs/load-more/style/index.js +1 -0
  197. package/cjs/loading/index.js +48 -19
  198. package/cjs/loading/style/css/index.js +1 -0
  199. package/cjs/loading/style/index.js +1 -0
  200. package/cjs/masking/index.d.ts +2 -2
  201. package/cjs/masking/index.js +79 -46
  202. package/cjs/masking/methods.js +19 -4
  203. package/cjs/masking/style/css/index.js +2 -0
  204. package/cjs/masking/style/index.js +2 -0
  205. package/cjs/nav-bar/back-icon.js +5 -1
  206. package/cjs/nav-bar/index.js +61 -37
  207. package/cjs/nav-bar/style/css/index.js +1 -0
  208. package/cjs/nav-bar/style/index.js +1 -0
  209. package/cjs/notice-bar/index.js +61 -33
  210. package/cjs/notice-bar/style/css/index.css +33 -0
  211. package/cjs/notice-bar/style/css/index.js +1 -0
  212. package/cjs/notice-bar/style/index.js +1 -0
  213. package/cjs/notice-bar/style/index.less +16 -3
  214. package/cjs/notify/index.d.ts +8 -8
  215. package/cjs/notify/index.js +49 -20
  216. package/cjs/notify/methods.js +17 -2
  217. package/cjs/notify/style/css/index.js +1 -0
  218. package/cjs/notify/style/index.js +1 -0
  219. package/cjs/pagination/arrow.js +3 -0
  220. package/cjs/pagination/index.js +58 -27
  221. package/cjs/pagination/style/css/index.js +1 -0
  222. package/cjs/pagination/style/index.js +1 -0
  223. package/cjs/picker/index.js +81 -40
  224. package/cjs/picker/style/css/index.js +3 -0
  225. package/cjs/picker/style/index.js +3 -0
  226. package/cjs/picker-view/components/cascader.js +31 -14
  227. package/cjs/picker-view/components/multi-picker.js +20 -6
  228. package/cjs/picker-view/components/picker-cell.js +97 -45
  229. package/cjs/picker-view/index.js +71 -25
  230. package/cjs/picker-view/style/css/index.js +1 -0
  231. package/cjs/picker-view/style/index.js +1 -0
  232. package/cjs/popover/hooks/index.js +4 -0
  233. package/cjs/popover/hooks/useEvent.js +49 -25
  234. package/cjs/popover/hooks/usePosition.js +151 -94
  235. package/cjs/popover/index.js +8 -1
  236. package/cjs/popover/menu.js +51 -32
  237. package/cjs/popover/popover-inner.js +47 -30
  238. package/cjs/popover/popover.js +101 -69
  239. package/cjs/popover/style/css/index.js +2 -0
  240. package/cjs/popover/style/index.js +2 -0
  241. package/cjs/popup/index.d.ts +2 -2
  242. package/cjs/popup/index.js +39 -22
  243. package/cjs/popup/methods.js +2 -0
  244. package/cjs/popup/style/css/index.js +2 -0
  245. package/cjs/popup/style/index.js +2 -0
  246. package/cjs/popup-swiper/index.d.ts +2 -2
  247. package/cjs/popup-swiper/index.js +80 -38
  248. package/cjs/popup-swiper/methods.js +2 -0
  249. package/cjs/popup-swiper/style/css/index.js +2 -0
  250. package/cjs/popup-swiper/style/index.js +2 -0
  251. package/cjs/portal/index.js +8 -3
  252. package/cjs/portal/style/css/index.js +1 -0
  253. package/cjs/portal/style/index.js +1 -0
  254. package/cjs/progress/index.js +44 -27
  255. package/cjs/progress/style/css/index.js +1 -0
  256. package/cjs/progress/style/index.js +1 -0
  257. package/cjs/pull-refresh/android-pull-refresh.js +100 -58
  258. package/cjs/pull-refresh/hooks.js +32 -11
  259. package/cjs/pull-refresh/index.js +14 -3
  260. package/cjs/pull-refresh/ios-pull-refresh.js +80 -53
  261. package/cjs/pull-refresh/model.js +1 -0
  262. package/cjs/pull-refresh/style/css/index.js +2 -0
  263. package/cjs/pull-refresh/style/index.js +2 -0
  264. package/cjs/radio/group.js +34 -20
  265. package/cjs/radio/index.js +8 -1
  266. package/cjs/radio/radio.js +10 -0
  267. package/cjs/radio/style/css/index.js +1 -0
  268. package/cjs/radio/style/index.js +1 -0
  269. package/cjs/rate/index.js +50 -24
  270. package/cjs/rate/style/css/index.js +1 -0
  271. package/cjs/rate/style/index.js +1 -0
  272. package/cjs/search-bar/association.js +32 -14
  273. package/cjs/search-bar/cancel-button.js +16 -8
  274. package/cjs/search-bar/highlight.js +25 -14
  275. package/cjs/search-bar/index.js +97 -77
  276. package/cjs/search-bar/style/css/index.js +1 -0
  277. package/cjs/search-bar/style/index.js +1 -0
  278. package/cjs/show-monitor/index.js +93 -34
  279. package/cjs/show-monitor/style/css/index.js +1 -0
  280. package/cjs/show-monitor/style/index.js +1 -0
  281. package/cjs/slider/hooks/index.js +13 -0
  282. package/cjs/slider/hooks/useSliderEvents.js +55 -26
  283. package/cjs/slider/hooks/useSliderIcon.js +20 -6
  284. package/cjs/slider/hooks/useSliderInit.js +52 -32
  285. package/cjs/slider/hooks/useSliderStyle.js +24 -12
  286. package/cjs/slider/index.js +72 -46
  287. package/cjs/slider/marks.js +26 -12
  288. package/cjs/slider/popover.js +13 -4
  289. package/cjs/slider/style/css/index.js +2 -0
  290. package/cjs/slider/style/index.js +2 -0
  291. package/cjs/slider/thumb.js +23 -8
  292. package/cjs/stepper/hooks/useButtonClick.js +28 -19
  293. package/cjs/stepper/hooks/useInputEvent.js +18 -9
  294. package/cjs/stepper/hooks/useValue.js +14 -9
  295. package/cjs/stepper/index.js +96 -82
  296. package/cjs/stepper/style/css/index.js +1 -0
  297. package/cjs/stepper/style/index.js +1 -0
  298. package/cjs/steps/index.js +40 -22
  299. package/cjs/steps/step.js +27 -10
  300. package/cjs/steps/style/css/index.js +1 -0
  301. package/cjs/steps/style/index.js +1 -0
  302. package/cjs/sticky/index.js +65 -36
  303. package/cjs/sticky/style/css/index.js +1 -0
  304. package/cjs/sticky/style/index.js +1 -0
  305. package/cjs/style.d.ts +9 -8
  306. package/cjs/style.js +64 -8
  307. package/cjs/swipe-action/index.js +92 -40
  308. package/cjs/swipe-action/item.js +17 -9
  309. package/cjs/swipe-action/style/css/index.js +1 -0
  310. package/cjs/swipe-action/style/index.js +1 -0
  311. package/cjs/swipe-load/index.js +83 -55
  312. package/cjs/swipe-load/style/css/index.js +1 -0
  313. package/cjs/swipe-load/style/index.js +1 -0
  314. package/cjs/switch/index.js +47 -27
  315. package/cjs/switch/style/css/index.js +1 -0
  316. package/cjs/switch/style/index.js +1 -0
  317. package/cjs/tab-bar/index.js +7 -0
  318. package/cjs/tab-bar/item.js +24 -6
  319. package/cjs/tab-bar/style/css/index.js +1 -0
  320. package/cjs/tab-bar/style/index.js +1 -0
  321. package/cjs/tab-bar/tab-bar.js +31 -15
  322. package/cjs/tabs/index.js +195 -129
  323. package/cjs/tabs/style/css/index.js +1 -0
  324. package/cjs/tabs/style/index.js +1 -0
  325. package/cjs/tabs/tab-cell-underline.js +111 -38
  326. package/cjs/tabs/tab-cell.js +124 -70
  327. package/cjs/tabs/tab-pane.js +94 -49
  328. package/cjs/tabs/type.d.ts +18 -2
  329. package/cjs/tag/index.js +8 -1
  330. package/cjs/tag/list.js +26 -11
  331. package/cjs/tag/style/css/index.js +1 -0
  332. package/cjs/tag/style/index.js +1 -0
  333. package/cjs/tag/tag.js +32 -20
  334. package/cjs/textarea/index.js +56 -35
  335. package/cjs/textarea/style/css/index.js +2 -0
  336. package/cjs/textarea/style/index.js +2 -0
  337. package/cjs/toast/index.d.ts +12 -12
  338. package/cjs/toast/index.js +61 -26
  339. package/cjs/toast/methods.js +16 -2
  340. package/cjs/toast/style/css/index.js +3 -0
  341. package/cjs/toast/style/index.js +3 -0
  342. package/cjs/transition/index.js +18 -10
  343. package/cjs/transition/style/css/index.js +1 -0
  344. package/cjs/transition/style/index.js +1 -0
  345. package/dist/index.js +21588 -19198
  346. package/dist/index.min.js +4 -4
  347. package/dist/style.css +3637 -3501
  348. package/dist/style.min.css +1 -1
  349. package/esm/_helpers/hooks.js +103 -42
  350. package/esm/_helpers/index.js +3 -2
  351. package/esm/_helpers/react-dom.js +10 -0
  352. package/esm/_helpers/render.js +7 -0
  353. package/esm/action-sheet/index.d.ts +2 -2
  354. package/esm/action-sheet/index.js +16 -10
  355. package/esm/avatar/group.js +16 -12
  356. package/esm/avatar/index.js +62 -51
  357. package/esm/badge/index.js +22 -18
  358. package/esm/button/hooks.js +18 -15
  359. package/esm/button/index.js +57 -46
  360. package/esm/carousel/index.d.ts +6 -0
  361. package/esm/carousel/index.js +336 -186
  362. package/esm/carousel/style/css/index.css +50 -15
  363. package/esm/carousel/style/index.less +19 -14
  364. package/esm/cell/cell.js +14 -14
  365. package/esm/cell/demo/style/css/mobile.css +8 -0
  366. package/esm/cell/demo/style/mobile.less +2 -2
  367. package/esm/cell/group.js +11 -9
  368. package/esm/cell/index.js +1 -1
  369. package/esm/cell/style/css/index.css +16 -0
  370. package/esm/cell/style/index.less +6 -4
  371. package/esm/checkbox/checkbox.js +42 -31
  372. package/esm/checkbox/group.js +28 -24
  373. package/esm/checkbox/hooks/useMergeProps.js +9 -7
  374. package/esm/checkbox/index.js +2 -2
  375. package/esm/checkbox/type.js +1 -0
  376. package/esm/circle-progress/index.js +49 -37
  377. package/esm/collapse/collapse.js +46 -27
  378. package/esm/collapse/group.js +34 -20
  379. package/esm/collapse/index.js +1 -1
  380. package/esm/collapse/utils.js +1 -0
  381. package/esm/context-provider/index.d.ts +6 -0
  382. package/esm/context-provider/index.js +20 -11
  383. package/esm/count-down/hooks.js +37 -24
  384. package/esm/count-down/index.js +29 -30
  385. package/esm/count-down/singleton.js +5 -2
  386. package/esm/count-down/util.js +42 -33
  387. package/esm/date-picker/helper.js +9 -7
  388. package/esm/date-picker/index.js +93 -42
  389. package/esm/dialog/index.d.ts +2 -2
  390. package/esm/dialog/index.js +39 -28
  391. package/esm/dialog/methods.js +11 -9
  392. package/esm/divider/demo/style/css/mobile.css +7 -0
  393. package/esm/divider/demo/style/mobile.less +12 -0
  394. package/esm/divider/index.d.ts +49 -0
  395. package/esm/divider/index.js +49 -0
  396. package/esm/divider/style/css/index.css +69 -0
  397. package/esm/divider/style/css/index.d.ts +2 -0
  398. package/esm/divider/style/css/index.js +2 -0
  399. package/esm/divider/style/index.d.ts +2 -0
  400. package/esm/divider/style/index.js +2 -0
  401. package/esm/divider/style/index.less +66 -0
  402. package/esm/dropdown/dropdown.js +102 -74
  403. package/esm/dropdown/index.js +1 -1
  404. package/esm/dropdown/options.js +20 -12
  405. package/esm/dropdown-menu/dropdown-menu.js +74 -49
  406. package/esm/dropdown-menu/helper.js +16 -6
  407. package/esm/dropdown-menu/index.js +1 -1
  408. package/esm/ellipsis/components/js-ellipsis.js +63 -33
  409. package/esm/ellipsis/components/native-ellipsis.js +11 -9
  410. package/esm/ellipsis/index.js +21 -20
  411. package/esm/ellipsis/utils/dom.js +7 -0
  412. package/esm/ellipsis/utils/is.js +1 -1
  413. package/esm/form/form-item.js +110 -42
  414. package/esm/form/index.js +20 -17
  415. package/esm/form/type.js +3 -0
  416. package/esm/form/useForm.js +71 -17
  417. package/esm/form/utils.js +6 -3
  418. package/esm/grid/index.js +34 -21
  419. package/esm/icon/IconAdd/index.js +6 -5
  420. package/esm/icon/IconArrowBack/index.js +6 -5
  421. package/esm/icon/IconArrowDown/index.js +6 -5
  422. package/esm/icon/IconArrowIn/index.js +6 -5
  423. package/esm/icon/IconArrowUp/index.js +6 -5
  424. package/esm/icon/IconCheck/index.js +6 -5
  425. package/esm/icon/IconCheckBold/index.js +6 -5
  426. package/esm/icon/IconCircleChecked/index.js +6 -5
  427. package/esm/icon/IconCircleDisabled/index.js +6 -5
  428. package/esm/icon/IconCircleUnchecked/index.js +6 -5
  429. package/esm/icon/IconClear/index.js +6 -5
  430. package/esm/icon/IconClose/index.js +6 -5
  431. package/esm/icon/IconCloseBold/index.js +6 -5
  432. package/esm/icon/IconDelete/index.js +6 -5
  433. package/esm/icon/IconEdit/index.js +6 -5
  434. package/esm/icon/IconErrorCircle/index.js +6 -5
  435. package/esm/icon/IconEyeInvisible/index.js +6 -5
  436. package/esm/icon/IconEyeVisible/index.js +6 -5
  437. package/esm/icon/IconEyelashInvisible/index.js +6 -5
  438. package/esm/icon/IconGift/index.js +6 -5
  439. package/esm/icon/IconHeart/index.js +6 -5
  440. package/esm/icon/IconHome/index.js +6 -5
  441. package/esm/icon/IconLikeCircle/index.js +6 -5
  442. package/esm/icon/IconMinus/index.js +6 -5
  443. package/esm/icon/IconMore/index.js +6 -5
  444. package/esm/icon/IconNotice/index.js +6 -5
  445. package/esm/icon/IconNoticeOff/index.js +6 -5
  446. package/esm/icon/IconPicture/index.js +6 -5
  447. package/esm/icon/IconPlay/index.js +6 -5
  448. package/esm/icon/IconQuestionCircle/index.js +6 -5
  449. package/esm/icon/IconRefresh/index.js +6 -5
  450. package/esm/icon/IconSad/index.js +6 -5
  451. package/esm/icon/IconScan/index.js +6 -5
  452. package/esm/icon/IconSearch/index.js +6 -5
  453. package/esm/icon/IconSetting/index.js +6 -5
  454. package/esm/icon/IconShop/index.js +6 -5
  455. package/esm/icon/IconShopping/index.js +6 -5
  456. package/esm/icon/IconSmileFill/index.js +6 -5
  457. package/esm/icon/IconSound/index.js +6 -5
  458. package/esm/icon/IconSquareChecked/index.js +6 -5
  459. package/esm/icon/IconSquareDisabled/index.js +6 -5
  460. package/esm/icon/IconSquareUnchecked/index.js +6 -5
  461. package/esm/icon/IconStar/index.js +6 -5
  462. package/esm/icon/IconStarFill/index.js +6 -5
  463. package/esm/icon/IconStarHalf/index.js +6 -5
  464. package/esm/icon/IconSubway/index.js +6 -5
  465. package/esm/icon/IconSuccessCircle/index.js +6 -5
  466. package/esm/icon/IconTriDown/index.js +6 -5
  467. package/esm/icon/IconTriUp/index.js +6 -5
  468. package/esm/icon/IconUpload/index.js +6 -5
  469. package/esm/icon/IconUser/index.js +6 -5
  470. package/esm/icon/IconUserFill/index.js +6 -5
  471. package/esm/icon/IconWarnCircle/index.js +6 -5
  472. package/esm/icon/IconWarnCircleFill/index.js +6 -5
  473. package/esm/image/index.js +84 -57
  474. package/esm/image/style/css/index.css +1 -0
  475. package/esm/image/style/index.less +1 -0
  476. package/esm/image-picker/index.js +80 -52
  477. package/esm/image-preview/index.d.ts +2 -2
  478. package/esm/image-preview/index.js +217 -119
  479. package/esm/image-preview/methods.js +14 -4
  480. package/esm/index.d.ts +10 -9
  481. package/esm/index.js +10 -9
  482. package/esm/input/demo/style/css/mobile.css +5 -1
  483. package/esm/input/demo/style/mobile.less +2 -2
  484. package/esm/input/hooks.js +96 -42
  485. package/esm/input/index.js +30 -26
  486. package/esm/input/props.d.ts +6 -0
  487. package/esm/input/style/css/index.css +9 -0
  488. package/esm/input/style/index.less +2 -2
  489. package/esm/load-more/index.js +48 -29
  490. package/esm/loading/index.js +40 -19
  491. package/esm/masking/index.d.ts +2 -2
  492. package/esm/masking/index.js +64 -46
  493. package/esm/masking/methods.js +15 -4
  494. package/esm/nav-bar/back-icon.js +3 -1
  495. package/esm/nav-bar/index.js +52 -37
  496. package/esm/notice-bar/index.js +56 -35
  497. package/esm/notice-bar/style/css/index.css +33 -0
  498. package/esm/notice-bar/style/index.less +16 -3
  499. package/esm/notify/index.d.ts +8 -8
  500. package/esm/notify/index.js +33 -20
  501. package/esm/notify/methods.js +13 -2
  502. package/esm/pagination/index.js +50 -27
  503. package/esm/picker/index.js +66 -40
  504. package/esm/picker-view/components/cascader.js +23 -14
  505. package/esm/picker-view/components/multi-picker.js +16 -6
  506. package/esm/picker-view/components/picker-cell.js +89 -45
  507. package/esm/picker-view/index.js +54 -25
  508. package/esm/popover/hooks/useEvent.js +41 -26
  509. package/esm/popover/hooks/usePosition.js +144 -94
  510. package/esm/popover/index.js +2 -2
  511. package/esm/popover/menu.js +41 -32
  512. package/esm/popover/popover-inner.js +38 -30
  513. package/esm/popover/popover.js +90 -69
  514. package/esm/popup/index.d.ts +2 -2
  515. package/esm/popup/index.js +25 -22
  516. package/esm/popup-swiper/index.d.ts +2 -2
  517. package/esm/popup-swiper/index.js +64 -38
  518. package/esm/portal/index.js +5 -3
  519. package/esm/progress/index.js +36 -27
  520. package/esm/pull-refresh/android-pull-refresh.js +90 -58
  521. package/esm/pull-refresh/hooks.js +23 -11
  522. package/esm/pull-refresh/index.js +5 -3
  523. package/esm/pull-refresh/ios-pull-refresh.js +68 -53
  524. package/esm/pull-refresh/model.js +1 -0
  525. package/esm/radio/group.js +24 -20
  526. package/esm/radio/index.js +2 -2
  527. package/esm/rate/index.js +39 -24
  528. package/esm/search-bar/association.js +27 -14
  529. package/esm/search-bar/cancel-button.js +11 -8
  530. package/esm/search-bar/highlight.js +20 -14
  531. package/esm/search-bar/index.js +86 -77
  532. package/esm/show-monitor/index.js +85 -34
  533. package/esm/slider/hooks/useSliderEvents.js +51 -26
  534. package/esm/slider/hooks/useSliderIcon.js +13 -6
  535. package/esm/slider/hooks/useSliderInit.js +46 -32
  536. package/esm/slider/hooks/useSliderStyle.js +20 -12
  537. package/esm/slider/index.js +62 -46
  538. package/esm/slider/marks.js +18 -12
  539. package/esm/slider/popover.js +6 -4
  540. package/esm/slider/thumb.js +15 -8
  541. package/esm/stepper/hooks/useButtonClick.js +27 -19
  542. package/esm/stepper/hooks/useInputEvent.js +16 -9
  543. package/esm/stepper/hooks/useValue.js +12 -9
  544. package/esm/stepper/index.js +82 -82
  545. package/esm/steps/index.js +27 -22
  546. package/esm/steps/step.js +19 -10
  547. package/esm/sticky/index.js +56 -36
  548. package/esm/style.d.ts +9 -8
  549. package/esm/style.js +9 -8
  550. package/esm/swipe-action/index.js +80 -40
  551. package/esm/swipe-action/item.js +12 -9
  552. package/esm/swipe-load/index.js +75 -56
  553. package/esm/switch/index.js +39 -27
  554. package/esm/tab-bar/index.js +1 -0
  555. package/esm/tab-bar/item.js +13 -6
  556. package/esm/tab-bar/tab-bar.js +21 -15
  557. package/esm/tabs/index.js +183 -130
  558. package/esm/tabs/tab-cell-underline.js +103 -38
  559. package/esm/tabs/tab-cell.js +114 -70
  560. package/esm/tabs/tab-pane.js +85 -49
  561. package/esm/tabs/type.d.ts +18 -2
  562. package/esm/tag/index.js +2 -2
  563. package/esm/tag/list.js +16 -11
  564. package/esm/tag/tag.js +22 -20
  565. package/esm/textarea/index.js +46 -35
  566. package/esm/toast/index.d.ts +12 -12
  567. package/esm/toast/index.js +42 -26
  568. package/esm/toast/methods.js +12 -2
  569. package/esm/transition/index.js +12 -10
  570. package/package.json +3 -3
  571. package/tokens/app/arcodesign/default/css-variables.less +8 -0
  572. package/tokens/app/arcodesign/default/index.d.ts +8 -0
  573. package/tokens/app/arcodesign/default/index.js +11 -1
  574. package/tokens/app/arcodesign/default/index.json +94 -0
  575. package/tokens/app/arcodesign/default/index.less +8 -0
  576. package/tokens/mixin/index.less +19 -1
  577. package/umd/_helpers/hooks.js +121 -43
  578. package/umd/_helpers/index.js +6 -2
  579. package/umd/_helpers/react-dom.js +11 -0
  580. package/umd/_helpers/render.js +9 -0
  581. package/umd/action-sheet/index.d.ts +2 -2
  582. package/umd/action-sheet/index.js +22 -10
  583. package/umd/action-sheet/methods.js +1 -0
  584. package/umd/avatar/group.js +20 -12
  585. package/umd/avatar/index.js +68 -51
  586. package/umd/badge/index.js +25 -18
  587. package/umd/button/hooks.js +19 -15
  588. package/umd/button/index.js +60 -46
  589. package/umd/carousel/index.d.ts +6 -0
  590. package/umd/carousel/index.js +337 -184
  591. package/umd/carousel/style/css/index.css +50 -15
  592. package/umd/carousel/style/index.less +19 -14
  593. package/umd/cell/arrow.js +2 -0
  594. package/umd/cell/cell.js +18 -14
  595. package/umd/cell/demo/style/css/mobile.css +8 -0
  596. package/umd/cell/demo/style/mobile.less +2 -2
  597. package/umd/cell/group.js +17 -9
  598. package/umd/cell/index.js +2 -1
  599. package/umd/cell/style/css/index.css +16 -0
  600. package/umd/cell/style/index.less +6 -4
  601. package/umd/checkbox/checkbox.js +45 -31
  602. package/umd/checkbox/group.js +34 -24
  603. package/umd/checkbox/hooks/useMergeProps.js +12 -7
  604. package/umd/checkbox/index.js +3 -1
  605. package/umd/checkbox/type.js +2 -0
  606. package/umd/circle-progress/index.js +52 -37
  607. package/umd/collapse/collapse.js +50 -27
  608. package/umd/collapse/group.js +38 -20
  609. package/umd/collapse/index.js +3 -0
  610. package/umd/collapse/utils.js +5 -0
  611. package/umd/context-provider/index.d.ts +6 -0
  612. package/umd/context-provider/index.js +25 -11
  613. package/umd/count-down/hooks.js +39 -24
  614. package/umd/count-down/index.js +31 -29
  615. package/umd/count-down/singleton.js +10 -2
  616. package/umd/count-down/util.js +47 -33
  617. package/umd/date-picker/helper.js +13 -7
  618. package/umd/date-picker/index.js +97 -42
  619. package/umd/dialog/index.d.ts +2 -2
  620. package/umd/dialog/index.js +44 -28
  621. package/umd/dialog/methods.js +18 -9
  622. package/umd/divider/demo/style/css/mobile.css +7 -0
  623. package/umd/divider/demo/style/mobile.less +12 -0
  624. package/umd/divider/index.d.ts +49 -0
  625. package/umd/divider/index.js +71 -0
  626. package/umd/divider/style/css/index.css +69 -0
  627. package/umd/divider/style/css/index.d.ts +2 -0
  628. package/umd/divider/style/css/index.js +15 -0
  629. package/umd/divider/style/index.d.ts +2 -0
  630. package/umd/divider/style/index.js +15 -0
  631. package/umd/divider/style/index.less +66 -0
  632. package/umd/dropdown/dropdown.js +106 -74
  633. package/umd/dropdown/index.js +3 -1
  634. package/umd/dropdown/options.js +24 -12
  635. package/umd/dropdown-menu/dropdown-menu.js +78 -49
  636. package/umd/dropdown-menu/helper.js +25 -6
  637. package/umd/dropdown-menu/index.js +2 -0
  638. package/umd/ellipsis/components/js-ellipsis.js +69 -33
  639. package/umd/ellipsis/components/native-ellipsis.js +13 -9
  640. package/umd/ellipsis/index.js +24 -19
  641. package/umd/ellipsis/utils/dom.js +8 -0
  642. package/umd/ellipsis/utils/is.js +5 -1
  643. package/umd/form/form-item-context.js +3 -0
  644. package/umd/form/form-item.js +114 -42
  645. package/umd/form/index.js +25 -17
  646. package/umd/form/type.js +3 -0
  647. package/umd/form/useForm.js +72 -18
  648. package/umd/form/utils.js +10 -3
  649. package/umd/grid/index.js +37 -21
  650. package/umd/icon/IconAdd/index.js +7 -5
  651. package/umd/icon/IconArrowBack/index.js +7 -5
  652. package/umd/icon/IconArrowDown/index.js +7 -5
  653. package/umd/icon/IconArrowIn/index.js +7 -5
  654. package/umd/icon/IconArrowUp/index.js +7 -5
  655. package/umd/icon/IconCheck/index.js +7 -5
  656. package/umd/icon/IconCheckBold/index.js +7 -5
  657. package/umd/icon/IconCircleChecked/index.js +7 -5
  658. package/umd/icon/IconCircleDisabled/index.js +7 -5
  659. package/umd/icon/IconCircleUnchecked/index.js +7 -5
  660. package/umd/icon/IconClear/index.js +7 -5
  661. package/umd/icon/IconClose/index.js +7 -5
  662. package/umd/icon/IconCloseBold/index.js +7 -5
  663. package/umd/icon/IconDelete/index.js +7 -5
  664. package/umd/icon/IconEdit/index.js +7 -5
  665. package/umd/icon/IconErrorCircle/index.js +7 -5
  666. package/umd/icon/IconEyeInvisible/index.js +7 -5
  667. package/umd/icon/IconEyeVisible/index.js +7 -5
  668. package/umd/icon/IconEyelashInvisible/index.js +7 -5
  669. package/umd/icon/IconGift/index.js +7 -5
  670. package/umd/icon/IconHeart/index.js +7 -5
  671. package/umd/icon/IconHome/index.js +7 -5
  672. package/umd/icon/IconLikeCircle/index.js +7 -5
  673. package/umd/icon/IconMinus/index.js +7 -5
  674. package/umd/icon/IconMore/index.js +7 -5
  675. package/umd/icon/IconNotice/index.js +7 -5
  676. package/umd/icon/IconNoticeOff/index.js +7 -5
  677. package/umd/icon/IconPicture/index.js +7 -5
  678. package/umd/icon/IconPlay/index.js +7 -5
  679. package/umd/icon/IconQuestionCircle/index.js +7 -5
  680. package/umd/icon/IconRefresh/index.js +7 -5
  681. package/umd/icon/IconSad/index.js +7 -5
  682. package/umd/icon/IconScan/index.js +7 -5
  683. package/umd/icon/IconSearch/index.js +7 -5
  684. package/umd/icon/IconSetting/index.js +7 -5
  685. package/umd/icon/IconShop/index.js +7 -5
  686. package/umd/icon/IconShopping/index.js +7 -5
  687. package/umd/icon/IconSmileFill/index.js +7 -5
  688. package/umd/icon/IconSound/index.js +7 -5
  689. package/umd/icon/IconSquareChecked/index.js +7 -5
  690. package/umd/icon/IconSquareDisabled/index.js +7 -5
  691. package/umd/icon/IconSquareUnchecked/index.js +7 -5
  692. package/umd/icon/IconStar/index.js +7 -5
  693. package/umd/icon/IconStarFill/index.js +7 -5
  694. package/umd/icon/IconStarHalf/index.js +7 -5
  695. package/umd/icon/IconSubway/index.js +7 -5
  696. package/umd/icon/IconSuccessCircle/index.js +7 -5
  697. package/umd/icon/IconTriDown/index.js +7 -5
  698. package/umd/icon/IconTriUp/index.js +7 -5
  699. package/umd/icon/IconUpload/index.js +7 -5
  700. package/umd/icon/IconUser/index.js +7 -5
  701. package/umd/icon/IconUserFill/index.js +7 -5
  702. package/umd/icon/IconWarnCircle/index.js +7 -5
  703. package/umd/icon/IconWarnCircleFill/index.js +7 -5
  704. package/umd/icon/index.js +1 -0
  705. package/umd/image/index.js +86 -56
  706. package/umd/image/style/css/index.css +1 -0
  707. package/umd/image/style/index.less +1 -0
  708. package/umd/image-picker/add-icon.js +2 -0
  709. package/umd/image-picker/index.js +85 -52
  710. package/umd/image-preview/index.d.ts +2 -2
  711. package/umd/image-preview/index.js +224 -119
  712. package/umd/image-preview/methods.js +15 -5
  713. package/umd/index.d.ts +10 -9
  714. package/umd/index.js +26 -23
  715. package/umd/input/demo/style/css/mobile.css +5 -1
  716. package/umd/input/demo/style/mobile.less +2 -2
  717. package/umd/input/hooks.js +100 -42
  718. package/umd/input/index.js +35 -26
  719. package/umd/input/props.d.ts +6 -0
  720. package/umd/input/style/css/index.css +9 -0
  721. package/umd/input/style/index.less +2 -2
  722. package/umd/load-more/index.js +51 -29
  723. package/umd/loading/index.js +43 -19
  724. package/umd/masking/index.d.ts +2 -2
  725. package/umd/masking/index.js +71 -46
  726. package/umd/masking/methods.js +16 -4
  727. package/umd/nav-bar/back-icon.js +4 -1
  728. package/umd/nav-bar/index.js +55 -37
  729. package/umd/notice-bar/index.js +57 -33
  730. package/umd/notice-bar/style/css/index.css +33 -0
  731. package/umd/notice-bar/style/index.less +16 -3
  732. package/umd/notify/index.d.ts +8 -8
  733. package/umd/notify/index.js +40 -20
  734. package/umd/notify/methods.js +14 -2
  735. package/umd/pagination/arrow.js +2 -0
  736. package/umd/pagination/index.js +53 -27
  737. package/umd/picker/index.js +70 -40
  738. package/umd/picker-view/components/cascader.js +27 -14
  739. package/umd/picker-view/components/multi-picker.js +19 -6
  740. package/umd/picker-view/components/picker-cell.js +93 -45
  741. package/umd/picker-view/index.js +58 -25
  742. package/umd/popover/hooks/useEvent.js +44 -25
  743. package/umd/popover/hooks/usePosition.js +145 -94
  744. package/umd/popover/index.js +3 -1
  745. package/umd/popover/menu.js +45 -32
  746. package/umd/popover/popover-inner.js +42 -30
  747. package/umd/popover/popover.js +94 -69
  748. package/umd/popup/index.d.ts +2 -2
  749. package/umd/popup/index.js +31 -22
  750. package/umd/popup/methods.js +1 -0
  751. package/umd/popup-swiper/index.d.ts +2 -2
  752. package/umd/popup-swiper/index.js +71 -38
  753. package/umd/popup-swiper/methods.js +1 -0
  754. package/umd/portal/index.js +6 -3
  755. package/umd/progress/index.js +39 -27
  756. package/umd/pull-refresh/android-pull-refresh.js +93 -58
  757. package/umd/pull-refresh/hooks.js +29 -11
  758. package/umd/pull-refresh/index.js +7 -3
  759. package/umd/pull-refresh/ios-pull-refresh.js +72 -53
  760. package/umd/pull-refresh/model.js +1 -0
  761. package/umd/radio/group.js +30 -20
  762. package/umd/radio/index.js +3 -1
  763. package/umd/radio/radio.js +5 -0
  764. package/umd/rate/index.js +44 -24
  765. package/umd/search-bar/association.js +29 -14
  766. package/umd/search-bar/cancel-button.js +14 -8
  767. package/umd/search-bar/highlight.js +21 -14
  768. package/umd/search-bar/index.js +87 -77
  769. package/umd/show-monitor/index.js +89 -34
  770. package/umd/slider/hooks/index.js +4 -0
  771. package/umd/slider/hooks/useSliderEvents.js +52 -26
  772. package/umd/slider/hooks/useSliderIcon.js +17 -6
  773. package/umd/slider/hooks/useSliderInit.js +50 -32
  774. package/umd/slider/hooks/useSliderStyle.js +22 -12
  775. package/umd/slider/index.js +65 -46
  776. package/umd/slider/marks.js +21 -12
  777. package/umd/slider/popover.js +10 -4
  778. package/umd/slider/thumb.js +18 -8
  779. package/umd/stepper/hooks/useButtonClick.js +27 -19
  780. package/umd/stepper/hooks/useInputEvent.js +17 -9
  781. package/umd/stepper/hooks/useValue.js +13 -9
  782. package/umd/stepper/index.js +87 -82
  783. package/umd/steps/index.js +32 -22
  784. package/umd/steps/step.js +22 -10
  785. package/umd/sticky/index.js +59 -36
  786. package/umd/style.d.ts +9 -8
  787. package/umd/style.js +4 -4
  788. package/umd/swipe-action/index.js +84 -40
  789. package/umd/swipe-action/item.js +14 -9
  790. package/umd/swipe-load/index.js +77 -55
  791. package/umd/switch/index.js +43 -27
  792. package/umd/tab-bar/index.js +2 -0
  793. package/umd/tab-bar/item.js +19 -6
  794. package/umd/tab-bar/tab-bar.js +26 -15
  795. package/umd/tabs/index.js +186 -129
  796. package/umd/tabs/tab-cell-underline.js +107 -38
  797. package/umd/tabs/tab-cell.js +119 -70
  798. package/umd/tabs/tab-pane.js +89 -49
  799. package/umd/tabs/type.d.ts +18 -2
  800. package/umd/tag/index.js +3 -1
  801. package/umd/tag/list.js +20 -11
  802. package/umd/tag/tag.js +26 -20
  803. package/umd/textarea/index.js +51 -35
  804. package/umd/toast/index.d.ts +12 -12
  805. package/umd/toast/index.js +49 -26
  806. package/umd/toast/methods.js +13 -2
  807. package/umd/transition/index.js +12 -10
@@ -1,15 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  exports.__esModule = true;
5
6
  exports.default = void 0;
7
+
6
8
  var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
7
10
  var _react = _interopRequireWildcard(require("react"));
11
+
8
12
  var _mobileUtils = require("@arco-design/mobile-utils");
13
+
9
14
  var _contextProvider = require("../context-provider");
15
+
10
16
  var _helpers = require("../_helpers");
17
+
11
18
  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); }
19
+
12
20
  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; }
21
+
13
22
  /**
14
23
  * 轮播组件,支持自定义轮播索引样式及滑块宽度。**需要注意的是,如果正使用`fastclick`,需要为 touchstart 的 target 添加`needsclick`类**(<a href="https://github.com/ftlabs/fastclick#ignore-certain-elements-with-needsclick" target="_blank">详情戳这里</a>),以规避`fastclick`逻辑与组件内部的手势冲突。(如果使用了`list`属性则无需额外添加)
15
24
  * @en Carousel component, supports custom carousel index style and slider width. **Note that if you are using `fastclick`, you need to add a `needsclick` class to the touchstart target ** (<a href="https://github.com/ftlabs/fastclick#ignore-certain-elements- with-needsclick" target="_blank">click here for details</a>) to avoid `fastclick` logic conflicts with gestures inside the component. (no need to add if `list` is set)
@@ -20,90 +29,97 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
20
29
  */
21
30
  var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
22
31
  var className = props.className,
23
- wrapStyle = props.wrapStyle,
24
- style = props.style,
25
- children = props.children,
26
- _props$list = props.list,
27
- list = _props$list === void 0 ? [] : _props$list,
28
- _props$animateDuratio = props.animateDuration,
29
- animateDuration = _props$animateDuratio === void 0 ? 500 : _props$animateDuratio,
30
- _props$animateDuratio2 = props.animateDurationSlide,
31
- animateDurationSlide = _props$animateDuratio2 === void 0 ? 300 : _props$animateDuratio2,
32
- _props$loop = props.loop,
33
- loop = _props$loop === void 0 ? true : _props$loop,
34
- _props$autoPlay = props.autoPlay,
35
- autoPlay = _props$autoPlay === void 0 ? true : _props$autoPlay,
36
- _props$autoPlayDirect = props.autoPlayDirection,
37
- autoPlayDirection = _props$autoPlayDirect === void 0 ? 'normal' : _props$autoPlayDirect,
38
- _props$swipeable = props.swipeable,
39
- swipeable = _props$swipeable === void 0 ? true : _props$swipeable,
40
- _props$stayDuration = props.stayDuration,
41
- stayDuration = _props$stayDuration === void 0 ? 4000 : _props$stayDuration,
42
- boxWidth = props.boxWidth,
43
- boxHeight = props.boxHeight,
44
- baseBoxWidth = props.baseBoxWidth,
45
- baseBoxHeight = props.baseBoxHeight,
46
- _props$width = props.width,
47
- width = _props$width === void 0 ? 0 : _props$width,
48
- height = props.height,
49
- _props$initialIndex = props.initialIndex,
50
- initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,
51
- renderIndicator = props.renderIndicator,
52
- _props$indicatorPos = props.indicatorPos,
53
- indicatorPos = _props$indicatorPos === void 0 ? 'center' : _props$indicatorPos,
54
- _props$indicatorVerti = props.indicatorVerticalPos,
55
- indicatorVerticalPos = _props$indicatorVerti === void 0 ? 'left' : _props$indicatorVerti,
56
- indicatorOutside = props.indicatorOutside,
57
- _props$showIndicator = props.showIndicator,
58
- showIndicator = _props$showIndicator === void 0 ? true : _props$showIndicator,
59
- _props$hideSingleIndi = props.hideSingleIndicator,
60
- hideSingleIndicator = _props$hideSingleIndi === void 0 ? true : _props$hideSingleIndi,
61
- _props$indicatorType = props.indicatorType,
62
- indicatorType = _props$indicatorType === void 0 ? 'square' : _props$indicatorType,
63
- _props$indicatorClass = props.indicatorClass,
64
- indicatorClass = _props$indicatorClass === void 0 ? '' : _props$indicatorClass,
65
- indicatorInverse = props.indicatorInverse,
66
- _props$spaceBetween = props.spaceBetween,
67
- spaceBetween = _props$spaceBetween === void 0 ? 0 : _props$spaceBetween,
68
- _props$offsetBetween = props.offsetBetween,
69
- offsetBetween = _props$offsetBetween === void 0 ? 0 : _props$offsetBetween,
70
- currentIndex = props.currentIndex,
71
- _props$autoHeight = props.autoHeight,
72
- autoHeight = _props$autoHeight === void 0 ? false : _props$autoHeight,
73
- _props$percentToChang = props.percentToChange,
74
- percentToChange = _props$percentToChang === void 0 ? 0.3 : _props$percentToChang,
75
- _props$distanceToChan = props.distanceToChange,
76
- distanceToChange = _props$distanceToChan === void 0 ? 10 : _props$distanceToChan,
77
- _props$speedToChange = props.speedToChange,
78
- speedToChange = _props$speedToChange === void 0 ? 100 : _props$speedToChange,
79
- vertical = props.vertical,
80
- lazyloadCount = props.lazyloadCount,
81
- _props$inactiveScale = props.inactiveScale,
82
- inactiveScale = _props$inactiveScale === void 0 ? 1 : _props$inactiveScale,
83
- _props$stopPropagatio = props.stopPropagation,
84
- stopPropagation = _props$stopPropagatio === void 0 ? true : _props$stopPropagatio,
85
- _props$fakeItem = props.fakeItem,
86
- fakeItem = _props$fakeItem === void 0 ? false : _props$fakeItem,
87
- _props$allowEndBlank = props.allowEndBlank,
88
- allowEndBlank = _props$allowEndBlank === void 0 ? false : _props$allowEndBlank,
89
- _props$bounceWhenNoLo = props.bounceWhenNoLoop,
90
- bounceWhenNoLoop = _props$bounceWhenNoLo === void 0 ? false : _props$bounceWhenNoLo,
91
- _props$bounceDampRate = props.bounceDampRate,
92
- bounceDampRate = _props$bounceDampRate === void 0 ? 3 : _props$bounceDampRate,
93
- distanceProcessor = props.distanceProcessor,
94
- getInnerScrollContainer = props.getInnerScrollContainer,
95
- onChange = props.onChange,
96
- onAfterChange = props.onAfterChange,
97
- onTouchStart = props.onTouchStart,
98
- onTouchMove = props.onTouchMove,
99
- onTouchEnd = props.onTouchEnd,
100
- onTransitionStart = props.onTransitionStart,
101
- onTransitionEnd = props.onTransitionEnd,
102
- onDistanceChange = props.onDistanceChange,
103
- _props$stopTouchThres = props.stopTouchThreshold,
104
- stopTouchThreshold = _props$stopTouchThres === void 0 ? 0 : _props$stopTouchThres,
105
- onTouchStopped = props.onTouchStopped,
106
- onPageVisibleChange = props.onPageVisibleChange;
32
+ wrapStyle = props.wrapStyle,
33
+ style = props.style,
34
+ children = props.children,
35
+ _props$list = props.list,
36
+ list = _props$list === void 0 ? [] : _props$list,
37
+ _props$animateDuratio = props.animateDuration,
38
+ animateDuration = _props$animateDuratio === void 0 ? 500 : _props$animateDuratio,
39
+ _props$animateDuratio2 = props.animateDurationSlide,
40
+ animateDurationSlide = _props$animateDuratio2 === void 0 ? 300 : _props$animateDuratio2,
41
+ _props$loop = props.loop,
42
+ loop = _props$loop === void 0 ? true : _props$loop,
43
+ _props$autoPlay = props.autoPlay,
44
+ autoPlay = _props$autoPlay === void 0 ? true : _props$autoPlay,
45
+ _props$autoPlayDirect = props.autoPlayDirection,
46
+ autoPlayDirection = _props$autoPlayDirect === void 0 ? 'normal' : _props$autoPlayDirect,
47
+ _props$swipeable = props.swipeable,
48
+ swipeable = _props$swipeable === void 0 ? true : _props$swipeable,
49
+ _props$stayDuration = props.stayDuration,
50
+ stayDuration = _props$stayDuration === void 0 ? 4000 : _props$stayDuration,
51
+ boxWidth = props.boxWidth,
52
+ boxHeight = props.boxHeight,
53
+ baseBoxWidth = props.baseBoxWidth,
54
+ baseBoxHeight = props.baseBoxHeight,
55
+ _props$width = props.width,
56
+ width = _props$width === void 0 ? 0 : _props$width,
57
+ height = props.height,
58
+ _props$initialIndex = props.initialIndex,
59
+ initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,
60
+ renderIndicator = props.renderIndicator,
61
+ _props$indicatorPos = props.indicatorPos,
62
+ indicatorPos = _props$indicatorPos === void 0 ? 'center' : _props$indicatorPos,
63
+ _props$indicatorVerti = props.indicatorVerticalPos,
64
+ indicatorVerticalPos = _props$indicatorVerti === void 0 ? 'left' : _props$indicatorVerti,
65
+ indicatorOutside = props.indicatorOutside,
66
+ _props$showIndicator = props.showIndicator,
67
+ showIndicator = _props$showIndicator === void 0 ? true : _props$showIndicator,
68
+ _props$hideSingleIndi = props.hideSingleIndicator,
69
+ hideSingleIndicator = _props$hideSingleIndi === void 0 ? true : _props$hideSingleIndi,
70
+ _props$indicatorType = props.indicatorType,
71
+ indicatorType = _props$indicatorType === void 0 ? 'square' : _props$indicatorType,
72
+ _props$indicatorClass = props.indicatorClass,
73
+ indicatorClass = _props$indicatorClass === void 0 ? '' : _props$indicatorClass,
74
+ indicatorInverse = props.indicatorInverse,
75
+ _props$spaceBetween = props.spaceBetween,
76
+ spaceBetween = _props$spaceBetween === void 0 ? 0 : _props$spaceBetween,
77
+ _props$offsetBetween = props.offsetBetween,
78
+ offsetBetween = _props$offsetBetween === void 0 ? 0 : _props$offsetBetween,
79
+ currentIndex = props.currentIndex,
80
+ _props$autoHeight = props.autoHeight,
81
+ autoHeight = _props$autoHeight === void 0 ? false : _props$autoHeight,
82
+ _props$percentToChang = props.percentToChange,
83
+ percentToChange = _props$percentToChang === void 0 ? 0.3 : _props$percentToChang,
84
+ _props$distanceToChan = props.distanceToChange,
85
+ distanceToChange = _props$distanceToChan === void 0 ? 10 : _props$distanceToChan,
86
+ _props$speedToChange = props.speedToChange,
87
+ speedToChange = _props$speedToChange === void 0 ? 100 : _props$speedToChange,
88
+ vertical = props.vertical,
89
+ lazyloadCount = props.lazyloadCount,
90
+ _props$inactiveScale = props.inactiveScale,
91
+ inactiveScale = _props$inactiveScale === void 0 ? 1 : _props$inactiveScale,
92
+ _props$stopPropagatio = props.stopPropagation,
93
+ stopPropagation = _props$stopPropagatio === void 0 ? true : _props$stopPropagatio,
94
+ _props$fakeItem = props.fakeItem,
95
+ fakeItem = _props$fakeItem === void 0 ? false : _props$fakeItem,
96
+ _props$allowEndBlank = props.allowEndBlank,
97
+ allowEndBlank = _props$allowEndBlank === void 0 ? false : _props$allowEndBlank,
98
+ _props$bounceWhenNoLo = props.bounceWhenNoLoop,
99
+ bounceWhenNoLoop = _props$bounceWhenNoLo === void 0 ? false : _props$bounceWhenNoLo,
100
+ _props$bounceDampRate = props.bounceDampRate,
101
+ bounceDampRate = _props$bounceDampRate === void 0 ? 3 : _props$bounceDampRate,
102
+ _props$iOSVisibleOpti = props.iOSVisibleOptimize,
103
+ iOSVisibleOptimize = _props$iOSVisibleOpti === void 0 ? true : _props$iOSVisibleOpti,
104
+ distanceProcessor = props.distanceProcessor,
105
+ getInnerScrollContainer = props.getInnerScrollContainer,
106
+ onChange = props.onChange,
107
+ onAfterChange = props.onAfterChange,
108
+ onTouchStart = props.onTouchStart,
109
+ onTouchMove = props.onTouchMove,
110
+ onTouchEnd = props.onTouchEnd,
111
+ onTransitionStart = props.onTransitionStart,
112
+ onTransitionEnd = props.onTransitionEnd,
113
+ onDistanceChange = props.onDistanceChange,
114
+ _props$stopTouchThres = props.stopTouchThreshold,
115
+ stopTouchThreshold = _props$stopTouchThres === void 0 ? 0 : _props$stopTouchThres,
116
+ onTouchStopped = props.onTouchStopped,
117
+ onPageVisibleChange = props.onPageVisibleChange;
118
+
119
+ var _useContext = (0, _react.useContext)(_contextProvider.GlobalContext),
120
+ useRtl = _useContext.useRtl;
121
+
122
+ var horizontalUseRtl = !vertical && useRtl;
107
123
  var domRef = (0, _react.useRef)(null);
108
124
  var wrapRef = (0, _react.useRef)(null);
109
125
  var innerRef = (0, _react.useRef)(null);
@@ -114,57 +130,75 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
114
130
  var touchStartTimeRef = (0, _react.useRef)(0);
115
131
  var touchStartedRef = (0, _react.useRef)(false);
116
132
  var touchMovedRef = (0, _react.useRef)(false);
133
+
117
134
  var _useState = (0, _react.useState)(baseBoxWidth || 0),
118
- wrapWidth = _useState[0],
119
- setWrapWidth = _useState[1];
135
+ wrapWidth = _useState[0],
136
+ setWrapWidth = _useState[1];
137
+
120
138
  var _useState2 = (0, _react.useState)(baseBoxHeight || 0),
121
- wrapHeight = _useState2[0],
122
- setWrapHeight = _useState2[1];
139
+ wrapHeight = _useState2[0],
140
+ setWrapHeight = _useState2[1];
141
+
123
142
  var touchStartXRef = (0, _react.useRef)(0);
124
143
  var touchStartYRef = (0, _react.useRef)(0);
125
144
  var scrollingRef = (0, _react.useRef)(null);
126
145
  var touchStoppedRef = (0, _react.useRef)(false);
127
146
  var bouncingRef = (0, _react.useRef)(false);
147
+
128
148
  var _useState3 = (0, _react.useState)('auto'),
129
- currentItemHeight = _useState3[0],
130
- setCurrentItemHeight = _useState3[1];
149
+ currentItemHeight = _useState3[0],
150
+ setCurrentItemHeight = _useState3[1];
151
+
131
152
  var _useRefState = (0, _helpers.useRefState)(false),
132
- posAdjusting = _useRefState[0],
133
- posAdjustingRef = _useRefState[1],
134
- setPosAdjusting = _useRefState[2];
153
+ posAdjusting = _useRefState[0],
154
+ posAdjustingRef = _useRefState[1],
155
+ setPosAdjusting = _useRefState[2];
156
+
135
157
  var _useRefState2 = (0, _helpers.useRefState)(0),
136
- distance = _useRefState2[0],
137
- distanceRef = _useRefState2[1],
138
- setDistance = _useRefState2[2];
158
+ distance = _useRefState2[0],
159
+ distanceRef = _useRefState2[1],
160
+ setDistance = _useRefState2[2];
161
+
139
162
  var _useState4 = (0, _react.useState)(true),
140
- isAutoJump = _useState4[0],
141
- setIsAutoJump = _useState4[1];
163
+ isAutoJump = _useState4[0],
164
+ setIsAutoJump = _useState4[1];
165
+
142
166
  var _useRefState3 = (0, _helpers.useRefState)(currentIndex !== void 0 ? currentIndex : initialIndex),
143
- index = _useRefState3[0],
144
- indexRef = _useRefState3[1],
145
- setIndex = _useRefState3[2];
167
+ index = _useRefState3[0],
168
+ indexRef = _useRefState3[1],
169
+ setIndex = _useRefState3[2];
170
+
146
171
  var _useRefState4 = (0, _helpers.useRefState)([]),
147
- transforms = _useRefState4[0],
148
- transformsRef = _useRefState4[1],
149
- setTransforms = _useRefState4[2];
150
- var _useRefState5 = (0, _helpers.useRefState)(autoPlayDirection === 'reverse' && autoPlay ? 'right' : 'left'),
151
- direction = _useRefState5[0],
152
- directionRef = _useRefState5[1],
153
- setStateDirection = _useRefState5[2];
172
+ transforms = _useRefState4[0],
173
+ transformsRef = _useRefState4[1],
174
+ setTransforms = _useRefState4[2];
175
+
176
+ var _useRefState5 = (0, _helpers.useRefState)((autoPlayDirection === 'reverse' || horizontalUseRtl) && autoPlay ? 'right' : 'left'),
177
+ direction = _useRefState5[0],
178
+ directionRef = _useRefState5[1],
179
+ setStateDirection = _useRefState5[2];
180
+
154
181
  var lastDirectionRef = (0, _react.useRef)('');
155
182
  var lastShownIndexRef = (0, _react.useRef)(-1);
183
+
156
184
  var _getAllChildren = getAllChildren(),
157
- allChildren = _getAllChildren.allChildren,
158
- fakeTwoChildren = _getAllChildren.fakeTwoChildren;
185
+ allChildren = _getAllChildren.allChildren,
186
+ fakeTwoChildren = _getAllChildren.fakeTwoChildren;
187
+
159
188
  var total = allChildren.length;
160
189
  var shownTotal = fakeTwoChildren ? 2 : total;
161
190
  var indicatorArr = (0, _react.useMemo)(function () {
162
191
  var arr = [];
192
+
163
193
  for (var i = 0; i < shownTotal; i += 1) {
164
194
  arr.push(i);
165
195
  }
196
+
166
197
  return arr;
167
198
  }, [shownTotal]);
199
+ var rtlRatio = horizontalUseRtl ? -1 : 1;
200
+ var leftDirec = horizontalUseRtl ? 'right' : 'left';
201
+ var rightDirec = horizontalUseRtl ? 'left' : 'right';
168
202
  var leftOffset = typeof offsetBetween === 'number' ? offsetBetween : offsetBetween.left || 0;
169
203
  var rightOffset = typeof offsetBetween === 'number' ? offsetBetween : offsetBetween.right || 0;
170
204
  var wrapSize = vertical ? wrapHeight : wrapWidth;
@@ -183,13 +217,15 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
183
217
  var inactiveValidScale = (0, _react.useMemo)(function () {
184
218
  return Math.max(0, Math.min(inactiveScale, 1));
185
219
  }, [inactiveScale]);
220
+
186
221
  var _useState5 = (0, _react.useState)([]),
187
- fakeIndexes = _useState5[0],
188
- setFakeIndexes = _useState5[1];
189
- var system = (0, _helpers.useSystem)();
190
- // 开启自动循环时iOS会有渲染问题需要强刷dom,但不需要autoPlay的不用强刷,这里判断下
222
+ fakeIndexes = _useState5[0],
223
+ setFakeIndexes = _useState5[1];
224
+
225
+ var system = (0, _helpers.useSystem)(); // 开启自动循环时iOS会有渲染问题需要强刷dom,但不需要autoPlay的不用强刷,这里判断下
191
226
  // @en When the automatic loop is turned on, there will be rendering problems in iOS. Need to brush the dom, but if you don't need autoPlay, don't need to brush.
192
- var needRefreshDom = !noInterval && system === 'ios';
227
+
228
+ var needRefreshDom = !noInterval && system === 'ios' && iOSVisibleOptimize;
193
229
  var setDirection = (0, _react.useCallback)(function (newDirec) {
194
230
  setStateDirection(function (direc) {
195
231
  lastDirectionRef.current = direc;
@@ -203,9 +239,11 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
203
239
  if (onTouchStart && onTouchStart(e, shownTotal, getShownIndex(indexRef.current))) {
204
240
  return;
205
241
  }
242
+
206
243
  if (posAdjustingRef.current) {
207
244
  return;
208
245
  }
246
+
209
247
  touchStartedRef.current = true;
210
248
  touchMovedRef.current = false;
211
249
  clear();
@@ -219,20 +257,25 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
219
257
  }, [shownTotal, onTouchStart]);
220
258
  var triggerTouchStopped = (0, _react.useCallback)(function (posDis) {
221
259
  var needStop = Math.abs(posDis) > stopTouchThreshold;
260
+
222
261
  if (!touchStoppedRef.current && needStop) {
223
262
  onTouchStopped && onTouchStopped(posDis >= 0 ? -1 : 1);
224
263
  }
264
+
225
265
  touchStoppedRef.current = needStop;
226
266
  }, [stopTouchThreshold, onTouchStopped]);
227
267
  var handleTouchMove = (0, _react.useCallback)(function (e) {
228
268
  if (onTouchMove && onTouchMove(e, shownTotal, getShownIndex(indexRef.current))) {
229
269
  return;
230
270
  }
271
+
231
272
  stopPropagation && e.stopPropagation();
273
+
232
274
  if (!touchStartedRef.current || posAdjustingRef.current) {
233
275
  e.cancelable && e.preventDefault();
234
276
  return;
235
277
  }
278
+
236
279
  touchMovedRef.current = true;
237
280
  var evt = e.changedTouches[0];
238
281
  var touchMoveX = Math.max(0, evt.clientX || 0);
@@ -242,32 +285,41 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
242
285
  var absDisX = Math.abs(posDisX);
243
286
  var absDisY = Math.abs(posDisY);
244
287
  var originDis = vertical ? posDisY : posDisX;
288
+
245
289
  var processor = distanceProcessor || function (dis, size, child) {
246
290
  return child * (dis / size);
247
291
  };
292
+
248
293
  var posDis = processor(originDis, wrapSizeRef.current, childSize);
294
+
249
295
  if (total < 2) {
250
296
  triggerTouchStopped(posDis);
251
297
  return;
252
298
  }
299
+
253
300
  if (scrollingRef.current === null) {
254
301
  scrollingRef.current = vertical ? absDisY < absDisX : absDisX < absDisY;
255
- }
256
- // 如果是在滚动页面则禁用轮播图手势
302
+ } // 如果是在滚动页面则禁用轮播图手势
257
303
  // @en Disable carousel gestures if scrolling
304
+
305
+
258
306
  if (scrollingRef.current) {
259
- setDistance(0);
260
- // bugfix: 未触发横滑就不触发touchend逻辑,且这个场景不需要触发onTouchStopped,因此直接设置touchStoppedRef
307
+ setDistance(0); // bugfix: 未触发横滑就不触发touchend逻辑,且这个场景不需要触发onTouchStopped,因此直接设置touchStoppedRef
261
308
  // @en bugfix: The touchend event will not be triggered if the horizontal swipe is not triggered, and this scene does not need to trigger onTouchStopped.
262
- touchStoppedRef.current = true;
263
- // 不会触发jumpTo,但touchstart时clear了,所以要手动设置一次interval
309
+
310
+ touchStoppedRef.current = true; // 不会触发jumpTo,但touchstart时clear了,所以要手动设置一次interval
264
311
  // @en JumpTo will not be triggered, but it is cleared in touchstart event, so need to manually set interval once
312
+
265
313
  setPlayIntervalRef.current();
266
314
  return;
267
315
  }
316
+
268
317
  setDirection(posDis >= 0 ? 'right' : 'left');
269
- if (noLoop && (indexRef.current === 0 && posDis > 0 || indexRef.current === total - 1 && posDis < 0)) {
318
+ var comparedPos = posDis * rtlRatio;
319
+
320
+ if (noLoop && (indexRef.current === 0 && comparedPos > 0 || indexRef.current === total - 1 && comparedPos < 0)) {
270
321
  triggerTouchStopped(posDis);
322
+
271
323
  if (bounceWhenNoLoop && bounceDampRate) {
272
324
  e.cancelable && e.preventDefault();
273
325
  bouncingRef.current = true;
@@ -275,13 +327,15 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
275
327
  } else {
276
328
  setDistance(0);
277
329
  }
330
+
278
331
  return;
279
332
  }
333
+
280
334
  e.cancelable && e.preventDefault();
281
335
  touchStoppedRef.current = false;
282
336
  var maxDis = childSize;
283
337
  setDistance(posDis > 0 ? Math.min(maxDis, posDis) : Math.max(-1 * maxDis, posDis));
284
- }, [shownTotal, noLoop, vertical, childSize, stopPropagation, bounceWhenNoLoop, bounceDampRate, onTouchMove, triggerTouchStopped]);
338
+ }, [shownTotal, noLoop, vertical, childSize, stopPropagation, bounceWhenNoLoop, bounceDampRate, horizontalUseRtl, onTouchMove, triggerTouchStopped]);
285
339
  (0, _react.useImperativeHandle)(ref, function () {
286
340
  return {
287
341
  dom: domRef.current,
@@ -296,13 +350,14 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
296
350
  (0, _helpers.useSwiperInnerScroll)(getInnerScrollContainer);
297
351
  var updateWhenVisible = (0, _react.useCallback)(function () {
298
352
  fakeWrapRef.current && (fakeWrapRef.current.style.display = 'none');
299
- wrapRef.current && (wrapRef.current.style.display = '');
300
- // 部分情况下页面隐藏后容器宽度变成0,因此页面返回后需重新取一次容器尺寸
353
+ wrapRef.current && (wrapRef.current.style.display = ''); // 部分情况下页面隐藏后容器宽度变成0,因此页面返回后需重新取一次容器尺寸
301
354
  // @en In some cases, the width of the container becomes 0 after the page is invisible, so the container size needs to be resized after the page is visible.
355
+
302
356
  updateDataRef.current();
303
357
  }, []);
304
358
  var updateWhenInvisible = (0, _react.useCallback)(function () {
305
359
  clear();
360
+
306
361
  if (wrapRef.current && fakeWrapRef.current) {
307
362
  fakeWrapRef.current.style.height = (wrapRef.current.offsetHeight || 0) + "px";
308
363
  fakeWrapRef.current.style.display = 'block';
@@ -312,9 +367,10 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
312
367
  (0, _react.useEffect)(function () {
313
368
  if (onPageVisibleChange) {
314
369
  return onPageVisibleChange(updateWhenVisible, updateWhenInvisible);
315
- }
316
- // ios 在页面隐藏后返回时会有dom结构正确但渲染错乱的情况,因此在页面隐藏时先用占位符,返回后重新渲染一次dom
370
+ } // ios 在页面隐藏后返回时会有dom结构正确但渲染错乱的情况,因此在页面隐藏时先用占位符,返回后重新渲染一次dom
317
371
  // @en In iOS, When the page is invisible, the DOM will be correct but the rendering is disordered. So use a placeholder when the page is invisible, and re-render the DOM after it is visible.
372
+
373
+
318
374
  var update = function update() {
319
375
  if (document.visibilityState === 'visible') {
320
376
  updateWhenVisible();
@@ -322,6 +378,7 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
322
378
  updateWhenInvisible();
323
379
  }
324
380
  };
381
+
325
382
  document.addEventListener('visibilitychange', update);
326
383
  return function () {
327
384
  document.removeEventListener('visibilitychange', update);
@@ -342,6 +399,7 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
342
399
  wrapRef.current.addEventListener('touchstart', handleTouchStart);
343
400
  wrapRef.current.addEventListener('touchmove', handleTouchMove);
344
401
  }
402
+
345
403
  return function () {
346
404
  if (wrapRef.current && needTouchEvent) {
347
405
  wrapRef.current.removeEventListener('touchstart', handleTouchStart);
@@ -384,7 +442,7 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
384
442
  } else {
385
443
  getFakeChild();
386
444
  }
387
- }, [index, direction, childSize, total]);
445
+ }, [index, direction, childSize, total, horizontalUseRtl]);
388
446
  (0, _react.useEffect)(function () {
389
447
  (0, _mobileUtils.nextTick)(function () {
390
448
  updateLayoutData();
@@ -404,34 +462,43 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
404
462
  if (!fakeItem || posAdjusting) {
405
463
  return;
406
464
  }
465
+
407
466
  setCurrentFakeIndex();
408
- }, [posAdjusting, index, direction, total, childSize]);
467
+ }, [posAdjusting, index, direction, total, childSize, horizontalUseRtl]);
468
+
409
469
  function getShownIndex(nowIndex) {
410
470
  var validIndex = nowIndex === total ? 0 : nowIndex;
411
471
  var shownInd = nowIndex === -1 ? total - 1 : validIndex;
412
472
  return fakeTwoChildren ? shownInd % 2 : shownInd;
413
473
  }
474
+
414
475
  function getDynamicDuration(autoJump) {
415
476
  return autoJump ? animateDuration : animateDurationSlide;
416
477
  }
478
+
417
479
  function setCurrentHeight() {
418
480
  if (!innerRef.current || !autoHeight || vertical) {
419
481
  return;
420
482
  }
483
+
421
484
  var allItemDom = itemsRef.current;
422
485
  var nowIndex = getShownIndex(indexRef.current);
423
486
  var currentHeight = (allItemDom[nowIndex] || {}).offsetHeight || 'auto';
424
487
  setCurrentItemHeight(currentHeight);
425
488
  }
489
+
426
490
  function getAllChildren() {
427
491
  var allChild = [];
428
492
  var fakeTwo = false;
493
+
429
494
  if (list && list.length) {
430
495
  var actualList = list;
496
+
431
497
  if (list.length === 2 && fakeItem) {
432
498
  fakeTwo = true;
433
499
  actualList = list.concat(list);
434
500
  }
501
+
435
502
  allChild = actualList.map(function (item, i) {
436
503
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("img", {
437
504
  key: i,
@@ -445,6 +512,7 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
445
512
  });
446
513
  } else if (children && Object.prototype.toString.call(children) === '[object Array]') {
447
514
  allChild = children;
515
+
448
516
  if (allChild.length === 2 && fakeItem) {
449
517
  fakeTwo = true;
450
518
  allChild = [].concat(allChild, allChild);
@@ -452,26 +520,39 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
452
520
  } else {
453
521
  allChild = children ? [children] : [];
454
522
  }
523
+
455
524
  return {
456
525
  allChildren: allChild,
457
526
  fakeTwoChildren: fakeTwo
458
527
  };
459
528
  }
529
+
460
530
  function getDefaultDirection() {
461
531
  var nowIndex = indexRef.current;
532
+
462
533
  if (nowIndex === total - 1) {
463
- return 'left';
534
+ return horizontalUseRtl ? 'right' : 'left';
464
535
  }
536
+
465
537
  if (nowIndex === 0) {
466
- return 'right';
538
+ return horizontalUseRtl ? 'left' : 'right';
467
539
  }
540
+
468
541
  return '';
469
542
  }
470
- function changeIndex(newIndex, rightNow, direc) {
543
+
544
+ function changeIndex(newIndex, rightNow, userSetDirec) {
471
545
  if (posAdjustingRef.current) {
472
546
  return;
473
547
  }
474
- if (direc) {
548
+
549
+ if (userSetDirec) {
550
+ // rtl 模式取反
551
+ var direcMap = {
552
+ left: leftDirec,
553
+ right: rightDirec
554
+ };
555
+ var direc = direcMap[userSetDirec];
475
556
  setDirection(direc);
476
557
  (0, _mobileUtils.nextTick)(function () {
477
558
  jumpTo(newIndex, true, rightNow, direc);
@@ -480,21 +561,25 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
480
561
  jumpTo(newIndex, true, rightNow);
481
562
  }
482
563
  }
564
+
483
565
  function jumpTo(newIndex, autoJump, rightNow, direc) {
484
566
  if (autoJump === void 0) {
485
567
  autoJump = true;
486
568
  }
569
+
487
570
  var oldIndex = getShownIndex(indexRef.current);
488
571
  var changedIndex = newIndex !== oldIndex ? getShownIndex(newIndex) : -1;
572
+
489
573
  if (direc) {
490
574
  setDirection(direc);
491
575
  } else if (autoJump) {
492
- setDirection(autoPlayDirection === 'reverse' ? 'right' : 'left');
576
+ setDirection(autoPlayDirection === 'reverse' || horizontalUseRtl ? 'right' : 'left');
493
577
  } else if (newIndex === indexRef.current) {
494
578
  setDirection(distanceRef.current > 0 ? 'right' : 'left');
495
579
  } else {
496
580
  setDirection('');
497
581
  }
582
+
498
583
  setPosAdjusting(true);
499
584
  setIsAutoJump(autoJump);
500
585
  setDistance(0);
@@ -507,6 +592,7 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
507
592
  setDirection(getDefaultDirection());
508
593
  var newTransform = transformsRef.current.slice();
509
594
  var transChanged = false;
595
+
510
596
  if (newIndex === -1 && movedChildRef.current >= 0) {
511
597
  newTransform[movedChildRef.current] = 0;
512
598
  transChanged = true;
@@ -516,12 +602,15 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
516
602
  transChanged = true;
517
603
  setIndex(0);
518
604
  }
605
+
519
606
  transChanged && setTransforms(newTransform);
520
607
  setIsAutoJump(true);
521
608
  onTransitionEnd && onTransitionEnd();
609
+
522
610
  if (changedIndex >= 0) {
523
611
  onAfterChange && onAfterChange(changedIndex, oldIndex);
524
612
  }
613
+
525
614
  (0, _mobileUtils.nextTick)(function () {
526
615
  setPlayIntervalRef.current();
527
616
  });
@@ -529,111 +618,137 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
529
618
  }, rightNow ? 0 : getDynamicDuration(autoJump));
530
619
  autoJump && setDirection('');
531
620
  }
621
+
532
622
  function setPlayInterval() {
533
623
  clear();
624
+
534
625
  if (noInterval) {
535
626
  return;
536
627
  }
628
+
537
629
  timerRef.current = delayTimeout(function () {
538
630
  jumpTo(autoPlayDirection === 'reverse' ? indexRef.current - 1 : indexRef.current + 1);
539
631
  }, stayDuration);
540
632
  }
633
+
541
634
  function updateLayoutData() {
542
635
  if (wrapRef.current) {
543
636
  setWrapWidth(wrapRef.current.offsetWidth);
544
637
  setWrapHeight(wrapRef.current.offsetHeight);
545
638
  }
639
+
546
640
  setCurrentHeight();
547
641
  }
642
+
548
643
  function updateData() {
549
644
  updateLayoutData();
550
645
  setPlayIntervalRef.current();
551
646
  }
647
+
552
648
  function clear() {
553
649
  if (timerRef.current) {
554
650
  clearTimeout(timerRef.current);
555
651
  timerRef.current = null;
556
652
  }
557
653
  }
654
+
558
655
  function getFakeChild() {
559
656
  if (noLoop) {
560
657
  return;
561
658
  }
659
+
562
660
  var nowIndex = indexRef.current;
563
661
  var newTransform = transformsRef.current.slice();
564
662
  var dis = Math.max(0, childSize);
565
663
  allChildren.forEach(function (_, childIndex) {
566
- if (nowIndex === 0 && directionRef.current === 'right' && childIndex === total - 1) {
664
+ if (nowIndex === 0 && directionRef.current === rightDirec && childIndex === total - 1) {
567
665
  movedChildRef.current = childIndex;
568
- newTransform[childIndex] = -1 * total * dis;
569
- } else if (nowIndex === total - 1 && directionRef.current === 'left' && childIndex === 0) {
666
+ newTransform[childIndex] = -1 * total * dis * rtlRatio;
667
+ } else if (nowIndex === total - 1 && directionRef.current === leftDirec && childIndex === 0) {
570
668
  movedChildRef.current = childIndex;
571
- newTransform[childIndex] = total * dis;
669
+ newTransform[childIndex] = total * dis * rtlRatio;
572
670
  } else if (nowIndex >= 0 && nowIndex < total) {
573
671
  newTransform[childIndex] = 0;
574
672
  }
575
673
  });
576
674
  setTransforms(newTransform);
577
675
  }
676
+
578
677
  function delayTimeout(callback, timeout) {
579
678
  return setTimeout(callback, timeout);
580
679
  }
680
+
581
681
  function handleTouchEnd(e) {
582
682
  if (!needTouchEvent) {
583
683
  return;
584
684
  }
685
+
585
686
  if (onTouchEnd && onTouchEnd(e.nativeEvent, shownTotal, getShownIndex(indexRef.current))) {
586
687
  return;
587
688
  }
689
+
588
690
  stopPropagation && e.stopPropagation();
691
+
589
692
  if (bouncingRef.current) {
590
693
  bouncingRef.current = false;
591
694
  jumpTo(index, false);
592
695
  return;
593
696
  }
697
+
594
698
  if (!touchStartedRef.current || !touchMovedRef.current || posAdjustingRef.current || touchStoppedRef.current) {
595
699
  return;
596
700
  }
701
+
597
702
  touchStartedRef.current = false;
598
703
  touchMovedRef.current = false;
599
704
  var touchEndTime = new Date().getTime();
600
- var speed = distance / (touchEndTime - touchStartTimeRef.current) * 1000;
601
- var maxSlice = childSize * percentToChange;
602
705
  var dis = Math.abs(distance);
603
- var needJump = dis > maxSlice && dis > distanceToChange || Math.abs(speed) > speedToChange;
604
- if (distance > 0 && needJump) {
706
+ var speed = dis / (touchEndTime - touchStartTimeRef.current) * 1000;
707
+ var maxSlice = childSize * percentToChange;
708
+ var needJump = dis > maxSlice && dis > distanceToChange || speed > speedToChange;
709
+ var comparedDis = distance * rtlRatio;
710
+
711
+ if (comparedDis > 0 && needJump) {
605
712
  jumpTo(index - 1, false);
606
- } else if (distance < 0 && needJump) {
713
+ } else if (comparedDis < 0 && needJump) {
607
714
  jumpTo(index + 1, false);
608
715
  } else {
609
716
  jumpTo(index, false);
610
717
  }
611
718
  }
719
+
612
720
  function getSlideTransitionStyle() {
613
721
  return {
614
722
  transitionProperty: posAdjusting ? 'transform' : 'none',
615
723
  transitionDuration: posAdjusting ? dynamicAnimateDuration + "ms" : '0ms'
616
724
  };
617
725
  }
726
+
618
727
  function getInnerStyle() {
619
728
  var transitionStyle = (0, _helpers.getStyleWithVendor)(getSlideTransitionStyle());
620
729
  var innerSize = childSize * total;
621
- var dis = index * childSize * -1 + distance + leftOffset;
622
- var minTransform = childSize > 0 ? leftOffset : 0;
623
- var maxTransform = allowEndBlank ? dis : -1 * innerSize + wrapSize - rightOffset;
624
- var noLoopDis = bounceWhenNoLoop && (index === 0 && distance > 0 || index === total - 1 && distance < 0) ? Math.min(minTransform + distance, Math.max(maxTransform + distance, dis)) : Math.min(minTransform, Math.max(maxTransform, dis));
625
- // noLoop时需要在最后也露出spaceBetween的空白,所以当滑到最后一个时transform向左移动相应宽度
730
+ var dis = index * childSize * -1 * rtlRatio + distance + rtlRatio * leftOffset;
731
+ var min = childSize > 0 ? leftOffset : 0;
732
+ var max = allowEndBlank ? dis * rtlRatio : -1 * innerSize + wrapSize - rightOffset;
733
+ var minTransform = horizontalUseRtl ? -1 * max : min;
734
+ var maxTransform = horizontalUseRtl ? -1 * min : max;
735
+ var comparedDis = rtlRatio * distance;
736
+ var noLoopDis = bounceWhenNoLoop && (index === 0 && comparedDis > 0 || index === total - 1 && comparedDis < 0) ? Math.min(minTransform + distance, Math.max(maxTransform + distance, dis)) : Math.min(minTransform, Math.max(maxTransform, dis)); // noLoop时需要在最后也露出spaceBetween的空白,所以当滑到最后一个时transform向左移动相应宽度
626
737
  // @en When noLoop is used, the blank space of spaceBetween needs to be exposed at the end, so when sliding to the last one, the transform value moves to the left by the corresponding width
627
- var translateDis = noLoop ? noLoopDis - (total > 1 && index === total - 1 ? spaceBetween : 0) : dis;
738
+
739
+ var translateDis = noLoop ? noLoopDis - (total > 1 && index === total - 1 ? spaceBetween : 0) * rtlRatio : dis;
628
740
  var transStr = childSize > 0 ? translateDis + "px" : "-" + index * 100 + "%";
741
+
629
742
  if (vertical) {
630
743
  var _translateStyle = (0, _helpers.getStyleWithVendor)({
631
744
  transform: "translateY(" + transStr + ") translateZ(0)"
632
745
  });
746
+
633
747
  return (0, _extends3.default)({}, transitionStyle, _translateStyle, {
634
748
  width: '100%'
635
749
  });
636
750
  }
751
+
637
752
  var translateStyle = (0, _helpers.getStyleWithVendor)({
638
753
  transform: "translateX(" + transStr + ") translateZ(0)"
639
754
  });
@@ -642,36 +757,41 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
642
757
  height: height
643
758
  }, transitionStyle, translateStyle);
644
759
  }
760
+
645
761
  function getCarouselStyle() {
646
762
  if (vertical) {
647
763
  return (0, _extends3.default)({
648
764
  height: userSetBoxHeight
649
765
  }, style || {});
650
766
  }
767
+
651
768
  var heightStyle = currentItemHeight && currentItemHeight !== 'auto' ? {
652
769
  height: currentItemHeight
653
770
  } : {};
654
771
  return (0, _extends3.default)({
655
772
  width: userSetBoxWidth
656
773
  }, heightStyle, style || {});
657
- }
658
-
659
- // 当最前或最后的滑块通过transform手动被放置到最后或最前时,在展示层可以认为是第total个或第-1个模块
774
+ } // 当最前或最后的滑块通过transform手动被放置到最后或最前时,在展示层可以认为是第total个或第-1个模块
660
775
  // @en When the front or last slider is manually placed to the rear or the front through transform, it can be considered as the total or -1 module in the display layer
776
+
777
+
661
778
  function getShownChildIndex(curIndex) {
662
779
  var childIndex = curIndex;
663
- if (transforms[childIndex] > 0) {
780
+
781
+ if (transforms[childIndex] * rtlRatio > 0) {
664
782
  childIndex = total;
665
- } else if (transforms[childIndex] < 0) {
783
+ } else if (transforms[childIndex] * rtlRatio < 0) {
666
784
  childIndex = -1;
667
785
  }
668
- return childIndex;
669
- }
670
786
 
671
- // 当两侧有露出内容时,为了循环衔接上需要fake前后的dom来做视觉填充
787
+ return childIndex;
788
+ } // 当两侧有露出内容时,为了循环衔接上需要fake前后的dom来做视觉填充
672
789
  // @en When there is exposed content on both sides, it is necessary to fake the front and rear dom to make visual filling in order to connect circularly.
790
+
791
+
673
792
  function setCurrentFakeIndex() {
674
793
  var newIndexes = fakeIndexes.slice();
794
+
675
795
  if (childSize <= 0) {
676
796
  if (index === 0) {
677
797
  newIndexes[0] = {
@@ -679,72 +799,88 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
679
799
  side: 'left'
680
800
  };
681
801
  }
802
+
682
803
  if (index === total - 1) {
683
804
  newIndexes[2] = {
684
805
  index: 0,
685
806
  side: 'right'
686
807
  };
687
808
  }
809
+
688
810
  setFakeIndexes(newIndexes);
689
811
  return;
690
812
  }
691
- if (index === 1 && direction === 'right' || index === 0 && direction !== 'right') {
813
+
814
+ if (index === 1 && direction === rightDirec || index === 0 && direction !== rightDirec) {
692
815
  newIndexes[0] = {
693
816
  index: total - 1,
694
817
  side: 'left'
695
818
  };
696
819
  }
697
- if (index === 0 && direction === 'right' || index === -1) {
820
+
821
+ if (index === 0 && direction === rightDirec || index === -1) {
698
822
  newIndexes[1] = {
699
823
  index: total - 2,
700
824
  side: 'left'
701
825
  };
702
826
  }
703
- if (index === total - 2 && direction === 'left' || index === total - 1 && direction !== 'left') {
827
+
828
+ if (index === total - 2 && direction === leftDirec || index === total - 1 && direction !== leftDirec) {
704
829
  newIndexes[2] = {
705
830
  index: 0,
706
831
  side: 'right'
707
832
  };
708
833
  }
709
- if (index === total - 1 && direction === 'left' || index === total) {
834
+
835
+ if (index === total - 1 && direction === leftDirec || index === total) {
710
836
  newIndexes[3] = {
711
837
  index: 1,
712
838
  side: 'right'
713
839
  };
714
840
  }
841
+
715
842
  setFakeIndexes(newIndexes);
716
843
  }
844
+
717
845
  function getItemTranslateStyle(childIndex, ratio) {
718
846
  var dis = index - childIndex;
719
847
  var prefix = dis > 0 ? 1 : -1;
720
848
  var transPercent = 1 - inactiveValidScale;
849
+ var ratioWithRtl = ratio * rtlRatio;
721
850
  var trans = 0;
851
+
722
852
  if (Math.abs(dis) > 1) {
723
- trans = (prefix * (Math.abs(dis) - 1) - ratio) * transPercent;
724
- } else if (dis === -1 && ratio > 0 || dis === 1 && ratio < 0) {
853
+ trans = (prefix * (Math.abs(dis) - 1) - ratioWithRtl) * transPercent * rtlRatio;
854
+ } else if (dis === -1 && ratioWithRtl > 0 || dis === 1 && ratioWithRtl < 0) {
725
855
  trans = -1 * ratio * transPercent;
726
856
  }
857
+
727
858
  return "translate" + (vertical ? 'Y' : 'X') + "(" + trans * 100 + "%)";
728
859
  }
860
+
729
861
  function getItemScaleStyle(childIndex, ratio) {
730
- var originScale = inactiveValidScale;
731
- // active滑块前后两侧的滑块,根据滑动距离等比放大
862
+ var originScale = inactiveValidScale; // active滑块前后两侧的滑块,根据滑动距离等比放大
732
863
  // @en The front and rear sides of the active slider, and zoom in proportionally according to the sliding distance
733
- if (childIndex === index - 1 && direction === 'right' || childIndex === index + 1 && direction === 'left') {
864
+
865
+ if (childIndex === index - 1 && direction === rightDirec || childIndex === index + 1 && direction === leftDirec) {
734
866
  return originScale + (1 - originScale) * Math.abs(ratio);
735
- }
736
- // active的滑块,根据滑动距离等比缩小
867
+ } // active的滑块,根据滑动距离等比缩小
737
868
  // @en The active slider, zoom out proportionally according to the sliding distance
869
+
870
+
738
871
  if (childIndex === index) {
739
872
  return 1 - (1 - originScale) * Math.abs(ratio);
740
- }
741
- // 其他保持inactiveScale即可
873
+ } // 其他保持inactiveScale即可
742
874
  // @en Others remain inactiveScale
875
+
876
+
743
877
  return originScale;
744
878
  }
879
+
745
880
  function getItemOriginStyle(childIndex) {
746
881
  var origin = 0.5;
747
882
  var dis = childIndex - index;
883
+
748
884
  if (dis === 0) {
749
885
  // 当前active的卡片,随滑动方向切换origin
750
886
  // @en The currently active card, switch origin with the sliding direction
@@ -752,25 +888,27 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
752
888
  } else if (dis <= -1) {
753
889
  // 当前active之前的卡片,origin均靠最右
754
890
  // @en The cards in front of the currently active card, the origin is on the far right
755
- origin = 1;
891
+ origin = horizontalUseRtl ? 0 : 1;
756
892
  } else if (dis >= 1) {
757
893
  // 当前active之后的卡片,origin均靠最左
758
894
  // @en The cards after the currently active card, the origin is on the far left
759
- origin = 0;
895
+ origin = horizontalUseRtl ? 1 : 0;
760
896
  }
897
+
761
898
  var originStr = origin * 100 + "%";
762
899
  return vertical ? "center " + originStr : originStr + " center";
763
900
  }
901
+
764
902
  function getItemInnerStyle(curIndex) {
765
903
  var transitionStyle = getSlideTransitionStyle();
766
904
  var childIndex = getShownChildIndex(curIndex);
767
- var ratio = distance / childSize || 0;
768
- // 有放大效果的item,随着distance变化而变化scale和transform-origin
905
+ var ratio = distance / childSize || 0; // 有放大效果的item,随着distance变化而变化scale和transform-origin
769
906
  // @en Item with magnification effect, scale and transform-origin change with distance
770
907
  // transform效果与fake dom时item的transform需隔离,且scale后会影响item的padding展示
771
908
  // @en The transform effect of the item needs to be isolated from the fake dom, and the padding display of the item will be affected after scale.
772
909
  // 因此需要缩放时多包裹一层item-inner,单独处理缩放逻辑
773
910
  // @en Therefore, need to wrap an additional layer of item-inner when scaling, and handle the scaling logic separately
911
+
774
912
  var scale = getItemScaleStyle(childIndex, ratio);
775
913
  var transformStyle = {
776
914
  transform: getItemTranslateStyle(childIndex, ratio) + " scale(" + scale + ")",
@@ -778,45 +916,54 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
778
916
  };
779
917
  return (0, _helpers.getStyleWithVendor)((0, _extends3.default)({}, transitionStyle, transformStyle));
780
918
  }
919
+
781
920
  function getItemFakeStyle(childIndex) {
782
921
  var _extends2, _ref, _ref2;
922
+
783
923
  var styleMap = {
784
- leftDirec: vertical ? 'bottom' : 'right',
785
- rightDirec: vertical ? 'top' : 'left',
924
+ leftDirec: vertical ? 'top' : leftDirec,
925
+ rightDirec: vertical ? 'bottom' : rightDirec,
786
926
  otherDirec: vertical ? 'left' : 'top',
787
927
  trans: vertical ? 'Y' : 'X'
788
928
  };
789
929
  return (0, _extends3.default)((_extends2 = {
790
930
  position: 'absolute'
791
- }, _extends2[styleMap.otherDirec] = 0, _extends2), childIndex >= 0 ? (_ref = {}, _ref[styleMap.rightDirec] = childSize > 0 ? '100%' : total * 100 + "%", _ref.transform = "translate" + styleMap.trans + "(" + (childIndex - total) * 100 + "%)", _ref) : (_ref2 = {}, _ref2[styleMap.leftDirec] = '100%', _ref2.transform = "translate" + styleMap.trans + "(" + (childIndex + 1) * 100 + "%)", _ref2));
931
+ }, _extends2[styleMap.otherDirec] = 0, _extends2), childIndex >= 0 ? (_ref = {}, _ref[styleMap.leftDirec] = childSize > 0 ? '100%' : total * 100 + "%", _ref.transform = "translate" + styleMap.trans + "(" + (childIndex - total) * rtlRatio * 100 + "%)", _ref) : (_ref2 = {}, _ref2[styleMap.rightDirec] = '100%', _ref2.transform = "translate" + styleMap.trans + "(" + (childIndex + 1) * rtlRatio * 100 + "%)", _ref2));
792
932
  }
933
+
793
934
  function getItemStyle(childIndex, isFake) {
794
935
  var _ref3, _ref4;
936
+
795
937
  var initialStartSpace = spaceBetween + leftOffset;
796
938
  var initialEndSpace = spaceBetween + rightOffset;
797
939
  var initalSize = vertical ? userSetBoxHeight : '100%';
940
+ var horizontalPaddingStart = horizontalUseRtl ? 'paddingRight' : 'paddingLeft';
941
+ var horizontalPaddingEnd = horizontalUseRtl ? 'paddingLeft' : 'paddingRight';
798
942
  var styleMap = {
799
943
  size: vertical ? 'height' : 'width',
800
- paddingStart: vertical ? 'paddingTop' : 'paddingLeft',
801
- paddingEnd: vertical ? 'paddingBottom' : 'paddingRight',
944
+ paddingStart: vertical ? 'paddingTop' : horizontalPaddingStart,
945
+ paddingEnd: vertical ? 'paddingBottom' : horizontalPaddingEnd,
802
946
  translate: vertical ? 'translateY' : 'translateX'
803
- };
804
- // bugfix: item 为半透明状态下 fakeItem 和普通 item 重叠露馅问题
947
+ }; // bugfix: item 为半透明状态下 fakeItem 和普通 item 重叠露馅问题
805
948
  // @en bugfix: Solve the problem of overlapping fakeItem and the normal item when item is translucent
949
+
806
950
  var transformStyle = isFake ? {
807
951
  visibility: childIndex === total && transforms[0] > 0 || childIndex === -1 && transforms[total - 1] < 0 ? 'hidden' : 'initial'
808
952
  } : {
809
953
  transform: styleMap.translate + "(" + (transforms[childIndex] || 0) + "px)"
810
- };
811
- // childSize <= 0 说明是未全部加载完成的首屏情况 做一下特殊处理
954
+ }; // childSize <= 0 说明是未全部加载完成的首屏情况 做一下特殊处理
812
955
  // @en childSize <= 0 indicates that the first screen is not fully loaded, so do some special treatment
956
+
813
957
  var layoutStyle = childSize > 0 ? (_ref3 = {}, _ref3[styleMap.size] = childSize - spaceBetween, _ref3[styleMap.paddingStart] = spaceBetween, _ref3.boxSizing = 'content-box', _ref3) : (_ref4 = {}, _ref4[styleMap.size] = initalSize, _ref4[styleMap.paddingStart] = initialStartSpace, _ref4[styleMap.paddingEnd] = initialEndSpace, _ref4.boxSizing = 'border-box', _ref4.transform = styleMap.translate + "(" + (childIndex === index ? 0 : (index - childIndex) * (spaceBetween + leftOffset + rightOffset)) + "px)", _ref4);
814
958
  var fakeStyle = isFake ? getItemFakeStyle(childIndex) : {};
959
+
815
960
  if (isFake && childSize < 0) {
816
961
  delete fakeStyle.transform;
817
962
  }
963
+
818
964
  return (0, _helpers.getStyleWithVendor)((0, _extends3.default)({}, transformStyle, layoutStyle, fakeStyle));
819
965
  }
966
+
820
967
  function renderChild(child, childIndex, prefix) {
821
968
  // 兼容线上逻辑,不需要切换放大效果的,不包裹item-inner
822
969
  // @en No need to switch the magnification effect, do not wrap item-inner
@@ -825,26 +972,33 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
825
972
  style: getItemInnerStyle(childIndex)
826
973
  }, child);
827
974
  }
975
+
828
976
  function renderFakeItem(prefix, fakeIndex, side) {
829
977
  if (!fakeItem || fakeIndex === void 0) {
830
978
  return null;
831
979
  }
980
+
832
981
  var posIndex = side === 'left' ? fakeIndex - total : fakeIndex + total;
833
982
  return /*#__PURE__*/_react.default.createElement("div", {
834
983
  key: "" + fakeIndex + posIndex,
984
+ "data-fake-index": fakeIndex,
985
+ "data-index": posIndex,
835
986
  className: (0, _mobileUtils.cls)(prefix + "-item carousel-item fake-item fake-" + side, {
836
987
  vertical: vertical
837
988
  }),
838
989
  style: getItemStyle(posIndex, true)
839
990
  }, renderChild(allChildren[fakeIndex], posIndex, prefix));
840
991
  }
992
+
841
993
  function renderAllFakeItem(prefix) {
842
994
  return fakeIndexes.map(function (fakeIndex) {
843
995
  return renderFakeItem(prefix, fakeIndex.index, fakeIndex.side);
844
996
  });
845
997
  }
998
+
846
999
  function renderCarousel(_ref5) {
847
1000
  var _cls;
1001
+
848
1002
  var prefixCls = _ref5.prefixCls;
849
1003
  var prefix = prefixCls + "-carousel";
850
1004
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -852,9 +1006,11 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
852
1006
  style: wrapStyle,
853
1007
  ref: domRef
854
1008
  }, needRefreshDom ? /*#__PURE__*/_react.default.createElement("div", {
1009
+ key: "fake-carousel",
855
1010
  className: prefix + " wrap-placeholder",
856
1011
  ref: fakeWrapRef
857
1012
  }) : null, /*#__PURE__*/_react.default.createElement("div", {
1013
+ key: "carousel",
858
1014
  className: prefix,
859
1015
  onTouchEnd: handleTouchEnd,
860
1016
  onTouchCancel: handleTouchEnd,
@@ -881,7 +1037,8 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
881
1037
  }
882
1038
  }, inView || transforms[childIndex] ? renderChild(child, childIndex, prefix) : null);
883
1039
  }), renderAllFakeItem(prefix))), showIndicator && (total > 1 || !hideSingleIndicator) ? /*#__PURE__*/_react.default.createElement("div", {
884
- className: (0, _mobileUtils.cls)(prefix + "-indicator pos-" + indicatorPos, (_cls = {}, _cls["vertical ver-pos-" + indicatorVerticalPos] = vertical, _cls), {
1040
+ key: "carousel-indicator",
1041
+ className: (0, _mobileUtils.cls)(prefix + "-indicator pos-" + indicatorPos + " " + prefix + "-indicator-" + (vertical ? 'vertical' : 'horizontal'), (_cls = {}, _cls["vertical ver-pos-" + indicatorVerticalPos] = vertical, _cls), {
885
1042
  inverse: indicatorInverse === void 0 ? indicatorOutside : indicatorInverse
886
1043
  }, {
887
1044
  outside: indicatorOutside
@@ -895,6 +1052,7 @@ var Carousel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
895
1052
  });
896
1053
  })) : null);
897
1054
  }
1055
+
898
1056
  return /*#__PURE__*/_react.default.createElement(_contextProvider.ContextLayout, null, renderCarousel);
899
1057
  });
900
1058
  var _default = Carousel;