@arco-design/mobile-react 2.24.2 → 2.25.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 +18 -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 +4 -1
- package/cjs/checkbox/index.js +5 -10
- 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 +3 -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 +3 -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 +3 -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 +3 -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 +3 -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 +4 -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 +3 -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 +3 -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 +3 -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 +3 -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 +3 -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 +21031 -20542
- 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 +4 -1
- package/esm/checkbox/index.js +5 -3
- 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 +3 -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 +3 -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 +3 -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 +3 -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 +3 -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 +4 -1
- package/esm/radio/index.js +5 -3
- package/esm/rate/index.d.ts +3 -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 +3 -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 +3 -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 +3 -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 +3 -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 +4 -1
- package/umd/checkbox/index.js +5 -5
- 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 +3 -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 +3 -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 +3 -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 +3 -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 +3 -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 +4 -1
- package/umd/radio/index.js +5 -5
- package/umd/radio/radio.js +0 -5
- package/umd/rate/index.d.ts +3 -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 +3 -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 +3 -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 +3 -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 +3 -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
@@ -14,7 +14,6 @@
|
|
14
14
|
"use strict";
|
15
15
|
|
16
16
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
17
|
-
|
18
17
|
_exports.__esModule = true;
|
19
18
|
var _exportNames = {
|
20
19
|
methodsGenerator: true
|
@@ -37,62 +36,58 @@
|
|
37
36
|
});
|
38
37
|
_loading = _interopRequireDefault(_loading);
|
39
38
|
var _excluded = ["style", "className", "images", "loop", "openIndex", "fit", "noselect", "displayDuration", "spaceBetween", "showLoading", "loadingArea", "errorArea", "showError", "retryTime", "staticLabel", "replaceFallbackWhenLoaded", "scrollBezier", "lazyloadCount", "swipeToClose", "getMinScale", "getMaxScale", "getDoubleClickScale", "getContainer", "getThumbBounds", "renderIndicator", "onChange", "onAfterChange", "onImageClick", "onImageDoubleClick", "onImageLongTap", "close", "onClose", "onTouchStart", "onTouchMove", "onTouchEnd", "indicatorPos"];
|
40
|
-
|
41
39
|
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); }
|
42
|
-
|
43
40
|
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; }
|
44
|
-
|
45
41
|
var MAX_ZOOM = 5;
|
46
42
|
var MIN_ZOOM = 0.7;
|
47
43
|
var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
48
44
|
var _imagesStatus$openInd, _imagesStatus$openInd2;
|
49
|
-
|
50
45
|
var style = props.style,
|
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
|
-
|
46
|
+
className = props.className,
|
47
|
+
images = props.images,
|
48
|
+
_props$loop = props.loop,
|
49
|
+
loop = _props$loop === void 0 ? false : _props$loop,
|
50
|
+
openIndex = props.openIndex,
|
51
|
+
fit = props.fit,
|
52
|
+
_props$noselect = props.noselect,
|
53
|
+
noselect = _props$noselect === void 0 ? true : _props$noselect,
|
54
|
+
_props$displayDuratio = props.displayDuration,
|
55
|
+
displayDuration = _props$displayDuratio === void 0 ? 350 : _props$displayDuratio,
|
56
|
+
_props$spaceBetween = props.spaceBetween,
|
57
|
+
spaceBetween = _props$spaceBetween === void 0 ? 0 : _props$spaceBetween,
|
58
|
+
_props$showLoading = props.showLoading,
|
59
|
+
showLoading = _props$showLoading === void 0 ? true : _props$showLoading,
|
60
|
+
loadingArea = props.loadingArea,
|
61
|
+
errorArea = props.errorArea,
|
62
|
+
_props$showError = props.showError,
|
63
|
+
showError = _props$showError === void 0 ? true : _props$showError,
|
64
|
+
retryTime = props.retryTime,
|
65
|
+
staticLabel = props.staticLabel,
|
66
|
+
replaceFallbackWhenLoaded = props.replaceFallbackWhenLoaded,
|
67
|
+
scrollBezier = props.scrollBezier,
|
68
|
+
_props$lazyloadCount = props.lazyloadCount,
|
69
|
+
lazyloadCount = _props$lazyloadCount === void 0 ? 1 : _props$lazyloadCount,
|
70
|
+
_props$swipeToClose = props.swipeToClose,
|
71
|
+
swipeToClose = _props$swipeToClose === void 0 ? true : _props$swipeToClose,
|
72
|
+
getMinScale = props.getMinScale,
|
73
|
+
getMaxScale = props.getMaxScale,
|
74
|
+
getDoubleClickScale = props.getDoubleClickScale,
|
75
|
+
getContainer = props.getContainer,
|
76
|
+
getThumbBounds = props.getThumbBounds,
|
77
|
+
renderIndicator = props.renderIndicator,
|
78
|
+
_onChange = props.onChange,
|
79
|
+
_onAfterChange = props.onAfterChange,
|
80
|
+
onImageClick = props.onImageClick,
|
81
|
+
onImageDoubleClick = props.onImageDoubleClick,
|
82
|
+
onImageLongTap = props.onImageLongTap,
|
83
|
+
close = props.close,
|
84
|
+
onClose = props.onClose,
|
85
|
+
onTouchStart = props.onTouchStart,
|
86
|
+
onTouchMove = props.onTouchMove,
|
87
|
+
onTouchEnd = props.onTouchEnd,
|
88
|
+
_props$indicatorPos = props.indicatorPos,
|
89
|
+
indicatorPos = _props$indicatorPos === void 0 ? 'start' : _props$indicatorPos,
|
90
|
+
otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
96
91
|
var system = (0, _helpers.useSystem)();
|
97
92
|
var domRef = (0, _react.useRef)(null);
|
98
93
|
var imagesRef = (0, _react.useRef)([]);
|
@@ -112,28 +107,22 @@
|
|
112
107
|
var lastScaleRef = (0, _react.useRef)(0);
|
113
108
|
var closingRef = (0, _react.useRef)(false);
|
114
109
|
var isInitialMount = (0, _react.useRef)(false);
|
115
|
-
|
116
110
|
var _useState = (0, _react.useState)({}),
|
117
|
-
|
118
|
-
|
119
|
-
|
111
|
+
showPlaceholders = _useState[0],
|
112
|
+
setPlaceholders = _useState[1];
|
120
113
|
var _useRefState = (0, _helpers.useRefState)([]),
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
114
|
+
imagesStatus = _useRefState[0],
|
115
|
+
imagesStatusRef = _useRefState[1],
|
116
|
+
setImagesStatus = _useRefState[2];
|
125
117
|
var _useState2 = (0, _react.useState)(null),
|
126
|
-
|
127
|
-
|
128
|
-
|
118
|
+
transImageInfo = _useState2[0],
|
119
|
+
setTransImageInfo = _useState2[1];
|
129
120
|
var openLoaded = (_imagesStatus$openInd = imagesStatus[openIndex]) == null ? void 0 : _imagesStatus$openInd.loaded;
|
130
121
|
var openAnimated = (_imagesStatus$openInd2 = imagesStatus[openIndex]) == null ? void 0 : _imagesStatus$openInd2.animated;
|
131
122
|
var visible = openIndex >= 0 && openIndex < images.length;
|
132
|
-
|
133
123
|
var _useWindowSize = (0, _helpers.useWindowSize)(true),
|
134
|
-
|
135
|
-
|
136
|
-
|
124
|
+
windowWidth = _useWindowSize.windowWidth,
|
125
|
+
windowHeight = _useWindowSize.windowHeight;
|
137
126
|
(0, _react.useImperativeHandle)(ref, function () {
|
138
127
|
return {
|
139
128
|
dom: domRef.current,
|
@@ -150,7 +139,6 @@
|
|
150
139
|
carouselRef.current && carouselRef.current.changeIndex(openIndex, true);
|
151
140
|
setImagesStatus(images.map(function (_, index) {
|
152
141
|
var _imagesStatusRef$curr;
|
153
|
-
|
154
142
|
return {
|
155
143
|
firstLoaded: ((_imagesStatusRef$curr = imagesStatusRef.current[index]) == null ? void 0 : _imagesStatusRef$curr.firstLoaded) || false,
|
156
144
|
animated: index !== openIndex
|
@@ -161,18 +149,18 @@
|
|
161
149
|
// 移除长按事件监听
|
162
150
|
// @en Remove long press event listener
|
163
151
|
longTimerRef.current && clearTimeout(longTimerRef.current);
|
164
|
-
longTapCheckingRef.current = false;
|
152
|
+
longTapCheckingRef.current = false;
|
153
|
+
// 图片状态重置
|
165
154
|
// @en Reset image state
|
166
|
-
|
167
155
|
setImagesStatus(imagesStatusRef.current.map(function (status) {
|
168
156
|
return (0, _extends5.default)({}, status, {
|
169
157
|
animated: false,
|
170
158
|
loaded: false
|
171
159
|
});
|
172
160
|
}));
|
173
|
-
transformersRef.current = [];
|
161
|
+
transformersRef.current = [];
|
162
|
+
// 移除过渡图片
|
174
163
|
// @en Remove transition image
|
175
|
-
|
176
164
|
removeChild(document.querySelector('.image-preview-fake-trans-image'));
|
177
165
|
setTransImageInfo(null);
|
178
166
|
setPlaceholders({});
|
@@ -181,7 +169,6 @@
|
|
181
169
|
mounted && onClose && onClose();
|
182
170
|
}, displayDuration);
|
183
171
|
}
|
184
|
-
|
185
172
|
isInitialMount.current = true;
|
186
173
|
}, [visible]);
|
187
174
|
(0, _react.useEffect)(function () {
|
@@ -213,36 +200,31 @@
|
|
213
200
|
transformer && transformer.setMaxScale(getImageMaxScale(index));
|
214
201
|
});
|
215
202
|
}, [getMaxScale]);
|
216
|
-
|
217
203
|
function removeChild(child) {
|
218
204
|
try {
|
219
205
|
child && document.body.removeChild(child);
|
220
206
|
} catch (e) {}
|
221
|
-
}
|
222
|
-
// @en Monitor the operation of sliding out after sliding to the upper and lower edges, then close the popup
|
223
|
-
|
207
|
+
}
|
224
208
|
|
209
|
+
// 监听滑动到上下边缘后还在往外滑动的操作,则关闭弹窗
|
210
|
+
// @en Monitor the operation of sliding out after sliding to the upper and lower edges, then close the popup
|
225
211
|
function handlePreventCallback(_, dir) {
|
226
212
|
if (!isTransforming() && dir === 'y') {
|
227
213
|
touchingSideDisRef.current += 1;
|
228
214
|
}
|
229
215
|
}
|
216
|
+
|
230
217
|
/**
|
231
218
|
* 缩放插件初始化
|
232
219
|
* @en Zoom plugin initialization
|
233
220
|
*/
|
234
|
-
|
235
|
-
|
236
221
|
function initTransformer(index) {
|
237
222
|
var _imagesRef$current$in;
|
238
|
-
|
239
223
|
var imageDom = (_imagesRef$current$in = imagesRef.current[index]) == null ? void 0 : _imagesRef$current$in.dom;
|
240
224
|
var wrapDom = imageDom == null ? void 0 : imageDom.parentElement;
|
241
|
-
|
242
225
|
if (!imageDom || !wrapDom) {
|
243
226
|
return;
|
244
227
|
}
|
245
|
-
|
246
228
|
if (transformersRef.current[index]) {
|
247
229
|
transformersRef.current[index].setDom(wrapDom);
|
248
230
|
} else {
|
@@ -261,16 +243,15 @@
|
|
261
243
|
},
|
262
244
|
onTransform: function onTransform() {
|
263
245
|
var _transformersRef$curr, _imagesStatusRef$curr2, _imagesStatusRef$curr3;
|
264
|
-
|
265
246
|
// 图片放大再缩小,解决ios图片放大后模糊的问题
|
266
247
|
// @en The image is zoomed in and then zoomed out to solve the problem of blurring after zooming in on ios images
|
267
248
|
var img = imageDomsRef.current[index];
|
268
249
|
var trans = ((_transformersRef$curr = transformersRef.current[index]) == null ? void 0 : _transformersRef$curr.getTransform == null ? void 0 : _transformersRef$curr.getTransform()) || {};
|
269
250
|
var width = (_imagesStatusRef$curr2 = imagesStatusRef.current[index]) == null ? void 0 : _imagesStatusRef$curr2.originWidth;
|
270
251
|
var height = (_imagesStatusRef$curr3 = imagesStatusRef.current[index]) == null ? void 0 : _imagesStatusRef$curr3.originHeight;
|
271
|
-
var scale = trans.scale || 1;
|
252
|
+
var scale = trans.scale || 1;
|
253
|
+
// 判断下只有图片缩放发生改变时重写图片样式
|
272
254
|
// @en It is judged that only the image style is rewritten when the zoom of the image changes.
|
273
|
-
|
274
255
|
if (img && width && height && lastScaleRef.current !== scale) {
|
275
256
|
lastScaleRef.current = scale;
|
276
257
|
var atCenter = !imageHasOverflow(img) ? ' translateY(-50%)' : '';
|
@@ -289,23 +270,18 @@
|
|
289
270
|
onZoomEnd: function onZoomEnd(_1, _2, pinchStartCenter) {
|
290
271
|
setPlaceholders(function (holders) {
|
291
272
|
var _extends2;
|
292
|
-
|
293
273
|
return (0, _extends5.default)({}, holders, (_extends2 = {}, _extends2[index] = false, _extends2));
|
294
274
|
});
|
295
275
|
var image = imageDomsRef.current[index];
|
296
276
|
var transformer = transformersRef.current[index];
|
297
|
-
|
298
277
|
if (!image || !transformer || transformer.getTransform().scale < 1) {
|
299
278
|
return;
|
300
279
|
}
|
301
|
-
|
302
280
|
var imageRect = image.getBoundingClientRect();
|
303
|
-
|
304
281
|
if (imageRect.width > windowWidth && imageRect.height > windowHeight) {
|
305
282
|
if (pinchStartCenter && pinchStartCenter.length) {
|
306
283
|
transformer.setCenter.apply(transformer, pinchStartCenter);
|
307
284
|
}
|
308
|
-
|
309
285
|
transformer.setFixedX(false);
|
310
286
|
transformer.setFixedY(false);
|
311
287
|
} else if (imageRect.height <= windowHeight) {
|
@@ -324,24 +300,19 @@
|
|
324
300
|
maxScale: getImageMaxScale(index)
|
325
301
|
});
|
326
302
|
}
|
327
|
-
|
328
303
|
setOriginBoundary(index);
|
329
304
|
}
|
330
|
-
|
331
305
|
function imageHasOverflow(img) {
|
332
306
|
return Boolean(img && !img.classList.contains('preview-fit-contain-y'));
|
333
307
|
}
|
334
|
-
|
335
308
|
function setOriginBoundary(index) {
|
336
309
|
var imageEle = imagesRef.current[index];
|
337
|
-
var imageDom = imageEle == null ? void 0 : imageEle.dom;
|
310
|
+
var imageDom = imageEle == null ? void 0 : imageEle.dom;
|
311
|
+
// 边界范围变为图片范围和容器范围的并集
|
338
312
|
// @en The bounding range becomes the union of the image range and the container range
|
339
|
-
|
340
313
|
if (imageDom != null && imageDom.parentElement && imageEle != null && imageEle.image) {
|
341
314
|
var _rect = imageEle.image.getBoundingClientRect();
|
342
|
-
|
343
315
|
var eleRect = imageDom.parentElement.getBoundingClientRect();
|
344
|
-
|
345
316
|
if (transformersRef.current[index]) {
|
346
317
|
transformersRef.current[index].setBoundary({
|
347
318
|
left: Math.min(_rect.left, eleRect.left),
|
@@ -352,137 +323,111 @@
|
|
352
323
|
}
|
353
324
|
}
|
354
325
|
}
|
326
|
+
|
355
327
|
/**
|
356
328
|
* 获取最小缩放倍数
|
357
329
|
* @en Get the minimum zoom factor
|
358
330
|
*/
|
359
|
-
|
360
|
-
|
361
331
|
function getImageMinScale(index) {
|
362
332
|
var currentIndex = index === void 0 ? innerIndexRef.current : index;
|
363
333
|
var imageDom = imageDomsRef.current[currentIndex];
|
364
|
-
|
365
334
|
if (!imageDom) {
|
366
335
|
return 1;
|
367
336
|
}
|
368
|
-
|
369
337
|
if (getMinScale) {
|
370
338
|
return getMinScale(imageDom, currentIndex);
|
371
339
|
}
|
372
|
-
|
373
340
|
return MIN_ZOOM;
|
374
341
|
}
|
342
|
+
|
375
343
|
/**
|
376
344
|
* 获取最大缩放倍数
|
377
345
|
* @en Get the maximum zoom factor
|
378
346
|
*/
|
379
|
-
|
380
|
-
|
381
347
|
function getImageMaxScale(index) {
|
382
348
|
var currentIndex = index === void 0 ? innerIndexRef.current : index;
|
383
349
|
var imageDom = imageDomsRef.current[currentIndex];
|
384
|
-
|
385
350
|
if (!imageDom) {
|
386
351
|
return 1;
|
387
352
|
}
|
388
|
-
|
389
353
|
if (getMaxScale) {
|
390
354
|
return getMaxScale(imageDom, currentIndex);
|
391
355
|
}
|
392
|
-
|
393
356
|
var imageWidth = imageDom.naturalWidth;
|
394
357
|
var imageHeight = imageDom.naturalHeight;
|
395
358
|
var maxScale = 1;
|
396
|
-
|
397
359
|
if (imageWidth > imageHeight) {
|
398
360
|
maxScale = imageWidth / windowWidth * MAX_ZOOM;
|
399
361
|
} else {
|
400
362
|
maxScale = Math.max(MAX_ZOOM, imageWidth / windowWidth);
|
401
363
|
}
|
402
|
-
|
403
364
|
return maxScale;
|
404
365
|
}
|
366
|
+
|
405
367
|
/**
|
406
368
|
* 计算双击时图片缩放倍数
|
407
369
|
* @en Calculate the zoom factor of the image when double-clicking
|
408
370
|
*/
|
409
|
-
|
410
|
-
|
411
371
|
function getImageDoubleClickScale(currentScale) {
|
412
372
|
var index = innerIndexRef.current;
|
413
373
|
var imageDom = imageDomsRef.current[index];
|
414
|
-
|
415
374
|
if (!imageDom) {
|
416
375
|
return 1;
|
417
376
|
}
|
418
|
-
|
419
377
|
var maxScale = getImageMaxScale(index);
|
420
|
-
|
421
378
|
if (getDoubleClickScale) {
|
422
379
|
return getDoubleClickScale(currentScale, maxScale, imageDom, index);
|
423
380
|
}
|
424
|
-
|
425
381
|
var imageWidth = imageDom.naturalWidth;
|
426
382
|
var imageHeight = imageDom.naturalHeight;
|
427
383
|
var fitScale = imageWidth > imageHeight ? imageWidth / windowWidth * windowHeight / imageHeight : 1;
|
428
384
|
var dblScale = 2;
|
429
|
-
|
430
385
|
if (fitScale >= 2) {
|
431
386
|
dblScale = Math.min(maxScale, fitScale);
|
432
387
|
}
|
433
|
-
|
434
388
|
var current = Number(currentScale.toFixed(3));
|
435
389
|
var dbl = Number(dblScale.toFixed(3));
|
436
390
|
return current >= 1 && current < dbl ? dbl : 1;
|
437
391
|
}
|
392
|
+
|
438
393
|
/**
|
439
394
|
* 还原缩放至原始位置
|
440
395
|
* @en Revert zoom to original position
|
441
396
|
*/
|
442
|
-
|
443
|
-
|
444
397
|
function restoreTransformer(index) {
|
445
398
|
var transformer = transformersRef.current[index];
|
446
|
-
|
447
399
|
if (transformer) {
|
448
400
|
transformer.restore();
|
449
401
|
}
|
450
402
|
}
|
403
|
+
|
451
404
|
/**
|
452
405
|
* 是否正处于缩放状态
|
453
406
|
* @en Whether it is zooming
|
454
407
|
*/
|
455
|
-
|
456
|
-
|
457
408
|
function isTransforming(index) {
|
458
409
|
var _transformersRef$curr2;
|
459
|
-
|
460
410
|
var currentIndex = index === void 0 ? innerIndexRef.current : index;
|
461
411
|
return (_transformersRef$curr2 = transformersRef.current[currentIndex]) == null ? void 0 : _transformersRef$curr2.busy == null ? void 0 : _transformersRef$curr2.busy();
|
462
412
|
}
|
413
|
+
|
463
414
|
/**
|
464
415
|
* 是否已经放大过
|
465
416
|
* @en Whether is has been zoomed in
|
466
417
|
*/
|
467
|
-
|
468
|
-
|
469
418
|
function isTransformed() {
|
470
419
|
var _transformersRef$curr3;
|
471
|
-
|
472
420
|
return (_transformersRef$curr3 = transformersRef.current[innerIndexRef.current]) == null ? void 0 : _transformersRef$curr3.dirty == null ? void 0 : _transformersRef$curr3.dirty();
|
473
421
|
}
|
474
|
-
|
475
422
|
function isTapStop() {
|
476
423
|
var _transformersRef$curr4;
|
477
|
-
|
478
424
|
return (_transformersRef$curr4 = transformersRef.current[innerIndexRef.current]) == null ? void 0 : _transformersRef$curr4.isTapStop == null ? void 0 : _transformersRef$curr4.isTapStop();
|
479
425
|
}
|
426
|
+
|
480
427
|
/**
|
481
428
|
* 计算距离左右侧的距离,如果为0说明到边缘了,可以进行正常轮播操作
|
482
429
|
* @en Calculate the distance from the left and right sides. If it is 0, it means that the edge is reached, and the normal rotation operation can be performed.
|
483
430
|
*/
|
484
|
-
|
485
|
-
|
486
431
|
function transformTouchSide() {
|
487
432
|
var transformer = transformersRef.current[innerIndexRef.current];
|
488
433
|
var toLeft = transformer == null ? void 0 : transformer.toLeft == null ? void 0 : transformer.toLeft();
|
@@ -493,23 +438,20 @@
|
|
493
438
|
right: !toRight
|
494
439
|
};
|
495
440
|
}
|
496
|
-
|
497
441
|
function handleImageWrapTouchStart(e) {
|
498
442
|
if (onTouchStart && onTouchStart(e, innerIndexRef.current)) {
|
499
443
|
return true;
|
500
444
|
}
|
501
|
-
|
502
445
|
var touches = e.touches;
|
503
446
|
touchStartXRef.current = e.touches && e.touches[0] ? e.touches[0].clientX : 0;
|
504
447
|
movedRef.current = false;
|
505
|
-
dblClickingRef.current = false;
|
448
|
+
dblClickingRef.current = false;
|
449
|
+
// 单点长按才触发长按
|
506
450
|
// @en A single long press triggers a long press
|
507
|
-
|
508
451
|
if (touches.length === 1) {
|
509
452
|
if (!closingRef.current) {
|
510
453
|
longTapCheckingRef.current = true;
|
511
454
|
}
|
512
|
-
|
513
455
|
longTimerRef.current = window.setTimeout(function () {
|
514
456
|
if (longTapCheckingRef.current) {
|
515
457
|
longTapCheckingRef.current = false;
|
@@ -520,72 +462,61 @@
|
|
520
462
|
} else {
|
521
463
|
longTapCheckingRef.current = false;
|
522
464
|
}
|
523
|
-
|
524
465
|
if (isTapStop()) {
|
525
466
|
movedRef.current = true;
|
526
|
-
}
|
467
|
+
}
|
468
|
+
// 缩放状态下,未到边缘时不触发轮播手势
|
527
469
|
// @en In the zoomed state, the carousel gesture is not triggered when the edge is not reached
|
528
|
-
|
529
|
-
|
530
470
|
if (isTransforming()) {
|
531
471
|
startTouchingSideRef.current = transformTouchSide().side;
|
532
472
|
return !startTouchingSideRef.current;
|
533
473
|
}
|
534
474
|
}
|
535
|
-
|
536
475
|
function handleImageWrapTouchMove(e) {
|
537
476
|
movedRef.current = true;
|
538
477
|
longTapCheckingRef.current = false;
|
539
478
|
longTimerRef.current && clearTimeout(longTimerRef.current);
|
540
|
-
|
541
479
|
if (onTouchMove && onTouchMove(e, innerIndexRef.current)) {
|
542
480
|
return true;
|
543
481
|
}
|
544
|
-
|
545
482
|
var evt = e.changedTouches[0];
|
546
483
|
var touchMoveX = evt.clientX || 0;
|
547
|
-
var posDisX = touchMoveX - touchStartXRef.current;
|
484
|
+
var posDisX = touchMoveX - touchStartXRef.current;
|
485
|
+
// 缩放状态下,到边缘时如果还在往外滑动,则触发轮播手势
|
548
486
|
// @en In the zoomed state, if it is still swiped out when reaching the edge, the carousel gesture is triggered
|
549
|
-
|
550
487
|
if (isTransforming()) {
|
551
488
|
var sideInfo = transformTouchSide();
|
552
489
|
return !startTouchingSideRef.current || !(sideInfo.left && posDisX > 0 || sideInfo.right && posDisX < 0);
|
553
490
|
}
|
554
491
|
}
|
555
|
-
|
556
492
|
function handleImageWrapTouchEnd(e) {
|
557
493
|
if (onTouchEnd && onTouchEnd(e, innerIndexRef.current)) {
|
558
494
|
return true;
|
559
|
-
}
|
495
|
+
}
|
496
|
+
// 滑动到上下边缘后还在往外滑动,则关闭弹窗
|
560
497
|
// @en After sliding to the upper and lower edges and still sliding outwards, close the popup box
|
561
498
|
// needClose为触发touchmove的次数,6和3是相对值,表示判断在往外滑动的敏感度,当未放大时对向外滑动手势更敏感
|
562
499
|
// @en needClose is the number of times the touchmove is triggered, 6 and 3 are relative values, indicating the sensitivity of judging the outward sliding, and it is more sensitive to the outward sliding gesture when it is not zoomed in
|
563
|
-
|
564
|
-
|
565
500
|
var needClose = swipeToClose && touchingSideDisRef.current >= (isTransformed() ? 6 : 3);
|
566
501
|
touchingSideDisRef.current = 0;
|
567
502
|
longTapCheckingRef.current = false;
|
568
503
|
longTimerRef.current && clearTimeout(longTimerRef.current);
|
569
|
-
|
570
504
|
if (needClose) {
|
571
505
|
goClose(e);
|
572
506
|
return true;
|
573
|
-
}
|
507
|
+
}
|
508
|
+
// 缩放状态下,未到边缘时不触发轮播手势
|
574
509
|
// @en In the zoomed state, the carousel gesture is not triggered when the edge is not reached
|
575
|
-
|
576
|
-
|
577
510
|
if (isTransforming() && !transformTouchSide().side) {
|
578
511
|
return true;
|
579
512
|
}
|
580
513
|
}
|
581
|
-
|
582
514
|
function handleImageClick(e) {
|
583
515
|
if (movedRef.current) {
|
584
516
|
return;
|
585
|
-
}
|
517
|
+
}
|
518
|
+
// 300ms内再次点击则触发doubleClick,否则触发click
|
586
519
|
// @en Click again within 300ms to trigger doubleClick, otherwise trigger click
|
587
|
-
|
588
|
-
|
589
520
|
dblTimerRef.current = window.setTimeout(function () {
|
590
521
|
if (!dblClickingRef.current) {
|
591
522
|
if (!onImageClick || !onImageClick(innerIndexRef.current, e)) {
|
@@ -594,35 +525,29 @@
|
|
594
525
|
}
|
595
526
|
}, 300);
|
596
527
|
}
|
597
|
-
|
598
528
|
function handleImageDoubleClick(e) {
|
599
529
|
if (dblClickingRef.current) {
|
600
530
|
// 防止重复触发dblclick
|
601
531
|
return;
|
602
532
|
}
|
603
|
-
|
604
533
|
dblClickingRef.current = true;
|
605
|
-
|
606
534
|
if (dblTimerRef.current) {
|
607
535
|
clearTimeout(dblTimerRef.current);
|
608
536
|
dblTimerRef.current = null;
|
609
537
|
}
|
610
|
-
|
611
538
|
var index = innerIndexRef.current;
|
612
|
-
onImageDoubleClick && onImageDoubleClick(index, e);
|
539
|
+
onImageDoubleClick && onImageDoubleClick(index, e);
|
540
|
+
// 双击时根据配置放大或缩小
|
613
541
|
// @en Zoom in or out according to configuration when double-clicking
|
614
|
-
|
615
542
|
var transformer = transformersRef.current[index];
|
616
|
-
|
617
543
|
if (transformer) {
|
618
544
|
var trans = transformer.getTransform();
|
619
545
|
var rate = trans.scale || 1;
|
620
546
|
var dblScale = getImageDoubleClickScale(rate);
|
621
|
-
|
622
547
|
if (dblScale === 1) {
|
623
|
-
var img = imageDomsRef.current[index];
|
548
|
+
var img = imageDomsRef.current[index];
|
549
|
+
// 长图双击还原缩放特殊处理,因为transform和scroll不能完全同步,所以先zoomTo到原点再restore
|
624
550
|
// @en Double-click the long image to restore zoom special processing, because transform and scroll cannot be completely synchronized, so first zoomTo to the origin and then restore
|
625
|
-
|
626
551
|
if (imageHasOverflow(img)) {
|
627
552
|
transformer.zoomToScreenCenter(1, [windowWidth / 2, windowHeight / 2], {
|
628
553
|
duration: 200,
|
@@ -642,57 +567,48 @@
|
|
642
567
|
}
|
643
568
|
}
|
644
569
|
}
|
645
|
-
|
646
570
|
var handleClick = (0, _helpers.useSingleAndDoubleClick)(handleImageClick, handleImageDoubleClick);
|
647
|
-
|
648
571
|
function goClose(e) {
|
649
572
|
if (closingRef.current) {
|
650
573
|
return;
|
651
574
|
}
|
652
|
-
|
653
575
|
closingRef.current = true;
|
654
576
|
close(e);
|
655
577
|
}
|
578
|
+
|
656
579
|
/**
|
657
580
|
* 更改指定图片状态
|
658
581
|
* @en Change specified image status
|
659
582
|
*/
|
660
|
-
|
661
|
-
|
662
583
|
function setImagesStatusByIndex(index, data) {
|
663
584
|
var newStatus = imagesStatusRef.current.slice();
|
664
585
|
newStatus[index] = (0, _extends5.default)({}, newStatus[index] || {}, data);
|
665
586
|
setImagesStatus(newStatus);
|
666
587
|
}
|
588
|
+
|
667
589
|
/**
|
668
590
|
* 缩略图放大过渡动画设置
|
669
591
|
* @en Set thumbnail zoom transition animation
|
670
592
|
*/
|
671
|
-
|
672
|
-
|
673
593
|
function setDisplayAnimation(index) {
|
674
594
|
var _imagesStatusRef$curr4;
|
675
|
-
|
676
595
|
var firstLoaded = (_imagesStatusRef$curr4 = imagesStatusRef.current[index]) == null ? void 0 : _imagesStatusRef$curr4.firstLoaded;
|
677
|
-
var fallbackSrc = replaceFallbackWhenLoaded && firstLoaded ? images[index].src : images[index].fallbackSrc;
|
596
|
+
var fallbackSrc = replaceFallbackWhenLoaded && firstLoaded ? images[index].src : images[index].fallbackSrc;
|
597
|
+
// 用户设置了getThumbBounds和images的fallbackSrc属性才有放大过渡效果
|
678
598
|
// @en Set the fallbackSrc attribute of getThumbBounds and images to have a zoom-in transition effect
|
679
|
-
|
680
599
|
if (!getThumbBounds || !images[index] || !fallbackSrc) {
|
681
600
|
resetAnimation(index);
|
682
601
|
return;
|
683
|
-
}
|
602
|
+
}
|
603
|
+
// 获取缩略图的rect,如果没获取到就取消放大过渡效果
|
684
604
|
// @en Get the rect of the thumbnail, if it is gotten, cancel the zoom transition effect
|
685
|
-
|
686
|
-
|
687
605
|
var thumbBounds = getThumbBounds(index);
|
688
|
-
|
689
606
|
if (!thumbBounds || !thumbBounds.width || !thumbBounds.height) {
|
690
607
|
resetAnimation(index);
|
691
608
|
return;
|
692
|
-
}
|
609
|
+
}
|
610
|
+
// 伪造一个fixed的图做小图放大效果
|
693
611
|
// @en Forge a fixed image to make a small image enlargement effect
|
694
|
-
|
695
|
-
|
696
612
|
var transImage = new Image();
|
697
613
|
transImageRef.current = transImage;
|
698
614
|
transImage.classList.add('image-preview-fake-trans-image');
|
@@ -702,25 +618,23 @@
|
|
702
618
|
transImage.style.opacity = '0';
|
703
619
|
transImage.style.transitionDuration = displayDuration + "ms";
|
704
620
|
transImage.style.webkitTransitionDuration = displayDuration + "ms";
|
705
|
-
document.body.appendChild(transImage);
|
621
|
+
document.body.appendChild(transImage);
|
622
|
+
// 拿到放大之后的位置rect,没拿到就取消小图放大效果
|
706
623
|
// @en Get the zoomed-in position rect, and cancel the zoom-in effect if not getting it
|
707
|
-
|
708
624
|
getNewImageBounds(index, fallbackSrc, transImage, function (rect) {
|
709
625
|
if (!rect || !rect.width || !rect.height) {
|
710
626
|
removeChild(transImage);
|
711
627
|
resetAnimation(index);
|
712
628
|
return;
|
713
|
-
}
|
629
|
+
}
|
630
|
+
// 通过小图rect变换到大图rect加transition做放大效果
|
714
631
|
// @en Transform the small image rect to the large image rect and add transition to make a magnification effect
|
715
|
-
|
716
|
-
|
717
632
|
(0, _mobileUtils.nextTick)(function () {
|
718
633
|
transImage.style.opacity = '1';
|
719
634
|
setImageBounds(transImage, rect, thumbBounds);
|
720
635
|
setTimeout(function () {
|
721
636
|
setPlaceholders(function (holders) {
|
722
637
|
var _extends3;
|
723
|
-
|
724
638
|
return (0, _extends5.default)({}, holders, (_extends3 = {}, _extends3[index] = true, _extends3));
|
725
639
|
});
|
726
640
|
}, Math.max(0, displayDuration - 80));
|
@@ -730,24 +644,22 @@
|
|
730
644
|
});
|
731
645
|
});
|
732
646
|
}
|
647
|
+
|
733
648
|
/**
|
734
649
|
* 取消小图放大过渡效果
|
735
650
|
* @en Cancel the thumbnail zoom transition effect
|
736
651
|
*/
|
737
|
-
|
738
|
-
|
739
652
|
function resetAnimation(index) {
|
740
653
|
setImagesStatusByIndex(index, {
|
741
654
|
animated: true
|
742
655
|
});
|
743
656
|
setTransImageInfo(null);
|
744
657
|
}
|
658
|
+
|
745
659
|
/**
|
746
660
|
* 根据rect设置图片的位置
|
747
661
|
* @en Set the position of the image according to the rect
|
748
662
|
*/
|
749
|
-
|
750
|
-
|
751
663
|
function setImageBounds(image, rect, thumbRect) {
|
752
664
|
// 这里为保持原有比例,只设置宽度变化,高度会随宽度等比变化
|
753
665
|
image.style.width = thumbRect.width + "px";
|
@@ -757,18 +669,16 @@
|
|
757
669
|
image.style.transformOrigin = 'left top';
|
758
670
|
image.style.webkitTransformOrigin = 'left top';
|
759
671
|
}
|
672
|
+
|
760
673
|
/**
|
761
674
|
* 计算放大之后的位置rect
|
762
675
|
* @en Calculate the position rect after zooming in
|
763
676
|
*/
|
764
|
-
|
765
|
-
|
766
677
|
function getNewImageBounds(index, transSrc, transImage, callback) {
|
767
678
|
if (!transSrc) {
|
768
679
|
callback(null);
|
769
680
|
return;
|
770
681
|
}
|
771
|
-
|
772
682
|
setTransImageInfo({
|
773
683
|
src: transSrc,
|
774
684
|
fit: images[index].fit,
|
@@ -784,19 +694,18 @@
|
|
784
694
|
}
|
785
695
|
});
|
786
696
|
}
|
697
|
+
|
787
698
|
/**
|
788
699
|
* @en 渲染轮播+图片展示
|
789
700
|
* Rendering carousel + displaying image
|
790
701
|
*/
|
791
|
-
|
792
|
-
|
793
702
|
function renderContent(carouselProps, allImages, getImageProps) {
|
794
703
|
return /*#__PURE__*/_react.default.createElement(_carousel.default, (0, _extends5.default)({
|
795
704
|
autoPlay: false,
|
796
705
|
loop: loop,
|
797
706
|
lazyloadCount: lazyloadCount
|
798
707
|
}, carouselProps), (allImages || []).map(function (image, index) {
|
799
|
-
|
708
|
+
var innerNode = /*#__PURE__*/_react.default.createElement("div", {
|
800
709
|
key: index,
|
801
710
|
className: "preview-image-wrap",
|
802
711
|
style: {
|
@@ -809,24 +718,25 @@
|
|
809
718
|
boxHeight: windowHeight,
|
810
719
|
bottomOverlap: null
|
811
720
|
}, getImageProps(image, index))));
|
721
|
+
return image.extraNode ? /*#__PURE__*/_react.default.createElement("div", {
|
722
|
+
className: "preview-image-wrap-container",
|
723
|
+
key: "outer-" + index
|
724
|
+
}, innerNode, image.extraNode) : innerNode;
|
812
725
|
}));
|
813
726
|
}
|
814
|
-
|
815
727
|
function getImageClass(index) {
|
816
728
|
var _ref = imagesStatus[index] || {},
|
817
|
-
|
818
|
-
|
819
|
-
|
729
|
+
loaded = _ref.loaded,
|
730
|
+
animated = _ref.animated;
|
820
731
|
return (0, _mobileUtils.cls)('preview-image', {
|
821
732
|
'preview-hidden': index === openIndex && (!loaded || !animated)
|
822
733
|
});
|
823
734
|
}
|
735
|
+
|
824
736
|
/**
|
825
737
|
* 每张图片的样式
|
826
738
|
* @en style of each image
|
827
739
|
*/
|
828
|
-
|
829
|
-
|
830
740
|
function getImageStyle() {
|
831
741
|
// 因为缩放的容器必须是没有transform和transition的纯净元素
|
832
742
|
// @en Because the scaled container must be a pure element without transform and transition
|
@@ -835,31 +745,29 @@
|
|
835
745
|
return {
|
836
746
|
overflow: 'visible'
|
837
747
|
};
|
838
|
-
}
|
839
|
-
|
748
|
+
}
|
840
749
|
|
750
|
+
// 渲染轮播指引器
|
841
751
|
function renderPreviewIndicator(currentIndex, total, lastIndex) {
|
842
752
|
if (renderIndicator) {
|
843
753
|
return renderIndicator(currentIndex, total, lastIndex);
|
844
754
|
}
|
845
|
-
|
846
755
|
return openLoaded ? /*#__PURE__*/_react.default.createElement(_portal.default, null, /*#__PURE__*/_react.default.createElement("div", {
|
847
756
|
className: "image-preview-indicator"
|
848
757
|
}, currentIndex + 1, "/", total)) : null;
|
849
|
-
}
|
758
|
+
}
|
759
|
+
|
760
|
+
// ios在重设style时图片会消失一下造成闪动,因此在底下垫一张图
|
850
761
|
// @en In iOS when resetting the style, the image will disappear and cause flickering, so put a image at the bottom
|
851
762
|
// 优先过渡图,其次用原图
|
852
763
|
// @en Prioritize the transition image, followed by the original image
|
853
|
-
|
854
|
-
|
855
764
|
function renderImagePlaceholder(src, index) {
|
856
765
|
var _ref2 = imagesStatus[index] || {},
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
766
|
+
originWidth = _ref2.originWidth,
|
767
|
+
originHeight = _ref2.originHeight,
|
768
|
+
originLeft = _ref2.originLeft,
|
769
|
+
originTop = _ref2.originTop,
|
770
|
+
hasOverflow = _ref2.hasOverflow;
|
863
771
|
var trans = hasOverflow ? {} : (0, _helpers.getStyleWithVendor)({
|
864
772
|
transform: 'translateY(-50%)'
|
865
773
|
});
|
@@ -874,7 +782,6 @@
|
|
874
782
|
}, trans)
|
875
783
|
}) : null;
|
876
784
|
}
|
877
|
-
|
878
785
|
function renderLoadingArea(index) {
|
879
786
|
// loadingArea提出来,放到过渡图上层
|
880
787
|
// @en The loadingArea is extracted and placed on the upper layer of the transition image
|
@@ -886,7 +793,6 @@
|
|
886
793
|
radius: 7
|
887
794
|
}))) : loadingArea;
|
888
795
|
}
|
889
|
-
|
890
796
|
return /*#__PURE__*/_react.default.createElement(_contextProvider.ContextLayout, null, function (_ref3) {
|
891
797
|
var prefixCls = _ref3.prefixCls;
|
892
798
|
return /*#__PURE__*/_react.default.createElement(_portal.default, {
|
@@ -951,20 +857,17 @@
|
|
951
857
|
originLeft: imageEle.offsetLeft,
|
952
858
|
hasOverflow: imageHasOverflow(imageEle)
|
953
859
|
});
|
954
|
-
|
955
860
|
if (index === openIndex) {
|
956
861
|
initTransformer(index);
|
957
862
|
} else {
|
958
863
|
setPlaceholders(function (holders) {
|
959
864
|
var _extends4;
|
960
|
-
|
961
865
|
return (0, _extends5.default)({}, holders, (_extends4 = {}, _extends4[index] = true, _extends4));
|
962
866
|
});
|
963
867
|
}
|
964
868
|
},
|
965
869
|
onError: function onError() {
|
966
870
|
imageDomsRef.current[index] = null;
|
967
|
-
|
968
871
|
if (index === openIndex) {
|
969
872
|
var transImage = transImageInfo == null ? void 0 : transImageInfo.movingImage;
|
970
873
|
removeChild(transImage);
|
@@ -997,7 +900,6 @@
|
|
997
900
|
}) : null);
|
998
901
|
});
|
999
902
|
});
|
1000
|
-
|
1001
903
|
function methodsGenerator(Comp) {
|
1002
904
|
return {
|
1003
905
|
/**
|
@@ -1009,8 +911,8 @@
|
|
1009
911
|
open: (0, _methods.open)(Comp)
|
1010
912
|
};
|
1011
913
|
}
|
1012
|
-
|
1013
914
|
var ImagePreviewWithGlobalContext = (0, _contextProvider.CompWithGlobalContext)(ImagePreview);
|
915
|
+
|
1014
916
|
/**
|
1015
917
|
* 图片预览组件,支持循环轮播、双指/双击缩放、缩略图放大效果。
|
1016
918
|
* @en The image preview, supports circular rotation, two-finger/double-tap zoom, and thumbnail zoom effects.
|
@@ -1019,8 +921,6 @@
|
|
1019
921
|
* @name 图片预览
|
1020
922
|
* @name_en ImagePreview
|
1021
923
|
*/
|
1022
|
-
|
1023
924
|
var _default = (0, _mobileUtils.componentWrapper)(ImagePreview, methodsGenerator(ImagePreviewWithGlobalContext));
|
1024
|
-
|
1025
925
|
_exports.default = _default;
|
1026
926
|
});
|