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