@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
@@ -0,0 +1,371 @@
|
|
1
|
+
import { IRules } from '@arco-design/mobile-utils';
|
2
|
+
import { ReactNode } from 'react';
|
3
|
+
export declare type FieldValue = any;
|
4
|
+
export declare type FieldItem = Record<string, any>;
|
5
|
+
export declare type ILayout = 'horizontal' | 'vertical' | 'inline';
|
6
|
+
export declare enum FormInternalComponentType {
|
7
|
+
Input = "Input",
|
8
|
+
Textarea = "Textarea",
|
9
|
+
Checkbox = "Checkbox",
|
10
|
+
CheckboxGroup = "CheckboxGroup",
|
11
|
+
DatePicker = "DatePicker",
|
12
|
+
Picker = "Picker",
|
13
|
+
Radio = "Radio",
|
14
|
+
RadioGroup = "RadioGroup",
|
15
|
+
Slider = "Slider",
|
16
|
+
Switch = "Switch",
|
17
|
+
ImagePicker = "ImagePicker",
|
18
|
+
Rate = "Rate",
|
19
|
+
Stepper = "Stepper"
|
20
|
+
}
|
21
|
+
export interface FormProps {
|
22
|
+
/**
|
23
|
+
* 自定义类名
|
24
|
+
* @en Custom classname
|
25
|
+
*/
|
26
|
+
className?: string;
|
27
|
+
/**
|
28
|
+
* 自定义样式
|
29
|
+
* @en Custom stylesheet
|
30
|
+
*/
|
31
|
+
style?: React.CSSProperties;
|
32
|
+
/**
|
33
|
+
* 表单项布局
|
34
|
+
* @en Form item layout
|
35
|
+
* @default "horizontal"
|
36
|
+
*/
|
37
|
+
layout?: 'horizontal' | 'vertical' | 'inline';
|
38
|
+
/**
|
39
|
+
* 表单实例
|
40
|
+
* @en Form instance
|
41
|
+
*/
|
42
|
+
form?: IFormInstance;
|
43
|
+
/**
|
44
|
+
* 表单初始数据
|
45
|
+
* @en Form initial value
|
46
|
+
*/
|
47
|
+
initialValues?: FieldItem;
|
48
|
+
children: React.ReactNodeArray | ReactNode;
|
49
|
+
/**
|
50
|
+
* 表单项数据变化时的回调
|
51
|
+
* @en Callback when the form item value changes
|
52
|
+
*/
|
53
|
+
onValuesChange?: Callbacks['onValuesChange'];
|
54
|
+
/**
|
55
|
+
* 表单项数据变化时的回调
|
56
|
+
* @en Callback when the form is submitted
|
57
|
+
*/
|
58
|
+
onSubmit?: Callbacks['onSubmit'];
|
59
|
+
/**
|
60
|
+
* 表单项数据变化时的回调
|
61
|
+
* @en Callback when the form is submitted failed
|
62
|
+
*/
|
63
|
+
onSubmitFailed?: Callbacks['onSubmitFailed'];
|
64
|
+
/**
|
65
|
+
* 表单禁止输入
|
66
|
+
* @en disable all form items
|
67
|
+
*/
|
68
|
+
disabled?: boolean;
|
69
|
+
}
|
70
|
+
export interface IFieldError {
|
71
|
+
value?: FieldValue;
|
72
|
+
errors?: ReactNode[];
|
73
|
+
warnings?: ReactNode[];
|
74
|
+
field?: string;
|
75
|
+
dom?: HTMLDivElement | null;
|
76
|
+
}
|
77
|
+
export interface IFormDataMethods {
|
78
|
+
/**
|
79
|
+
* 设置多个表单项值
|
80
|
+
* @en Set multiple field value
|
81
|
+
*/
|
82
|
+
setFieldsValue: (values: FieldItem) => boolean;
|
83
|
+
/**
|
84
|
+
* 设置单个表单项值
|
85
|
+
* @en Set field value
|
86
|
+
*/
|
87
|
+
setFieldValue: (name: string, value: FieldValue) => boolean;
|
88
|
+
/**
|
89
|
+
* 获取多个表单项值
|
90
|
+
* @en Get multiple field value
|
91
|
+
*/
|
92
|
+
getFieldsValue: (names?: string[]) => FieldItem;
|
93
|
+
/**
|
94
|
+
* 获取单个表单项值
|
95
|
+
* @en Get field value
|
96
|
+
*/
|
97
|
+
getFieldValue: (name: string) => FieldValue;
|
98
|
+
/**
|
99
|
+
* 注册表单项
|
100
|
+
* @en Register field
|
101
|
+
*/
|
102
|
+
registerField: (name: string, self: ReactNode) => () => void;
|
103
|
+
}
|
104
|
+
export declare enum ValidateStatus {
|
105
|
+
Init = "init",
|
106
|
+
Error = "error",
|
107
|
+
Warning = "warning",
|
108
|
+
Validating = "validating",
|
109
|
+
Success = "success"
|
110
|
+
}
|
111
|
+
export interface Callbacks {
|
112
|
+
/**
|
113
|
+
* 表单项数据变化时的回调
|
114
|
+
* @en Callback when the form item value changes
|
115
|
+
*/
|
116
|
+
onValuesChange?: (changedValues: FieldValue, values: FieldValue) => void;
|
117
|
+
/**
|
118
|
+
* 表单项数据变化时的回调
|
119
|
+
* @en Callback when the form is submitted
|
120
|
+
*/
|
121
|
+
onSubmit?: (values: FieldValue, otherInfo?: IFieldError[]) => void;
|
122
|
+
/**
|
123
|
+
* 表单项数据变化时的回调
|
124
|
+
* @en Callback when the form is submitted failed
|
125
|
+
*/
|
126
|
+
onSubmitFailed?: (values: FieldValue, errorInfo: IFieldError[] | Error) => void;
|
127
|
+
}
|
128
|
+
export interface InternalHooks {
|
129
|
+
/**
|
130
|
+
* 注册表单项
|
131
|
+
* @en Register field
|
132
|
+
*/
|
133
|
+
registerField: (name: string, self: ReactNode) => () => void;
|
134
|
+
setInitialValues: (values: FieldItem) => void;
|
135
|
+
setCallbacks: (callbacks: Callbacks) => void;
|
136
|
+
}
|
137
|
+
export interface IFormInstance {
|
138
|
+
/**
|
139
|
+
* 获取单个表单项值
|
140
|
+
* @en Get field value
|
141
|
+
*/
|
142
|
+
getFieldValue: (name: string) => FieldValue;
|
143
|
+
/**
|
144
|
+
* 获取多个表单项值
|
145
|
+
* @en Get multiple field value
|
146
|
+
*/
|
147
|
+
getFieldsValue(name?: string[]): FieldItem;
|
148
|
+
/**
|
149
|
+
* 获取单个表单项的错误
|
150
|
+
* @en Get field errors
|
151
|
+
*/
|
152
|
+
getFieldError(name: string): ReactNode[];
|
153
|
+
/**
|
154
|
+
* 重置表单项
|
155
|
+
* @en Reset fields
|
156
|
+
*/
|
157
|
+
resetFields: () => void;
|
158
|
+
/**
|
159
|
+
* 设置多个表单项值
|
160
|
+
* @en Set multiple field value
|
161
|
+
*/
|
162
|
+
setFieldsValue: (value: FieldItem) => void;
|
163
|
+
/**
|
164
|
+
* 校验所有表单项
|
165
|
+
* @en Validate all fields
|
166
|
+
*/
|
167
|
+
validateFields: () => Promise<FieldItem>;
|
168
|
+
/**
|
169
|
+
* 提交表单
|
170
|
+
* @en Submit all fields
|
171
|
+
*/
|
172
|
+
submit: () => void;
|
173
|
+
}
|
174
|
+
export declare type InternalFormInstance = Omit<IFormInstance, 'validateFields'> & {
|
175
|
+
/**
|
176
|
+
* 校验所有表单项
|
177
|
+
* @en Validate all fields
|
178
|
+
*/
|
179
|
+
validateFields: () => Promise<FieldItem>;
|
180
|
+
/**
|
181
|
+
* 获取内部方法
|
182
|
+
* @en Get internal methods
|
183
|
+
*/
|
184
|
+
getInternalHooks: () => InternalHooks;
|
185
|
+
};
|
186
|
+
export interface FormRef {
|
187
|
+
/**
|
188
|
+
* 最外层元素 DOM
|
189
|
+
* @en The outermost element DOM
|
190
|
+
*/
|
191
|
+
dom: HTMLFormElement | null;
|
192
|
+
/**
|
193
|
+
* Form对象实例
|
194
|
+
* @en Form object instance
|
195
|
+
*/
|
196
|
+
form: IFormInstance;
|
197
|
+
}
|
198
|
+
export interface IFormItemContext {
|
199
|
+
/**
|
200
|
+
* Form对象实例
|
201
|
+
* @en Form object instance
|
202
|
+
*/
|
203
|
+
form: InternalFormInstance;
|
204
|
+
/**
|
205
|
+
* 表单布局方式
|
206
|
+
* @en Form layout
|
207
|
+
*/
|
208
|
+
layout: 'horizontal' | 'vertical' | 'inline';
|
209
|
+
/**
|
210
|
+
* 表单是否禁用
|
211
|
+
* @en Whether form is disabled
|
212
|
+
*/
|
213
|
+
disabled?: boolean;
|
214
|
+
/**
|
215
|
+
* 表单校验项定义
|
216
|
+
* @en Validating message of form
|
217
|
+
*/
|
218
|
+
validateMessages?: Record<string, unknown>;
|
219
|
+
}
|
220
|
+
export declare type IShouldUpdateFunc = (data: {
|
221
|
+
preStore: FieldItem;
|
222
|
+
curStore: FieldItem;
|
223
|
+
}) => boolean;
|
224
|
+
export interface FormItemProps {
|
225
|
+
/**
|
226
|
+
* 表单项名
|
227
|
+
* @en The form item name
|
228
|
+
*/
|
229
|
+
label: ReactNode;
|
230
|
+
/**
|
231
|
+
* 表单项Stylesheet
|
232
|
+
* @en The form item stylesheet
|
233
|
+
*/
|
234
|
+
style?: React.CSSProperties;
|
235
|
+
/**
|
236
|
+
* 表单项样式
|
237
|
+
* @en The form item class name
|
238
|
+
*/
|
239
|
+
className?: string;
|
240
|
+
/**
|
241
|
+
* 表单项字段
|
242
|
+
* @en Form item field
|
243
|
+
*/
|
244
|
+
field: string;
|
245
|
+
/**
|
246
|
+
* 表单项是否必填
|
247
|
+
* @en Whether Form item is required
|
248
|
+
*/
|
249
|
+
required?: boolean;
|
250
|
+
/**
|
251
|
+
* 表单项是否禁用
|
252
|
+
* @en Whether Form item is disabled
|
253
|
+
*/
|
254
|
+
disabled?: boolean;
|
255
|
+
/**
|
256
|
+
* 表单项布局
|
257
|
+
* @en Form item layout
|
258
|
+
* @default "horizontal"
|
259
|
+
*/
|
260
|
+
layout?: 'horizontal' | 'vertical' | 'inline';
|
261
|
+
/**
|
262
|
+
* 表单项子节点
|
263
|
+
* @en Form item children
|
264
|
+
*/
|
265
|
+
children: JSX.Element;
|
266
|
+
/**
|
267
|
+
* 表单项是否刷新
|
268
|
+
* @en Form item is updated
|
269
|
+
*/
|
270
|
+
shouldUpdate?: boolean | IShouldUpdateFunc;
|
271
|
+
/**
|
272
|
+
* 表单项规则
|
273
|
+
* @en Form item rules
|
274
|
+
*/
|
275
|
+
rules?: IRules[];
|
276
|
+
/**
|
277
|
+
* 表单项下方节点
|
278
|
+
* @en Form item extra node
|
279
|
+
*/
|
280
|
+
extra?: JSX.Element;
|
281
|
+
/**
|
282
|
+
* 触发事件更新事件名称
|
283
|
+
* @en The function name when updating data
|
284
|
+
* @default "onChange"
|
285
|
+
*/
|
286
|
+
trigger?: string;
|
287
|
+
/**
|
288
|
+
* 自定义必填标识
|
289
|
+
* @en The required icon node
|
290
|
+
*/
|
291
|
+
requiredIcon?: ReactNode;
|
292
|
+
/**
|
293
|
+
* 表单项初始数据
|
294
|
+
* @en The initial value of form item
|
295
|
+
*/
|
296
|
+
initialValue?: FieldValue;
|
297
|
+
/**
|
298
|
+
* 手动指定为内置组件的类型
|
299
|
+
* @en Manually specified as the type of internal component
|
300
|
+
*/
|
301
|
+
displayType?: FormInternalComponentType;
|
302
|
+
}
|
303
|
+
export interface FormItemRef {
|
304
|
+
/**
|
305
|
+
* 最外层元素 DOM
|
306
|
+
* @en The outermost element DOM
|
307
|
+
*/
|
308
|
+
dom: HTMLDivElement | null;
|
309
|
+
}
|
310
|
+
export interface IFormItemInnerProps {
|
311
|
+
/**
|
312
|
+
* 表单项字段
|
313
|
+
* @en Form item field
|
314
|
+
*/
|
315
|
+
field: string;
|
316
|
+
/**
|
317
|
+
* 表单项子节点
|
318
|
+
* @en Form item children
|
319
|
+
*/
|
320
|
+
children: JSX.Element;
|
321
|
+
/**
|
322
|
+
* 表单项是否刷新
|
323
|
+
* @en Form item is updated
|
324
|
+
*/
|
325
|
+
shouldUpdate?: boolean | IShouldUpdateFunc;
|
326
|
+
/**
|
327
|
+
* 表单项下方节点
|
328
|
+
* @en Form item extra node
|
329
|
+
*/
|
330
|
+
rules?: IRules[];
|
331
|
+
/**
|
332
|
+
* 触发事件更新事件名称
|
333
|
+
* @en The function name when updating data
|
334
|
+
* @default "onChange"
|
335
|
+
*/
|
336
|
+
trigger?: string;
|
337
|
+
/**
|
338
|
+
* 校验状态变化回调
|
339
|
+
* @en The callback when validating status changes
|
340
|
+
*/
|
341
|
+
onValidateStatusChange: (data: {
|
342
|
+
errors: any;
|
343
|
+
warnings: any;
|
344
|
+
}) => void;
|
345
|
+
/**
|
346
|
+
* 获取内部表单项的dom
|
347
|
+
* @en The dom of inner form item
|
348
|
+
*/
|
349
|
+
getFormItemRef: () => HTMLDivElement | null;
|
350
|
+
/**
|
351
|
+
* 自定义表单项存储值的字段名
|
352
|
+
* @en The field name for custom form item
|
353
|
+
* @default "value"
|
354
|
+
*/
|
355
|
+
triggerPropsField?: string;
|
356
|
+
/**
|
357
|
+
* 表单项是否禁用
|
358
|
+
* @en Whether Form item is disabled
|
359
|
+
*/
|
360
|
+
disabled?: boolean;
|
361
|
+
/**
|
362
|
+
* 表单项初始数据
|
363
|
+
* @en The initial value of form item
|
364
|
+
*/
|
365
|
+
initialValue?: FieldValue;
|
366
|
+
/**
|
367
|
+
* 手动指定为内置组件的类型
|
368
|
+
* @en Manually specified as the type of internal component
|
369
|
+
*/
|
370
|
+
displayType?: FormInternalComponentType;
|
371
|
+
}
|
package/cjs/form/type.js
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.ValidateStatus = exports.FormInternalComponentType = void 0;
|
5
|
+
var FormInternalComponentType;
|
6
|
+
exports.FormInternalComponentType = FormInternalComponentType;
|
7
|
+
(function (FormInternalComponentType) {
|
8
|
+
FormInternalComponentType["Input"] = "Input";
|
9
|
+
FormInternalComponentType["Textarea"] = "Textarea";
|
10
|
+
FormInternalComponentType["Checkbox"] = "Checkbox";
|
11
|
+
FormInternalComponentType["CheckboxGroup"] = "CheckboxGroup";
|
12
|
+
FormInternalComponentType["DatePicker"] = "DatePicker";
|
13
|
+
FormInternalComponentType["Picker"] = "Picker";
|
14
|
+
FormInternalComponentType["Radio"] = "Radio";
|
15
|
+
FormInternalComponentType["RadioGroup"] = "RadioGroup";
|
16
|
+
FormInternalComponentType["Slider"] = "Slider";
|
17
|
+
FormInternalComponentType["Switch"] = "Switch";
|
18
|
+
FormInternalComponentType["ImagePicker"] = "ImagePicker";
|
19
|
+
FormInternalComponentType["Rate"] = "Rate";
|
20
|
+
FormInternalComponentType["Stepper"] = "Stepper";
|
21
|
+
})(FormInternalComponentType || (exports.FormInternalComponentType = FormInternalComponentType = {}));
|
22
|
+
var ValidateStatus;
|
23
|
+
exports.ValidateStatus = ValidateStatus;
|
24
|
+
(function (ValidateStatus) {
|
25
|
+
ValidateStatus["Init"] = "init";
|
26
|
+
ValidateStatus["Error"] = "error";
|
27
|
+
ValidateStatus["Warning"] = "warning";
|
28
|
+
ValidateStatus["Validating"] = "validating";
|
29
|
+
ValidateStatus["Success"] = "success";
|
30
|
+
})(ValidateStatus || (exports.ValidateStatus = ValidateStatus = {}));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { IFormInstance } from './type';
|
2
|
+
export declare const defaultFormDataMethods: {
|
3
|
+
getFieldValue: (name: any) => any;
|
4
|
+
getFieldsValue: (_names: any) => {};
|
5
|
+
getFieldError: (_name: any) => never[];
|
6
|
+
setFieldValue: (_name: any, _value: any) => boolean;
|
7
|
+
setFieldsValue: (_values: any) => boolean;
|
8
|
+
registerField: (_name: any, _self: any) => () => void;
|
9
|
+
resetFields: any;
|
10
|
+
validateFields: any;
|
11
|
+
submit: any;
|
12
|
+
getInternalHooks: () => {
|
13
|
+
registerField: any;
|
14
|
+
setInitialValues: any;
|
15
|
+
setCallbacks: any;
|
16
|
+
};
|
17
|
+
};
|
18
|
+
export default function useForm(form?: IFormInstance): IFormInstance[];
|
@@ -0,0 +1,225 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
exports.__esModule = true;
|
5
|
+
exports.default = useForm;
|
6
|
+
exports.defaultFormDataMethods = void 0;
|
7
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
8
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
9
|
+
var _extends5 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
10
|
+
var _react = require("react");
|
11
|
+
/* eslint-disable no-console */
|
12
|
+
|
13
|
+
var defaultFunc = function defaultFunc() {};
|
14
|
+
var defaultFormDataMethods = {
|
15
|
+
getFieldValue: function getFieldValue(name) {
|
16
|
+
return name;
|
17
|
+
},
|
18
|
+
getFieldsValue: function getFieldsValue(_names) {
|
19
|
+
return {};
|
20
|
+
},
|
21
|
+
getFieldError: function getFieldError(_name) {
|
22
|
+
return [];
|
23
|
+
},
|
24
|
+
setFieldValue: function setFieldValue(_name, _value) {
|
25
|
+
return true;
|
26
|
+
},
|
27
|
+
setFieldsValue: function setFieldsValue(_values) {
|
28
|
+
return true;
|
29
|
+
},
|
30
|
+
registerField: function registerField(_name, _self) {
|
31
|
+
return function () {};
|
32
|
+
},
|
33
|
+
resetFields: defaultFunc,
|
34
|
+
validateFields: defaultFunc,
|
35
|
+
submit: defaultFunc,
|
36
|
+
getInternalHooks: function getInternalHooks() {
|
37
|
+
return {
|
38
|
+
registerField: defaultFunc,
|
39
|
+
setInitialValues: defaultFunc,
|
40
|
+
setCallbacks: defaultFunc
|
41
|
+
};
|
42
|
+
}
|
43
|
+
};
|
44
|
+
|
45
|
+
// 在field的静态的状态下设置
|
46
|
+
exports.defaultFormDataMethods = defaultFormDataMethods;
|
47
|
+
var FormData = function FormData() {
|
48
|
+
var _this = this;
|
49
|
+
this._formData = {};
|
50
|
+
this._fieldsList = {};
|
51
|
+
this._initialValues = {};
|
52
|
+
this._callbacks = {};
|
53
|
+
this.setFieldsValue = function (values) {
|
54
|
+
_this._formData = (0, _extends5.default)({}, _this._formData, values);
|
55
|
+
_this.notifyField(values);
|
56
|
+
Object.keys(values).forEach(function (key) {
|
57
|
+
if (key in _this._fieldsList) {
|
58
|
+
var _this$_fieldsList$key;
|
59
|
+
(_this$_fieldsList$key = _this._fieldsList[key]) == null ? void 0 : _this$_fieldsList$key.onValueChange();
|
60
|
+
}
|
61
|
+
});
|
62
|
+
return true;
|
63
|
+
};
|
64
|
+
this.setFieldValue = function (name, value) {
|
65
|
+
var _extends2, _onValuesChange, _this$notifyField;
|
66
|
+
_this._formData = (0, _extends5.default)({}, _this._formData, (_extends2 = {}, _extends2[name] = value, _extends2));
|
67
|
+
var onValuesChange = _this._callbacks.onValuesChange;
|
68
|
+
onValuesChange && onValuesChange((_onValuesChange = {}, _onValuesChange[name] = value, _onValuesChange), _this._formData);
|
69
|
+
_this.notifyField((_this$notifyField = {}, _this$notifyField[name] = value, _this$notifyField));
|
70
|
+
return true;
|
71
|
+
};
|
72
|
+
this.notifyField = function (values) {
|
73
|
+
Object.keys(values).map(function (fieldName) {
|
74
|
+
var _this$_fieldsList;
|
75
|
+
var fieldObj = ((_this$_fieldsList = _this._fieldsList) == null ? void 0 : _this$_fieldsList[fieldName]) || null;
|
76
|
+
if (fieldObj) {
|
77
|
+
fieldObj.onValueChange(values[fieldName]);
|
78
|
+
}
|
79
|
+
});
|
80
|
+
};
|
81
|
+
this.getFieldsValue = function (names) {
|
82
|
+
if (names) {
|
83
|
+
return names.map(function (name) {
|
84
|
+
return _this.getFieldValue(name);
|
85
|
+
});
|
86
|
+
}
|
87
|
+
return _this._formData;
|
88
|
+
};
|
89
|
+
this.getFieldValue = function (name) {
|
90
|
+
var _this$_formData;
|
91
|
+
return (_this$_formData = _this._formData) == null ? void 0 : _this$_formData[name];
|
92
|
+
};
|
93
|
+
this.getFieldError = function (name) {
|
94
|
+
var _this$_fieldsList2;
|
95
|
+
var field = ((_this$_fieldsList2 = _this._fieldsList) == null ? void 0 : _this$_fieldsList2[name]) || null;
|
96
|
+
if (field) {
|
97
|
+
return field.getFieldError();
|
98
|
+
}
|
99
|
+
return [];
|
100
|
+
};
|
101
|
+
this.getFieldsError = function (names) {
|
102
|
+
var fields = names || Object.keys(_this._fieldsList);
|
103
|
+
return fields.reduce(function (pre, name) {
|
104
|
+
var _this$_fieldsList3;
|
105
|
+
var theField = (_this$_fieldsList3 = _this._fieldsList) == null ? void 0 : _this$_fieldsList3[name];
|
106
|
+
if (theField) {
|
107
|
+
pre[name] = theField == null ? void 0 : theField.getFieldError();
|
108
|
+
}
|
109
|
+
return pre;
|
110
|
+
}, {});
|
111
|
+
};
|
112
|
+
this.isFieldTouched = function (name) {
|
113
|
+
var _this$_fieldsList4;
|
114
|
+
var field = ((_this$_fieldsList4 = _this._fieldsList) == null ? void 0 : _this$_fieldsList4[name]) || null;
|
115
|
+
if (field) {
|
116
|
+
return field.isFieldTouched();
|
117
|
+
}
|
118
|
+
return false;
|
119
|
+
};
|
120
|
+
this.registerField = function (name, self) {
|
121
|
+
_this._fieldsList[name] = self;
|
122
|
+
var initialValue = self.props.initialValue;
|
123
|
+
if (initialValue !== undefined && name) {
|
124
|
+
var _extends3, _extends4;
|
125
|
+
_this._initialValues = (0, _extends5.default)({}, _this._initialValues, (_extends3 = {}, _extends3[name] = initialValue, _extends3));
|
126
|
+
_this.setFieldsValue((0, _extends5.default)({}, _this._formData, (_extends4 = {}, _extends4[name] = initialValue, _extends4)));
|
127
|
+
}
|
128
|
+
return function () {
|
129
|
+
if (name in _this._fieldsList) {
|
130
|
+
delete _this._fieldsList[name];
|
131
|
+
delete _this._formData[name];
|
132
|
+
}
|
133
|
+
};
|
134
|
+
};
|
135
|
+
this.setInitialValues = function (initVal) {
|
136
|
+
_this._initialValues = (0, _extends5.default)({}, initVal || {});
|
137
|
+
_this.setFieldsValue(initVal);
|
138
|
+
};
|
139
|
+
this.resetFields = function () {
|
140
|
+
_this.setFieldsValue(_this._initialValues);
|
141
|
+
};
|
142
|
+
this.validateFields = function () {
|
143
|
+
var promiseList = [];
|
144
|
+
Object.values(_this._fieldsList).forEach(function (entity) {
|
145
|
+
var promise = entity.validateField();
|
146
|
+
promiseList.push(promise.then(function (errors) {
|
147
|
+
return errors;
|
148
|
+
}));
|
149
|
+
});
|
150
|
+
var summaryPromise = new Promise(function (resolve, reject) {
|
151
|
+
Promise.all(promiseList).then(function (res) {
|
152
|
+
var errorResults = res.filter(function (item) {
|
153
|
+
var _item$errors;
|
154
|
+
return item == null ? void 0 : (_item$errors = item.errors) == null ? void 0 : _item$errors.length;
|
155
|
+
});
|
156
|
+
if (errorResults.length) {
|
157
|
+
reject(errorResults);
|
158
|
+
} else {
|
159
|
+
resolve(res);
|
160
|
+
}
|
161
|
+
});
|
162
|
+
});
|
163
|
+
return summaryPromise;
|
164
|
+
};
|
165
|
+
this.submit = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
166
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
167
|
+
while (1) switch (_context.prev = _context.next) {
|
168
|
+
case 0:
|
169
|
+
_this.validateFields().then(function (result) {
|
170
|
+
var onSubmit = _this._callbacks.onSubmit;
|
171
|
+
onSubmit == null ? void 0 : onSubmit(_this._formData, result);
|
172
|
+
}).catch(function (e) {
|
173
|
+
var onSubmitFailed = _this._callbacks.onSubmitFailed;
|
174
|
+
if (!onSubmitFailed) {
|
175
|
+
return;
|
176
|
+
}
|
177
|
+
onSubmitFailed(_this._formData, e);
|
178
|
+
});
|
179
|
+
case 1:
|
180
|
+
case "end":
|
181
|
+
return _context.stop();
|
182
|
+
}
|
183
|
+
}, _callee);
|
184
|
+
}));
|
185
|
+
this.setCallbacks = function (callbacks) {
|
186
|
+
_this._callbacks = callbacks;
|
187
|
+
};
|
188
|
+
this.getMethods = function () {
|
189
|
+
return {
|
190
|
+
setFieldsValue: _this.setFieldsValue,
|
191
|
+
setFieldValue: _this.setFieldValue,
|
192
|
+
getFieldsValue: _this.getFieldsValue,
|
193
|
+
getFieldValue: _this.getFieldValue,
|
194
|
+
getFieldError: _this.getFieldError,
|
195
|
+
getFieldsError: _this.getFieldsError,
|
196
|
+
isFieldTouched: _this.isFieldTouched,
|
197
|
+
registerField: _this.registerField,
|
198
|
+
resetFields: _this.resetFields,
|
199
|
+
submit: _this.submit,
|
200
|
+
getInternalHooks: _this.getInternalHooks,
|
201
|
+
validateFields: _this.validateFields
|
202
|
+
};
|
203
|
+
};
|
204
|
+
this.getInternalHooks = function () {
|
205
|
+
return {
|
206
|
+
registerField: _this.registerField,
|
207
|
+
setInitialValues: _this.setInitialValues,
|
208
|
+
setCallbacks: _this.setCallbacks
|
209
|
+
};
|
210
|
+
};
|
211
|
+
};
|
212
|
+
function useForm(form) {
|
213
|
+
var formInstanceRef = (0, _react.useRef)(defaultFormDataMethods);
|
214
|
+
var isSingletonRef = (0, _react.useRef)(false);
|
215
|
+
if (!isSingletonRef.current) {
|
216
|
+
if (form) {
|
217
|
+
formInstanceRef.current = form;
|
218
|
+
} else {
|
219
|
+
var formIns = new FormData();
|
220
|
+
formInstanceRef.current = formIns.getMethods();
|
221
|
+
}
|
222
|
+
isSingletonRef.current = true;
|
223
|
+
}
|
224
|
+
return [formInstanceRef.current];
|
225
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.isFieldRequired = exports.getErrorAndWarnings = void 0;
|
5
|
+
var isFieldRequired = function isFieldRequired(rules) {
|
6
|
+
if (rules === void 0) {
|
7
|
+
rules = [];
|
8
|
+
}
|
9
|
+
return (rules || []).some(function (rule) {
|
10
|
+
return rule == null ? void 0 : rule.required;
|
11
|
+
});
|
12
|
+
};
|
13
|
+
exports.isFieldRequired = isFieldRequired;
|
14
|
+
var getErrorAndWarnings = function getErrorAndWarnings(result) {
|
15
|
+
var errors = [];
|
16
|
+
var warnings = [];
|
17
|
+
result.map(function (_ref) {
|
18
|
+
var _ref$message = _ref.message,
|
19
|
+
message = _ref$message === void 0 ? [] : _ref$message,
|
20
|
+
_ref$validateLevel = _ref.validateLevel,
|
21
|
+
validateLevel = _ref$validateLevel === void 0 ? 'error' : _ref$validateLevel;
|
22
|
+
if (!(message != null && message.length)) {
|
23
|
+
return;
|
24
|
+
}
|
25
|
+
if (validateLevel === 'warning') {
|
26
|
+
warnings = [].concat(warnings, message);
|
27
|
+
} else {
|
28
|
+
errors = [].concat(errors, message);
|
29
|
+
}
|
30
|
+
});
|
31
|
+
return {
|
32
|
+
warnings: warnings,
|
33
|
+
errors: errors
|
34
|
+
};
|
35
|
+
};
|
36
|
+
exports.getErrorAndWarnings = getErrorAndWarnings;
|