@arco-design/mobile-react 2.24.2 → 2.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/README.en-US.md +2 -2
- package/README.md +2 -2
- package/cjs/_helpers/hooks.js +42 -120
- package/cjs/_helpers/index.js +2 -13
- package/cjs/_helpers/react-dom.js +0 -12
- package/cjs/_helpers/render.js +0 -12
- package/cjs/action-sheet/index.js +10 -30
- package/cjs/action-sheet/methods.js +0 -2
- package/cjs/action-sheet/style/css/index.css +1 -1
- package/cjs/action-sheet/style/css/index.js +0 -2
- package/cjs/action-sheet/style/index.js +0 -2
- package/cjs/avatar/group.js +12 -24
- package/cjs/avatar/index.js +51 -77
- package/cjs/avatar/style/css/index.js +0 -2
- package/cjs/avatar/style/index.js +0 -2
- package/cjs/badge/index.js +18 -29
- package/cjs/badge/style/css/index.css +3 -2
- package/cjs/badge/style/css/index.js +0 -1
- package/cjs/badge/style/index.js +0 -1
- package/cjs/button/hooks.js +15 -20
- package/cjs/button/index.js +46 -67
- package/cjs/button/style/css/index.js +0 -2
- package/cjs/button/style/index.js +0 -2
- package/cjs/carousel/demo/style/css/mobile.css +12 -0
- package/cjs/carousel/demo/style/mobile.less +8 -0
- package/cjs/carousel/index.d.ts +1 -1
- package/cjs/carousel/index.js +159 -275
- package/cjs/carousel/style/css/index.js +0 -1
- package/cjs/carousel/style/index.js +0 -1
- package/cjs/cell/arrow.js +0 -3
- package/cjs/cell/cell.js +14 -23
- package/cjs/cell/group.js +9 -21
- package/cjs/cell/index.js +1 -7
- package/cjs/cell/style/css/index.js +0 -1
- package/cjs/cell/style/index.js +0 -1
- package/cjs/checkbox/checkbox.js +31 -57
- package/cjs/checkbox/group.js +24 -38
- package/cjs/checkbox/hooks/index.js +0 -2
- package/cjs/checkbox/hooks/useMergeProps.js +7 -14
- package/cjs/checkbox/index.d.ts +6 -1
- package/cjs/checkbox/index.js +6 -11
- package/cjs/checkbox/style/css/index.js +0 -1
- package/cjs/checkbox/style/index.js +0 -1
- package/cjs/checkbox/type.js +0 -2
- package/cjs/circle-progress/index.js +37 -57
- package/cjs/circle-progress/style/css/index.js +0 -1
- package/cjs/circle-progress/style/index.js +0 -1
- package/cjs/collapse/collapse.js +27 -56
- package/cjs/collapse/group.js +20 -44
- package/cjs/collapse/index.js +0 -9
- package/cjs/collapse/style/css/index.js +0 -1
- package/cjs/collapse/style/index.js +0 -1
- package/cjs/collapse/utils.js +0 -7
- package/cjs/context-provider/index.js +10 -28
- package/cjs/context-provider/style/css/index.js +0 -1
- package/cjs/context-provider/style/index.js +0 -1
- package/cjs/count-down/hooks.js +24 -43
- package/cjs/count-down/index.js +29 -37
- package/cjs/count-down/singleton.js +2 -12
- package/cjs/count-down/style/css/index.js +0 -1
- package/cjs/count-down/style/index.js +0 -1
- package/cjs/count-down/util.js +33 -47
- package/cjs/date-picker/helper.js +7 -14
- package/cjs/date-picker/index.d.ts +5 -2
- package/cjs/date-picker/index.js +52 -114
- package/cjs/date-picker/style/css/index.js +0 -2
- package/cjs/date-picker/style/index.js +0 -2
- package/cjs/dialog/index.js +28 -54
- package/cjs/dialog/methods.js +9 -22
- package/cjs/dialog/style/css/index.css +2 -1
- package/cjs/dialog/style/css/index.js +0 -2
- package/cjs/dialog/style/index.js +0 -2
- package/cjs/dropdown/dropdown.js +74 -113
- package/cjs/dropdown/index.js +1 -8
- package/cjs/dropdown/options.js +12 -28
- package/cjs/dropdown/style/css/index.js +0 -1
- package/cjs/dropdown/style/index.js +0 -1
- package/cjs/dropdown-menu/dropdown-menu.js +49 -84
- package/cjs/dropdown-menu/helper.js +6 -27
- package/cjs/dropdown-menu/index.js +0 -6
- package/cjs/dropdown-menu/style/css/index.js +0 -2
- package/cjs/dropdown-menu/style/index.js +0 -2
- package/cjs/ellipsis/components/js-ellipsis.js +33 -72
- package/cjs/ellipsis/components/native-ellipsis.js +9 -15
- package/cjs/ellipsis/index.js +19 -32
- package/cjs/ellipsis/style/css/index.js +0 -1
- package/cjs/ellipsis/style/index.js +0 -1
- package/cjs/ellipsis/utils/dom.js +0 -8
- package/cjs/ellipsis/utils/is.js +1 -5
- package/cjs/form/form-item-context.d.ts +3 -0
- package/cjs/form/form-item-context.js +12 -0
- package/cjs/form/form-item.d.ts +4 -0
- package/cjs/form/form-item.js +313 -0
- package/cjs/form/index.d.ts +16 -0
- package/cjs/form/index.js +96 -0
- package/cjs/form/style/css/index.css +92 -0
- package/cjs/form/style/css/index.d.ts +2 -0
- package/cjs/form/style/css/index.js +4 -0
- package/cjs/form/style/index.d.ts +2 -0
- package/cjs/form/style/index.js +4 -0
- package/cjs/form/style/index.less +91 -0
- package/cjs/form/type.d.ts +371 -0
- package/cjs/form/type.js +30 -0
- package/cjs/form/useForm.d.ts +18 -0
- package/cjs/form/useForm.js +225 -0
- package/cjs/form/utils.d.ts +6 -0
- package/cjs/form/utils.js +36 -0
- package/cjs/grid/index.js +21 -41
- package/cjs/grid/style/css/index.js +0 -1
- package/cjs/grid/style/index.js +0 -1
- package/cjs/icon/IconAdd/index.js +5 -12
- package/cjs/icon/IconArrowBack/index.js +5 -12
- package/cjs/icon/IconArrowDown/index.js +5 -12
- package/cjs/icon/IconArrowIn/index.js +5 -12
- package/cjs/icon/IconArrowUp/index.js +5 -12
- package/cjs/icon/IconCheck/index.js +5 -12
- package/cjs/icon/IconCheckBold/index.js +5 -12
- package/cjs/icon/IconCircleChecked/index.js +5 -12
- package/cjs/icon/IconCircleDisabled/index.js +5 -12
- package/cjs/icon/IconCircleUnchecked/index.js +5 -12
- package/cjs/icon/IconClear/index.js +5 -12
- package/cjs/icon/IconClose/index.js +5 -12
- package/cjs/icon/IconCloseBold/index.js +5 -12
- package/cjs/icon/IconDelete/index.js +5 -12
- package/cjs/icon/IconEdit/index.js +5 -12
- package/cjs/icon/IconErrorCircle/index.js +5 -12
- package/cjs/icon/IconEyeInvisible/index.js +5 -12
- package/cjs/icon/IconEyeVisible/index.js +5 -12
- package/cjs/icon/IconEyelashInvisible/index.js +5 -12
- package/cjs/icon/IconGift/index.js +5 -12
- package/cjs/icon/IconHeart/index.js +5 -12
- package/cjs/icon/IconHome/index.js +5 -12
- package/cjs/icon/IconLikeCircle/index.js +5 -12
- package/cjs/icon/IconMinus/index.js +5 -12
- package/cjs/icon/IconMore/index.js +5 -12
- package/cjs/icon/IconNotice/index.js +5 -12
- package/cjs/icon/IconNoticeOff/index.js +5 -12
- package/cjs/icon/IconPicture/index.js +5 -12
- package/cjs/icon/IconPlay/index.js +5 -12
- package/cjs/icon/IconQuestionCircle/index.js +5 -12
- package/cjs/icon/IconRefresh/index.js +5 -12
- package/cjs/icon/IconSad/index.js +5 -12
- package/cjs/icon/IconScan/index.js +5 -12
- package/cjs/icon/IconSearch/index.js +5 -12
- package/cjs/icon/IconSetting/index.js +5 -12
- package/cjs/icon/IconShop/index.js +5 -12
- package/cjs/icon/IconShopping/index.js +5 -12
- package/cjs/icon/IconSmileFill/index.js +5 -12
- package/cjs/icon/IconSound/index.js +5 -12
- package/cjs/icon/IconSquareChecked/index.js +5 -12
- package/cjs/icon/IconSquareDisabled/index.js +5 -12
- package/cjs/icon/IconSquareUnchecked/index.js +5 -12
- package/cjs/icon/IconStar/index.js +5 -12
- package/cjs/icon/IconStarFill/index.js +5 -12
- package/cjs/icon/IconStarHalf/index.js +5 -12
- package/cjs/icon/IconSubway/index.js +5 -12
- package/cjs/icon/IconSuccessCircle/index.js +5 -12
- package/cjs/icon/IconTriDown/index.js +5 -12
- package/cjs/icon/IconTriUp/index.js +5 -12
- package/cjs/icon/IconUpload/index.js +5 -12
- package/cjs/icon/IconUser/index.js +5 -12
- package/cjs/icon/IconUserFill/index.js +5 -12
- package/cjs/icon/IconWarnCircle/index.js +5 -12
- package/cjs/icon/IconWarnCircleFill/index.js +5 -12
- package/cjs/icon/index.js +0 -111
- package/cjs/image/index.js +53 -92
- package/cjs/image/style/css/index.js +0 -2
- package/cjs/image/style/index.js +0 -2
- package/cjs/image-picker/add-icon.js +0 -3
- package/cjs/image-picker/index.d.ts +5 -2
- package/cjs/image-picker/index.js +62 -103
- package/cjs/image-picker/style/css/index.js +0 -2
- package/cjs/image-picker/style/index.js +0 -2
- package/cjs/image-preview/demo/style/css/mobile.css +10 -0
- package/cjs/image-preview/demo/style/mobile.less +11 -0
- package/cjs/image-preview/index.d.ts +5 -0
- package/cjs/image-preview/index.js +124 -239
- package/cjs/image-preview/methods.js +5 -18
- package/cjs/image-preview/style/css/index.css +1 -0
- package/cjs/image-preview/style/css/index.js +0 -4
- package/cjs/image-preview/style/index.js +0 -4
- package/cjs/image-preview/style/index.less +1 -1
- package/cjs/index.d.ts +7 -6
- package/cjs/index.js +15 -120
- package/cjs/input/hooks.js +42 -75
- package/cjs/input/index.d.ts +5 -2
- package/cjs/input/index.js +36 -47
- package/cjs/input/style/css/index.css +1 -1
- package/cjs/input/style/css/index.js +0 -1
- package/cjs/input/style/index.js +0 -1
- package/cjs/load-more/index.js +29 -56
- package/cjs/load-more/style/css/index.js +0 -1
- package/cjs/load-more/style/index.js +0 -1
- package/cjs/loading/index.js +19 -48
- package/cjs/loading/style/css/index.js +0 -1
- package/cjs/loading/style/index.js +0 -1
- package/cjs/masking/index.js +46 -79
- package/cjs/masking/methods.js +4 -19
- package/cjs/masking/style/css/index.js +0 -2
- package/cjs/masking/style/index.js +0 -2
- package/cjs/nav-bar/back-icon.js +1 -5
- package/cjs/nav-bar/index.js +36 -60
- package/cjs/nav-bar/style/css/index.js +0 -1
- package/cjs/nav-bar/style/index.js +0 -1
- package/cjs/notice-bar/index.js +31 -54
- package/cjs/notice-bar/style/css/index.js +0 -1
- package/cjs/notice-bar/style/index.js +0 -1
- package/cjs/notify/index.d.ts +8 -8
- package/cjs/notify/index.js +20 -49
- package/cjs/notify/methods.js +2 -17
- package/cjs/notify/style/css/index.css +2 -2
- package/cjs/notify/style/css/index.js +0 -1
- package/cjs/notify/style/index.js +0 -1
- package/cjs/pagination/arrow.js +0 -3
- package/cjs/pagination/index.js +27 -58
- package/cjs/pagination/style/css/index.js +0 -1
- package/cjs/pagination/style/index.js +0 -1
- package/cjs/picker/index.d.ts +5 -2
- package/cjs/picker/index.js +50 -89
- package/cjs/picker/style/css/index.js +0 -3
- package/cjs/picker/style/index.js +0 -3
- package/cjs/picker-view/components/cascader.js +14 -31
- package/cjs/picker-view/components/multi-picker.js +6 -20
- package/cjs/picker-view/components/picker-cell.js +45 -97
- package/cjs/picker-view/index.d.ts +5 -2
- package/cjs/picker-view/index.js +36 -77
- package/cjs/picker-view/style/css/index.js +0 -1
- package/cjs/picker-view/style/index.js +0 -1
- package/cjs/popover/hooks/index.js +0 -4
- package/cjs/popover/hooks/useEvent.js +25 -49
- package/cjs/popover/hooks/usePosition.js +94 -151
- package/cjs/popover/index.js +1 -8
- package/cjs/popover/menu.js +32 -51
- package/cjs/popover/popover-inner.js +30 -47
- package/cjs/popover/popover.js +69 -101
- package/cjs/popover/style/css/index.js +0 -2
- package/cjs/popover/style/index.js +0 -2
- package/cjs/popup/index.js +22 -39
- package/cjs/popup/methods.js +0 -2
- package/cjs/popup/style/css/index.js +0 -2
- package/cjs/popup/style/index.js +0 -2
- package/cjs/popup-swiper/index.js +38 -80
- package/cjs/popup-swiper/methods.js +0 -2
- package/cjs/popup-swiper/style/css/index.js +0 -2
- package/cjs/popup-swiper/style/index.js +0 -2
- package/cjs/portal/index.js +3 -8
- package/cjs/portal/style/css/index.js +0 -1
- package/cjs/portal/style/index.js +0 -1
- package/cjs/progress/index.js +27 -44
- package/cjs/progress/style/css/index.js +0 -1
- package/cjs/progress/style/index.js +0 -1
- package/cjs/pull-refresh/android-pull-refresh.js +58 -100
- package/cjs/pull-refresh/hooks.js +11 -32
- package/cjs/pull-refresh/index.d.ts +9 -3
- package/cjs/pull-refresh/index.js +5 -15
- package/cjs/pull-refresh/ios-pull-refresh.js +53 -80
- package/cjs/pull-refresh/model.js +0 -1
- package/cjs/pull-refresh/style/css/index.js +0 -2
- package/cjs/pull-refresh/style/index.js +0 -2
- package/cjs/radio/group.js +20 -34
- package/cjs/radio/index.d.ts +6 -1
- package/cjs/radio/index.js +5 -10
- package/cjs/radio/radio.js +0 -10
- package/cjs/radio/style/css/index.js +0 -1
- package/cjs/radio/style/index.js +0 -1
- package/cjs/rate/index.d.ts +5 -2
- package/cjs/rate/index.js +34 -57
- package/cjs/rate/style/css/index.js +0 -1
- package/cjs/rate/style/index.js +0 -1
- package/cjs/search-bar/association.js +14 -32
- package/cjs/search-bar/cancel-button.js +8 -16
- package/cjs/search-bar/highlight.js +14 -25
- package/cjs/search-bar/index.js +77 -97
- package/cjs/search-bar/style/css/index.js +0 -1
- package/cjs/search-bar/style/index.js +0 -1
- package/cjs/show-monitor/index.js +34 -93
- package/cjs/show-monitor/style/css/index.js +0 -1
- package/cjs/show-monitor/style/index.js +0 -1
- package/cjs/slider/hooks/index.js +0 -13
- package/cjs/slider/hooks/useSliderEvents.js +26 -55
- package/cjs/slider/hooks/useSliderIcon.js +6 -20
- package/cjs/slider/hooks/useSliderInit.js +32 -52
- package/cjs/slider/hooks/useSliderStyle.js +12 -24
- package/cjs/slider/index.d.ts +5 -2
- package/cjs/slider/index.js +56 -80
- package/cjs/slider/marks.js +12 -26
- package/cjs/slider/popover.js +4 -13
- package/cjs/slider/style/css/index.js +0 -2
- package/cjs/slider/style/index.js +0 -2
- package/cjs/slider/thumb.js +8 -23
- package/cjs/stepper/hooks/useButtonClick.js +19 -28
- package/cjs/stepper/hooks/useInputEvent.js +9 -18
- package/cjs/stepper/hooks/useValue.js +9 -14
- package/cjs/stepper/index.d.ts +5 -2
- package/cjs/stepper/index.js +92 -103
- package/cjs/stepper/style/css/index.js +0 -1
- package/cjs/stepper/style/index.js +0 -1
- package/cjs/steps/index.js +22 -40
- package/cjs/steps/step.js +10 -27
- package/cjs/steps/style/css/index.css +2 -2
- package/cjs/steps/style/css/index.js +0 -1
- package/cjs/steps/style/index.js +0 -1
- package/cjs/sticky/index.js +37 -66
- package/cjs/sticky/style/css/index.js +0 -1
- package/cjs/sticky/style/index.js +0 -1
- package/cjs/style.d.ts +7 -6
- package/cjs/style.js +7 -59
- package/cjs/swipe-action/index.js +40 -92
- package/cjs/swipe-action/item.js +9 -17
- package/cjs/swipe-action/style/css/index.js +0 -1
- package/cjs/swipe-action/style/index.js +0 -1
- package/cjs/swipe-load/index.js +55 -83
- package/cjs/swipe-load/style/css/index.js +0 -1
- package/cjs/swipe-load/style/index.js +0 -1
- package/cjs/switch/index.d.ts +5 -2
- package/cjs/switch/index.js +37 -54
- package/cjs/switch/style/css/index.js +0 -1
- package/cjs/switch/style/index.js +0 -1
- package/cjs/tab-bar/index.js +0 -7
- package/cjs/tab-bar/item.js +6 -24
- package/cjs/tab-bar/style/css/index.js +0 -1
- package/cjs/tab-bar/style/index.js +0 -1
- package/cjs/tab-bar/tab-bar.js +15 -31
- package/cjs/tabs/index.js +129 -192
- package/cjs/tabs/style/css/index.js +0 -1
- package/cjs/tabs/style/index.js +0 -1
- package/cjs/tabs/tab-cell-underline.js +25 -64
- package/cjs/tabs/tab-cell.js +66 -108
- package/cjs/tabs/tab-pane.js +49 -94
- package/cjs/tag/index.js +1 -8
- package/cjs/tag/list.js +11 -26
- package/cjs/tag/style/css/index.js +0 -1
- package/cjs/tag/style/index.js +0 -1
- package/cjs/tag/tag.js +20 -32
- package/cjs/textarea/index.d.ts +5 -2
- package/cjs/textarea/index.js +45 -63
- package/cjs/textarea/style/css/index.css +1 -1
- package/cjs/textarea/style/css/index.js +0 -2
- package/cjs/textarea/style/index.js +0 -2
- package/cjs/toast/index.d.ts +12 -12
- package/cjs/toast/index.js +26 -61
- package/cjs/toast/methods.js +2 -16
- package/cjs/toast/style/css/index.js +0 -3
- package/cjs/toast/style/index.js +0 -3
- package/cjs/transition/index.js +10 -18
- package/cjs/transition/style/css/index.js +0 -1
- package/cjs/transition/style/index.js +0 -1
- package/dist/index.js +21030 -20541
- package/dist/index.min.js +12 -3
- package/dist/style.css +823 -741
- package/dist/style.min.css +1 -1
- package/esm/_helpers/hooks.js +41 -99
- package/esm/_helpers/index.js +2 -3
- package/esm/_helpers/react-dom.js +0 -10
- package/esm/_helpers/render.js +0 -7
- package/esm/action-sheet/index.js +10 -16
- package/esm/action-sheet/style/css/index.css +1 -1
- package/esm/avatar/group.js +12 -16
- package/esm/avatar/index.js +51 -62
- package/esm/badge/index.js +18 -22
- package/esm/badge/style/css/index.css +3 -2
- package/esm/button/hooks.js +15 -18
- package/esm/button/index.js +46 -57
- package/esm/carousel/demo/style/css/mobile.css +12 -0
- package/esm/carousel/demo/style/mobile.less +8 -0
- package/esm/carousel/index.d.ts +1 -1
- package/esm/carousel/index.js +159 -267
- package/esm/cell/cell.js +14 -14
- package/esm/cell/group.js +9 -11
- package/esm/cell/index.js +1 -1
- package/esm/checkbox/checkbox.js +31 -42
- package/esm/checkbox/group.js +24 -28
- package/esm/checkbox/hooks/useMergeProps.js +7 -9
- package/esm/checkbox/index.d.ts +6 -1
- package/esm/checkbox/index.js +6 -4
- package/esm/checkbox/type.js +0 -1
- package/esm/circle-progress/index.js +37 -49
- package/esm/collapse/collapse.js +27 -46
- package/esm/collapse/group.js +20 -34
- package/esm/collapse/index.js +1 -1
- package/esm/collapse/utils.js +0 -1
- package/esm/context-provider/index.js +10 -18
- package/esm/count-down/hooks.js +24 -37
- package/esm/count-down/index.js +30 -29
- package/esm/count-down/singleton.js +2 -5
- package/esm/count-down/util.js +33 -42
- package/esm/date-picker/helper.js +7 -9
- package/esm/date-picker/index.d.ts +5 -2
- package/esm/date-picker/index.js +53 -103
- package/esm/dialog/index.js +28 -39
- package/esm/dialog/methods.js +9 -11
- package/esm/dialog/style/css/index.css +2 -1
- package/esm/dropdown/dropdown.js +74 -102
- package/esm/dropdown/index.js +1 -1
- package/esm/dropdown/options.js +12 -20
- package/esm/dropdown-menu/dropdown-menu.js +49 -74
- package/esm/dropdown-menu/helper.js +6 -16
- package/esm/dropdown-menu/index.js +1 -1
- package/esm/ellipsis/components/js-ellipsis.js +33 -63
- package/esm/ellipsis/components/native-ellipsis.js +9 -11
- package/esm/ellipsis/index.js +20 -21
- package/esm/ellipsis/utils/dom.js +0 -7
- package/esm/ellipsis/utils/is.js +1 -1
- package/esm/form/form-item-context.d.ts +3 -0
- package/esm/form/form-item-context.js +6 -0
- package/esm/form/form-item.d.ts +4 -0
- package/esm/form/form-item.js +306 -0
- package/esm/form/index.d.ts +16 -0
- package/esm/form/index.js +79 -0
- package/esm/form/style/css/index.css +92 -0
- package/esm/form/style/css/index.d.ts +2 -0
- package/esm/form/style/css/index.js +2 -0
- package/esm/form/style/index.d.ts +2 -0
- package/esm/form/style/index.js +2 -0
- package/esm/form/style/index.less +91 -0
- package/esm/form/type.d.ts +371 -0
- package/esm/form/type.js +24 -0
- package/esm/form/useForm.d.ts +18 -0
- package/esm/form/useForm.js +217 -0
- package/esm/form/utils.d.ts +6 -0
- package/esm/form/utils.js +30 -0
- package/esm/grid/index.js +21 -34
- package/esm/icon/IconAdd/index.js +5 -6
- package/esm/icon/IconArrowBack/index.js +5 -6
- package/esm/icon/IconArrowDown/index.js +5 -6
- package/esm/icon/IconArrowIn/index.js +5 -6
- package/esm/icon/IconArrowUp/index.js +5 -6
- package/esm/icon/IconCheck/index.js +5 -6
- package/esm/icon/IconCheckBold/index.js +5 -6
- package/esm/icon/IconCircleChecked/index.js +5 -6
- package/esm/icon/IconCircleDisabled/index.js +5 -6
- package/esm/icon/IconCircleUnchecked/index.js +5 -6
- package/esm/icon/IconClear/index.js +5 -6
- package/esm/icon/IconClose/index.js +5 -6
- package/esm/icon/IconCloseBold/index.js +5 -6
- package/esm/icon/IconDelete/index.js +5 -6
- package/esm/icon/IconEdit/index.js +5 -6
- package/esm/icon/IconErrorCircle/index.js +5 -6
- package/esm/icon/IconEyeInvisible/index.js +5 -6
- package/esm/icon/IconEyeVisible/index.js +5 -6
- package/esm/icon/IconEyelashInvisible/index.js +5 -6
- package/esm/icon/IconGift/index.js +5 -6
- package/esm/icon/IconHeart/index.js +5 -6
- package/esm/icon/IconHome/index.js +5 -6
- package/esm/icon/IconLikeCircle/index.js +5 -6
- package/esm/icon/IconMinus/index.js +5 -6
- package/esm/icon/IconMore/index.js +5 -6
- package/esm/icon/IconNotice/index.js +5 -6
- package/esm/icon/IconNoticeOff/index.js +5 -6
- package/esm/icon/IconPicture/index.js +5 -6
- package/esm/icon/IconPlay/index.js +5 -6
- package/esm/icon/IconQuestionCircle/index.js +5 -6
- package/esm/icon/IconRefresh/index.js +5 -6
- package/esm/icon/IconSad/index.js +5 -6
- package/esm/icon/IconScan/index.js +5 -6
- package/esm/icon/IconSearch/index.js +5 -6
- package/esm/icon/IconSetting/index.js +5 -6
- package/esm/icon/IconShop/index.js +5 -6
- package/esm/icon/IconShopping/index.js +5 -6
- package/esm/icon/IconSmileFill/index.js +5 -6
- package/esm/icon/IconSound/index.js +5 -6
- package/esm/icon/IconSquareChecked/index.js +5 -6
- package/esm/icon/IconSquareDisabled/index.js +5 -6
- package/esm/icon/IconSquareUnchecked/index.js +5 -6
- package/esm/icon/IconStar/index.js +5 -6
- package/esm/icon/IconStarFill/index.js +5 -6
- package/esm/icon/IconStarHalf/index.js +5 -6
- package/esm/icon/IconSubway/index.js +5 -6
- package/esm/icon/IconSuccessCircle/index.js +5 -6
- package/esm/icon/IconTriDown/index.js +5 -6
- package/esm/icon/IconTriUp/index.js +5 -6
- package/esm/icon/IconUpload/index.js +5 -6
- package/esm/icon/IconUser/index.js +5 -6
- package/esm/icon/IconUserFill/index.js +5 -6
- package/esm/icon/IconWarnCircle/index.js +5 -6
- package/esm/icon/IconWarnCircleFill/index.js +5 -6
- package/esm/image/index.js +53 -83
- package/esm/image-picker/index.d.ts +5 -2
- package/esm/image-picker/index.js +63 -90
- package/esm/image-preview/demo/style/css/mobile.css +10 -0
- package/esm/image-preview/demo/style/mobile.less +11 -0
- package/esm/image-preview/index.d.ts +5 -0
- package/esm/image-preview/index.js +124 -218
- package/esm/image-preview/methods.js +4 -14
- package/esm/image-preview/style/css/index.css +1 -0
- package/esm/image-preview/style/index.less +1 -1
- package/esm/index.d.ts +7 -6
- package/esm/index.js +7 -6
- package/esm/input/hooks.js +42 -67
- package/esm/input/index.d.ts +5 -2
- package/esm/input/index.js +37 -40
- package/esm/input/style/css/index.css +1 -1
- package/esm/load-more/index.js +29 -48
- package/esm/loading/index.js +19 -40
- package/esm/masking/index.js +46 -64
- package/esm/masking/methods.js +4 -15
- package/esm/nav-bar/back-icon.js +1 -3
- package/esm/nav-bar/index.js +36 -51
- package/esm/notice-bar/index.js +31 -47
- package/esm/notify/index.d.ts +8 -8
- package/esm/notify/index.js +20 -33
- package/esm/notify/methods.js +2 -13
- package/esm/notify/style/css/index.css +2 -2
- package/esm/pagination/index.js +27 -50
- package/esm/picker/index.d.ts +5 -2
- package/esm/picker/index.js +51 -76
- package/esm/picker-view/components/cascader.js +14 -23
- package/esm/picker-view/components/multi-picker.js +6 -16
- package/esm/picker-view/components/picker-cell.js +45 -89
- package/esm/picker-view/index.d.ts +5 -2
- package/esm/picker-view/index.js +36 -63
- package/esm/popover/hooks/useEvent.js +26 -41
- package/esm/popover/hooks/usePosition.js +94 -144
- package/esm/popover/index.js +2 -2
- package/esm/popover/menu.js +32 -41
- package/esm/popover/popover-inner.js +30 -38
- package/esm/popover/popover.js +69 -90
- package/esm/popup/index.js +22 -25
- package/esm/popup-swiper/index.js +38 -64
- package/esm/portal/index.js +3 -5
- package/esm/progress/index.js +27 -36
- package/esm/pull-refresh/android-pull-refresh.js +58 -90
- package/esm/pull-refresh/hooks.js +11 -23
- package/esm/pull-refresh/index.d.ts +9 -3
- package/esm/pull-refresh/index.js +5 -6
- package/esm/pull-refresh/ios-pull-refresh.js +53 -68
- package/esm/pull-refresh/model.js +0 -1
- package/esm/radio/group.js +20 -24
- package/esm/radio/index.d.ts +6 -1
- package/esm/radio/index.js +5 -3
- package/esm/rate/index.d.ts +5 -2
- package/esm/rate/index.js +35 -49
- package/esm/search-bar/association.js +14 -27
- package/esm/search-bar/cancel-button.js +8 -11
- package/esm/search-bar/highlight.js +14 -20
- package/esm/search-bar/index.js +77 -86
- package/esm/show-monitor/index.js +34 -85
- package/esm/slider/hooks/useSliderEvents.js +26 -51
- package/esm/slider/hooks/useSliderIcon.js +6 -13
- package/esm/slider/hooks/useSliderInit.js +32 -46
- package/esm/slider/hooks/useSliderStyle.js +12 -20
- package/esm/slider/index.d.ts +5 -2
- package/esm/slider/index.js +57 -72
- package/esm/slider/marks.js +12 -18
- package/esm/slider/popover.js +4 -6
- package/esm/slider/thumb.js +8 -15
- package/esm/stepper/hooks/useButtonClick.js +19 -27
- package/esm/stepper/hooks/useInputEvent.js +9 -16
- package/esm/stepper/hooks/useValue.js +9 -12
- package/esm/stepper/index.d.ts +5 -2
- package/esm/stepper/index.js +93 -92
- package/esm/steps/index.js +22 -27
- package/esm/steps/step.js +10 -19
- package/esm/steps/style/css/index.css +2 -2
- package/esm/sticky/index.js +37 -57
- package/esm/style.d.ts +7 -6
- package/esm/style.js +7 -6
- package/esm/swipe-action/index.js +40 -80
- package/esm/swipe-action/item.js +9 -12
- package/esm/swipe-load/index.js +56 -75
- package/esm/switch/index.d.ts +5 -2
- package/esm/switch/index.js +38 -49
- package/esm/tab-bar/index.js +0 -1
- package/esm/tab-bar/item.js +6 -13
- package/esm/tab-bar/tab-bar.js +15 -21
- package/esm/tabs/index.js +130 -180
- package/esm/tabs/tab-cell-underline.js +25 -56
- package/esm/tabs/tab-cell.js +66 -98
- package/esm/tabs/tab-pane.js +49 -85
- package/esm/tag/index.js +2 -2
- package/esm/tag/list.js +11 -16
- package/esm/tag/tag.js +20 -22
- package/esm/textarea/index.d.ts +5 -2
- package/esm/textarea/index.js +46 -56
- package/esm/textarea/style/css/index.css +1 -1
- package/esm/toast/index.d.ts +12 -12
- package/esm/toast/index.js +26 -42
- package/esm/toast/methods.js +2 -12
- package/esm/transition/index.js +10 -12
- package/package.json +3 -4
- package/tokens/app/arcodesign/default/css-variables.less +17 -7
- package/tokens/app/arcodesign/default/index.d.ts +10 -0
- package/tokens/app/arcodesign/default/index.js +18 -10
- package/tokens/app/arcodesign/default/index.json +139 -23
- package/tokens/app/arcodesign/default/index.less +17 -7
- package/umd/_helpers/hooks.js +42 -117
- package/umd/_helpers/index.js +2 -6
- package/umd/_helpers/react-dom.js +0 -11
- package/umd/_helpers/render.js +0 -9
- package/umd/action-sheet/index.js +10 -22
- package/umd/action-sheet/methods.js +0 -1
- package/umd/action-sheet/style/css/index.css +1 -1
- package/umd/avatar/group.js +12 -20
- package/umd/avatar/index.js +51 -68
- package/umd/badge/index.js +18 -25
- package/umd/badge/style/css/index.css +3 -2
- package/umd/button/hooks.js +15 -19
- package/umd/button/index.js +46 -60
- package/umd/carousel/demo/style/css/mobile.css +12 -0
- package/umd/carousel/demo/style/mobile.less +8 -0
- package/umd/carousel/index.d.ts +1 -1
- package/umd/carousel/index.js +159 -270
- package/umd/cell/arrow.js +0 -2
- package/umd/cell/cell.js +14 -18
- package/umd/cell/group.js +9 -17
- package/umd/cell/index.js +1 -2
- package/umd/checkbox/checkbox.js +31 -45
- package/umd/checkbox/group.js +24 -34
- package/umd/checkbox/hooks/useMergeProps.js +7 -12
- package/umd/checkbox/index.d.ts +6 -1
- package/umd/checkbox/index.js +6 -6
- package/umd/checkbox/type.js +0 -2
- package/umd/circle-progress/index.js +37 -52
- package/umd/collapse/collapse.js +27 -50
- package/umd/collapse/group.js +20 -38
- package/umd/collapse/index.js +0 -3
- package/umd/collapse/utils.js +0 -5
- package/umd/context-provider/index.js +10 -23
- package/umd/count-down/hooks.js +24 -39
- package/umd/count-down/index.js +29 -31
- package/umd/count-down/singleton.js +2 -10
- package/umd/count-down/util.js +33 -47
- package/umd/date-picker/helper.js +7 -13
- package/umd/date-picker/index.d.ts +5 -2
- package/umd/date-picker/index.js +52 -105
- package/umd/dialog/index.js +28 -44
- package/umd/dialog/methods.js +9 -18
- package/umd/dialog/style/css/index.css +2 -1
- package/umd/dropdown/dropdown.js +74 -106
- package/umd/dropdown/index.js +1 -3
- package/umd/dropdown/options.js +12 -24
- package/umd/dropdown-menu/dropdown-menu.js +49 -78
- package/umd/dropdown-menu/helper.js +6 -25
- package/umd/dropdown-menu/index.js +0 -2
- package/umd/ellipsis/components/js-ellipsis.js +33 -69
- package/umd/ellipsis/components/native-ellipsis.js +9 -13
- package/umd/ellipsis/index.js +19 -24
- package/umd/ellipsis/utils/dom.js +0 -8
- package/umd/ellipsis/utils/is.js +1 -5
- package/umd/form/form-item-context.d.ts +3 -0
- package/umd/form/form-item-context.js +25 -0
- package/umd/form/form-item.d.ts +4 -0
- package/umd/form/form-item.js +322 -0
- package/umd/form/index.d.ts +16 -0
- package/umd/form/index.js +106 -0
- package/umd/form/style/css/index.css +92 -0
- package/umd/form/style/css/index.d.ts +2 -0
- package/umd/form/style/css/index.js +15 -0
- package/umd/form/style/index.d.ts +2 -0
- package/umd/form/style/index.js +15 -0
- package/umd/form/style/index.less +91 -0
- package/umd/form/type.d.ts +371 -0
- package/umd/form/type.js +44 -0
- package/umd/form/useForm.d.ts +18 -0
- package/umd/form/useForm.js +238 -0
- package/umd/form/utils.d.ts +6 -0
- package/umd/form/utils.js +50 -0
- package/umd/grid/index.js +21 -37
- package/umd/icon/IconAdd/index.js +5 -7
- package/umd/icon/IconArrowBack/index.js +5 -7
- package/umd/icon/IconArrowDown/index.js +5 -7
- package/umd/icon/IconArrowIn/index.js +5 -7
- package/umd/icon/IconArrowUp/index.js +5 -7
- package/umd/icon/IconCheck/index.js +5 -7
- package/umd/icon/IconCheckBold/index.js +5 -7
- package/umd/icon/IconCircleChecked/index.js +5 -7
- package/umd/icon/IconCircleDisabled/index.js +5 -7
- package/umd/icon/IconCircleUnchecked/index.js +5 -7
- package/umd/icon/IconClear/index.js +5 -7
- package/umd/icon/IconClose/index.js +5 -7
- package/umd/icon/IconCloseBold/index.js +5 -7
- package/umd/icon/IconDelete/index.js +5 -7
- package/umd/icon/IconEdit/index.js +5 -7
- package/umd/icon/IconErrorCircle/index.js +5 -7
- package/umd/icon/IconEyeInvisible/index.js +5 -7
- package/umd/icon/IconEyeVisible/index.js +5 -7
- package/umd/icon/IconEyelashInvisible/index.js +5 -7
- package/umd/icon/IconGift/index.js +5 -7
- package/umd/icon/IconHeart/index.js +5 -7
- package/umd/icon/IconHome/index.js +5 -7
- package/umd/icon/IconLikeCircle/index.js +5 -7
- package/umd/icon/IconMinus/index.js +5 -7
- package/umd/icon/IconMore/index.js +5 -7
- package/umd/icon/IconNotice/index.js +5 -7
- package/umd/icon/IconNoticeOff/index.js +5 -7
- package/umd/icon/IconPicture/index.js +5 -7
- package/umd/icon/IconPlay/index.js +5 -7
- package/umd/icon/IconQuestionCircle/index.js +5 -7
- package/umd/icon/IconRefresh/index.js +5 -7
- package/umd/icon/IconSad/index.js +5 -7
- package/umd/icon/IconScan/index.js +5 -7
- package/umd/icon/IconSearch/index.js +5 -7
- package/umd/icon/IconSetting/index.js +5 -7
- package/umd/icon/IconShop/index.js +5 -7
- package/umd/icon/IconShopping/index.js +5 -7
- package/umd/icon/IconSmileFill/index.js +5 -7
- package/umd/icon/IconSound/index.js +5 -7
- package/umd/icon/IconSquareChecked/index.js +5 -7
- package/umd/icon/IconSquareDisabled/index.js +5 -7
- package/umd/icon/IconSquareUnchecked/index.js +5 -7
- package/umd/icon/IconStar/index.js +5 -7
- package/umd/icon/IconStarFill/index.js +5 -7
- package/umd/icon/IconStarHalf/index.js +5 -7
- package/umd/icon/IconSubway/index.js +5 -7
- package/umd/icon/IconSuccessCircle/index.js +5 -7
- package/umd/icon/IconTriDown/index.js +5 -7
- package/umd/icon/IconTriUp/index.js +5 -7
- package/umd/icon/IconUpload/index.js +5 -7
- package/umd/icon/IconUser/index.js +5 -7
- package/umd/icon/IconUserFill/index.js +5 -7
- package/umd/icon/IconWarnCircle/index.js +5 -7
- package/umd/icon/IconWarnCircleFill/index.js +5 -7
- package/umd/icon/index.js +0 -1
- package/umd/image/index.js +53 -86
- package/umd/image-picker/add-icon.js +0 -2
- package/umd/image-picker/index.d.ts +5 -2
- package/umd/image-picker/index.js +62 -92
- package/umd/image-preview/demo/style/css/mobile.css +10 -0
- package/umd/image-preview/demo/style/mobile.less +11 -0
- package/umd/image-preview/index.d.ts +5 -0
- package/umd/image-preview/index.js +124 -224
- package/umd/image-preview/methods.js +5 -15
- package/umd/image-preview/style/css/index.css +1 -0
- package/umd/image-preview/style/index.less +1 -1
- package/umd/index.d.ts +7 -6
- package/umd/index.js +19 -18
- package/umd/input/hooks.js +42 -71
- package/umd/input/index.d.ts +5 -2
- package/umd/input/index.js +36 -42
- package/umd/input/style/css/index.css +1 -1
- package/umd/load-more/index.js +29 -51
- package/umd/loading/index.js +19 -43
- package/umd/masking/index.js +46 -71
- package/umd/masking/methods.js +4 -16
- package/umd/nav-bar/back-icon.js +1 -4
- package/umd/nav-bar/index.js +36 -54
- package/umd/notice-bar/index.js +31 -50
- package/umd/notify/index.d.ts +8 -8
- package/umd/notify/index.js +20 -40
- package/umd/notify/methods.js +2 -14
- package/umd/notify/style/css/index.css +2 -2
- package/umd/pagination/arrow.js +0 -2
- package/umd/pagination/index.js +27 -53
- package/umd/picker/index.d.ts +5 -2
- package/umd/picker/index.js +50 -78
- package/umd/picker-view/components/cascader.js +14 -27
- package/umd/picker-view/components/multi-picker.js +6 -19
- package/umd/picker-view/components/picker-cell.js +45 -93
- package/umd/picker-view/index.d.ts +5 -2
- package/umd/picker-view/index.js +39 -69
- package/umd/popover/hooks/useEvent.js +25 -44
- package/umd/popover/hooks/usePosition.js +94 -145
- package/umd/popover/index.js +1 -3
- package/umd/popover/menu.js +32 -45
- package/umd/popover/popover-inner.js +30 -42
- package/umd/popover/popover.js +69 -94
- package/umd/popup/index.js +22 -31
- package/umd/popup/methods.js +0 -1
- package/umd/popup-swiper/index.js +38 -71
- package/umd/popup-swiper/methods.js +0 -1
- package/umd/portal/index.js +3 -6
- package/umd/progress/index.js +27 -39
- package/umd/pull-refresh/android-pull-refresh.js +58 -93
- package/umd/pull-refresh/hooks.js +11 -29
- package/umd/pull-refresh/index.d.ts +9 -3
- package/umd/pull-refresh/index.js +5 -8
- package/umd/pull-refresh/ios-pull-refresh.js +53 -72
- package/umd/pull-refresh/model.js +0 -1
- package/umd/radio/group.js +20 -30
- package/umd/radio/index.d.ts +6 -1
- package/umd/radio/index.js +5 -5
- package/umd/radio/radio.js +0 -5
- package/umd/rate/index.d.ts +5 -2
- package/umd/rate/index.js +34 -51
- package/umd/search-bar/association.js +14 -29
- package/umd/search-bar/cancel-button.js +8 -14
- package/umd/search-bar/highlight.js +14 -21
- package/umd/search-bar/index.js +77 -87
- package/umd/show-monitor/index.js +34 -89
- package/umd/slider/hooks/index.js +0 -4
- package/umd/slider/hooks/useSliderEvents.js +26 -52
- package/umd/slider/hooks/useSliderIcon.js +6 -17
- package/umd/slider/hooks/useSliderInit.js +32 -50
- package/umd/slider/hooks/useSliderStyle.js +12 -22
- package/umd/slider/index.d.ts +5 -2
- package/umd/slider/index.js +56 -73
- package/umd/slider/marks.js +12 -21
- package/umd/slider/popover.js +4 -10
- package/umd/slider/thumb.js +8 -18
- package/umd/stepper/hooks/useButtonClick.js +19 -27
- package/umd/stepper/hooks/useInputEvent.js +9 -17
- package/umd/stepper/hooks/useValue.js +9 -13
- package/umd/stepper/index.d.ts +5 -2
- package/umd/stepper/index.js +92 -94
- package/umd/steps/index.js +22 -32
- package/umd/steps/step.js +10 -22
- package/umd/steps/style/css/index.css +2 -2
- package/umd/sticky/index.js +37 -60
- package/umd/style.d.ts +7 -6
- package/umd/style.js +4 -4
- package/umd/swipe-action/index.js +40 -84
- package/umd/swipe-action/item.js +9 -14
- package/umd/swipe-load/index.js +55 -77
- package/umd/switch/index.d.ts +5 -2
- package/umd/switch/index.js +37 -50
- package/umd/tab-bar/index.js +0 -2
- package/umd/tab-bar/item.js +6 -19
- package/umd/tab-bar/tab-bar.js +15 -26
- package/umd/tabs/index.js +129 -183
- package/umd/tabs/tab-cell-underline.js +25 -60
- package/umd/tabs/tab-cell.js +66 -103
- package/umd/tabs/tab-pane.js +49 -89
- package/umd/tag/index.js +1 -3
- package/umd/tag/list.js +11 -20
- package/umd/tag/tag.js +20 -26
- package/umd/textarea/index.d.ts +5 -2
- package/umd/textarea/index.js +45 -58
- package/umd/textarea/style/css/index.css +1 -1
- package/umd/toast/index.d.ts +12 -12
- package/umd/toast/index.js +26 -49
- package/umd/toast/methods.js +2 -13
- package/umd/transition/index.js +10 -12
@@ -4,43 +4,37 @@ import { cls } from '@arco-design/mobile-utils';
|
|
4
4
|
import { getStyleWithVendor, useMountedState, useRefState } from '../../_helpers';
|
5
5
|
var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
6
6
|
var prefixCls = props.prefixCls,
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
7
|
+
style = props.style,
|
8
|
+
data = props.data,
|
9
|
+
clickable = props.clickable,
|
10
|
+
itemHeight = props.itemHeight,
|
11
|
+
wrapperHeight = props.wrapperHeight,
|
12
|
+
selectedValue = props.selectedValue,
|
13
|
+
onValueChange = props.onValueChange,
|
14
|
+
disabled = props.disabled,
|
15
|
+
hideEmptyCols = props.hideEmptyCols,
|
16
|
+
_props$rows = props.rows,
|
17
|
+
rows = _props$rows === void 0 ? 5 : _props$rows,
|
18
|
+
_props$touchToStop = props.touchToStop,
|
19
|
+
touchToStop = _props$touchToStop === void 0 ? false : _props$touchToStop;
|
21
20
|
var _useMountedState = useMountedState(''),
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
transitionDuration = _useMountedState[0],
|
22
|
+
setTransitionDuration = _useMountedState[1];
|
25
23
|
var _useState = useState(''),
|
26
|
-
|
27
|
-
|
28
|
-
|
24
|
+
bezier = _useState[0],
|
25
|
+
setBezier = _useState[1];
|
29
26
|
var _useMountedState2 = useMountedState(0),
|
30
|
-
|
31
|
-
|
32
|
-
|
27
|
+
currentIndex = _useMountedState2[0],
|
28
|
+
setCurrentIndex = _useMountedState2[1];
|
33
29
|
var _useMountedState3 = useMountedState(selectedValue),
|
34
|
-
|
35
|
-
|
30
|
+
currentValue = _useMountedState3[0],
|
31
|
+
setCurrentValue = _useMountedState3[1];
|
32
|
+
// 是否开始touch
|
36
33
|
// @en whether to start touch
|
37
|
-
|
38
|
-
|
39
34
|
var _useRefState = useRefState(0),
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
35
|
+
transformY = _useRefState[0],
|
36
|
+
transformYRef = _useRefState[1],
|
37
|
+
setTransformY = _useRefState[2];
|
44
38
|
var lastTransformYRef = useRef(0);
|
45
39
|
var touchStartTimeRef = useRef(0);
|
46
40
|
var latestCallbackTimer = useRef(0);
|
@@ -65,80 +59,66 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
65
59
|
paddingTop: (rowCount - 1) / 2 * itemHeight + "px"
|
66
60
|
}));
|
67
61
|
}, [transitionDuration, transformY, bezier, itemHeight, rowCount]);
|
68
|
-
|
69
62
|
function _scrollingComplete(nowItemIndex) {
|
70
63
|
// index有改变时再抛出
|
71
64
|
// @en Throws again when index changes
|
72
65
|
if (currentIndex !== nowItemIndex) {
|
73
66
|
setCurrentIndex(nowItemIndex);
|
74
67
|
var newValue = data[nowItemIndex] && data[nowItemIndex].value;
|
75
|
-
|
76
68
|
if (newValue !== currentValue) {
|
77
69
|
// if (!('selectedValue' in props)) {
|
78
70
|
// setCurrentValue(newValue);
|
79
71
|
// }
|
80
72
|
setCurrentValue(newValue);
|
81
|
-
|
82
73
|
if (onValueChange) {
|
83
74
|
onValueChange(newValue);
|
84
75
|
}
|
85
76
|
}
|
86
77
|
}
|
87
78
|
}
|
88
|
-
|
89
79
|
function _scrollTo(transY, transDuration, callback) {
|
90
80
|
if (transDuration === void 0) {
|
91
81
|
transDuration = 0;
|
92
82
|
}
|
93
|
-
|
94
83
|
if (callback === void 0) {
|
95
84
|
callback = function callback() {};
|
96
85
|
}
|
97
|
-
|
98
86
|
setTransitionDuration(transDuration ? transDuration + "ms" : '');
|
99
|
-
setTransformY(transY);
|
87
|
+
setTransformY(transY);
|
88
|
+
// 处理连续滑动的情况:
|
100
89
|
// @en handle the case of continuous sliding:
|
101
90
|
// 如果上一次callback还未执行,先cancel掉上一次回调,只执行最近的一次回调
|
102
91
|
// @en If the last callback has not been executed, cancel the last callback first, and only execute the latest callback
|
103
|
-
|
104
92
|
if (latestCallbackTimer.current) {
|
105
93
|
clearTimeout(latestCallbackTimer.current);
|
106
94
|
}
|
107
|
-
|
108
95
|
latestCallbackTimer.current = window.setTimeout(function () {
|
109
96
|
movingStatusRef.current = 'normal';
|
110
97
|
setTransitionDuration('');
|
111
98
|
callback();
|
112
99
|
}, transDuration);
|
113
100
|
}
|
114
|
-
|
115
101
|
function _scrollToIndex(itemIndex, transDuration, callback) {
|
116
102
|
if (transDuration === void 0) {
|
117
103
|
transDuration = 0;
|
118
104
|
}
|
119
|
-
|
120
105
|
if (callback === void 0) {
|
121
106
|
callback = function callback() {};
|
122
107
|
}
|
123
|
-
|
124
108
|
_scrollTo(-1 * itemIndex * itemHeight, transDuration, callback);
|
125
109
|
}
|
126
|
-
|
127
110
|
function _scrollToIndexWithChange(itemIndex, transDuration) {
|
128
111
|
if (transDuration === void 0) {
|
129
112
|
transDuration = 0;
|
130
113
|
}
|
131
|
-
|
132
114
|
_scrollToIndex(itemIndex, transDuration, function () {
|
133
115
|
_scrollingComplete(itemIndex);
|
134
116
|
});
|
135
117
|
}
|
136
|
-
|
137
118
|
var _handleColumnTouchStart = useCallback(function (e) {
|
138
119
|
if (disabled) {
|
139
120
|
return;
|
140
121
|
}
|
141
|
-
|
142
122
|
isTouchMoveRef.current = false;
|
143
123
|
movingStatusRef.current = 'moving';
|
144
124
|
var x = e.touches[0].screenX;
|
@@ -150,44 +130,38 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
150
130
|
touchStartYRef.current = y;
|
151
131
|
lastTransformYRef.current = transformYRef.current;
|
152
132
|
}, [disabled]);
|
153
|
-
|
154
133
|
var _handleColumnTouchMove = useCallback(function (e) {
|
155
134
|
if (disabled || !touchingRef.current) {
|
156
135
|
return;
|
157
136
|
}
|
158
|
-
|
159
137
|
isTouchMoveRef.current = true;
|
160
138
|
var lastTransformY = lastTransformYRef.current;
|
161
139
|
var touchMoveX = e.touches[0].screenX;
|
162
140
|
var touchMoveY = e.touches[0].screenY;
|
163
141
|
var distanceX = touchMoveX - touchStartXRef.current;
|
164
142
|
var distance = touchMoveY - touchStartYRef.current;
|
165
|
-
|
166
143
|
if (touchingXRef.current === null) {
|
167
144
|
touchingXRef.current = Math.abs(distanceX) > Math.abs(distance);
|
168
145
|
}
|
169
|
-
|
170
146
|
if (touchingXRef.current) {
|
171
147
|
return;
|
172
148
|
}
|
173
|
-
|
174
149
|
e.cancelable && e.preventDefault();
|
175
150
|
var newPos = lastTransformY + distance;
|
176
|
-
var maxPos = -1 * (data.length - 1) * itemHeight;
|
151
|
+
var maxPos = -1 * (data.length - 1) * itemHeight;
|
152
|
+
// 当滚动到上边界或下边界时增加阻尼效果
|
177
153
|
// @en Add damping effect when scrolling to the upper or lower border
|
178
|
-
|
179
154
|
setTransformY(lastTransformY >= 0 && distance > 0 || lastTransformY <= maxPos && distance < 0 ? lastTransformY + distance / 4 : newPos);
|
180
155
|
}, [data.length, disabled, itemHeight]);
|
181
|
-
|
182
156
|
function _handleScrollEnd() {
|
183
157
|
var maxIndex = data.length - 1;
|
184
|
-
var nowIndex = Math.max(0, Math.min(maxIndex, Math.round(-1 * transformY / itemHeight)));
|
158
|
+
var nowIndex = Math.max(0, Math.min(maxIndex, Math.round(-1 * transformY / itemHeight)));
|
159
|
+
// 滚动(包括加动量的滚动)完成之后定位到最近的一个index上
|
185
160
|
// @en After scrolling (including scrolling with momentum) is completed, it is positioned on the nearest index
|
186
|
-
|
187
161
|
_scrollToIndexWithChange(nowIndex, 200);
|
188
|
-
}
|
189
|
-
|
162
|
+
}
|
190
163
|
|
164
|
+
// Reference: https://juejin.im/post/6844904185121488910
|
191
165
|
function momentum(current, start, duration, minY, maxY) {
|
192
166
|
var durationMap = {
|
193
167
|
noBounce: 2000,
|
@@ -199,24 +173,23 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
199
173
|
weekBounce: 'cubic-bezier(.25, .46, .45, .94)',
|
200
174
|
strongBounce: 'cubic-bezier(.25, .46, .45, .94)'
|
201
175
|
};
|
202
|
-
var type = 'noBounce';
|
176
|
+
var type = 'noBounce';
|
177
|
+
// 惯性滑动加速度
|
203
178
|
// @en inertial sliding acceleration
|
204
|
-
|
205
|
-
|
179
|
+
var deceleration = 0.003;
|
180
|
+
// 回弹阻力
|
206
181
|
// @en rebound resistance
|
207
|
-
|
208
|
-
|
182
|
+
var bounceRate = 5;
|
183
|
+
// 强弱回弹的分割值
|
209
184
|
// @en Split value of strong and weak rebound
|
210
|
-
|
211
|
-
|
185
|
+
var bounceThreshold = 300;
|
186
|
+
// 回弹的最大限度
|
212
187
|
// @en maximum rebound
|
213
|
-
|
214
188
|
var maxOverflowY = wrapperHeight / 6;
|
215
189
|
var overflowY;
|
216
190
|
var distance = current - start;
|
217
191
|
var speed = 2 * Math.abs(distance) / duration;
|
218
192
|
var destination = current + speed / deceleration * (distance < 0 ? -1 : 1);
|
219
|
-
|
220
193
|
if (destination < minY) {
|
221
194
|
overflowY = minY - destination;
|
222
195
|
type = overflowY > bounceThreshold ? 'strongBounce' : 'weekBounce';
|
@@ -226,37 +199,31 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
226
199
|
type = overflowY > bounceThreshold ? 'strongBounce' : 'weekBounce';
|
227
200
|
destination = Math.min(maxY + maxOverflowY, maxY + overflowY / bounceRate);
|
228
201
|
}
|
229
|
-
|
230
202
|
return {
|
231
203
|
destination: destination,
|
232
204
|
duration: durationMap[type],
|
233
205
|
bezier: bezierMap[type]
|
234
206
|
};
|
235
207
|
}
|
236
|
-
|
237
208
|
function _handleColumnTouchEnd() {
|
238
209
|
_clearTimer();
|
239
|
-
|
240
210
|
movingStatusRef.current = 'normal';
|
241
211
|
var lastTransformY = lastTransformYRef.current;
|
242
|
-
|
243
212
|
if (!isTouchMoveRef.current || transformY === lastTransformY) {
|
244
213
|
return;
|
245
214
|
}
|
246
|
-
|
247
215
|
touchingRef.current = false;
|
248
216
|
var endTime = Date.now();
|
249
217
|
var scrollerHeight = (data.length + rowCount - 1) * itemHeight;
|
250
218
|
var duration = endTime - touchStartTimeRef.current;
|
251
|
-
var absDistY = Math.abs(transformY - lastTransformY);
|
219
|
+
var absDistY = Math.abs(transformY - lastTransformY);
|
220
|
+
// 计算动量,保证滚动顺畅,条件:手势时间小于300ms && 移动距离绝对值大于30时
|
252
221
|
// @en Calculate the momentum to ensure smooth scrolling, condition: the gesture time is less than 300ms && the absolute value of the moving distance is greater than 30
|
253
|
-
|
254
222
|
if (duration < 300 && absDistY > 30) {
|
255
223
|
var momentumY = momentum(transformY, lastTransformY, duration, wrapperHeight - scrollerHeight, 0);
|
256
224
|
var newItemIndex = Math.max(0, Math.min(data.length - 1, Math.round(-1 * momentumY.destination / itemHeight)));
|
257
225
|
setBezier(momentumY.bezier);
|
258
226
|
movingStatusRef.current = 'scrolling';
|
259
|
-
|
260
227
|
_scrollToIndex(newItemIndex, momentumY.duration, function () {
|
261
228
|
_scrollingComplete(newItemIndex);
|
262
229
|
});
|
@@ -264,32 +231,27 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
264
231
|
_handleScrollEnd();
|
265
232
|
}
|
266
233
|
}
|
267
|
-
|
268
234
|
function scrollToCurrentIndex() {
|
269
235
|
if (!wrapRef.current) {
|
270
236
|
return;
|
271
237
|
}
|
272
|
-
|
273
238
|
var curStyle = window.getComputedStyle(wrapRef.current);
|
274
239
|
var transformMatrix = curStyle.transform || curStyle.webkitTransform || '';
|
275
240
|
var transY = Number(transformMatrix.replace(/matrix\((.*?)\)/, '$1').split(/,\s*/).slice(-1)[0]) || 0;
|
276
241
|
var maxIndex = data.length - 1;
|
277
|
-
var nowIndex = Math.max(0, Math.min(maxIndex, Math.round(-1 * transY / itemHeight)));
|
242
|
+
var nowIndex = Math.max(0, Math.min(maxIndex, Math.round(-1 * transY / itemHeight)));
|
243
|
+
// 滚动(包括加动量的滚动)完成之后定位到最近的一个index上
|
278
244
|
// @en After scrolling (including scrolling with momentum) is completed, it is positioned on the nearest index
|
279
|
-
|
280
245
|
_scrollToIndexWithChange(nowIndex, 0);
|
281
246
|
}
|
282
|
-
|
283
247
|
function _clearTimer() {
|
284
248
|
timeRef.current && clearTimeout(timeRef.current);
|
285
249
|
timeRef.current = null;
|
286
250
|
}
|
287
|
-
|
288
251
|
function _handleItemTouchStart() {
|
289
252
|
if (touchToStop === false) {
|
290
253
|
return;
|
291
254
|
}
|
292
|
-
|
293
255
|
isTouchStopped.current = false;
|
294
256
|
timeRef.current = window.setTimeout(function () {
|
295
257
|
if (!isTouchMoveRef.current) {
|
@@ -298,21 +260,17 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
298
260
|
}
|
299
261
|
}, touchToStop === true ? 100 : touchToStop);
|
300
262
|
}
|
301
|
-
|
302
263
|
function _handleItemClick(itemIndex) {
|
303
264
|
if (!clickable || disabled || touchToStop !== false && isTouchStopped.current) {
|
304
265
|
return;
|
305
266
|
}
|
306
|
-
|
307
267
|
_scrollToIndexWithChange(itemIndex, 200);
|
308
268
|
}
|
309
|
-
|
310
269
|
useEffect(function () {
|
311
270
|
if (wrapRef.current) {
|
312
271
|
wrapRef.current.addEventListener('touchstart', _handleColumnTouchStart);
|
313
272
|
wrapRef.current.addEventListener('touchmove', _handleColumnTouchMove);
|
314
273
|
}
|
315
|
-
|
316
274
|
return function () {
|
317
275
|
if (wrapRef.current) {
|
318
276
|
wrapRef.current.removeEventListener('touchstart', _handleColumnTouchStart);
|
@@ -326,7 +284,6 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
326
284
|
return item.value === selectedValue;
|
327
285
|
});
|
328
286
|
setCurrentIndex(curIndex);
|
329
|
-
|
330
287
|
if (curIndex >= 0) {
|
331
288
|
_scrollToIndexWithChange(curIndex);
|
332
289
|
}
|
@@ -350,7 +307,6 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
350
307
|
"aria-disabled": disabled
|
351
308
|
}, data.map(function (item, index) {
|
352
309
|
var _cls;
|
353
|
-
|
354
310
|
var dis = Math.abs(index - currentIndex);
|
355
311
|
return /*#__PURE__*/React.createElement("div", {
|
356
312
|
"aria-label": index === currentIndex ? "" + item.value : '',
|
@@ -42,6 +42,9 @@ export interface PickerViewRef {
|
|
42
42
|
*/
|
43
43
|
scrollToCurrentIndex: () => void;
|
44
44
|
}
|
45
|
+
declare const _default: React.ForwardRefExoticComponent<PickerViewProps & React.RefAttributes<PickerViewRef>> & {
|
46
|
+
displayName?: string | undefined;
|
47
|
+
};
|
45
48
|
/**
|
46
49
|
* 选择器视图组件,不含弹窗,方便使用方灵活定制选择器。
|
47
50
|
* @en The picker view component, not has contain popup, which is convenient for the user to flexibly customize the picker.
|
@@ -49,6 +52,6 @@ export interface PickerViewRef {
|
|
49
52
|
* @type_en Data Entry
|
50
53
|
* @name 选择器视图
|
51
54
|
* @name_en PickerView
|
55
|
+
* @displayName PickerView
|
52
56
|
*/
|
53
|
-
|
54
|
-
export default PickerView;
|
57
|
+
export default _default;
|
package/esm/picker-view/index.js
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
2
2
|
import React, { useRef, forwardRef, useImperativeHandle, useState, useMemo, useCallback, useEffect } from 'react';
|
3
|
+
import { componentWrapper } from '@arco-design/mobile-utils';
|
3
4
|
import { ContextLayout } from '../context-provider';
|
4
5
|
import MultiPicker from '../picker-view/components/multi-picker';
|
5
6
|
import PickerCell from '../picker-view/components/picker-cell';
|
@@ -7,49 +8,36 @@ import Cascader from '../picker-view/components/cascader';
|
|
7
8
|
import { useMountedState } from '../_helpers';
|
8
9
|
export * from './type';
|
9
10
|
export { MultiPicker, PickerCell, Cascader };
|
10
|
-
|
11
|
-
/**
|
12
|
-
* 选择器视图组件,不含弹窗,方便使用方灵活定制选择器。
|
13
|
-
* @en The picker view component, not has contain popup, which is convenient for the user to flexibly customize the picker.
|
14
|
-
* @type 数据录入
|
15
|
-
* @type_en Data Entry
|
16
|
-
* @name 选择器视图
|
17
|
-
* @name_en PickerView
|
18
|
-
*/
|
19
11
|
var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
20
12
|
var _props$className = props.className,
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
13
|
+
className = _props$className === void 0 ? '' : _props$className,
|
14
|
+
itemStyle = props.itemStyle,
|
15
|
+
_props$cascade = props.cascade,
|
16
|
+
cascade = _props$cascade === void 0 ? true : _props$cascade,
|
17
|
+
_props$cols = props.cols,
|
18
|
+
cols = _props$cols === void 0 ? 3 : _props$cols,
|
19
|
+
_props$rows = props.rows,
|
20
|
+
rows = _props$rows === void 0 ? 5 : _props$rows,
|
21
|
+
data = props.data,
|
22
|
+
_props$disabled = props.disabled,
|
23
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
24
|
+
_props$clickable = props.clickable,
|
25
|
+
clickable = _props$clickable === void 0 ? true : _props$clickable,
|
26
|
+
value = props.value,
|
27
|
+
_props$hideEmptyCols = props.hideEmptyCols,
|
28
|
+
hideEmptyCols = _props$hideEmptyCols === void 0 ? false : _props$hideEmptyCols,
|
29
|
+
onPickerChange = props.onPickerChange,
|
30
|
+
_props$touchToStop = props.touchToStop,
|
31
|
+
touchToStop = _props$touchToStop === void 0 ? false : _props$touchToStop;
|
41
32
|
var _useState = useState(0),
|
42
|
-
|
43
|
-
|
44
|
-
|
33
|
+
itemHeight = _useState[0],
|
34
|
+
setItemHeight = _useState[1];
|
45
35
|
var _useState2 = useState(0),
|
46
|
-
|
47
|
-
|
48
|
-
|
36
|
+
wrapperHeight = _useState2[0],
|
37
|
+
setWrapperHeight = _useState2[1];
|
49
38
|
var _useMountedState = useMountedState(value),
|
50
|
-
|
51
|
-
|
52
|
-
|
39
|
+
scrollValue = _useMountedState[0],
|
40
|
+
setScrollValue = _useMountedState[1];
|
53
41
|
var wrapperRef = useRef(null);
|
54
42
|
var domRef = useRef(null);
|
55
43
|
var barRef = useRef(null);
|
@@ -58,15 +46,12 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
58
46
|
var cascaderRef = useRef(null);
|
59
47
|
var innerData = useMemo(function () {
|
60
48
|
var newData;
|
61
|
-
|
62
49
|
var isArray = function isArray(dt) {
|
63
50
|
return dt ? Array.isArray(dt[0]) : false;
|
64
51
|
};
|
65
|
-
|
66
52
|
var isStrOrNum = function isStrOrNum(dt) {
|
67
53
|
return typeof dt[0][0] === 'string' || typeof dt[0][0] === 'number';
|
68
54
|
};
|
69
|
-
|
70
55
|
if (isArray(data)) {
|
71
56
|
if (isStrOrNum(data)) {
|
72
57
|
newData = data.map(function (item) {
|
@@ -83,46 +68,36 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
83
68
|
} else {
|
84
69
|
newData = [data];
|
85
70
|
}
|
86
|
-
|
87
71
|
return newData;
|
88
72
|
}, [data]);
|
89
73
|
useEffect(function () {
|
90
74
|
scrollValueRef.current = scrollValue;
|
91
75
|
}, [scrollValue]);
|
92
|
-
|
93
76
|
var getAllColumnValues = function getAllColumnValues() {
|
94
77
|
return scrollValueRef.current;
|
95
78
|
};
|
96
|
-
|
97
79
|
function getColumnValue(index) {
|
98
80
|
if (index === void 0) {
|
99
81
|
index = 0;
|
100
82
|
}
|
101
|
-
|
102
83
|
return scrollValueRef.current[index];
|
103
84
|
}
|
104
|
-
|
105
85
|
function getCellMovingStatus() {
|
106
86
|
var _cascaderRef$current;
|
107
|
-
|
108
87
|
return cascade ? ((_cascaderRef$current = cascaderRef.current) == null ? void 0 : _cascaderRef$current.getCellMovingStatus()) || [] : pickerCellsRef.current.map(function (cell) {
|
109
88
|
return cell.movingStatus;
|
110
89
|
});
|
111
90
|
}
|
112
|
-
|
113
91
|
function scrollToCurrentIndex() {
|
114
92
|
if (cascade) {
|
115
93
|
var _cascaderRef$current2;
|
116
|
-
|
117
94
|
(_cascaderRef$current2 = cascaderRef.current) == null ? void 0 : _cascaderRef$current2.scrollToCurrentIndex();
|
118
95
|
return;
|
119
96
|
}
|
120
|
-
|
121
97
|
pickerCellsRef.current.forEach(function (cell) {
|
122
98
|
return cell.scrollToCurrentIndex();
|
123
99
|
});
|
124
100
|
}
|
125
|
-
|
126
101
|
useImperativeHandle(ref, function () {
|
127
102
|
return {
|
128
103
|
dom: domRef.current,
|
@@ -134,23 +109,18 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
134
109
|
scrollToCurrentIndex: scrollToCurrentIndex
|
135
110
|
};
|
136
111
|
});
|
137
|
-
|
138
112
|
function _onPickerChange(val, index) {
|
139
113
|
setScrollValue(val);
|
140
|
-
|
141
114
|
if (onPickerChange) {
|
142
115
|
onPickerChange(val, index);
|
143
116
|
}
|
144
117
|
}
|
145
|
-
|
146
118
|
function _onValueChange(val, index) {
|
147
119
|
setScrollValue(val);
|
148
|
-
|
149
120
|
if (onPickerChange) {
|
150
121
|
onPickerChange(val, index);
|
151
122
|
}
|
152
123
|
}
|
153
|
-
|
154
124
|
useEffect(function () {
|
155
125
|
setScrollValue(value);
|
156
126
|
}, [value, setScrollValue]);
|
@@ -159,30 +129,24 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
159
129
|
setWrapperHeight(wrapperRef.current.offsetHeight);
|
160
130
|
}
|
161
131
|
}, [wrapperRef, setWrapperHeight]);
|
162
|
-
|
163
132
|
var updateItemHeight = function updateItemHeight() {
|
164
133
|
if (barRef.current) {
|
165
134
|
setItemHeight(barRef.current.getBoundingClientRect().height);
|
166
135
|
}
|
167
136
|
};
|
168
|
-
|
169
137
|
useEffect(function () {
|
170
138
|
updateLayout();
|
171
139
|
}, []);
|
172
|
-
|
173
140
|
function updateLayout() {
|
174
141
|
updateWrapperHeight();
|
175
142
|
updateItemHeight();
|
176
143
|
}
|
177
|
-
|
178
144
|
function resetValue() {
|
179
145
|
setScrollValue(value);
|
180
146
|
}
|
181
|
-
|
182
147
|
var newItemStyle = _extends({
|
183
148
|
height: itemHeight + "px"
|
184
149
|
}, itemStyle);
|
185
|
-
|
186
150
|
return /*#__PURE__*/React.createElement(ContextLayout, null, function (_ref) {
|
187
151
|
var prefixCls = _ref.prefixCls;
|
188
152
|
return /*#__PURE__*/React.createElement("div", {
|
@@ -243,4 +207,13 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
243
207
|
})));
|
244
208
|
});
|
245
209
|
});
|
246
|
-
|
210
|
+
/**
|
211
|
+
* 选择器视图组件,不含弹窗,方便使用方灵活定制选择器。
|
212
|
+
* @en The picker view component, not has contain popup, which is convenient for the user to flexibly customize the picker.
|
213
|
+
* @type 数据录入
|
214
|
+
* @type_en Data Entry
|
215
|
+
* @name 选择器视图
|
216
|
+
* @name_en PickerView
|
217
|
+
* @displayName PickerView
|
218
|
+
*/
|
219
|
+
export default componentWrapper(PickerView, 'PickerView');
|