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