@arco-design/mobile-react 2.38.4 → 2.39.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 +24 -0
- package/README.en-US.md +2 -2
- package/README.md +2 -2
- package/cjs/_helpers/hooks.js +59 -141
- package/cjs/_helpers/index.js +2 -18
- package/cjs/_helpers/react-dom.js +0 -14
- package/cjs/_helpers/render.js +5 -21
- package/cjs/action-sheet/index.js +10 -30
- package/cjs/action-sheet/methods.js +0 -2
- 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 +53 -79
- 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.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/index.js +153 -288
- 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 +18 -34
- 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.js +1 -8
- 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 +30 -61
- 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 +18 -43
- 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.js +66 -167
- package/cjs/date-picker/style/css/index.js +0 -2
- package/cjs/date-picker/style/index.js +0 -2
- package/cjs/dialog/index.js +31 -57
- package/cjs/dialog/methods.js +9 -22
- package/cjs/dialog/style/css/index.js +0 -2
- package/cjs/dialog/style/index.js +0 -2
- package/cjs/divider/index.js +8 -20
- package/cjs/divider/style/css/index.js +0 -1
- package/cjs/divider/style/index.js +0 -1
- 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 +4 -24
- 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 +32 -70
- package/cjs/ellipsis/components/native-ellipsis.js +9 -14
- 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.js +0 -5
- package/cjs/form/form-item.js +74 -163
- package/cjs/form/index.js +18 -38
- package/cjs/form/linked-container.js +5 -24
- package/cjs/form/style/css/index.js +0 -1
- package/cjs/form/style/index.js +0 -1
- package/cjs/form/type.d.ts +11 -1
- package/cjs/form/type.js +0 -5
- package/cjs/form/useForm.js +10 -79
- package/cjs/form/utils.js +4 -22
- package/cjs/grid/index.js +22 -45
- 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/IconDownload/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/IconFile/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/IconKeyboard/index.js +5 -12
- package/cjs/icon/IconKeyboardDelete/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 -119
- package/cjs/image/index.js +53 -94
- 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.js +32 -59
- package/cjs/image-picker/style/css/index.js +0 -3
- package/cjs/image-picker/style/index.js +0 -3
- package/cjs/image-preview/index.js +129 -254
- package/cjs/image-preview/methods.js +5 -18
- package/cjs/image-preview/style/css/index.js +0 -4
- package/cjs/image-preview/style/index.js +0 -4
- package/cjs/index-bar/context.js +0 -2
- package/cjs/index-bar/group.js +16 -35
- package/cjs/index-bar/index.js +55 -87
- package/cjs/index-bar/side-bar.js +15 -34
- package/cjs/index-bar/style/css/index.js +0 -2
- package/cjs/index-bar/style/index.js +0 -2
- package/cjs/index-bar/utils.js +3 -17
- package/cjs/index.js +0 -119
- package/cjs/input/hooks.js +45 -84
- package/cjs/input/index.js +26 -40
- package/cjs/input/style/css/index.js +0 -1
- package/cjs/input/style/index.js +0 -1
- package/cjs/keyboard/index.js +37 -73
- package/cjs/keyboard/style/css/index.js +0 -2
- package/cjs/keyboard/style/index.js +0 -2
- package/cjs/load-more/index.js +33 -65
- 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 +47 -80
- package/cjs/masking/methods.js +5 -21
- package/cjs/masking/style/css/index.js +0 -2
- package/cjs/masking/style/index.js +0 -2
- package/cjs/nav-bar/back-icon.js +2 -8
- package/cjs/nav-bar/index.js +37 -61
- 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 +34 -60
- package/cjs/notice-bar/style/css/index.js +0 -1
- package/cjs/notice-bar/style/index.js +0 -1
- package/cjs/notify/index.js +20 -49
- package/cjs/notify/methods.js +2 -17
- 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.js +48 -84
- package/cjs/picker/style/css/index.js +0 -3
- package/cjs/picker/style/index.js +0 -3
- package/cjs/picker-view/components/cascader.js +13 -32
- package/cjs/picker-view/components/multi-picker.js +8 -17
- package/cjs/picker-view/components/picker-cell.js +45 -101
- package/cjs/picker-view/index.js +30 -76
- 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 +100 -159
- package/cjs/popover/index.js +1 -8
- package/cjs/popover/menu.js +32 -52
- package/cjs/popover/popover-inner.js +30 -48
- 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 +50 -92
- 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 +56 -95
- package/cjs/pull-refresh/hooks.js +11 -32
- package/cjs/pull-refresh/index.js +3 -14
- package/cjs/pull-refresh/ios-pull-refresh.js +53 -81
- 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.js +1 -8
- 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.js +28 -54
- 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 +40 -108
- package/cjs/show-monitor/style/css/index.js +0 -1
- package/cjs/show-monitor/style/index.js +0 -1
- package/cjs/skeleton/elements.js +47 -84
- package/cjs/skeleton/index.js +18 -36
- package/cjs/skeleton/skeleton-context.js +0 -4
- package/cjs/skeleton/style/css/index.js +0 -2
- package/cjs/skeleton/style/index.js +0 -2
- package/cjs/slider/hooks/index.js +0 -13
- package/cjs/slider/hooks/useSliderEvents.js +27 -59
- package/cjs/slider/hooks/useSliderIcon.js +6 -20
- package/cjs/slider/hooks/useSliderInit.js +32 -52
- package/cjs/slider/hooks/useSliderStyle.js +13 -27
- package/cjs/slider/index.js +47 -73
- package/cjs/slider/marks.js +13 -27
- 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 +11 -22
- package/cjs/stepper/hooks/useButtonClick.js +15 -25
- package/cjs/stepper/hooks/useInputEvent.js +10 -19
- package/cjs/stepper/hooks/useValue.js +9 -15
- package/cjs/stepper/index.js +84 -98
- package/cjs/stepper/style/css/index.js +0 -1
- package/cjs/stepper/style/index.js +0 -1
- package/cjs/steps/index.js +25 -43
- package/cjs/steps/step.js +10 -27
- package/cjs/steps/style/css/index.js +0 -1
- package/cjs/steps/style/index.js +0 -1
- package/cjs/sticky/index.js +40 -74
- package/cjs/sticky/style/css/index.js +0 -1
- package/cjs/sticky/style/index.js +0 -1
- package/cjs/style.js +0 -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 +78 -113
- package/cjs/swipe-load/style/css/index.js +0 -1
- package/cjs/swipe-load/style/index.js +0 -1
- package/cjs/switch/index.js +28 -49
- 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 +16 -32
- package/cjs/tabs/index.js +136 -206
- package/cjs/tabs/style/css/index.js +0 -1
- package/cjs/tabs/style/index.js +0 -1
- package/cjs/tabs/tab-cell-underline.js +28 -76
- package/cjs/tabs/tab-cell.js +73 -128
- package/cjs/tabs/tab-pane.js +53 -103
- 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.js +35 -56
- package/cjs/textarea/style/css/index.js +0 -2
- package/cjs/textarea/style/index.js +0 -2
- 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 +17 -29
- package/cjs/transition/style/css/index.js +0 -1
- package/cjs/transition/style/index.js +0 -1
- package/cjs/uploader/index.d.ts +1 -1
- package/cjs/uploader/index.js +28 -49
- package/cjs/uploader/style/css/index.js +0 -3
- package/cjs/uploader/style/index.js +0 -3
- package/cjs/uploader/upload/index.js +0 -4
- package/cjs/uploader/upload/upload.js +9 -45
- package/dist/index.js +3838 -6455
- package/dist/index.min.js +2 -2
- package/esm/_helpers/hooks.js +59 -123
- package/esm/_helpers/index.js +4 -6
- package/esm/_helpers/react-dom.js +0 -11
- package/esm/_helpers/render.js +5 -15
- package/esm/action-sheet/index.js +10 -16
- package/esm/avatar/group.js +12 -16
- package/esm/avatar/index.js +53 -64
- package/esm/badge/index.js +18 -22
- package/esm/button/hooks.js +15 -18
- package/esm/button/index.js +46 -57
- package/esm/carousel/index.js +153 -280
- package/esm/cell/cell.js +18 -25
- 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.js +2 -2
- package/esm/checkbox/type.js +0 -1
- package/esm/circle-progress/index.js +37 -49
- package/esm/collapse/collapse.js +30 -51
- 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 +18 -33
- 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.js +66 -155
- package/esm/dialog/index.js +31 -42
- package/esm/dialog/methods.js +9 -11
- package/esm/divider/index.js +8 -12
- 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 +4 -14
- package/esm/dropdown-menu/index.js +1 -1
- package/esm/ellipsis/components/js-ellipsis.js +32 -60
- 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.js +74 -147
- package/esm/form/index.js +18 -23
- package/esm/form/linked-container.js +5 -14
- package/esm/form/type.d.ts +11 -1
- package/esm/form/type.js +0 -5
- package/esm/form/useForm.js +10 -74
- package/esm/form/utils.js +4 -11
- package/esm/grid/index.js +22 -38
- 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/IconDownload/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/IconFile/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/IconKeyboard/index.js +5 -6
- package/esm/icon/IconKeyboardDelete/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 -85
- package/esm/image-picker/index.js +32 -42
- package/esm/image-preview/index.js +129 -232
- package/esm/image-preview/methods.js +5 -14
- package/esm/index-bar/group.js +16 -25
- package/esm/index-bar/index.js +55 -74
- package/esm/index-bar/side-bar.js +15 -28
- package/esm/index-bar/utils.js +3 -10
- package/esm/input/hooks.js +45 -75
- package/esm/input/index.js +26 -30
- package/esm/keyboard/index.js +40 -63
- package/esm/load-more/index.js +33 -57
- package/esm/loading/index.js +19 -40
- package/esm/masking/index.js +47 -65
- package/esm/masking/methods.js +5 -16
- package/esm/nav-bar/back-icon.js +2 -4
- package/esm/nav-bar/index.js +37 -52
- package/esm/notice-bar/index.js +34 -53
- package/esm/notify/index.js +20 -33
- package/esm/notify/methods.js +2 -13
- package/esm/pagination/index.js +27 -50
- package/esm/picker/index.js +48 -69
- package/esm/picker-view/components/cascader.js +13 -24
- package/esm/picker-view/components/multi-picker.js +8 -14
- package/esm/picker-view/components/picker-cell.js +45 -93
- package/esm/picker-view/index.js +30 -60
- package/esm/popover/hooks/useEvent.js +26 -41
- package/esm/popover/hooks/usePosition.js +100 -152
- package/esm/popover/index.js +2 -2
- package/esm/popover/menu.js +32 -41
- package/esm/popover/popover-inner.js +30 -39
- package/esm/popover/popover.js +69 -90
- package/esm/popup/index.js +22 -25
- package/esm/popup-swiper/index.js +50 -76
- package/esm/portal/index.js +3 -5
- package/esm/progress/index.js +27 -36
- package/esm/pull-refresh/android-pull-refresh.js +56 -83
- package/esm/pull-refresh/hooks.js +11 -23
- package/esm/pull-refresh/index.js +3 -5
- 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.js +2 -2
- package/esm/rate/index.js +28 -43
- 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 +40 -100
- package/esm/skeleton/elements.js +47 -75
- package/esm/skeleton/index.js +18 -24
- package/esm/slider/hooks/useSliderEvents.js +27 -54
- package/esm/slider/hooks/useSliderIcon.js +6 -13
- package/esm/slider/hooks/useSliderInit.js +32 -46
- package/esm/slider/hooks/useSliderStyle.js +13 -22
- package/esm/slider/index.js +47 -63
- package/esm/slider/marks.js +13 -19
- package/esm/slider/popover.js +4 -6
- package/esm/slider/thumb.js +11 -16
- package/esm/stepper/hooks/useButtonClick.js +15 -24
- package/esm/stepper/hooks/useInputEvent.js +10 -17
- package/esm/stepper/hooks/useValue.js +9 -12
- package/esm/stepper/index.js +84 -84
- package/esm/steps/index.js +25 -30
- package/esm/steps/step.js +10 -19
- package/esm/sticky/index.js +40 -65
- package/esm/swipe-action/index.js +40 -80
- package/esm/swipe-action/item.js +9 -12
- package/esm/swipe-load/index.js +79 -104
- package/esm/switch/index.js +28 -41
- package/esm/tab-bar/index.js +0 -1
- package/esm/tab-bar/item.js +6 -13
- package/esm/tab-bar/tab-bar.js +16 -22
- package/esm/tabs/index.js +137 -194
- package/esm/tabs/tab-cell-underline.js +28 -67
- package/esm/tabs/tab-cell.js +73 -118
- package/esm/tabs/tab-pane.js +53 -95
- 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.js +35 -46
- package/esm/toast/index.js +26 -42
- package/esm/toast/methods.js +2 -12
- package/esm/transition/index.js +17 -20
- package/esm/uploader/index.d.ts +1 -1
- package/esm/uploader/index.js +28 -34
- package/esm/uploader/upload/upload.js +9 -38
- package/esnext/form/form-item.js +12 -7
- package/esnext/form/type.d.ts +11 -1
- package/esnext/uploader/index.d.ts +1 -1
- package/esnext/uploader/index.js +1 -1
- package/esnext/uploader/upload/upload.js +1 -1
- package/package.json +5 -3
- package/tokens/app/arcodesign/default/index.js +0 -2
- package/umd/_helpers/hooks.js +59 -138
- package/umd/_helpers/index.js +2 -9
- package/umd/_helpers/react-dom.js +0 -13
- package/umd/_helpers/render.js +5 -17
- package/umd/action-sheet/index.js +10 -22
- package/umd/action-sheet/methods.js +0 -1
- package/umd/avatar/group.js +12 -20
- package/umd/avatar/index.js +53 -70
- package/umd/badge/index.js +18 -25
- package/umd/button/hooks.js +15 -19
- package/umd/button/index.js +46 -60
- package/umd/carousel/index.js +153 -283
- package/umd/cell/arrow.js +0 -2
- package/umd/cell/cell.js +18 -29
- 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.js +1 -3
- package/umd/checkbox/type.js +0 -2
- package/umd/circle-progress/index.js +37 -52
- package/umd/collapse/collapse.js +30 -55
- 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 +18 -38
- 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.js +66 -158
- package/umd/dialog/index.js +31 -47
- package/umd/dialog/methods.js +9 -18
- package/umd/divider/index.js +8 -15
- 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 +4 -22
- package/umd/dropdown-menu/index.js +0 -2
- package/umd/ellipsis/components/js-ellipsis.js +32 -66
- package/umd/ellipsis/components/native-ellipsis.js +9 -12
- 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.js +0 -3
- package/umd/form/form-item.js +74 -151
- package/umd/form/index.js +18 -28
- package/umd/form/linked-container.js +5 -19
- package/umd/form/type.d.ts +11 -1
- package/umd/form/type.js +0 -5
- package/umd/form/useForm.js +10 -74
- package/umd/form/utils.js +4 -19
- package/umd/grid/index.js +22 -41
- 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/IconDownload/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/IconFile/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/IconKeyboard/index.js +5 -7
- package/umd/icon/IconKeyboardDelete/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 -88
- package/umd/image-picker/add-icon.js +0 -2
- package/umd/image-picker/index.js +32 -47
- package/umd/image-preview/index.js +129 -239
- package/umd/image-preview/methods.js +5 -15
- package/umd/index-bar/group.js +16 -30
- package/umd/index-bar/index.js +55 -79
- package/umd/index-bar/side-bar.js +15 -32
- package/umd/index-bar/utils.js +3 -16
- package/umd/index.js +0 -1
- package/umd/input/hooks.js +45 -79
- package/umd/input/index.js +26 -35
- package/umd/keyboard/index.js +37 -64
- package/umd/load-more/index.js +33 -60
- package/umd/loading/index.js +19 -43
- package/umd/masking/index.js +47 -72
- package/umd/masking/methods.js +5 -18
- package/umd/nav-bar/back-icon.js +2 -5
- package/umd/nav-bar/index.js +37 -55
- package/umd/notice-bar/index.js +34 -56
- package/umd/notify/index.js +20 -40
- package/umd/notify/methods.js +2 -14
- package/umd/pagination/arrow.js +0 -2
- package/umd/pagination/index.js +27 -53
- package/umd/picker/index.js +48 -73
- package/umd/picker-view/components/cascader.js +13 -28
- package/umd/picker-view/components/multi-picker.js +8 -16
- package/umd/picker-view/components/picker-cell.js +45 -97
- package/umd/picker-view/index.js +30 -63
- package/umd/popover/hooks/useEvent.js +25 -44
- package/umd/popover/hooks/usePosition.js +100 -153
- package/umd/popover/index.js +1 -3
- package/umd/popover/menu.js +32 -45
- package/umd/popover/popover-inner.js +30 -43
- 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 +50 -83
- 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 +56 -86
- package/umd/pull-refresh/hooks.js +11 -29
- package/umd/pull-refresh/index.js +3 -7
- 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.js +1 -3
- package/umd/radio/radio.js +0 -5
- package/umd/rate/index.js +28 -48
- 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 +40 -104
- package/umd/skeleton/elements.js +47 -78
- package/umd/skeleton/index.js +18 -28
- package/umd/skeleton/skeleton-context.js +0 -3
- package/umd/slider/hooks/index.js +0 -4
- package/umd/slider/hooks/useSliderEvents.js +27 -55
- package/umd/slider/hooks/useSliderIcon.js +6 -17
- package/umd/slider/hooks/useSliderInit.js +32 -50
- package/umd/slider/hooks/useSliderStyle.js +13 -24
- package/umd/slider/index.js +47 -66
- package/umd/slider/marks.js +13 -22
- package/umd/slider/popover.js +4 -10
- package/umd/slider/thumb.js +11 -18
- package/umd/stepper/hooks/useButtonClick.js +15 -24
- package/umd/stepper/hooks/useInputEvent.js +10 -18
- package/umd/stepper/hooks/useValue.js +9 -13
- package/umd/stepper/index.js +84 -89
- package/umd/steps/index.js +25 -35
- package/umd/steps/step.js +10 -22
- package/umd/sticky/index.js +40 -68
- package/umd/style.js +1 -1
- package/umd/swipe-action/index.js +40 -84
- package/umd/swipe-action/item.js +9 -14
- package/umd/swipe-load/index.js +78 -106
- package/umd/switch/index.js +28 -45
- package/umd/tab-bar/index.js +0 -2
- package/umd/tab-bar/item.js +6 -19
- package/umd/tab-bar/tab-bar.js +16 -27
- package/umd/tabs/index.js +136 -197
- package/umd/tabs/tab-cell-underline.js +28 -71
- package/umd/tabs/tab-cell.js +73 -122
- package/umd/tabs/tab-pane.js +53 -98
- 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.js +35 -51
- package/umd/toast/index.js +26 -49
- package/umd/toast/methods.js +2 -13
- package/umd/transition/index.js +16 -22
- package/umd/uploader/index.d.ts +1 -1
- package/umd/uploader/index.js +28 -39
- package/umd/uploader/upload/upload.js +9 -43
|
@@ -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);
|
|
@@ -66,7 +60,6 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
66
60
|
paddingTop: (rowCount - 1) / 2 * itemHeight + "px"
|
|
67
61
|
}));
|
|
68
62
|
}, [transitionDuration, transformY, bezier, itemHeight, rowCount]);
|
|
69
|
-
|
|
70
63
|
function _scrollingComplete(nowItemIndex) {
|
|
71
64
|
// index有改变时再抛出
|
|
72
65
|
// @en Throws again when index changes
|
|
@@ -74,34 +67,28 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
74
67
|
setCurrentIndex(Math.max(nowItemIndex, 0));
|
|
75
68
|
var newData = data[nowItemIndex];
|
|
76
69
|
var newValue = newData == null ? void 0 : newData.value;
|
|
77
|
-
|
|
78
70
|
if (newValue !== currentValue) {
|
|
79
71
|
setCurrentValue(newValue);
|
|
80
|
-
|
|
81
72
|
if (onValueChange) {
|
|
82
73
|
onValueChange(newValue, newData);
|
|
83
74
|
}
|
|
84
75
|
}
|
|
85
76
|
}
|
|
86
77
|
}
|
|
87
|
-
|
|
88
78
|
function _scrollTo(transY, transDuration, callback) {
|
|
89
79
|
if (transDuration === void 0) {
|
|
90
80
|
transDuration = 0;
|
|
91
81
|
}
|
|
92
|
-
|
|
93
82
|
if (callback === void 0) {
|
|
94
83
|
callback = function callback() {};
|
|
95
84
|
}
|
|
96
|
-
|
|
97
85
|
setTransitionDuration(transDuration ? transDuration + "ms" : '');
|
|
98
|
-
setTransformY(transY);
|
|
86
|
+
setTransformY(transY);
|
|
87
|
+
// 处理连续滑动的情况:如果上一次callback还未执行,先cancel掉上一次回调
|
|
99
88
|
// @en handle the case of continuous sliding: If the last callback has not been executed, cancel the last callback first
|
|
100
|
-
|
|
101
89
|
if (latestCallbackTimer.current) {
|
|
102
90
|
clearTimeout(latestCallbackTimer.current);
|
|
103
91
|
}
|
|
104
|
-
|
|
105
92
|
var setNormalStatus = function setNormalStatus() {
|
|
106
93
|
// 如果timer顺利执行,则在unmount时不再重复执行
|
|
107
94
|
// @en If the timer is successfully executed, it will not be repeated when unmounting
|
|
@@ -110,38 +97,30 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
110
97
|
setTransitionDuration('');
|
|
111
98
|
callback();
|
|
112
99
|
};
|
|
113
|
-
|
|
114
100
|
unmountCallbackRef.current = setNormalStatus;
|
|
115
101
|
latestCallbackTimer.current = window.setTimeout(setNormalStatus, transDuration);
|
|
116
102
|
}
|
|
117
|
-
|
|
118
103
|
function _scrollToIndex(itemIndex, transDuration, callback) {
|
|
119
104
|
if (transDuration === void 0) {
|
|
120
105
|
transDuration = 0;
|
|
121
106
|
}
|
|
122
|
-
|
|
123
107
|
if (callback === void 0) {
|
|
124
108
|
callback = function callback() {};
|
|
125
109
|
}
|
|
126
|
-
|
|
127
110
|
_scrollTo(-1 * itemIndex * itemHeight, transDuration, callback);
|
|
128
111
|
}
|
|
129
|
-
|
|
130
112
|
function _scrollToIndexWithChange(itemIndex, transDuration) {
|
|
131
113
|
if (transDuration === void 0) {
|
|
132
114
|
transDuration = 0;
|
|
133
115
|
}
|
|
134
|
-
|
|
135
116
|
_scrollToIndex(itemIndex, transDuration, function () {
|
|
136
117
|
_scrollingComplete(itemIndex);
|
|
137
118
|
});
|
|
138
119
|
}
|
|
139
|
-
|
|
140
120
|
var _handleColumnTouchStart = useCallback(function (e) {
|
|
141
121
|
if (disabled) {
|
|
142
122
|
return;
|
|
143
123
|
}
|
|
144
|
-
|
|
145
124
|
isTouchMoveRef.current = false;
|
|
146
125
|
movingStatusRef.current = 'moving';
|
|
147
126
|
var x = e.touches[0].screenX;
|
|
@@ -153,44 +132,38 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
153
132
|
touchStartYRef.current = y;
|
|
154
133
|
lastTransformYRef.current = transformYRef.current;
|
|
155
134
|
}, [disabled]);
|
|
156
|
-
|
|
157
135
|
var _handleColumnTouchMove = useCallback(function (e) {
|
|
158
136
|
if (disabled || !touchingRef.current) {
|
|
159
137
|
return;
|
|
160
138
|
}
|
|
161
|
-
|
|
162
139
|
isTouchMoveRef.current = true;
|
|
163
140
|
var lastTransformY = lastTransformYRef.current;
|
|
164
141
|
var touchMoveX = e.touches[0].screenX;
|
|
165
142
|
var touchMoveY = e.touches[0].screenY;
|
|
166
143
|
var distanceX = touchMoveX - touchStartXRef.current;
|
|
167
144
|
var distance = touchMoveY - touchStartYRef.current;
|
|
168
|
-
|
|
169
145
|
if (touchingXRef.current === null) {
|
|
170
146
|
touchingXRef.current = Math.abs(distanceX) > Math.abs(distance);
|
|
171
147
|
}
|
|
172
|
-
|
|
173
148
|
if (touchingXRef.current) {
|
|
174
149
|
return;
|
|
175
150
|
}
|
|
176
|
-
|
|
177
151
|
e.cancelable && e.preventDefault();
|
|
178
152
|
var newPos = lastTransformY + distance;
|
|
179
|
-
var maxPos = -1 * (data.length - 1) * itemHeight;
|
|
153
|
+
var maxPos = -1 * (data.length - 1) * itemHeight;
|
|
154
|
+
// 当滚动到上边界或下边界时增加阻尼效果
|
|
180
155
|
// @en Add damping effect when scrolling to the upper or lower border
|
|
181
|
-
|
|
182
156
|
setTransformY(lastTransformY >= 0 && distance > 0 || lastTransformY <= maxPos && distance < 0 ? lastTransformY + distance / 4 : newPos);
|
|
183
157
|
}, [data.length, disabled, itemHeight]);
|
|
184
|
-
|
|
185
158
|
function _handleScrollEnd() {
|
|
186
159
|
var maxIndex = data.length - 1;
|
|
187
|
-
var nowIndex = Math.max(0, Math.min(maxIndex, Math.round(-1 * transformY / itemHeight)));
|
|
160
|
+
var nowIndex = Math.max(0, Math.min(maxIndex, Math.round(-1 * transformY / itemHeight)));
|
|
161
|
+
// 滚动(包括加动量的滚动)完成之后定位到最近的一个index上
|
|
188
162
|
// @en After scrolling (including scrolling with momentum) is completed, it is positioned on the nearest index
|
|
189
|
-
|
|
190
163
|
_scrollToIndexWithChange(nowIndex, 200);
|
|
191
|
-
}
|
|
192
|
-
|
|
164
|
+
}
|
|
193
165
|
|
|
166
|
+
// Reference: https://juejin.im/post/6844904185121488910
|
|
194
167
|
function momentum(current, start, duration, minY, maxY) {
|
|
195
168
|
var durationMap = {
|
|
196
169
|
noBounce: 400,
|
|
@@ -202,24 +175,23 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
202
175
|
weekBounce: 'cubic-bezier(.25, .46, .45, .94)',
|
|
203
176
|
strongBounce: 'cubic-bezier(.25, .46, .45, .94)'
|
|
204
177
|
};
|
|
205
|
-
var type = 'noBounce';
|
|
178
|
+
var type = 'noBounce';
|
|
179
|
+
// 惯性滑动加速度
|
|
206
180
|
// @en inertial sliding acceleration
|
|
207
|
-
|
|
208
|
-
|
|
181
|
+
var deceleration = 0.003;
|
|
182
|
+
// 回弹阻力
|
|
209
183
|
// @en rebound resistance
|
|
210
|
-
|
|
211
|
-
|
|
184
|
+
var bounceRate = 5;
|
|
185
|
+
// 强弱回弹的分割值
|
|
212
186
|
// @en Split value of strong and weak rebound
|
|
213
|
-
|
|
214
|
-
|
|
187
|
+
var bounceThreshold = 300;
|
|
188
|
+
// 回弹的最大限度
|
|
215
189
|
// @en maximum rebound
|
|
216
|
-
|
|
217
190
|
var maxOverflowY = wrapperHeight / 6;
|
|
218
191
|
var overflowY;
|
|
219
192
|
var distance = current - start;
|
|
220
193
|
var speed = 2 * Math.abs(distance) / duration;
|
|
221
194
|
var destination = current + speed / deceleration * (distance < 0 ? -1 : 1);
|
|
222
|
-
|
|
223
195
|
if (destination < minY) {
|
|
224
196
|
overflowY = minY - destination;
|
|
225
197
|
type = overflowY > bounceThreshold ? 'strongBounce' : 'weekBounce';
|
|
@@ -229,37 +201,31 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
229
201
|
type = overflowY > bounceThreshold ? 'strongBounce' : 'weekBounce';
|
|
230
202
|
destination = Math.min(maxY + maxOverflowY, maxY + overflowY / bounceRate);
|
|
231
203
|
}
|
|
232
|
-
|
|
233
204
|
return {
|
|
234
205
|
destination: destination,
|
|
235
206
|
duration: durationMap[type],
|
|
236
207
|
bezier: bezierMap[type]
|
|
237
208
|
};
|
|
238
209
|
}
|
|
239
|
-
|
|
240
210
|
function _handleColumnTouchEnd() {
|
|
241
211
|
_clearTimer();
|
|
242
|
-
|
|
243
212
|
movingStatusRef.current = 'normal';
|
|
244
213
|
var lastTransformY = lastTransformYRef.current;
|
|
245
|
-
|
|
246
214
|
if (!isTouchMoveRef.current || transformY === lastTransformY) {
|
|
247
215
|
return;
|
|
248
216
|
}
|
|
249
|
-
|
|
250
217
|
touchingRef.current = false;
|
|
251
218
|
var endTime = Date.now();
|
|
252
219
|
var scrollerHeight = (data.length + rowCount - 1) * itemHeight;
|
|
253
220
|
var duration = endTime - touchStartTimeRef.current;
|
|
254
|
-
var absDistY = Math.abs(transformY - lastTransformY);
|
|
221
|
+
var absDistY = Math.abs(transformY - lastTransformY);
|
|
222
|
+
// 计算动量,保证滚动顺畅,条件:手势时间小于300ms && 移动距离绝对值大于30时
|
|
255
223
|
// @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
|
|
256
|
-
|
|
257
224
|
if (duration < 300 && absDistY > 90) {
|
|
258
225
|
var momentumY = momentum(transformY, lastTransformY, duration, wrapperHeight - scrollerHeight, 0);
|
|
259
226
|
var newItemIndex = Math.max(0, Math.min(data.length - 1, Math.round(-1 * momentumY.destination / itemHeight)));
|
|
260
227
|
setBezier(momentumY.bezier);
|
|
261
228
|
movingStatusRef.current = 'scrolling';
|
|
262
|
-
|
|
263
229
|
_scrollToIndex(newItemIndex, momentumY.duration, function () {
|
|
264
230
|
_scrollingComplete(newItemIndex);
|
|
265
231
|
});
|
|
@@ -267,42 +233,34 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
267
233
|
_handleScrollEnd();
|
|
268
234
|
}
|
|
269
235
|
}
|
|
270
|
-
|
|
271
236
|
function scrollToCurrentIndex() {
|
|
272
237
|
if (!wrapRef.current) {
|
|
273
238
|
return;
|
|
274
239
|
}
|
|
275
|
-
|
|
276
240
|
var curStyle = window.getComputedStyle(wrapRef.current);
|
|
277
241
|
var transformMatrix = curStyle.transform || curStyle.webkitTransform || '';
|
|
278
242
|
var transY = Number(transformMatrix.replace(/matrix\((.*?)\)/, '$1').split(/,\s*/).slice(-1)[0]) || 0;
|
|
279
243
|
var maxIndex = data.length - 1;
|
|
280
|
-
var nowIndex = Math.max(0, Math.min(maxIndex, Math.round(-1 * transY / itemHeight)));
|
|
244
|
+
var nowIndex = Math.max(0, Math.min(maxIndex, Math.round(-1 * transY / itemHeight)));
|
|
245
|
+
// 滚动(包括加动量的滚动)完成之后定位到最近的一个index上
|
|
281
246
|
// @en After scrolling (including scrolling with momentum) is completed, it is positioned on the nearest index
|
|
282
|
-
|
|
283
247
|
_scrollToIndexWithChange(nowIndex, 0);
|
|
284
248
|
}
|
|
285
|
-
|
|
286
249
|
function getCurrentCellValue() {
|
|
287
250
|
var _data$currentIndex;
|
|
288
|
-
|
|
289
251
|
return (_data$currentIndex = data[currentIndex]) == null ? void 0 : _data$currentIndex.value;
|
|
290
252
|
}
|
|
291
|
-
|
|
292
253
|
function getCurrentCellData() {
|
|
293
254
|
return data[currentIndex];
|
|
294
255
|
}
|
|
295
|
-
|
|
296
256
|
function _clearTimer() {
|
|
297
257
|
timeRef.current && clearTimeout(timeRef.current);
|
|
298
258
|
timeRef.current = null;
|
|
299
259
|
}
|
|
300
|
-
|
|
301
260
|
function _handleItemTouchStart() {
|
|
302
261
|
if (touchToStop === false) {
|
|
303
262
|
return;
|
|
304
263
|
}
|
|
305
|
-
|
|
306
264
|
isTouchStopped.current = false;
|
|
307
265
|
timeRef.current = window.setTimeout(function () {
|
|
308
266
|
if (!isTouchMoveRef.current) {
|
|
@@ -311,15 +269,12 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
311
269
|
}
|
|
312
270
|
}, touchToStop === true ? 100 : touchToStop);
|
|
313
271
|
}
|
|
314
|
-
|
|
315
272
|
function _handleItemClick(itemIndex) {
|
|
316
273
|
if (!clickable || disabled || touchToStop !== false && isTouchStopped.current) {
|
|
317
274
|
return;
|
|
318
275
|
}
|
|
319
|
-
|
|
320
276
|
_scrollToIndexWithChange(itemIndex, 200);
|
|
321
277
|
}
|
|
322
|
-
|
|
323
278
|
useEffect(function () {
|
|
324
279
|
return function () {
|
|
325
280
|
// 卸载组件时,如果timer中还有未执行的onchange操作,则立刻执行该操作并移除timer
|
|
@@ -334,7 +289,6 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
334
289
|
wrapRef.current.addEventListener('touchstart', _handleColumnTouchStart);
|
|
335
290
|
wrapRef.current.addEventListener('touchmove', _handleColumnTouchMove);
|
|
336
291
|
}
|
|
337
|
-
|
|
338
292
|
return function () {
|
|
339
293
|
if (wrapRef.current) {
|
|
340
294
|
wrapRef.current.removeEventListener('touchstart', _handleColumnTouchStart);
|
|
@@ -348,7 +302,6 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
348
302
|
return item.value === selectedValue;
|
|
349
303
|
});
|
|
350
304
|
setCurrentIndex(Math.max(curIndex, 0));
|
|
351
|
-
|
|
352
305
|
if (curIndex >= 0) {
|
|
353
306
|
_scrollToIndexWithChange(curIndex);
|
|
354
307
|
}
|
|
@@ -374,7 +327,6 @@ var PickerCell = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
374
327
|
"aria-disabled": disabled
|
|
375
328
|
}, data.map(function (item, index) {
|
|
376
329
|
var _cls;
|
|
377
|
-
|
|
378
330
|
var dis = Math.abs(index - currentIndex);
|
|
379
331
|
return /*#__PURE__*/React.createElement("div", {
|
|
380
332
|
"aria-label": index === currentIndex ? "" + item.value : '',
|
package/esm/picker-view/index.js
CHANGED
|
@@ -8,56 +8,50 @@ import Cascader from '../picker-view/components/cascader';
|
|
|
8
8
|
import { useMountedState } from '../_helpers';
|
|
9
9
|
export * from './type';
|
|
10
10
|
export { MultiPicker, PickerCell, Cascader };
|
|
11
|
-
|
|
12
11
|
var isArray = function isArray(dt) {
|
|
13
12
|
return dt ? Array.isArray(dt[0]) : false;
|
|
14
13
|
};
|
|
15
|
-
|
|
16
14
|
var isStrOrNum = function isStrOrNum(dt) {
|
|
17
15
|
return typeof dt[0][0] === 'string' || typeof dt[0][0] === 'number';
|
|
18
16
|
};
|
|
19
|
-
|
|
20
17
|
var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
21
18
|
var _props$className = props.className,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
19
|
+
className = _props$className === void 0 ? '' : _props$className,
|
|
20
|
+
itemStyle = props.itemStyle,
|
|
21
|
+
_props$cascade = props.cascade,
|
|
22
|
+
cascade = _props$cascade === void 0 ? true : _props$cascade,
|
|
23
|
+
_props$cols = props.cols,
|
|
24
|
+
cols = _props$cols === void 0 ? 3 : _props$cols,
|
|
25
|
+
_props$rows = props.rows,
|
|
26
|
+
rows = _props$rows === void 0 ? 5 : _props$rows,
|
|
27
|
+
data = props.data,
|
|
28
|
+
_props$disabled = props.disabled,
|
|
29
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
30
|
+
_props$clickable = props.clickable,
|
|
31
|
+
clickable = _props$clickable === void 0 ? true : _props$clickable,
|
|
32
|
+
value = props.value,
|
|
33
|
+
_props$hideEmptyCols = props.hideEmptyCols,
|
|
34
|
+
hideEmptyCols = _props$hideEmptyCols === void 0 ? false : _props$hideEmptyCols,
|
|
35
|
+
onPickerChange = props.onPickerChange,
|
|
36
|
+
_props$touchToStop = props.touchToStop,
|
|
37
|
+
touchToStop = _props$touchToStop === void 0 ? false : _props$touchToStop;
|
|
42
38
|
var _useState = useState(0),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
itemHeight = _useState[0],
|
|
40
|
+
setItemHeight = _useState[1];
|
|
46
41
|
var _useState2 = useState(0),
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
42
|
+
wrapperHeight = _useState2[0],
|
|
43
|
+
setWrapperHeight = _useState2[1];
|
|
50
44
|
var _useMountedState = useMountedState(value),
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
45
|
+
scrollValue = _useMountedState[0],
|
|
46
|
+
setScrollValue = _useMountedState[1];
|
|
54
47
|
var wrapperRef = useRef(null);
|
|
55
48
|
var domRef = useRef(null);
|
|
56
49
|
var barRef = useRef(null);
|
|
57
50
|
var pickerCellsRef = useRef([]);
|
|
58
|
-
var cascaderRef = useRef(null);
|
|
59
|
-
// @en The height of itemStyle applies to the selection-bar as well, without separately exposing the height setting property for the selection-bar.
|
|
51
|
+
var cascaderRef = useRef(null);
|
|
60
52
|
|
|
53
|
+
// itemStyle height 同时对 selection-bar 生效,这里不单独抛出 selection-bar 的高度设置属性
|
|
54
|
+
// @en The height of itemStyle applies to the selection-bar as well, without separately exposing the height setting property for the selection-bar.
|
|
61
55
|
var selectionBarHeight = useMemo(function () {
|
|
62
56
|
return itemStyle != null && itemStyle.height ? {
|
|
63
57
|
height: itemStyle.height
|
|
@@ -65,7 +59,6 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
65
59
|
}, [itemStyle]);
|
|
66
60
|
var innerData = useMemo(function () {
|
|
67
61
|
var newData;
|
|
68
|
-
|
|
69
62
|
if (isArray(data)) {
|
|
70
63
|
if (isStrOrNum(data)) {
|
|
71
64
|
newData = data.map(function (item) {
|
|
@@ -82,26 +75,21 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
82
75
|
} else {
|
|
83
76
|
newData = [data];
|
|
84
77
|
}
|
|
85
|
-
|
|
86
78
|
return newData;
|
|
87
79
|
}, [data]);
|
|
88
|
-
|
|
89
80
|
var getAllColumnValues = function getAllColumnValues() {
|
|
90
81
|
var _cascaderRef$current;
|
|
91
|
-
|
|
92
82
|
var curValues = cascade ? ((_cascaderRef$current = cascaderRef.current) == null ? void 0 : _cascaderRef$current.getAllCellsValue()) || [] : pickerCellsRef.current.map(function (cell) {
|
|
93
83
|
return cell.getCurrentCellValue();
|
|
94
|
-
});
|
|
84
|
+
});
|
|
85
|
+
// 移除级联带来的空列值,理论上非首尾列不会有空值
|
|
95
86
|
// @en Remove empty values from cascader
|
|
96
|
-
|
|
97
87
|
return curValues.filter(function (v) {
|
|
98
88
|
return v !== undefined;
|
|
99
89
|
});
|
|
100
90
|
};
|
|
101
|
-
|
|
102
91
|
var getAllColumnData = function getAllColumnData() {
|
|
103
92
|
var _cascaderRef$current2;
|
|
104
|
-
|
|
105
93
|
var curValues = cascade ? ((_cascaderRef$current2 = cascaderRef.current) == null ? void 0 : _cascaderRef$current2.getAllCellsData()) || [] : pickerCellsRef.current.map(function (cell) {
|
|
106
94
|
return cell.getCurrentCellData();
|
|
107
95
|
});
|
|
@@ -109,36 +97,28 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
109
97
|
return v !== undefined;
|
|
110
98
|
});
|
|
111
99
|
};
|
|
112
|
-
|
|
113
100
|
function getColumnValue(index) {
|
|
114
101
|
if (index === void 0) {
|
|
115
102
|
index = 0;
|
|
116
103
|
}
|
|
117
|
-
|
|
118
104
|
return getAllColumnValues()[index];
|
|
119
105
|
}
|
|
120
|
-
|
|
121
106
|
function getCellMovingStatus() {
|
|
122
107
|
var _cascaderRef$current3;
|
|
123
|
-
|
|
124
108
|
return cascade ? ((_cascaderRef$current3 = cascaderRef.current) == null ? void 0 : _cascaderRef$current3.getCellMovingStatus()) || [] : pickerCellsRef.current.map(function (cell) {
|
|
125
109
|
return cell.movingStatus;
|
|
126
110
|
});
|
|
127
111
|
}
|
|
128
|
-
|
|
129
112
|
function scrollToCurrentIndex() {
|
|
130
113
|
if (cascade) {
|
|
131
114
|
var _cascaderRef$current4;
|
|
132
|
-
|
|
133
115
|
(_cascaderRef$current4 = cascaderRef.current) == null ? void 0 : _cascaderRef$current4.scrollToCurrentIndex();
|
|
134
116
|
return;
|
|
135
117
|
}
|
|
136
|
-
|
|
137
118
|
pickerCellsRef.current.forEach(function (cell) {
|
|
138
119
|
return cell.scrollToCurrentIndex();
|
|
139
120
|
});
|
|
140
121
|
}
|
|
141
|
-
|
|
142
122
|
useImperativeHandle(ref, function () {
|
|
143
123
|
return {
|
|
144
124
|
dom: domRef.current,
|
|
@@ -151,15 +131,12 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
151
131
|
getAllColumnData: getAllColumnData
|
|
152
132
|
};
|
|
153
133
|
});
|
|
154
|
-
|
|
155
134
|
function _onValueChange(val, index, newData) {
|
|
156
135
|
setScrollValue(val);
|
|
157
|
-
|
|
158
136
|
if (onPickerChange) {
|
|
159
137
|
onPickerChange(val, index, newData);
|
|
160
138
|
}
|
|
161
139
|
}
|
|
162
|
-
|
|
163
140
|
useEffect(function () {
|
|
164
141
|
setScrollValue(value);
|
|
165
142
|
}, [value]);
|
|
@@ -168,30 +145,24 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
168
145
|
setWrapperHeight(wrapperRef.current.offsetHeight);
|
|
169
146
|
}
|
|
170
147
|
}, [wrapperRef, setWrapperHeight]);
|
|
171
|
-
|
|
172
148
|
var updateItemHeight = function updateItemHeight() {
|
|
173
149
|
if (barRef.current) {
|
|
174
150
|
setItemHeight(barRef.current.getBoundingClientRect().height);
|
|
175
151
|
}
|
|
176
152
|
};
|
|
177
|
-
|
|
178
153
|
useEffect(function () {
|
|
179
154
|
updateLayout();
|
|
180
155
|
}, []);
|
|
181
|
-
|
|
182
156
|
function updateLayout() {
|
|
183
157
|
updateWrapperHeight();
|
|
184
158
|
updateItemHeight();
|
|
185
159
|
}
|
|
186
|
-
|
|
187
160
|
function resetValue() {
|
|
188
161
|
setScrollValue(value);
|
|
189
162
|
}
|
|
190
|
-
|
|
191
163
|
var newItemStyle = _extends({
|
|
192
164
|
height: itemHeight + "px"
|
|
193
165
|
}, itemStyle);
|
|
194
|
-
|
|
195
166
|
return /*#__PURE__*/React.createElement(ContextLayout, null, function (_ref) {
|
|
196
167
|
var prefixCls = _ref.prefixCls;
|
|
197
168
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -262,5 +233,4 @@ var PickerView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
262
233
|
* @name_en PickerView
|
|
263
234
|
* @displayName PickerView
|
|
264
235
|
*/
|
|
265
|
-
|
|
266
236
|
export default componentWrapper(PickerView, 'PickerView');
|