@arco-design/mobile-react 2.25.4 → 2.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.en-US.md +2 -2
- package/README.md +2 -2
- package/cjs/_helpers/hooks.js +124 -43
- package/cjs/_helpers/index.js +13 -2
- package/cjs/_helpers/react-dom.js +12 -0
- package/cjs/_helpers/render.js +12 -0
- package/cjs/action-sheet/index.d.ts +2 -2
- package/cjs/action-sheet/index.js +30 -10
- package/cjs/action-sheet/methods.js +2 -0
- package/cjs/action-sheet/style/css/index.js +2 -0
- package/cjs/action-sheet/style/index.js +2 -0
- package/cjs/avatar/group.js +24 -12
- package/cjs/avatar/index.js +77 -51
- package/cjs/avatar/style/css/index.js +2 -0
- package/cjs/avatar/style/index.js +2 -0
- package/cjs/badge/index.js +29 -18
- package/cjs/badge/style/css/index.js +1 -0
- package/cjs/badge/style/index.js +1 -0
- package/cjs/button/hooks.js +20 -15
- package/cjs/button/index.js +67 -46
- package/cjs/button/style/css/index.js +2 -0
- package/cjs/button/style/index.js +2 -0
- package/cjs/carousel/index.d.ts +6 -0
- package/cjs/carousel/index.js +342 -184
- package/cjs/carousel/style/css/index.css +50 -15
- package/cjs/carousel/style/css/index.js +1 -0
- package/cjs/carousel/style/index.js +1 -0
- package/cjs/carousel/style/index.less +19 -14
- package/cjs/cell/arrow.js +3 -0
- package/cjs/cell/cell.js +23 -14
- package/cjs/cell/demo/style/css/mobile.css +8 -0
- package/cjs/cell/demo/style/mobile.less +2 -2
- package/cjs/cell/group.js +21 -9
- package/cjs/cell/index.js +7 -1
- package/cjs/cell/style/css/index.css +16 -0
- package/cjs/cell/style/css/index.js +1 -0
- package/cjs/cell/style/index.js +1 -0
- package/cjs/cell/style/index.less +6 -4
- package/cjs/checkbox/checkbox.js +57 -31
- package/cjs/checkbox/group.js +38 -24
- package/cjs/checkbox/hooks/index.js +2 -0
- package/cjs/checkbox/hooks/useMergeProps.js +14 -7
- package/cjs/checkbox/index.js +8 -1
- package/cjs/checkbox/style/css/index.js +1 -0
- package/cjs/checkbox/style/index.js +1 -0
- package/cjs/checkbox/type.js +2 -0
- package/cjs/circle-progress/index.js +57 -37
- package/cjs/circle-progress/style/css/index.js +1 -0
- package/cjs/circle-progress/style/index.js +1 -0
- package/cjs/collapse/collapse.js +56 -27
- package/cjs/collapse/group.js +44 -20
- package/cjs/collapse/index.js +9 -0
- package/cjs/collapse/style/css/index.js +1 -0
- package/cjs/collapse/style/index.js +1 -0
- package/cjs/collapse/utils.js +7 -0
- package/cjs/context-provider/index.d.ts +6 -0
- package/cjs/context-provider/index.js +30 -11
- package/cjs/context-provider/style/css/index.js +1 -0
- package/cjs/context-provider/style/index.js +1 -0
- package/cjs/count-down/hooks.js +43 -24
- package/cjs/count-down/index.js +37 -29
- package/cjs/count-down/singleton.js +12 -2
- package/cjs/count-down/style/css/index.js +1 -0
- package/cjs/count-down/style/index.js +1 -0
- package/cjs/count-down/util.js +47 -33
- package/cjs/date-picker/helper.js +14 -7
- package/cjs/date-picker/index.js +106 -42
- package/cjs/date-picker/style/css/index.js +2 -0
- package/cjs/date-picker/style/index.js +2 -0
- package/cjs/dialog/index.d.ts +2 -2
- package/cjs/dialog/index.js +54 -28
- package/cjs/dialog/methods.js +22 -9
- package/cjs/dialog/style/css/index.js +2 -0
- package/cjs/dialog/style/index.js +2 -0
- package/cjs/divider/demo/style/css/mobile.css +7 -0
- package/cjs/divider/demo/style/mobile.less +12 -0
- package/cjs/divider/index.d.ts +49 -0
- package/cjs/divider/index.js +65 -0
- package/cjs/divider/style/css/index.css +69 -0
- package/cjs/divider/style/css/index.d.ts +2 -0
- package/cjs/divider/style/css/index.js +5 -0
- package/cjs/divider/style/index.d.ts +2 -0
- package/cjs/divider/style/index.js +5 -0
- package/cjs/divider/style/index.less +66 -0
- package/cjs/dropdown/dropdown.js +113 -74
- package/cjs/dropdown/index.js +8 -1
- package/cjs/dropdown/options.js +28 -12
- package/cjs/dropdown/style/css/index.js +1 -0
- package/cjs/dropdown/style/index.js +1 -0
- package/cjs/dropdown-menu/dropdown-menu.js +84 -49
- package/cjs/dropdown-menu/helper.js +27 -6
- package/cjs/dropdown-menu/index.js +6 -0
- package/cjs/dropdown-menu/style/css/index.js +2 -0
- package/cjs/dropdown-menu/style/index.js +2 -0
- package/cjs/ellipsis/components/js-ellipsis.js +72 -33
- package/cjs/ellipsis/components/native-ellipsis.js +15 -9
- package/cjs/ellipsis/index.js +32 -19
- package/cjs/ellipsis/style/css/index.js +1 -0
- package/cjs/ellipsis/style/index.js +1 -0
- package/cjs/ellipsis/utils/dom.js +8 -0
- package/cjs/ellipsis/utils/is.js +5 -1
- package/cjs/form/form-item-context.js +5 -0
- package/cjs/form/form-item.js +124 -42
- package/cjs/form/index.js +35 -17
- package/cjs/form/style/css/index.js +1 -0
- package/cjs/form/style/index.js +1 -0
- package/cjs/form/type.js +3 -0
- package/cjs/form/useForm.js +76 -18
- package/cjs/form/utils.js +10 -3
- package/cjs/grid/index.js +41 -21
- package/cjs/grid/style/css/index.js +1 -0
- package/cjs/grid/style/index.js +1 -0
- package/cjs/icon/IconAdd/index.js +12 -5
- package/cjs/icon/IconArrowBack/index.js +12 -5
- package/cjs/icon/IconArrowDown/index.js +12 -5
- package/cjs/icon/IconArrowIn/index.js +12 -5
- package/cjs/icon/IconArrowUp/index.js +12 -5
- package/cjs/icon/IconCheck/index.js +12 -5
- package/cjs/icon/IconCheckBold/index.js +12 -5
- package/cjs/icon/IconCircleChecked/index.js +12 -5
- package/cjs/icon/IconCircleDisabled/index.js +12 -5
- package/cjs/icon/IconCircleUnchecked/index.js +12 -5
- package/cjs/icon/IconClear/index.js +12 -5
- package/cjs/icon/IconClose/index.js +12 -5
- package/cjs/icon/IconCloseBold/index.js +12 -5
- package/cjs/icon/IconDelete/index.js +12 -5
- package/cjs/icon/IconEdit/index.js +12 -5
- package/cjs/icon/IconErrorCircle/index.js +12 -5
- package/cjs/icon/IconEyeInvisible/index.js +12 -5
- package/cjs/icon/IconEyeVisible/index.js +12 -5
- package/cjs/icon/IconEyelashInvisible/index.js +12 -5
- package/cjs/icon/IconGift/index.js +12 -5
- package/cjs/icon/IconHeart/index.js +12 -5
- package/cjs/icon/IconHome/index.js +12 -5
- package/cjs/icon/IconLikeCircle/index.js +12 -5
- package/cjs/icon/IconMinus/index.js +12 -5
- package/cjs/icon/IconMore/index.js +12 -5
- package/cjs/icon/IconNotice/index.js +12 -5
- package/cjs/icon/IconNoticeOff/index.js +12 -5
- package/cjs/icon/IconPicture/index.js +12 -5
- package/cjs/icon/IconPlay/index.js +12 -5
- package/cjs/icon/IconQuestionCircle/index.js +12 -5
- package/cjs/icon/IconRefresh/index.js +12 -5
- package/cjs/icon/IconSad/index.js +12 -5
- package/cjs/icon/IconScan/index.js +12 -5
- package/cjs/icon/IconSearch/index.js +12 -5
- package/cjs/icon/IconSetting/index.js +12 -5
- package/cjs/icon/IconShop/index.js +12 -5
- package/cjs/icon/IconShopping/index.js +12 -5
- package/cjs/icon/IconSmileFill/index.js +12 -5
- package/cjs/icon/IconSound/index.js +12 -5
- package/cjs/icon/IconSquareChecked/index.js +12 -5
- package/cjs/icon/IconSquareDisabled/index.js +12 -5
- package/cjs/icon/IconSquareUnchecked/index.js +12 -5
- package/cjs/icon/IconStar/index.js +12 -5
- package/cjs/icon/IconStarFill/index.js +12 -5
- package/cjs/icon/IconStarHalf/index.js +12 -5
- package/cjs/icon/IconSubway/index.js +12 -5
- package/cjs/icon/IconSuccessCircle/index.js +12 -5
- package/cjs/icon/IconTriDown/index.js +12 -5
- package/cjs/icon/IconTriUp/index.js +12 -5
- package/cjs/icon/IconUpload/index.js +12 -5
- package/cjs/icon/IconUser/index.js +12 -5
- package/cjs/icon/IconUserFill/index.js +12 -5
- package/cjs/icon/IconWarnCircle/index.js +12 -5
- package/cjs/icon/IconWarnCircleFill/index.js +12 -5
- package/cjs/icon/index.js +111 -0
- package/cjs/image/index.js +92 -56
- package/cjs/image/style/css/index.css +1 -0
- package/cjs/image/style/css/index.js +2 -0
- package/cjs/image/style/index.js +2 -0
- package/cjs/image/style/index.less +1 -0
- package/cjs/image-picker/add-icon.js +3 -0
- package/cjs/image-picker/index.js +96 -52
- package/cjs/image-picker/style/css/index.js +2 -0
- package/cjs/image-picker/style/index.js +2 -0
- package/cjs/image-preview/index.d.ts +2 -2
- package/cjs/image-preview/index.js +239 -119
- package/cjs/image-preview/methods.js +18 -5
- package/cjs/image-preview/style/css/index.js +4 -0
- package/cjs/image-preview/style/index.js +4 -0
- package/cjs/index.d.ts +10 -9
- package/cjs/index.js +132 -19
- package/cjs/input/demo/style/css/mobile.css +5 -1
- package/cjs/input/demo/style/mobile.less +2 -2
- package/cjs/input/hooks.js +104 -42
- package/cjs/input/index.js +40 -26
- package/cjs/input/props.d.ts +6 -0
- package/cjs/input/style/css/index.css +9 -0
- package/cjs/input/style/css/index.js +1 -0
- package/cjs/input/style/index.js +1 -0
- package/cjs/input/style/index.less +2 -2
- package/cjs/load-more/index.js +56 -29
- package/cjs/load-more/style/css/index.js +1 -0
- package/cjs/load-more/style/index.js +1 -0
- package/cjs/loading/index.js +48 -19
- package/cjs/loading/style/css/index.js +1 -0
- package/cjs/loading/style/index.js +1 -0
- package/cjs/masking/index.d.ts +2 -2
- package/cjs/masking/index.js +79 -46
- package/cjs/masking/methods.js +19 -4
- package/cjs/masking/style/css/index.js +2 -0
- package/cjs/masking/style/index.js +2 -0
- package/cjs/nav-bar/back-icon.js +5 -1
- package/cjs/nav-bar/index.js +61 -37
- package/cjs/nav-bar/style/css/index.js +1 -0
- package/cjs/nav-bar/style/index.js +1 -0
- package/cjs/notice-bar/index.js +61 -33
- package/cjs/notice-bar/style/css/index.css +33 -0
- package/cjs/notice-bar/style/css/index.js +1 -0
- package/cjs/notice-bar/style/index.js +1 -0
- package/cjs/notice-bar/style/index.less +16 -3
- package/cjs/notify/index.d.ts +8 -8
- package/cjs/notify/index.js +49 -20
- package/cjs/notify/methods.js +17 -2
- package/cjs/notify/style/css/index.js +1 -0
- package/cjs/notify/style/index.js +1 -0
- package/cjs/pagination/arrow.js +3 -0
- package/cjs/pagination/index.js +58 -27
- package/cjs/pagination/style/css/index.js +1 -0
- package/cjs/pagination/style/index.js +1 -0
- package/cjs/picker/index.js +81 -40
- package/cjs/picker/style/css/index.js +3 -0
- package/cjs/picker/style/index.js +3 -0
- package/cjs/picker-view/components/cascader.js +31 -14
- package/cjs/picker-view/components/multi-picker.js +20 -6
- package/cjs/picker-view/components/picker-cell.js +97 -45
- package/cjs/picker-view/index.js +71 -25
- package/cjs/picker-view/style/css/index.js +1 -0
- package/cjs/picker-view/style/index.js +1 -0
- package/cjs/popover/hooks/index.js +4 -0
- package/cjs/popover/hooks/useEvent.js +49 -25
- package/cjs/popover/hooks/usePosition.js +151 -94
- package/cjs/popover/index.js +8 -1
- package/cjs/popover/menu.js +51 -32
- package/cjs/popover/popover-inner.js +47 -30
- package/cjs/popover/popover.js +101 -69
- package/cjs/popover/style/css/index.js +2 -0
- package/cjs/popover/style/index.js +2 -0
- package/cjs/popup/index.d.ts +2 -2
- package/cjs/popup/index.js +39 -22
- package/cjs/popup/methods.js +2 -0
- package/cjs/popup/style/css/index.js +2 -0
- package/cjs/popup/style/index.js +2 -0
- package/cjs/popup-swiper/index.d.ts +2 -2
- package/cjs/popup-swiper/index.js +80 -38
- package/cjs/popup-swiper/methods.js +2 -0
- package/cjs/popup-swiper/style/css/index.js +2 -0
- package/cjs/popup-swiper/style/index.js +2 -0
- package/cjs/portal/index.js +8 -3
- package/cjs/portal/style/css/index.js +1 -0
- package/cjs/portal/style/index.js +1 -0
- package/cjs/progress/index.js +44 -27
- package/cjs/progress/style/css/index.js +1 -0
- package/cjs/progress/style/index.js +1 -0
- package/cjs/pull-refresh/android-pull-refresh.js +100 -58
- package/cjs/pull-refresh/hooks.js +32 -11
- package/cjs/pull-refresh/index.js +14 -3
- package/cjs/pull-refresh/ios-pull-refresh.js +80 -53
- package/cjs/pull-refresh/model.js +1 -0
- package/cjs/pull-refresh/style/css/index.js +2 -0
- package/cjs/pull-refresh/style/index.js +2 -0
- package/cjs/radio/group.js +34 -20
- package/cjs/radio/index.js +8 -1
- package/cjs/radio/radio.js +10 -0
- package/cjs/radio/style/css/index.js +1 -0
- package/cjs/radio/style/index.js +1 -0
- package/cjs/rate/index.js +50 -24
- package/cjs/rate/style/css/index.js +1 -0
- package/cjs/rate/style/index.js +1 -0
- package/cjs/search-bar/association.js +32 -14
- package/cjs/search-bar/cancel-button.js +16 -8
- package/cjs/search-bar/highlight.js +25 -14
- package/cjs/search-bar/index.js +97 -77
- package/cjs/search-bar/style/css/index.js +1 -0
- package/cjs/search-bar/style/index.js +1 -0
- package/cjs/show-monitor/index.js +93 -34
- package/cjs/show-monitor/style/css/index.js +1 -0
- package/cjs/show-monitor/style/index.js +1 -0
- package/cjs/slider/hooks/index.js +13 -0
- package/cjs/slider/hooks/useSliderEvents.js +55 -26
- package/cjs/slider/hooks/useSliderIcon.js +20 -6
- package/cjs/slider/hooks/useSliderInit.js +52 -32
- package/cjs/slider/hooks/useSliderStyle.js +24 -12
- package/cjs/slider/index.js +72 -46
- package/cjs/slider/marks.js +26 -12
- package/cjs/slider/popover.js +13 -4
- package/cjs/slider/style/css/index.js +2 -0
- package/cjs/slider/style/index.js +2 -0
- package/cjs/slider/thumb.js +23 -8
- package/cjs/stepper/hooks/useButtonClick.js +28 -19
- package/cjs/stepper/hooks/useInputEvent.js +18 -9
- package/cjs/stepper/hooks/useValue.js +14 -9
- package/cjs/stepper/index.js +96 -82
- package/cjs/stepper/style/css/index.js +1 -0
- package/cjs/stepper/style/index.js +1 -0
- package/cjs/steps/index.js +40 -22
- package/cjs/steps/step.js +27 -10
- package/cjs/steps/style/css/index.js +1 -0
- package/cjs/steps/style/index.js +1 -0
- package/cjs/sticky/index.js +65 -36
- package/cjs/sticky/style/css/index.js +1 -0
- package/cjs/sticky/style/index.js +1 -0
- package/cjs/style.d.ts +9 -8
- package/cjs/style.js +64 -8
- package/cjs/swipe-action/index.js +92 -40
- package/cjs/swipe-action/item.js +17 -9
- package/cjs/swipe-action/style/css/index.js +1 -0
- package/cjs/swipe-action/style/index.js +1 -0
- package/cjs/swipe-load/index.js +83 -55
- package/cjs/swipe-load/style/css/index.js +1 -0
- package/cjs/swipe-load/style/index.js +1 -0
- package/cjs/switch/index.js +47 -27
- package/cjs/switch/style/css/index.js +1 -0
- package/cjs/switch/style/index.js +1 -0
- package/cjs/tab-bar/index.js +7 -0
- package/cjs/tab-bar/item.js +24 -6
- package/cjs/tab-bar/style/css/index.js +1 -0
- package/cjs/tab-bar/style/index.js +1 -0
- package/cjs/tab-bar/tab-bar.js +31 -15
- package/cjs/tabs/index.js +195 -129
- package/cjs/tabs/style/css/index.js +1 -0
- package/cjs/tabs/style/index.js +1 -0
- package/cjs/tabs/tab-cell-underline.js +111 -38
- package/cjs/tabs/tab-cell.js +124 -70
- package/cjs/tabs/tab-pane.js +94 -49
- package/cjs/tabs/type.d.ts +18 -2
- package/cjs/tag/index.js +8 -1
- package/cjs/tag/list.js +26 -11
- package/cjs/tag/style/css/index.js +1 -0
- package/cjs/tag/style/index.js +1 -0
- package/cjs/tag/tag.js +32 -20
- package/cjs/textarea/index.js +56 -35
- package/cjs/textarea/style/css/index.js +2 -0
- package/cjs/textarea/style/index.js +2 -0
- package/cjs/toast/index.d.ts +12 -12
- package/cjs/toast/index.js +61 -26
- package/cjs/toast/methods.js +16 -2
- package/cjs/toast/style/css/index.js +3 -0
- package/cjs/toast/style/index.js +3 -0
- package/cjs/transition/index.js +18 -10
- package/cjs/transition/style/css/index.js +1 -0
- package/cjs/transition/style/index.js +1 -0
- package/dist/index.js +21588 -19198
- package/dist/index.min.js +4 -4
- package/dist/style.css +3637 -3501
- package/dist/style.min.css +1 -1
- package/esm/_helpers/hooks.js +103 -42
- package/esm/_helpers/index.js +3 -2
- package/esm/_helpers/react-dom.js +10 -0
- package/esm/_helpers/render.js +7 -0
- package/esm/action-sheet/index.d.ts +2 -2
- package/esm/action-sheet/index.js +16 -10
- package/esm/avatar/group.js +16 -12
- package/esm/avatar/index.js +62 -51
- package/esm/badge/index.js +22 -18
- package/esm/button/hooks.js +18 -15
- package/esm/button/index.js +57 -46
- package/esm/carousel/index.d.ts +6 -0
- package/esm/carousel/index.js +336 -186
- package/esm/carousel/style/css/index.css +50 -15
- package/esm/carousel/style/index.less +19 -14
- package/esm/cell/cell.js +14 -14
- package/esm/cell/demo/style/css/mobile.css +8 -0
- package/esm/cell/demo/style/mobile.less +2 -2
- package/esm/cell/group.js +11 -9
- package/esm/cell/index.js +1 -1
- package/esm/cell/style/css/index.css +16 -0
- package/esm/cell/style/index.less +6 -4
- package/esm/checkbox/checkbox.js +42 -31
- package/esm/checkbox/group.js +28 -24
- package/esm/checkbox/hooks/useMergeProps.js +9 -7
- package/esm/checkbox/index.js +2 -2
- package/esm/checkbox/type.js +1 -0
- package/esm/circle-progress/index.js +49 -37
- package/esm/collapse/collapse.js +46 -27
- package/esm/collapse/group.js +34 -20
- package/esm/collapse/index.js +1 -1
- package/esm/collapse/utils.js +1 -0
- package/esm/context-provider/index.d.ts +6 -0
- package/esm/context-provider/index.js +20 -11
- package/esm/count-down/hooks.js +37 -24
- package/esm/count-down/index.js +29 -30
- package/esm/count-down/singleton.js +5 -2
- package/esm/count-down/util.js +42 -33
- package/esm/date-picker/helper.js +9 -7
- package/esm/date-picker/index.js +93 -42
- package/esm/dialog/index.d.ts +2 -2
- package/esm/dialog/index.js +39 -28
- package/esm/dialog/methods.js +11 -9
- package/esm/divider/demo/style/css/mobile.css +7 -0
- package/esm/divider/demo/style/mobile.less +12 -0
- package/esm/divider/index.d.ts +49 -0
- package/esm/divider/index.js +49 -0
- package/esm/divider/style/css/index.css +69 -0
- package/esm/divider/style/css/index.d.ts +2 -0
- package/esm/divider/style/css/index.js +2 -0
- package/esm/divider/style/index.d.ts +2 -0
- package/esm/divider/style/index.js +2 -0
- package/esm/divider/style/index.less +66 -0
- package/esm/dropdown/dropdown.js +102 -74
- package/esm/dropdown/index.js +1 -1
- package/esm/dropdown/options.js +20 -12
- package/esm/dropdown-menu/dropdown-menu.js +74 -49
- package/esm/dropdown-menu/helper.js +16 -6
- package/esm/dropdown-menu/index.js +1 -1
- package/esm/ellipsis/components/js-ellipsis.js +63 -33
- package/esm/ellipsis/components/native-ellipsis.js +11 -9
- package/esm/ellipsis/index.js +21 -20
- package/esm/ellipsis/utils/dom.js +7 -0
- package/esm/ellipsis/utils/is.js +1 -1
- package/esm/form/form-item.js +110 -42
- package/esm/form/index.js +20 -17
- package/esm/form/type.js +3 -0
- package/esm/form/useForm.js +71 -17
- package/esm/form/utils.js +6 -3
- package/esm/grid/index.js +34 -21
- package/esm/icon/IconAdd/index.js +6 -5
- package/esm/icon/IconArrowBack/index.js +6 -5
- package/esm/icon/IconArrowDown/index.js +6 -5
- package/esm/icon/IconArrowIn/index.js +6 -5
- package/esm/icon/IconArrowUp/index.js +6 -5
- package/esm/icon/IconCheck/index.js +6 -5
- package/esm/icon/IconCheckBold/index.js +6 -5
- package/esm/icon/IconCircleChecked/index.js +6 -5
- package/esm/icon/IconCircleDisabled/index.js +6 -5
- package/esm/icon/IconCircleUnchecked/index.js +6 -5
- package/esm/icon/IconClear/index.js +6 -5
- package/esm/icon/IconClose/index.js +6 -5
- package/esm/icon/IconCloseBold/index.js +6 -5
- package/esm/icon/IconDelete/index.js +6 -5
- package/esm/icon/IconEdit/index.js +6 -5
- package/esm/icon/IconErrorCircle/index.js +6 -5
- package/esm/icon/IconEyeInvisible/index.js +6 -5
- package/esm/icon/IconEyeVisible/index.js +6 -5
- package/esm/icon/IconEyelashInvisible/index.js +6 -5
- package/esm/icon/IconGift/index.js +6 -5
- package/esm/icon/IconHeart/index.js +6 -5
- package/esm/icon/IconHome/index.js +6 -5
- package/esm/icon/IconLikeCircle/index.js +6 -5
- package/esm/icon/IconMinus/index.js +6 -5
- package/esm/icon/IconMore/index.js +6 -5
- package/esm/icon/IconNotice/index.js +6 -5
- package/esm/icon/IconNoticeOff/index.js +6 -5
- package/esm/icon/IconPicture/index.js +6 -5
- package/esm/icon/IconPlay/index.js +6 -5
- package/esm/icon/IconQuestionCircle/index.js +6 -5
- package/esm/icon/IconRefresh/index.js +6 -5
- package/esm/icon/IconSad/index.js +6 -5
- package/esm/icon/IconScan/index.js +6 -5
- package/esm/icon/IconSearch/index.js +6 -5
- package/esm/icon/IconSetting/index.js +6 -5
- package/esm/icon/IconShop/index.js +6 -5
- package/esm/icon/IconShopping/index.js +6 -5
- package/esm/icon/IconSmileFill/index.js +6 -5
- package/esm/icon/IconSound/index.js +6 -5
- package/esm/icon/IconSquareChecked/index.js +6 -5
- package/esm/icon/IconSquareDisabled/index.js +6 -5
- package/esm/icon/IconSquareUnchecked/index.js +6 -5
- package/esm/icon/IconStar/index.js +6 -5
- package/esm/icon/IconStarFill/index.js +6 -5
- package/esm/icon/IconStarHalf/index.js +6 -5
- package/esm/icon/IconSubway/index.js +6 -5
- package/esm/icon/IconSuccessCircle/index.js +6 -5
- package/esm/icon/IconTriDown/index.js +6 -5
- package/esm/icon/IconTriUp/index.js +6 -5
- package/esm/icon/IconUpload/index.js +6 -5
- package/esm/icon/IconUser/index.js +6 -5
- package/esm/icon/IconUserFill/index.js +6 -5
- package/esm/icon/IconWarnCircle/index.js +6 -5
- package/esm/icon/IconWarnCircleFill/index.js +6 -5
- package/esm/image/index.js +84 -57
- package/esm/image/style/css/index.css +1 -0
- package/esm/image/style/index.less +1 -0
- package/esm/image-picker/index.js +80 -52
- package/esm/image-preview/index.d.ts +2 -2
- package/esm/image-preview/index.js +217 -119
- package/esm/image-preview/methods.js +14 -4
- package/esm/index.d.ts +10 -9
- package/esm/index.js +10 -9
- package/esm/input/demo/style/css/mobile.css +5 -1
- package/esm/input/demo/style/mobile.less +2 -2
- package/esm/input/hooks.js +96 -42
- package/esm/input/index.js +30 -26
- package/esm/input/props.d.ts +6 -0
- package/esm/input/style/css/index.css +9 -0
- package/esm/input/style/index.less +2 -2
- package/esm/load-more/index.js +48 -29
- package/esm/loading/index.js +40 -19
- package/esm/masking/index.d.ts +2 -2
- package/esm/masking/index.js +64 -46
- package/esm/masking/methods.js +15 -4
- package/esm/nav-bar/back-icon.js +3 -1
- package/esm/nav-bar/index.js +52 -37
- package/esm/notice-bar/index.js +56 -35
- package/esm/notice-bar/style/css/index.css +33 -0
- package/esm/notice-bar/style/index.less +16 -3
- package/esm/notify/index.d.ts +8 -8
- package/esm/notify/index.js +33 -20
- package/esm/notify/methods.js +13 -2
- package/esm/pagination/index.js +50 -27
- package/esm/picker/index.js +66 -40
- package/esm/picker-view/components/cascader.js +23 -14
- package/esm/picker-view/components/multi-picker.js +16 -6
- package/esm/picker-view/components/picker-cell.js +89 -45
- package/esm/picker-view/index.js +54 -25
- package/esm/popover/hooks/useEvent.js +41 -26
- package/esm/popover/hooks/usePosition.js +144 -94
- package/esm/popover/index.js +2 -2
- package/esm/popover/menu.js +41 -32
- package/esm/popover/popover-inner.js +38 -30
- package/esm/popover/popover.js +90 -69
- package/esm/popup/index.d.ts +2 -2
- package/esm/popup/index.js +25 -22
- package/esm/popup-swiper/index.d.ts +2 -2
- package/esm/popup-swiper/index.js +64 -38
- package/esm/portal/index.js +5 -3
- package/esm/progress/index.js +36 -27
- package/esm/pull-refresh/android-pull-refresh.js +90 -58
- package/esm/pull-refresh/hooks.js +23 -11
- package/esm/pull-refresh/index.js +5 -3
- package/esm/pull-refresh/ios-pull-refresh.js +68 -53
- package/esm/pull-refresh/model.js +1 -0
- package/esm/radio/group.js +24 -20
- package/esm/radio/index.js +2 -2
- package/esm/rate/index.js +39 -24
- package/esm/search-bar/association.js +27 -14
- package/esm/search-bar/cancel-button.js +11 -8
- package/esm/search-bar/highlight.js +20 -14
- package/esm/search-bar/index.js +86 -77
- package/esm/show-monitor/index.js +85 -34
- package/esm/slider/hooks/useSliderEvents.js +51 -26
- package/esm/slider/hooks/useSliderIcon.js +13 -6
- package/esm/slider/hooks/useSliderInit.js +46 -32
- package/esm/slider/hooks/useSliderStyle.js +20 -12
- package/esm/slider/index.js +62 -46
- package/esm/slider/marks.js +18 -12
- package/esm/slider/popover.js +6 -4
- package/esm/slider/thumb.js +15 -8
- package/esm/stepper/hooks/useButtonClick.js +27 -19
- package/esm/stepper/hooks/useInputEvent.js +16 -9
- package/esm/stepper/hooks/useValue.js +12 -9
- package/esm/stepper/index.js +82 -82
- package/esm/steps/index.js +27 -22
- package/esm/steps/step.js +19 -10
- package/esm/sticky/index.js +56 -36
- package/esm/style.d.ts +9 -8
- package/esm/style.js +9 -8
- package/esm/swipe-action/index.js +80 -40
- package/esm/swipe-action/item.js +12 -9
- package/esm/swipe-load/index.js +75 -56
- package/esm/switch/index.js +39 -27
- package/esm/tab-bar/index.js +1 -0
- package/esm/tab-bar/item.js +13 -6
- package/esm/tab-bar/tab-bar.js +21 -15
- package/esm/tabs/index.js +183 -130
- package/esm/tabs/tab-cell-underline.js +103 -38
- package/esm/tabs/tab-cell.js +114 -70
- package/esm/tabs/tab-pane.js +85 -49
- package/esm/tabs/type.d.ts +18 -2
- package/esm/tag/index.js +2 -2
- package/esm/tag/list.js +16 -11
- package/esm/tag/tag.js +22 -20
- package/esm/textarea/index.js +46 -35
- package/esm/toast/index.d.ts +12 -12
- package/esm/toast/index.js +42 -26
- package/esm/toast/methods.js +12 -2
- package/esm/transition/index.js +12 -10
- package/package.json +3 -3
- package/tokens/app/arcodesign/default/css-variables.less +8 -0
- package/tokens/app/arcodesign/default/index.d.ts +8 -0
- package/tokens/app/arcodesign/default/index.js +11 -1
- package/tokens/app/arcodesign/default/index.json +94 -0
- package/tokens/app/arcodesign/default/index.less +8 -0
- package/tokens/mixin/index.less +19 -1
- package/umd/_helpers/hooks.js +121 -43
- package/umd/_helpers/index.js +6 -2
- package/umd/_helpers/react-dom.js +11 -0
- package/umd/_helpers/render.js +9 -0
- package/umd/action-sheet/index.d.ts +2 -2
- package/umd/action-sheet/index.js +22 -10
- package/umd/action-sheet/methods.js +1 -0
- package/umd/avatar/group.js +20 -12
- package/umd/avatar/index.js +68 -51
- package/umd/badge/index.js +25 -18
- package/umd/button/hooks.js +19 -15
- package/umd/button/index.js +60 -46
- package/umd/carousel/index.d.ts +6 -0
- package/umd/carousel/index.js +337 -184
- package/umd/carousel/style/css/index.css +50 -15
- package/umd/carousel/style/index.less +19 -14
- package/umd/cell/arrow.js +2 -0
- package/umd/cell/cell.js +18 -14
- package/umd/cell/demo/style/css/mobile.css +8 -0
- package/umd/cell/demo/style/mobile.less +2 -2
- package/umd/cell/group.js +17 -9
- package/umd/cell/index.js +2 -1
- package/umd/cell/style/css/index.css +16 -0
- package/umd/cell/style/index.less +6 -4
- package/umd/checkbox/checkbox.js +45 -31
- package/umd/checkbox/group.js +34 -24
- package/umd/checkbox/hooks/useMergeProps.js +12 -7
- package/umd/checkbox/index.js +3 -1
- package/umd/checkbox/type.js +2 -0
- package/umd/circle-progress/index.js +52 -37
- package/umd/collapse/collapse.js +50 -27
- package/umd/collapse/group.js +38 -20
- package/umd/collapse/index.js +3 -0
- package/umd/collapse/utils.js +5 -0
- package/umd/context-provider/index.d.ts +6 -0
- package/umd/context-provider/index.js +25 -11
- package/umd/count-down/hooks.js +39 -24
- package/umd/count-down/index.js +31 -29
- package/umd/count-down/singleton.js +10 -2
- package/umd/count-down/util.js +47 -33
- package/umd/date-picker/helper.js +13 -7
- package/umd/date-picker/index.js +97 -42
- package/umd/dialog/index.d.ts +2 -2
- package/umd/dialog/index.js +44 -28
- package/umd/dialog/methods.js +18 -9
- package/umd/divider/demo/style/css/mobile.css +7 -0
- package/umd/divider/demo/style/mobile.less +12 -0
- package/umd/divider/index.d.ts +49 -0
- package/umd/divider/index.js +71 -0
- package/umd/divider/style/css/index.css +69 -0
- package/umd/divider/style/css/index.d.ts +2 -0
- package/umd/divider/style/css/index.js +15 -0
- package/umd/divider/style/index.d.ts +2 -0
- package/umd/divider/style/index.js +15 -0
- package/umd/divider/style/index.less +66 -0
- package/umd/dropdown/dropdown.js +106 -74
- package/umd/dropdown/index.js +3 -1
- package/umd/dropdown/options.js +24 -12
- package/umd/dropdown-menu/dropdown-menu.js +78 -49
- package/umd/dropdown-menu/helper.js +25 -6
- package/umd/dropdown-menu/index.js +2 -0
- package/umd/ellipsis/components/js-ellipsis.js +69 -33
- package/umd/ellipsis/components/native-ellipsis.js +13 -9
- package/umd/ellipsis/index.js +24 -19
- package/umd/ellipsis/utils/dom.js +8 -0
- package/umd/ellipsis/utils/is.js +5 -1
- package/umd/form/form-item-context.js +3 -0
- package/umd/form/form-item.js +114 -42
- package/umd/form/index.js +25 -17
- package/umd/form/type.js +3 -0
- package/umd/form/useForm.js +72 -18
- package/umd/form/utils.js +10 -3
- package/umd/grid/index.js +37 -21
- package/umd/icon/IconAdd/index.js +7 -5
- package/umd/icon/IconArrowBack/index.js +7 -5
- package/umd/icon/IconArrowDown/index.js +7 -5
- package/umd/icon/IconArrowIn/index.js +7 -5
- package/umd/icon/IconArrowUp/index.js +7 -5
- package/umd/icon/IconCheck/index.js +7 -5
- package/umd/icon/IconCheckBold/index.js +7 -5
- package/umd/icon/IconCircleChecked/index.js +7 -5
- package/umd/icon/IconCircleDisabled/index.js +7 -5
- package/umd/icon/IconCircleUnchecked/index.js +7 -5
- package/umd/icon/IconClear/index.js +7 -5
- package/umd/icon/IconClose/index.js +7 -5
- package/umd/icon/IconCloseBold/index.js +7 -5
- package/umd/icon/IconDelete/index.js +7 -5
- package/umd/icon/IconEdit/index.js +7 -5
- package/umd/icon/IconErrorCircle/index.js +7 -5
- package/umd/icon/IconEyeInvisible/index.js +7 -5
- package/umd/icon/IconEyeVisible/index.js +7 -5
- package/umd/icon/IconEyelashInvisible/index.js +7 -5
- package/umd/icon/IconGift/index.js +7 -5
- package/umd/icon/IconHeart/index.js +7 -5
- package/umd/icon/IconHome/index.js +7 -5
- package/umd/icon/IconLikeCircle/index.js +7 -5
- package/umd/icon/IconMinus/index.js +7 -5
- package/umd/icon/IconMore/index.js +7 -5
- package/umd/icon/IconNotice/index.js +7 -5
- package/umd/icon/IconNoticeOff/index.js +7 -5
- package/umd/icon/IconPicture/index.js +7 -5
- package/umd/icon/IconPlay/index.js +7 -5
- package/umd/icon/IconQuestionCircle/index.js +7 -5
- package/umd/icon/IconRefresh/index.js +7 -5
- package/umd/icon/IconSad/index.js +7 -5
- package/umd/icon/IconScan/index.js +7 -5
- package/umd/icon/IconSearch/index.js +7 -5
- package/umd/icon/IconSetting/index.js +7 -5
- package/umd/icon/IconShop/index.js +7 -5
- package/umd/icon/IconShopping/index.js +7 -5
- package/umd/icon/IconSmileFill/index.js +7 -5
- package/umd/icon/IconSound/index.js +7 -5
- package/umd/icon/IconSquareChecked/index.js +7 -5
- package/umd/icon/IconSquareDisabled/index.js +7 -5
- package/umd/icon/IconSquareUnchecked/index.js +7 -5
- package/umd/icon/IconStar/index.js +7 -5
- package/umd/icon/IconStarFill/index.js +7 -5
- package/umd/icon/IconStarHalf/index.js +7 -5
- package/umd/icon/IconSubway/index.js +7 -5
- package/umd/icon/IconSuccessCircle/index.js +7 -5
- package/umd/icon/IconTriDown/index.js +7 -5
- package/umd/icon/IconTriUp/index.js +7 -5
- package/umd/icon/IconUpload/index.js +7 -5
- package/umd/icon/IconUser/index.js +7 -5
- package/umd/icon/IconUserFill/index.js +7 -5
- package/umd/icon/IconWarnCircle/index.js +7 -5
- package/umd/icon/IconWarnCircleFill/index.js +7 -5
- package/umd/icon/index.js +1 -0
- package/umd/image/index.js +86 -56
- package/umd/image/style/css/index.css +1 -0
- package/umd/image/style/index.less +1 -0
- package/umd/image-picker/add-icon.js +2 -0
- package/umd/image-picker/index.js +85 -52
- package/umd/image-preview/index.d.ts +2 -2
- package/umd/image-preview/index.js +224 -119
- package/umd/image-preview/methods.js +15 -5
- package/umd/index.d.ts +10 -9
- package/umd/index.js +26 -23
- package/umd/input/demo/style/css/mobile.css +5 -1
- package/umd/input/demo/style/mobile.less +2 -2
- package/umd/input/hooks.js +100 -42
- package/umd/input/index.js +35 -26
- package/umd/input/props.d.ts +6 -0
- package/umd/input/style/css/index.css +9 -0
- package/umd/input/style/index.less +2 -2
- package/umd/load-more/index.js +51 -29
- package/umd/loading/index.js +43 -19
- package/umd/masking/index.d.ts +2 -2
- package/umd/masking/index.js +71 -46
- package/umd/masking/methods.js +16 -4
- package/umd/nav-bar/back-icon.js +4 -1
- package/umd/nav-bar/index.js +55 -37
- package/umd/notice-bar/index.js +57 -33
- package/umd/notice-bar/style/css/index.css +33 -0
- package/umd/notice-bar/style/index.less +16 -3
- package/umd/notify/index.d.ts +8 -8
- package/umd/notify/index.js +40 -20
- package/umd/notify/methods.js +14 -2
- package/umd/pagination/arrow.js +2 -0
- package/umd/pagination/index.js +53 -27
- package/umd/picker/index.js +70 -40
- package/umd/picker-view/components/cascader.js +27 -14
- package/umd/picker-view/components/multi-picker.js +19 -6
- package/umd/picker-view/components/picker-cell.js +93 -45
- package/umd/picker-view/index.js +58 -25
- package/umd/popover/hooks/useEvent.js +44 -25
- package/umd/popover/hooks/usePosition.js +145 -94
- package/umd/popover/index.js +3 -1
- package/umd/popover/menu.js +45 -32
- package/umd/popover/popover-inner.js +42 -30
- package/umd/popover/popover.js +94 -69
- package/umd/popup/index.d.ts +2 -2
- package/umd/popup/index.js +31 -22
- package/umd/popup/methods.js +1 -0
- package/umd/popup-swiper/index.d.ts +2 -2
- package/umd/popup-swiper/index.js +71 -38
- package/umd/popup-swiper/methods.js +1 -0
- package/umd/portal/index.js +6 -3
- package/umd/progress/index.js +39 -27
- package/umd/pull-refresh/android-pull-refresh.js +93 -58
- package/umd/pull-refresh/hooks.js +29 -11
- package/umd/pull-refresh/index.js +7 -3
- package/umd/pull-refresh/ios-pull-refresh.js +72 -53
- package/umd/pull-refresh/model.js +1 -0
- package/umd/radio/group.js +30 -20
- package/umd/radio/index.js +3 -1
- package/umd/radio/radio.js +5 -0
- package/umd/rate/index.js +44 -24
- package/umd/search-bar/association.js +29 -14
- package/umd/search-bar/cancel-button.js +14 -8
- package/umd/search-bar/highlight.js +21 -14
- package/umd/search-bar/index.js +87 -77
- package/umd/show-monitor/index.js +89 -34
- package/umd/slider/hooks/index.js +4 -0
- package/umd/slider/hooks/useSliderEvents.js +52 -26
- package/umd/slider/hooks/useSliderIcon.js +17 -6
- package/umd/slider/hooks/useSliderInit.js +50 -32
- package/umd/slider/hooks/useSliderStyle.js +22 -12
- package/umd/slider/index.js +65 -46
- package/umd/slider/marks.js +21 -12
- package/umd/slider/popover.js +10 -4
- package/umd/slider/thumb.js +18 -8
- package/umd/stepper/hooks/useButtonClick.js +27 -19
- package/umd/stepper/hooks/useInputEvent.js +17 -9
- package/umd/stepper/hooks/useValue.js +13 -9
- package/umd/stepper/index.js +87 -82
- package/umd/steps/index.js +32 -22
- package/umd/steps/step.js +22 -10
- package/umd/sticky/index.js +59 -36
- package/umd/style.d.ts +9 -8
- package/umd/style.js +4 -4
- package/umd/swipe-action/index.js +84 -40
- package/umd/swipe-action/item.js +14 -9
- package/umd/swipe-load/index.js +77 -55
- package/umd/switch/index.js +43 -27
- package/umd/tab-bar/index.js +2 -0
- package/umd/tab-bar/item.js +19 -6
- package/umd/tab-bar/tab-bar.js +26 -15
- package/umd/tabs/index.js +186 -129
- package/umd/tabs/tab-cell-underline.js +107 -38
- package/umd/tabs/tab-cell.js +119 -70
- package/umd/tabs/tab-pane.js +89 -49
- package/umd/tabs/type.d.ts +18 -2
- package/umd/tag/index.js +3 -1
- package/umd/tag/list.js +20 -11
- package/umd/tag/tag.js +26 -20
- package/umd/textarea/index.js +51 -35
- package/umd/toast/index.d.ts +12 -12
- package/umd/toast/index.js +49 -26
- package/umd/toast/methods.js +13 -2
- package/umd/transition/index.js +12 -10
@@ -1,84 +1,104 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
4
5
|
exports.__esModule = true;
|
5
6
|
var _exportNames = {
|
6
7
|
methodsGenerator: true
|
7
8
|
};
|
8
9
|
exports.default = void 0;
|
9
10
|
exports.methodsGenerator = methodsGenerator;
|
11
|
+
|
10
12
|
var _extends5 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13
|
+
|
11
14
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
15
|
+
|
12
16
|
var _react = _interopRequireWildcard(require("react"));
|
17
|
+
|
13
18
|
var _mobileUtils = require("@arco-design/mobile-utils");
|
19
|
+
|
14
20
|
var _transformable = _interopRequireDefault(require("@arco-design/transformable"));
|
21
|
+
|
15
22
|
var _contextProvider = require("../context-provider");
|
23
|
+
|
16
24
|
var _carousel = _interopRequireDefault(require("../carousel"));
|
25
|
+
|
17
26
|
var _transition = _interopRequireDefault(require("../transition"));
|
27
|
+
|
18
28
|
var _image = _interopRequireDefault(require("../image"));
|
29
|
+
|
19
30
|
var _helpers = require("../_helpers");
|
31
|
+
|
20
32
|
var _portal = _interopRequireDefault(require("../portal"));
|
33
|
+
|
21
34
|
var _methods = require("./methods");
|
35
|
+
|
22
36
|
Object.keys(_methods).forEach(function (key) {
|
23
37
|
if (key === "default" || key === "__esModule") return;
|
24
38
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
25
39
|
if (key in exports && exports[key] === _methods[key]) return;
|
26
40
|
exports[key] = _methods[key];
|
27
41
|
});
|
42
|
+
|
28
43
|
var _loading = _interopRequireDefault(require("../loading"));
|
44
|
+
|
29
45
|
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"];
|
46
|
+
|
30
47
|
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); }
|
48
|
+
|
31
49
|
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; }
|
50
|
+
|
32
51
|
var MAX_ZOOM = 5;
|
33
52
|
var MIN_ZOOM = 0.7;
|
34
53
|
var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
35
54
|
var _imagesStatus$openInd, _imagesStatus$openInd2;
|
55
|
+
|
36
56
|
var style = props.style,
|
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
|
-
|
57
|
+
className = props.className,
|
58
|
+
images = props.images,
|
59
|
+
_props$loop = props.loop,
|
60
|
+
loop = _props$loop === void 0 ? false : _props$loop,
|
61
|
+
openIndex = props.openIndex,
|
62
|
+
fit = props.fit,
|
63
|
+
_props$noselect = props.noselect,
|
64
|
+
noselect = _props$noselect === void 0 ? true : _props$noselect,
|
65
|
+
_props$displayDuratio = props.displayDuration,
|
66
|
+
displayDuration = _props$displayDuratio === void 0 ? 350 : _props$displayDuratio,
|
67
|
+
_props$spaceBetween = props.spaceBetween,
|
68
|
+
spaceBetween = _props$spaceBetween === void 0 ? 0 : _props$spaceBetween,
|
69
|
+
_props$showLoading = props.showLoading,
|
70
|
+
showLoading = _props$showLoading === void 0 ? true : _props$showLoading,
|
71
|
+
loadingArea = props.loadingArea,
|
72
|
+
errorArea = props.errorArea,
|
73
|
+
_props$showError = props.showError,
|
74
|
+
showError = _props$showError === void 0 ? true : _props$showError,
|
75
|
+
retryTime = props.retryTime,
|
76
|
+
staticLabel = props.staticLabel,
|
77
|
+
replaceFallbackWhenLoaded = props.replaceFallbackWhenLoaded,
|
78
|
+
scrollBezier = props.scrollBezier,
|
79
|
+
_props$lazyloadCount = props.lazyloadCount,
|
80
|
+
lazyloadCount = _props$lazyloadCount === void 0 ? 1 : _props$lazyloadCount,
|
81
|
+
_props$swipeToClose = props.swipeToClose,
|
82
|
+
swipeToClose = _props$swipeToClose === void 0 ? true : _props$swipeToClose,
|
83
|
+
getMinScale = props.getMinScale,
|
84
|
+
getMaxScale = props.getMaxScale,
|
85
|
+
getDoubleClickScale = props.getDoubleClickScale,
|
86
|
+
getContainer = props.getContainer,
|
87
|
+
getThumbBounds = props.getThumbBounds,
|
88
|
+
renderIndicator = props.renderIndicator,
|
89
|
+
_onChange = props.onChange,
|
90
|
+
_onAfterChange = props.onAfterChange,
|
91
|
+
onImageClick = props.onImageClick,
|
92
|
+
onImageDoubleClick = props.onImageDoubleClick,
|
93
|
+
onImageLongTap = props.onImageLongTap,
|
94
|
+
close = props.close,
|
95
|
+
onClose = props.onClose,
|
96
|
+
onTouchStart = props.onTouchStart,
|
97
|
+
onTouchMove = props.onTouchMove,
|
98
|
+
onTouchEnd = props.onTouchEnd,
|
99
|
+
_props$indicatorPos = props.indicatorPos,
|
100
|
+
indicatorPos = _props$indicatorPos === void 0 ? 'start' : _props$indicatorPos,
|
101
|
+
otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
82
102
|
var system = (0, _helpers.useSystem)();
|
83
103
|
var domRef = (0, _react.useRef)(null);
|
84
104
|
var imagesRef = (0, _react.useRef)([]);
|
@@ -98,22 +118,28 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
98
118
|
var lastScaleRef = (0, _react.useRef)(0);
|
99
119
|
var closingRef = (0, _react.useRef)(false);
|
100
120
|
var isInitialMount = (0, _react.useRef)(false);
|
121
|
+
|
101
122
|
var _useState = (0, _react.useState)({}),
|
102
|
-
|
103
|
-
|
123
|
+
showPlaceholders = _useState[0],
|
124
|
+
setPlaceholders = _useState[1];
|
125
|
+
|
104
126
|
var _useRefState = (0, _helpers.useRefState)([]),
|
105
|
-
|
106
|
-
|
107
|
-
|
127
|
+
imagesStatus = _useRefState[0],
|
128
|
+
imagesStatusRef = _useRefState[1],
|
129
|
+
setImagesStatus = _useRefState[2];
|
130
|
+
|
108
131
|
var _useState2 = (0, _react.useState)(null),
|
109
|
-
|
110
|
-
|
132
|
+
transImageInfo = _useState2[0],
|
133
|
+
setTransImageInfo = _useState2[1];
|
134
|
+
|
111
135
|
var openLoaded = (_imagesStatus$openInd = imagesStatus[openIndex]) == null ? void 0 : _imagesStatus$openInd.loaded;
|
112
136
|
var openAnimated = (_imagesStatus$openInd2 = imagesStatus[openIndex]) == null ? void 0 : _imagesStatus$openInd2.animated;
|
113
137
|
var visible = openIndex >= 0 && openIndex < images.length;
|
138
|
+
|
114
139
|
var _useWindowSize = (0, _helpers.useWindowSize)(true),
|
115
|
-
|
116
|
-
|
140
|
+
windowWidth = _useWindowSize.windowWidth,
|
141
|
+
windowHeight = _useWindowSize.windowHeight;
|
142
|
+
|
117
143
|
(0, _react.useImperativeHandle)(ref, function () {
|
118
144
|
return {
|
119
145
|
dom: domRef.current,
|
@@ -130,6 +156,7 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
130
156
|
carouselRef.current && carouselRef.current.changeIndex(openIndex, true);
|
131
157
|
setImagesStatus(images.map(function (_, index) {
|
132
158
|
var _imagesStatusRef$curr;
|
159
|
+
|
133
160
|
return {
|
134
161
|
firstLoaded: ((_imagesStatusRef$curr = imagesStatusRef.current[index]) == null ? void 0 : _imagesStatusRef$curr.firstLoaded) || false,
|
135
162
|
animated: index !== openIndex
|
@@ -140,18 +167,18 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
140
167
|
// 移除长按事件监听
|
141
168
|
// @en Remove long press event listener
|
142
169
|
longTimerRef.current && clearTimeout(longTimerRef.current);
|
143
|
-
longTapCheckingRef.current = false;
|
144
|
-
// 图片状态重置
|
170
|
+
longTapCheckingRef.current = false; // 图片状态重置
|
145
171
|
// @en Reset image state
|
172
|
+
|
146
173
|
setImagesStatus(imagesStatusRef.current.map(function (status) {
|
147
174
|
return (0, _extends5.default)({}, status, {
|
148
175
|
animated: false,
|
149
176
|
loaded: false
|
150
177
|
});
|
151
178
|
}));
|
152
|
-
transformersRef.current = [];
|
153
|
-
// 移除过渡图片
|
179
|
+
transformersRef.current = []; // 移除过渡图片
|
154
180
|
// @en Remove transition image
|
181
|
+
|
155
182
|
removeChild(document.querySelector('.image-preview-fake-trans-image'));
|
156
183
|
setTransImageInfo(null);
|
157
184
|
setPlaceholders({});
|
@@ -160,6 +187,7 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
160
187
|
mounted && onClose && onClose();
|
161
188
|
}, displayDuration);
|
162
189
|
}
|
190
|
+
|
163
191
|
isInitialMount.current = true;
|
164
192
|
}, [visible]);
|
165
193
|
(0, _react.useEffect)(function () {
|
@@ -191,31 +219,36 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
191
219
|
transformer && transformer.setMaxScale(getImageMaxScale(index));
|
192
220
|
});
|
193
221
|
}, [getMaxScale]);
|
222
|
+
|
194
223
|
function removeChild(child) {
|
195
224
|
try {
|
196
225
|
child && document.body.removeChild(child);
|
197
226
|
} catch (e) {}
|
198
|
-
}
|
199
|
-
|
200
|
-
// 监听滑动到上下边缘后还在往外滑动的操作,则关闭弹窗
|
227
|
+
} // 监听滑动到上下边缘后还在往外滑动的操作,则关闭弹窗
|
201
228
|
// @en Monitor the operation of sliding out after sliding to the upper and lower edges, then close the popup
|
229
|
+
|
230
|
+
|
202
231
|
function handlePreventCallback(_, dir) {
|
203
232
|
if (!isTransforming() && dir === 'y') {
|
204
233
|
touchingSideDisRef.current += 1;
|
205
234
|
}
|
206
235
|
}
|
207
|
-
|
208
236
|
/**
|
209
237
|
* 缩放插件初始化
|
210
238
|
* @en Zoom plugin initialization
|
211
239
|
*/
|
240
|
+
|
241
|
+
|
212
242
|
function initTransformer(index) {
|
213
243
|
var _imagesRef$current$in;
|
244
|
+
|
214
245
|
var imageDom = (_imagesRef$current$in = imagesRef.current[index]) == null ? void 0 : _imagesRef$current$in.dom;
|
215
246
|
var wrapDom = imageDom == null ? void 0 : imageDom.parentElement;
|
247
|
+
|
216
248
|
if (!imageDom || !wrapDom) {
|
217
249
|
return;
|
218
250
|
}
|
251
|
+
|
219
252
|
if (transformersRef.current[index]) {
|
220
253
|
transformersRef.current[index].setDom(wrapDom);
|
221
254
|
} else {
|
@@ -234,15 +267,16 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
234
267
|
},
|
235
268
|
onTransform: function onTransform() {
|
236
269
|
var _transformersRef$curr, _imagesStatusRef$curr2, _imagesStatusRef$curr3;
|
270
|
+
|
237
271
|
// 图片放大再缩小,解决ios图片放大后模糊的问题
|
238
272
|
// @en The image is zoomed in and then zoomed out to solve the problem of blurring after zooming in on ios images
|
239
273
|
var img = imageDomsRef.current[index];
|
240
274
|
var trans = ((_transformersRef$curr = transformersRef.current[index]) == null ? void 0 : _transformersRef$curr.getTransform == null ? void 0 : _transformersRef$curr.getTransform()) || {};
|
241
275
|
var width = (_imagesStatusRef$curr2 = imagesStatusRef.current[index]) == null ? void 0 : _imagesStatusRef$curr2.originWidth;
|
242
276
|
var height = (_imagesStatusRef$curr3 = imagesStatusRef.current[index]) == null ? void 0 : _imagesStatusRef$curr3.originHeight;
|
243
|
-
var scale = trans.scale || 1;
|
244
|
-
// 判断下只有图片缩放发生改变时重写图片样式
|
277
|
+
var scale = trans.scale || 1; // 判断下只有图片缩放发生改变时重写图片样式
|
245
278
|
// @en It is judged that only the image style is rewritten when the zoom of the image changes.
|
279
|
+
|
246
280
|
if (img && width && height && lastScaleRef.current !== scale) {
|
247
281
|
lastScaleRef.current = scale;
|
248
282
|
var atCenter = !imageHasOverflow(img) ? ' translateY(-50%)' : '';
|
@@ -261,18 +295,23 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
261
295
|
onZoomEnd: function onZoomEnd(_1, _2, pinchStartCenter) {
|
262
296
|
setPlaceholders(function (holders) {
|
263
297
|
var _extends2;
|
298
|
+
|
264
299
|
return (0, _extends5.default)({}, holders, (_extends2 = {}, _extends2[index] = false, _extends2));
|
265
300
|
});
|
266
301
|
var image = imageDomsRef.current[index];
|
267
302
|
var transformer = transformersRef.current[index];
|
303
|
+
|
268
304
|
if (!image || !transformer || transformer.getTransform().scale < 1) {
|
269
305
|
return;
|
270
306
|
}
|
307
|
+
|
271
308
|
var imageRect = image.getBoundingClientRect();
|
309
|
+
|
272
310
|
if (imageRect.width > windowWidth && imageRect.height > windowHeight) {
|
273
311
|
if (pinchStartCenter && pinchStartCenter.length) {
|
274
312
|
transformer.setCenter.apply(transformer, pinchStartCenter);
|
275
313
|
}
|
314
|
+
|
276
315
|
transformer.setFixedX(false);
|
277
316
|
transformer.setFixedY(false);
|
278
317
|
} else if (imageRect.height <= windowHeight) {
|
@@ -291,19 +330,24 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
291
330
|
maxScale: getImageMaxScale(index)
|
292
331
|
});
|
293
332
|
}
|
333
|
+
|
294
334
|
setOriginBoundary(index);
|
295
335
|
}
|
336
|
+
|
296
337
|
function imageHasOverflow(img) {
|
297
338
|
return Boolean(img && !img.classList.contains('preview-fit-contain-y'));
|
298
339
|
}
|
340
|
+
|
299
341
|
function setOriginBoundary(index) {
|
300
342
|
var imageEle = imagesRef.current[index];
|
301
|
-
var imageDom = imageEle == null ? void 0 : imageEle.dom;
|
302
|
-
// 边界范围变为图片范围和容器范围的并集
|
343
|
+
var imageDom = imageEle == null ? void 0 : imageEle.dom; // 边界范围变为图片范围和容器范围的并集
|
303
344
|
// @en The bounding range becomes the union of the image range and the container range
|
345
|
+
|
304
346
|
if (imageDom != null && imageDom.parentElement && imageEle != null && imageEle.image) {
|
305
347
|
var _rect = imageEle.image.getBoundingClientRect();
|
348
|
+
|
306
349
|
var eleRect = imageDom.parentElement.getBoundingClientRect();
|
350
|
+
|
307
351
|
if (transformersRef.current[index]) {
|
308
352
|
transformersRef.current[index].setBoundary({
|
309
353
|
left: Math.min(_rect.left, eleRect.left),
|
@@ -314,111 +358,137 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
314
358
|
}
|
315
359
|
}
|
316
360
|
}
|
317
|
-
|
318
361
|
/**
|
319
362
|
* 获取最小缩放倍数
|
320
363
|
* @en Get the minimum zoom factor
|
321
364
|
*/
|
365
|
+
|
366
|
+
|
322
367
|
function getImageMinScale(index) {
|
323
368
|
var currentIndex = index === void 0 ? innerIndexRef.current : index;
|
324
369
|
var imageDom = imageDomsRef.current[currentIndex];
|
370
|
+
|
325
371
|
if (!imageDom) {
|
326
372
|
return 1;
|
327
373
|
}
|
374
|
+
|
328
375
|
if (getMinScale) {
|
329
376
|
return getMinScale(imageDom, currentIndex);
|
330
377
|
}
|
378
|
+
|
331
379
|
return MIN_ZOOM;
|
332
380
|
}
|
333
|
-
|
334
381
|
/**
|
335
382
|
* 获取最大缩放倍数
|
336
383
|
* @en Get the maximum zoom factor
|
337
384
|
*/
|
385
|
+
|
386
|
+
|
338
387
|
function getImageMaxScale(index) {
|
339
388
|
var currentIndex = index === void 0 ? innerIndexRef.current : index;
|
340
389
|
var imageDom = imageDomsRef.current[currentIndex];
|
390
|
+
|
341
391
|
if (!imageDom) {
|
342
392
|
return 1;
|
343
393
|
}
|
394
|
+
|
344
395
|
if (getMaxScale) {
|
345
396
|
return getMaxScale(imageDom, currentIndex);
|
346
397
|
}
|
398
|
+
|
347
399
|
var imageWidth = imageDom.naturalWidth;
|
348
400
|
var imageHeight = imageDom.naturalHeight;
|
349
401
|
var maxScale = 1;
|
402
|
+
|
350
403
|
if (imageWidth > imageHeight) {
|
351
404
|
maxScale = imageWidth / windowWidth * MAX_ZOOM;
|
352
405
|
} else {
|
353
406
|
maxScale = Math.max(MAX_ZOOM, imageWidth / windowWidth);
|
354
407
|
}
|
408
|
+
|
355
409
|
return maxScale;
|
356
410
|
}
|
357
|
-
|
358
411
|
/**
|
359
412
|
* 计算双击时图片缩放倍数
|
360
413
|
* @en Calculate the zoom factor of the image when double-clicking
|
361
414
|
*/
|
415
|
+
|
416
|
+
|
362
417
|
function getImageDoubleClickScale(currentScale) {
|
363
418
|
var index = innerIndexRef.current;
|
364
419
|
var imageDom = imageDomsRef.current[index];
|
420
|
+
|
365
421
|
if (!imageDom) {
|
366
422
|
return 1;
|
367
423
|
}
|
424
|
+
|
368
425
|
var maxScale = getImageMaxScale(index);
|
426
|
+
|
369
427
|
if (getDoubleClickScale) {
|
370
428
|
return getDoubleClickScale(currentScale, maxScale, imageDom, index);
|
371
429
|
}
|
430
|
+
|
372
431
|
var imageWidth = imageDom.naturalWidth;
|
373
432
|
var imageHeight = imageDom.naturalHeight;
|
374
433
|
var fitScale = imageWidth > imageHeight ? imageWidth / windowWidth * windowHeight / imageHeight : 1;
|
375
434
|
var dblScale = 2;
|
435
|
+
|
376
436
|
if (fitScale >= 2) {
|
377
437
|
dblScale = Math.min(maxScale, fitScale);
|
378
438
|
}
|
439
|
+
|
379
440
|
var current = Number(currentScale.toFixed(3));
|
380
441
|
var dbl = Number(dblScale.toFixed(3));
|
381
442
|
return current >= 1 && current < dbl ? dbl : 1;
|
382
443
|
}
|
383
|
-
|
384
444
|
/**
|
385
445
|
* 还原缩放至原始位置
|
386
446
|
* @en Revert zoom to original position
|
387
447
|
*/
|
448
|
+
|
449
|
+
|
388
450
|
function restoreTransformer(index) {
|
389
451
|
var transformer = transformersRef.current[index];
|
452
|
+
|
390
453
|
if (transformer) {
|
391
454
|
transformer.restore();
|
392
455
|
}
|
393
456
|
}
|
394
|
-
|
395
457
|
/**
|
396
458
|
* 是否正处于缩放状态
|
397
459
|
* @en Whether it is zooming
|
398
460
|
*/
|
461
|
+
|
462
|
+
|
399
463
|
function isTransforming(index) {
|
400
464
|
var _transformersRef$curr2;
|
465
|
+
|
401
466
|
var currentIndex = index === void 0 ? innerIndexRef.current : index;
|
402
467
|
return (_transformersRef$curr2 = transformersRef.current[currentIndex]) == null ? void 0 : _transformersRef$curr2.busy == null ? void 0 : _transformersRef$curr2.busy();
|
403
468
|
}
|
404
|
-
|
405
469
|
/**
|
406
470
|
* 是否已经放大过
|
407
471
|
* @en Whether is has been zoomed in
|
408
472
|
*/
|
473
|
+
|
474
|
+
|
409
475
|
function isTransformed() {
|
410
476
|
var _transformersRef$curr3;
|
477
|
+
|
411
478
|
return (_transformersRef$curr3 = transformersRef.current[innerIndexRef.current]) == null ? void 0 : _transformersRef$curr3.dirty == null ? void 0 : _transformersRef$curr3.dirty();
|
412
479
|
}
|
480
|
+
|
413
481
|
function isTapStop() {
|
414
482
|
var _transformersRef$curr4;
|
483
|
+
|
415
484
|
return (_transformersRef$curr4 = transformersRef.current[innerIndexRef.current]) == null ? void 0 : _transformersRef$curr4.isTapStop == null ? void 0 : _transformersRef$curr4.isTapStop();
|
416
485
|
}
|
417
|
-
|
418
486
|
/**
|
419
487
|
* 计算距离左右侧的距离,如果为0说明到边缘了,可以进行正常轮播操作
|
420
488
|
* @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.
|
421
489
|
*/
|
490
|
+
|
491
|
+
|
422
492
|
function transformTouchSide() {
|
423
493
|
var transformer = transformersRef.current[innerIndexRef.current];
|
424
494
|
var toLeft = transformer == null ? void 0 : transformer.toLeft == null ? void 0 : transformer.toLeft();
|
@@ -429,20 +499,23 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
429
499
|
right: !toRight
|
430
500
|
};
|
431
501
|
}
|
502
|
+
|
432
503
|
function handleImageWrapTouchStart(e) {
|
433
504
|
if (onTouchStart && onTouchStart(e, innerIndexRef.current)) {
|
434
505
|
return true;
|
435
506
|
}
|
507
|
+
|
436
508
|
var touches = e.touches;
|
437
509
|
touchStartXRef.current = e.touches && e.touches[0] ? e.touches[0].clientX : 0;
|
438
510
|
movedRef.current = false;
|
439
|
-
dblClickingRef.current = false;
|
440
|
-
// 单点长按才触发长按
|
511
|
+
dblClickingRef.current = false; // 单点长按才触发长按
|
441
512
|
// @en A single long press triggers a long press
|
513
|
+
|
442
514
|
if (touches.length === 1) {
|
443
515
|
if (!closingRef.current) {
|
444
516
|
longTapCheckingRef.current = true;
|
445
517
|
}
|
518
|
+
|
446
519
|
longTimerRef.current = window.setTimeout(function () {
|
447
520
|
if (longTapCheckingRef.current) {
|
448
521
|
longTapCheckingRef.current = false;
|
@@ -453,61 +526,72 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
453
526
|
} else {
|
454
527
|
longTapCheckingRef.current = false;
|
455
528
|
}
|
529
|
+
|
456
530
|
if (isTapStop()) {
|
457
531
|
movedRef.current = true;
|
458
|
-
}
|
459
|
-
// 缩放状态下,未到边缘时不触发轮播手势
|
532
|
+
} // 缩放状态下,未到边缘时不触发轮播手势
|
460
533
|
// @en In the zoomed state, the carousel gesture is not triggered when the edge is not reached
|
534
|
+
|
535
|
+
|
461
536
|
if (isTransforming()) {
|
462
537
|
startTouchingSideRef.current = transformTouchSide().side;
|
463
538
|
return !startTouchingSideRef.current;
|
464
539
|
}
|
465
540
|
}
|
541
|
+
|
466
542
|
function handleImageWrapTouchMove(e) {
|
467
543
|
movedRef.current = true;
|
468
544
|
longTapCheckingRef.current = false;
|
469
545
|
longTimerRef.current && clearTimeout(longTimerRef.current);
|
546
|
+
|
470
547
|
if (onTouchMove && onTouchMove(e, innerIndexRef.current)) {
|
471
548
|
return true;
|
472
549
|
}
|
550
|
+
|
473
551
|
var evt = e.changedTouches[0];
|
474
552
|
var touchMoveX = evt.clientX || 0;
|
475
|
-
var posDisX = touchMoveX - touchStartXRef.current;
|
476
|
-
// 缩放状态下,到边缘时如果还在往外滑动,则触发轮播手势
|
553
|
+
var posDisX = touchMoveX - touchStartXRef.current; // 缩放状态下,到边缘时如果还在往外滑动,则触发轮播手势
|
477
554
|
// @en In the zoomed state, if it is still swiped out when reaching the edge, the carousel gesture is triggered
|
555
|
+
|
478
556
|
if (isTransforming()) {
|
479
557
|
var sideInfo = transformTouchSide();
|
480
558
|
return !startTouchingSideRef.current || !(sideInfo.left && posDisX > 0 || sideInfo.right && posDisX < 0);
|
481
559
|
}
|
482
560
|
}
|
561
|
+
|
483
562
|
function handleImageWrapTouchEnd(e) {
|
484
563
|
if (onTouchEnd && onTouchEnd(e, innerIndexRef.current)) {
|
485
564
|
return true;
|
486
|
-
}
|
487
|
-
// 滑动到上下边缘后还在往外滑动,则关闭弹窗
|
565
|
+
} // 滑动到上下边缘后还在往外滑动,则关闭弹窗
|
488
566
|
// @en After sliding to the upper and lower edges and still sliding outwards, close the popup box
|
489
567
|
// needClose为触发touchmove的次数,6和3是相对值,表示判断在往外滑动的敏感度,当未放大时对向外滑动手势更敏感
|
490
568
|
// @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
|
569
|
+
|
570
|
+
|
491
571
|
var needClose = swipeToClose && touchingSideDisRef.current >= (isTransformed() ? 6 : 3);
|
492
572
|
touchingSideDisRef.current = 0;
|
493
573
|
longTapCheckingRef.current = false;
|
494
574
|
longTimerRef.current && clearTimeout(longTimerRef.current);
|
575
|
+
|
495
576
|
if (needClose) {
|
496
577
|
goClose(e);
|
497
578
|
return true;
|
498
|
-
}
|
499
|
-
// 缩放状态下,未到边缘时不触发轮播手势
|
579
|
+
} // 缩放状态下,未到边缘时不触发轮播手势
|
500
580
|
// @en In the zoomed state, the carousel gesture is not triggered when the edge is not reached
|
581
|
+
|
582
|
+
|
501
583
|
if (isTransforming() && !transformTouchSide().side) {
|
502
584
|
return true;
|
503
585
|
}
|
504
586
|
}
|
587
|
+
|
505
588
|
function handleImageClick(e) {
|
506
589
|
if (movedRef.current) {
|
507
590
|
return;
|
508
|
-
}
|
509
|
-
// 300ms内再次点击则触发doubleClick,否则触发click
|
591
|
+
} // 300ms内再次点击则触发doubleClick,否则触发click
|
510
592
|
// @en Click again within 300ms to trigger doubleClick, otherwise trigger click
|
593
|
+
|
594
|
+
|
511
595
|
dblTimerRef.current = window.setTimeout(function () {
|
512
596
|
if (!dblClickingRef.current) {
|
513
597
|
if (!onImageClick || !onImageClick(innerIndexRef.current, e)) {
|
@@ -516,29 +600,35 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
516
600
|
}
|
517
601
|
}, 300);
|
518
602
|
}
|
603
|
+
|
519
604
|
function handleImageDoubleClick(e) {
|
520
605
|
if (dblClickingRef.current) {
|
521
606
|
// 防止重复触发dblclick
|
522
607
|
return;
|
523
608
|
}
|
609
|
+
|
524
610
|
dblClickingRef.current = true;
|
611
|
+
|
525
612
|
if (dblTimerRef.current) {
|
526
613
|
clearTimeout(dblTimerRef.current);
|
527
614
|
dblTimerRef.current = null;
|
528
615
|
}
|
616
|
+
|
529
617
|
var index = innerIndexRef.current;
|
530
|
-
onImageDoubleClick && onImageDoubleClick(index, e);
|
531
|
-
// 双击时根据配置放大或缩小
|
618
|
+
onImageDoubleClick && onImageDoubleClick(index, e); // 双击时根据配置放大或缩小
|
532
619
|
// @en Zoom in or out according to configuration when double-clicking
|
620
|
+
|
533
621
|
var transformer = transformersRef.current[index];
|
622
|
+
|
534
623
|
if (transformer) {
|
535
624
|
var trans = transformer.getTransform();
|
536
625
|
var rate = trans.scale || 1;
|
537
626
|
var dblScale = getImageDoubleClickScale(rate);
|
627
|
+
|
538
628
|
if (dblScale === 1) {
|
539
|
-
var img = imageDomsRef.current[index];
|
540
|
-
// 长图双击还原缩放特殊处理,因为transform和scroll不能完全同步,所以先zoomTo到原点再restore
|
629
|
+
var img = imageDomsRef.current[index]; // 长图双击还原缩放特殊处理,因为transform和scroll不能完全同步,所以先zoomTo到原点再restore
|
541
630
|
// @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
|
631
|
+
|
542
632
|
if (imageHasOverflow(img)) {
|
543
633
|
transformer.zoomToScreenCenter(1, [windowWidth / 2, windowHeight / 2], {
|
544
634
|
duration: 200,
|
@@ -558,48 +648,57 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
558
648
|
}
|
559
649
|
}
|
560
650
|
}
|
651
|
+
|
561
652
|
var handleClick = (0, _helpers.useSingleAndDoubleClick)(handleImageClick, handleImageDoubleClick);
|
653
|
+
|
562
654
|
function goClose(e) {
|
563
655
|
if (closingRef.current) {
|
564
656
|
return;
|
565
657
|
}
|
658
|
+
|
566
659
|
closingRef.current = true;
|
567
660
|
close(e);
|
568
661
|
}
|
569
|
-
|
570
662
|
/**
|
571
663
|
* 更改指定图片状态
|
572
664
|
* @en Change specified image status
|
573
665
|
*/
|
666
|
+
|
667
|
+
|
574
668
|
function setImagesStatusByIndex(index, data) {
|
575
669
|
var newStatus = imagesStatusRef.current.slice();
|
576
670
|
newStatus[index] = (0, _extends5.default)({}, newStatus[index] || {}, data);
|
577
671
|
setImagesStatus(newStatus);
|
578
672
|
}
|
579
|
-
|
580
673
|
/**
|
581
674
|
* 缩略图放大过渡动画设置
|
582
675
|
* @en Set thumbnail zoom transition animation
|
583
676
|
*/
|
677
|
+
|
678
|
+
|
584
679
|
function setDisplayAnimation(index) {
|
585
680
|
var _imagesStatusRef$curr4;
|
681
|
+
|
586
682
|
var firstLoaded = (_imagesStatusRef$curr4 = imagesStatusRef.current[index]) == null ? void 0 : _imagesStatusRef$curr4.firstLoaded;
|
587
|
-
var fallbackSrc = replaceFallbackWhenLoaded && firstLoaded ? images[index].src : images[index].fallbackSrc;
|
588
|
-
// 用户设置了getThumbBounds和images的fallbackSrc属性才有放大过渡效果
|
683
|
+
var fallbackSrc = replaceFallbackWhenLoaded && firstLoaded ? images[index].src : images[index].fallbackSrc; // 用户设置了getThumbBounds和images的fallbackSrc属性才有放大过渡效果
|
589
684
|
// @en Set the fallbackSrc attribute of getThumbBounds and images to have a zoom-in transition effect
|
685
|
+
|
590
686
|
if (!getThumbBounds || !images[index] || !fallbackSrc) {
|
591
687
|
resetAnimation(index);
|
592
688
|
return;
|
593
|
-
}
|
594
|
-
// 获取缩略图的rect,如果没获取到就取消放大过渡效果
|
689
|
+
} // 获取缩略图的rect,如果没获取到就取消放大过渡效果
|
595
690
|
// @en Get the rect of the thumbnail, if it is gotten, cancel the zoom transition effect
|
691
|
+
|
692
|
+
|
596
693
|
var thumbBounds = getThumbBounds(index);
|
694
|
+
|
597
695
|
if (!thumbBounds || !thumbBounds.width || !thumbBounds.height) {
|
598
696
|
resetAnimation(index);
|
599
697
|
return;
|
600
|
-
}
|
601
|
-
// 伪造一个fixed的图做小图放大效果
|
698
|
+
} // 伪造一个fixed的图做小图放大效果
|
602
699
|
// @en Forge a fixed image to make a small image enlargement effect
|
700
|
+
|
701
|
+
|
603
702
|
var transImage = new Image();
|
604
703
|
transImageRef.current = transImage;
|
605
704
|
transImage.classList.add('image-preview-fake-trans-image');
|
@@ -609,23 +708,25 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
609
708
|
transImage.style.opacity = '0';
|
610
709
|
transImage.style.transitionDuration = displayDuration + "ms";
|
611
710
|
transImage.style.webkitTransitionDuration = displayDuration + "ms";
|
612
|
-
document.body.appendChild(transImage);
|
613
|
-
// 拿到放大之后的位置rect,没拿到就取消小图放大效果
|
711
|
+
document.body.appendChild(transImage); // 拿到放大之后的位置rect,没拿到就取消小图放大效果
|
614
712
|
// @en Get the zoomed-in position rect, and cancel the zoom-in effect if not getting it
|
713
|
+
|
615
714
|
getNewImageBounds(index, fallbackSrc, transImage, function (rect) {
|
616
715
|
if (!rect || !rect.width || !rect.height) {
|
617
716
|
removeChild(transImage);
|
618
717
|
resetAnimation(index);
|
619
718
|
return;
|
620
|
-
}
|
621
|
-
// 通过小图rect变换到大图rect加transition做放大效果
|
719
|
+
} // 通过小图rect变换到大图rect加transition做放大效果
|
622
720
|
// @en Transform the small image rect to the large image rect and add transition to make a magnification effect
|
721
|
+
|
722
|
+
|
623
723
|
(0, _mobileUtils.nextTick)(function () {
|
624
724
|
transImage.style.opacity = '1';
|
625
725
|
setImageBounds(transImage, rect, thumbBounds);
|
626
726
|
setTimeout(function () {
|
627
727
|
setPlaceholders(function (holders) {
|
628
728
|
var _extends3;
|
729
|
+
|
629
730
|
return (0, _extends5.default)({}, holders, (_extends3 = {}, _extends3[index] = true, _extends3));
|
630
731
|
});
|
631
732
|
}, Math.max(0, displayDuration - 80));
|
@@ -635,22 +736,24 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
635
736
|
});
|
636
737
|
});
|
637
738
|
}
|
638
|
-
|
639
739
|
/**
|
640
740
|
* 取消小图放大过渡效果
|
641
741
|
* @en Cancel the thumbnail zoom transition effect
|
642
742
|
*/
|
743
|
+
|
744
|
+
|
643
745
|
function resetAnimation(index) {
|
644
746
|
setImagesStatusByIndex(index, {
|
645
747
|
animated: true
|
646
748
|
});
|
647
749
|
setTransImageInfo(null);
|
648
750
|
}
|
649
|
-
|
650
751
|
/**
|
651
752
|
* 根据rect设置图片的位置
|
652
753
|
* @en Set the position of the image according to the rect
|
653
754
|
*/
|
755
|
+
|
756
|
+
|
654
757
|
function setImageBounds(image, rect, thumbRect) {
|
655
758
|
// 这里为保持原有比例,只设置宽度变化,高度会随宽度等比变化
|
656
759
|
image.style.width = thumbRect.width + "px";
|
@@ -660,16 +763,18 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
660
763
|
image.style.transformOrigin = 'left top';
|
661
764
|
image.style.webkitTransformOrigin = 'left top';
|
662
765
|
}
|
663
|
-
|
664
766
|
/**
|
665
767
|
* 计算放大之后的位置rect
|
666
768
|
* @en Calculate the position rect after zooming in
|
667
769
|
*/
|
770
|
+
|
771
|
+
|
668
772
|
function getNewImageBounds(index, transSrc, transImage, callback) {
|
669
773
|
if (!transSrc) {
|
670
774
|
callback(null);
|
671
775
|
return;
|
672
776
|
}
|
777
|
+
|
673
778
|
setTransImageInfo({
|
674
779
|
src: transSrc,
|
675
780
|
fit: images[index].fit,
|
@@ -685,11 +790,12 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
685
790
|
}
|
686
791
|
});
|
687
792
|
}
|
688
|
-
|
689
793
|
/**
|
690
794
|
* @en 渲染轮播+图片展示
|
691
795
|
* Rendering carousel + displaying image
|
692
796
|
*/
|
797
|
+
|
798
|
+
|
693
799
|
function renderContent(carouselProps, allImages, getImageProps) {
|
694
800
|
return /*#__PURE__*/_react.default.createElement(_carousel.default, (0, _extends5.default)({
|
695
801
|
autoPlay: false,
|
@@ -709,25 +815,29 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
709
815
|
boxHeight: windowHeight,
|
710
816
|
bottomOverlap: null
|
711
817
|
}, getImageProps(image, index))));
|
818
|
+
|
712
819
|
return image.extraNode ? /*#__PURE__*/_react.default.createElement("div", {
|
713
820
|
className: "preview-image-wrap-container",
|
714
821
|
key: "outer-" + index
|
715
822
|
}, innerNode, image.extraNode) : innerNode;
|
716
823
|
}));
|
717
824
|
}
|
825
|
+
|
718
826
|
function getImageClass(index) {
|
719
827
|
var _ref = imagesStatus[index] || {},
|
720
|
-
|
721
|
-
|
828
|
+
loaded = _ref.loaded,
|
829
|
+
animated = _ref.animated;
|
830
|
+
|
722
831
|
return (0, _mobileUtils.cls)('preview-image', {
|
723
832
|
'preview-hidden': index === openIndex && (!loaded || !animated)
|
724
833
|
});
|
725
834
|
}
|
726
|
-
|
727
835
|
/**
|
728
836
|
* 每张图片的样式
|
729
837
|
* @en style of each image
|
730
838
|
*/
|
839
|
+
|
840
|
+
|
731
841
|
function getImageStyle() {
|
732
842
|
// 因为缩放的容器必须是没有transform和transition的纯净元素
|
733
843
|
// @en Because the scaled container must be a pure element without transform and transition
|
@@ -736,29 +846,31 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
736
846
|
return {
|
737
847
|
overflow: 'visible'
|
738
848
|
};
|
739
|
-
}
|
849
|
+
} // 渲染轮播指引器
|
850
|
+
|
740
851
|
|
741
|
-
// 渲染轮播指引器
|
742
852
|
function renderPreviewIndicator(currentIndex, total, lastIndex) {
|
743
853
|
if (renderIndicator) {
|
744
854
|
return renderIndicator(currentIndex, total, lastIndex);
|
745
855
|
}
|
856
|
+
|
746
857
|
return openLoaded ? /*#__PURE__*/_react.default.createElement(_portal.default, null, /*#__PURE__*/_react.default.createElement("div", {
|
747
858
|
className: "image-preview-indicator"
|
748
859
|
}, currentIndex + 1, "/", total)) : null;
|
749
|
-
}
|
750
|
-
|
751
|
-
// ios在重设style时图片会消失一下造成闪动,因此在底下垫一张图
|
860
|
+
} // ios在重设style时图片会消失一下造成闪动,因此在底下垫一张图
|
752
861
|
// @en In iOS when resetting the style, the image will disappear and cause flickering, so put a image at the bottom
|
753
862
|
// 优先过渡图,其次用原图
|
754
863
|
// @en Prioritize the transition image, followed by the original image
|
864
|
+
|
865
|
+
|
755
866
|
function renderImagePlaceholder(src, index, fitCss) {
|
756
867
|
var _ref2 = imagesStatus[index] || {},
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
868
|
+
originWidth = _ref2.originWidth,
|
869
|
+
originHeight = _ref2.originHeight,
|
870
|
+
originLeft = _ref2.originLeft,
|
871
|
+
originTop = _ref2.originTop,
|
872
|
+
hasOverflow = _ref2.hasOverflow;
|
873
|
+
|
762
874
|
var trans = hasOverflow ? {} : (0, _helpers.getStyleWithVendor)({
|
763
875
|
transform: 'translateY(-50%)'
|
764
876
|
});
|
@@ -776,6 +888,7 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
776
888
|
}, fitObj, trans)
|
777
889
|
}) : null;
|
778
890
|
}
|
891
|
+
|
779
892
|
function renderLoadingArea(index) {
|
780
893
|
// loadingArea提出来,放到过渡图上层
|
781
894
|
// @en The loadingArea is extracted and placed on the upper layer of the transition image
|
@@ -787,6 +900,7 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
787
900
|
radius: 7
|
788
901
|
}))) : loadingArea;
|
789
902
|
}
|
903
|
+
|
790
904
|
return /*#__PURE__*/_react.default.createElement(_contextProvider.ContextLayout, null, function (_ref3) {
|
791
905
|
var prefixCls = _ref3.prefixCls;
|
792
906
|
return /*#__PURE__*/_react.default.createElement(_portal.default, {
|
@@ -851,17 +965,20 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
851
965
|
originLeft: imageEle.offsetLeft,
|
852
966
|
hasOverflow: imageHasOverflow(imageEle)
|
853
967
|
});
|
968
|
+
|
854
969
|
if (index === openIndex) {
|
855
970
|
initTransformer(index);
|
856
971
|
} else {
|
857
972
|
setPlaceholders(function (holders) {
|
858
973
|
var _extends4;
|
974
|
+
|
859
975
|
return (0, _extends5.default)({}, holders, (_extends4 = {}, _extends4[index] = true, _extends4));
|
860
976
|
});
|
861
977
|
}
|
862
978
|
},
|
863
979
|
onError: function onError() {
|
864
980
|
imageDomsRef.current[index] = null;
|
981
|
+
|
865
982
|
if (index === openIndex) {
|
866
983
|
var transImage = transImageInfo == null ? void 0 : transImageInfo.movingImage;
|
867
984
|
removeChild(transImage);
|
@@ -894,6 +1011,7 @@ var ImagePreview = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
894
1011
|
}) : null);
|
895
1012
|
});
|
896
1013
|
});
|
1014
|
+
|
897
1015
|
function methodsGenerator(Comp) {
|
898
1016
|
return {
|
899
1017
|
/**
|
@@ -905,8 +1023,8 @@ function methodsGenerator(Comp) {
|
|
905
1023
|
open: (0, _methods.open)(Comp)
|
906
1024
|
};
|
907
1025
|
}
|
908
|
-
var ImagePreviewWithGlobalContext = (0, _contextProvider.CompWithGlobalContext)(ImagePreview);
|
909
1026
|
|
1027
|
+
var ImagePreviewWithGlobalContext = (0, _contextProvider.CompWithGlobalContext)(ImagePreview);
|
910
1028
|
/**
|
911
1029
|
* 图片预览组件,支持循环轮播、双指/双击缩放、缩略图放大效果。
|
912
1030
|
* @en The image preview, supports circular rotation, two-finger/double-tap zoom, and thumbnail zoom effects.
|
@@ -915,5 +1033,7 @@ var ImagePreviewWithGlobalContext = (0, _contextProvider.CompWithGlobalContext)(
|
|
915
1033
|
* @name 图片预览
|
916
1034
|
* @name_en ImagePreview
|
917
1035
|
*/
|
1036
|
+
|
918
1037
|
var _default = (0, _mobileUtils.componentWrapper)(ImagePreview, methodsGenerator(ImagePreviewWithGlobalContext));
|
1038
|
+
|
919
1039
|
exports.default = _default;
|