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