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