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