@will-ui/vue 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +48 -0
- package/TAILWIND.md +282 -0
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/components/audioPlayer/AudioPlayer.d.ts +123 -0
- package/dist/components/audioPlayer/AudioPlayer.js +375 -0
- package/dist/components/audioPlayer/AudioPlayer.js.map +1 -0
- package/dist/components/audioPlayer/index.d.ts +2 -0
- package/dist/components/audioPlayer/style/index.css +1 -0
- package/dist/components/btn/Btn.d.ts +45 -0
- package/dist/components/btn/Btn.js +165 -0
- package/dist/components/btn/Btn.js.map +1 -0
- package/dist/components/btn/config.d.ts +33 -0
- package/dist/components/btn/config.js +20 -0
- package/dist/components/btn/config.js.map +1 -0
- package/dist/components/btn/context.d.ts +12 -0
- package/dist/components/btn/context.js +6 -0
- package/dist/components/btn/context.js.map +1 -0
- package/dist/components/btn/index.d.ts +5 -0
- package/dist/components/btn/style/index.css +1 -0
- package/dist/components/btnGroup/BtnGroup.d.ts +46 -0
- package/dist/components/btnGroup/BtnGroup.js +43 -0
- package/dist/components/btnGroup/BtnGroup.js.map +1 -0
- package/dist/components/btnGroup/config.d.ts +14 -0
- package/dist/components/btnGroup/config.js +11 -0
- package/dist/components/btnGroup/config.js.map +1 -0
- package/dist/components/btnGroup/index.d.ts +3 -0
- package/dist/components/btnGroup/style/index.css +1 -0
- package/dist/components/cascade/Cascade.d.ts +1957 -0
- package/dist/components/cascade/Cascade.js +283 -0
- package/dist/components/cascade/Cascade.js.map +1 -0
- package/dist/components/cascade/config.d.ts +30 -0
- package/dist/components/cascade/config.js +18 -0
- package/dist/components/cascade/config.js.map +1 -0
- package/dist/components/cascade/index.d.ts +3 -0
- package/dist/components/cascade/style/index.css +1 -0
- package/dist/components/checkbox/Checkbox.d.ts +241 -0
- package/dist/components/checkbox/Checkbox.js +182 -0
- package/dist/components/checkbox/Checkbox.js.map +1 -0
- package/dist/components/checkbox/config.d.ts +18 -0
- package/dist/components/checkbox/config.js +11 -0
- package/dist/components/checkbox/config.js.map +1 -0
- package/dist/components/checkbox/index.d.ts +3 -0
- package/dist/components/checkbox/style/index.css +1 -0
- package/dist/components/choose/Choose.d.ts +1016 -0
- package/dist/components/choose/Choose.js +402 -0
- package/dist/components/choose/Choose.js.map +1 -0
- package/dist/components/choose/config.d.ts +37 -0
- package/dist/components/choose/config.js +21 -0
- package/dist/components/choose/config.js.map +1 -0
- package/dist/components/choose/index.d.ts +3 -0
- package/dist/components/choose/injectionKey.d.ts +12 -0
- package/dist/components/choose/injectionKey.js +11 -0
- package/dist/components/choose/injectionKey.js.map +1 -0
- package/dist/components/choose/style/index.css +1 -0
- package/dist/components/choose2/Choose2.d.ts +1711 -0
- package/dist/components/choose2/Choose2.js +403 -0
- package/dist/components/choose2/Choose2.js.map +1 -0
- package/dist/components/choose2/config.d.ts +37 -0
- package/dist/components/choose2/config.js +20 -0
- package/dist/components/choose2/config.js.map +1 -0
- package/dist/components/choose2/index.d.ts +3 -0
- package/dist/components/choose2/style/index.css +1 -0
- package/dist/components/chooseItem/ChooseItem.d.ts +46 -0
- package/dist/components/chooseItem/ChooseItem.js +72 -0
- package/dist/components/chooseItem/ChooseItem.js.map +1 -0
- package/dist/components/chooseItem/config.d.ts +12 -0
- package/dist/components/chooseItem/config.js +9 -0
- package/dist/components/chooseItem/config.js.map +1 -0
- package/dist/components/chooseItem/index.d.ts +3 -0
- package/dist/components/chooseItem/style/index.css +1 -0
- package/dist/components/circleProgress/CircleProgress.d.ts +83 -0
- package/dist/components/circleProgress/CircleProgress.js +108 -0
- package/dist/components/circleProgress/CircleProgress.js.map +1 -0
- package/dist/components/circleProgress/index.d.ts +1 -0
- package/dist/components/circleProgress/style/index.css +1 -0
- package/dist/components/close/Close.d.ts +114 -0
- package/dist/components/close/Close.js +82 -0
- package/dist/components/close/Close.js.map +1 -0
- package/dist/components/close/index.d.ts +1 -0
- package/dist/components/close/style/index.css +1 -0
- package/dist/components/colorPicker/ColorPicker.d.ts +138 -0
- package/dist/components/colorPicker/ColorPicker.js +404 -0
- package/dist/components/colorPicker/ColorPicker.js.map +1 -0
- package/dist/components/colorPicker/config.d.ts +24 -0
- package/dist/components/colorPicker/config.js +14 -0
- package/dist/components/colorPicker/config.js.map +1 -0
- package/dist/components/colorPicker/index.d.ts +4 -0
- package/dist/components/colorPicker/style/index.css +1 -0
- package/dist/components/confirm/index.d.ts +73 -0
- package/dist/components/confirm/index.js +177 -0
- package/dist/components/confirm/index.js.map +1 -0
- package/dist/components/confirm/src/style/index.css +1 -0
- package/dist/components/copy/Copy.d.ts +28 -0
- package/dist/components/copy/Copy.js +110 -0
- package/dist/components/copy/Copy.js.map +1 -0
- package/dist/components/copy/config.d.ts +25 -0
- package/dist/components/copy/config.js +13 -0
- package/dist/components/copy/config.js.map +1 -0
- package/dist/components/copy/index.d.ts +5 -0
- package/dist/components/copy/spawnCopyToast.d.ts +13 -0
- package/dist/components/copy/spawnCopyToast.js +150 -0
- package/dist/components/copy/spawnCopyToast.js.map +1 -0
- package/dist/components/copy/style/index.css +1 -0
- package/dist/components/cornerEars/CornerEars.d.ts +24 -0
- package/dist/components/cornerEars/CornerEars.js +108 -0
- package/dist/components/cornerEars/CornerEars.js.map +1 -0
- package/dist/components/cornerEars/cornerGeometry.d.ts +8 -0
- package/dist/components/cornerEars/cornerGeometry.js +63 -0
- package/dist/components/cornerEars/cornerGeometry.js.map +1 -0
- package/dist/components/cornerEars/index.d.ts +2 -0
- package/dist/components/cornerEars/style/index.css +1 -0
- package/dist/components/date/DatePanel.js +398 -0
- package/dist/components/date/DatePanel.js.map +1 -0
- package/dist/components/date/DatePicker.d.ts +226 -0
- package/dist/components/date/DatePicker.js +349 -0
- package/dist/components/date/DatePicker.js.map +1 -0
- package/dist/components/date/Days.d.ts +44 -0
- package/dist/components/date/Days.js +93 -0
- package/dist/components/date/Days.js.map +1 -0
- package/dist/components/date/Months.d.ts +32 -0
- package/dist/components/date/Months.js +87 -0
- package/dist/components/date/Months.js.map +1 -0
- package/dist/components/date/QuickDate.d.ts +24 -0
- package/dist/components/date/QuickDate.js +48 -0
- package/dist/components/date/QuickDate.js.map +1 -0
- package/dist/components/date/Years.d.ts +38 -0
- package/dist/components/date/Years.js +85 -0
- package/dist/components/date/Years.js.map +1 -0
- package/dist/components/date/_use/quickDate.d.ts +4 -0
- package/dist/components/date/_use/quickDate.js +30 -0
- package/dist/components/date/_use/quickDate.js.map +1 -0
- package/dist/components/date/_use/useDateModules.d.ts +37 -0
- package/dist/components/date/_use/useDateModules.js +100 -0
- package/dist/components/date/_use/useDateModules.js.map +1 -0
- package/dist/components/date/config.d.ts +32 -0
- package/dist/components/date/config.js +18 -0
- package/dist/components/date/config.js.map +1 -0
- package/dist/components/date/index.d.ts +3 -0
- package/dist/components/date/style/index.css +1 -0
- package/dist/components/date/types.d.ts +32 -0
- package/dist/components/drawer/Drawer.d.ts +332 -0
- package/dist/components/drawer/Drawer.js +329 -0
- package/dist/components/drawer/Drawer.js.map +1 -0
- package/dist/components/drawer/config.d.ts +28 -0
- package/dist/components/drawer/config.js +16 -0
- package/dist/components/drawer/config.js.map +1 -0
- package/dist/components/drawer/index.d.ts +3 -0
- package/dist/components/drawer/src/style/drawer.css +1 -0
- package/dist/components/ellipsis/Ellipsis.d.ts +74 -0
- package/dist/components/ellipsis/Ellipsis.js +103 -0
- package/dist/components/ellipsis/Ellipsis.js.map +1 -0
- package/dist/components/ellipsis/index.d.ts +1 -0
- package/dist/components/ellipsis/style/index.css +1 -0
- package/dist/components/empty/Empty.d.ts +92 -0
- package/dist/components/empty/Empty.js +85 -0
- package/dist/components/empty/Empty.js.map +1 -0
- package/dist/components/empty/config.d.ts +23 -0
- package/dist/components/empty/config.js +14 -0
- package/dist/components/empty/config.js.map +1 -0
- package/dist/components/empty/index.d.ts +3 -0
- package/dist/components/empty/style/index.css +1 -0
- package/dist/components/empty/type.d.ts +9 -0
- package/dist/components/equalizer/Equalizer.d.ts +62 -0
- package/dist/components/equalizer/Equalizer.js +56 -0
- package/dist/components/equalizer/Equalizer.js.map +1 -0
- package/dist/components/equalizer/index.d.ts +1 -0
- package/dist/components/equalizer/style/index.css +1 -0
- package/dist/components/fallback/Fallback.d.ts +44 -0
- package/dist/components/fallback/Fallback.js +55 -0
- package/dist/components/fallback/Fallback.js.map +1 -0
- package/dist/components/fallback/index.d.ts +1 -0
- package/dist/components/fallback/style/index.css +1 -0
- package/dist/components/form/Form.d.ts +169 -0
- package/dist/components/form/Form.js +235 -0
- package/dist/components/form/Form.js.map +1 -0
- package/dist/components/form/_use/formRules.d.ts +18 -0
- package/dist/components/form/_use/formRules.js +80 -0
- package/dist/components/form/_use/formRules.js.map +1 -0
- package/dist/components/form/config.d.ts +35 -0
- package/dist/components/form/config.js +20 -0
- package/dist/components/form/config.js.map +1 -0
- package/dist/components/form/context.d.ts +34 -0
- package/dist/components/form/context.js +8 -0
- package/dist/components/form/context.js.map +1 -0
- package/dist/components/form/index.d.ts +3 -0
- package/dist/components/form/style/index.css +1 -0
- package/dist/components/formItem/FormItem.d.ts +144 -0
- package/dist/components/formItem/FormItem.js +218 -0
- package/dist/components/formItem/FormItem.js.map +1 -0
- package/dist/components/formItem/config.d.ts +21 -0
- package/dist/components/formItem/config.js +12 -0
- package/dist/components/formItem/config.js.map +1 -0
- package/dist/components/formItem/context.d.ts +22 -0
- package/dist/components/formItem/context.js +8 -0
- package/dist/components/formItem/context.js.map +1 -0
- package/dist/components/formItem/index.d.ts +3 -0
- package/dist/components/formItem/style/index.css +1 -0
- package/dist/components/icon/Icon.d.ts +117 -0
- package/dist/components/icon/Icon.js +116 -0
- package/dist/components/icon/Icon.js.map +1 -0
- package/dist/components/icon/config.d.ts +28 -0
- package/dist/components/icon/config.js +16 -0
- package/dist/components/icon/config.js.map +1 -0
- package/dist/components/icon/index.d.ts +4 -0
- package/dist/components/icon/style/index.css +1 -0
- package/dist/components/icon/type.d.ts +16 -0
- package/dist/components/image/Image.d.ts +21 -0
- package/dist/components/image/Image.js +68 -0
- package/dist/components/image/Image.js.map +1 -0
- package/dist/components/image/config.d.ts +21 -0
- package/dist/components/image/config.js +11 -0
- package/dist/components/image/config.js.map +1 -0
- package/dist/components/image/index.d.ts +4 -0
- package/dist/components/image/style/index.css +1 -0
- package/dist/components/index.d.ts +79 -0
- package/dist/components/index.js +124 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/layer/Layer.d.ts +410 -0
- package/dist/components/layer/Layer.js +557 -0
- package/dist/components/layer/Layer.js.map +1 -0
- package/dist/components/layer/index.d.ts +2 -0
- package/dist/components/layer/injectionKey.d.ts +5 -0
- package/dist/components/layer/injectionKey.js +6 -0
- package/dist/components/layer/injectionKey.js.map +1 -0
- package/dist/components/layer/style/index.css +1 -0
- package/dist/components/lcdFont/LcdFont.d.ts +126 -0
- package/dist/components/lcdFont/LcdFont.js +232 -0
- package/dist/components/lcdFont/LcdFont.js.map +1 -0
- package/dist/components/lcdFont/config.d.ts +43 -0
- package/dist/components/lcdFont/config.js +41 -0
- package/dist/components/lcdFont/config.js.map +1 -0
- package/dist/components/lcdFont/format.d.ts +8 -0
- package/dist/components/lcdFont/format.js +39 -0
- package/dist/components/lcdFont/format.js.map +1 -0
- package/dist/components/lcdFont/index.d.ts +5 -0
- package/dist/components/lcdFont/segments.d.ts +32 -0
- package/dist/components/lcdFont/segments.js +326 -0
- package/dist/components/lcdFont/segments.js.map +1 -0
- package/dist/components/lcdFont/style/index.css +1 -0
- package/dist/components/lcdFont/type.d.ts +26 -0
- package/dist/components/list/List.d.ts +480 -0
- package/dist/components/list/List.js +289 -0
- package/dist/components/list/List.js.map +1 -0
- package/dist/components/list/config.d.ts +3 -0
- package/dist/components/list/index.d.ts +3 -0
- package/dist/components/list/style/index.css +1 -0
- package/dist/components/loading/Loading.d.ts +97 -0
- package/dist/components/loading/Loading.js +124 -0
- package/dist/components/loading/Loading.js.map +1 -0
- package/dist/components/loading/config.d.ts +22 -0
- package/dist/components/loading/config.js +13 -0
- package/dist/components/loading/config.js.map +1 -0
- package/dist/components/loading/index.d.ts +3 -0
- package/dist/components/loading/style/index.css +1 -0
- package/dist/components/loading/type.d.ts +13 -0
- package/dist/components/mask/Mask.d.ts +79 -0
- package/dist/components/mask/Mask.js +82 -0
- package/dist/components/mask/Mask.js.map +1 -0
- package/dist/components/mask/config.d.ts +21 -0
- package/dist/components/mask/config.js +14 -0
- package/dist/components/mask/config.js.map +1 -0
- package/dist/components/mask/index.d.ts +3 -0
- package/dist/components/mask/style/mask.css +1 -0
- package/dist/components/match/Match copy.d.ts +1600 -0
- package/dist/components/match/Match.d.ts +1621 -0
- package/dist/components/match/Match.js +343 -0
- package/dist/components/match/Match.js.map +1 -0
- package/dist/components/match/config.d.ts +29 -0
- package/dist/components/match/config.js +17 -0
- package/dist/components/match/config.js.map +1 -0
- package/dist/components/match/index.d.ts +3 -0
- package/dist/components/match/style/index.css +1 -0
- package/dist/components/modal/Modal.d.ts +460 -0
- package/dist/components/modal/Modal.js +297 -0
- package/dist/components/modal/Modal.js.map +1 -0
- package/dist/components/modal/config.d.ts +33 -0
- package/dist/components/modal/config.js +19 -0
- package/dist/components/modal/config.js.map +1 -0
- package/dist/components/modal/index.d.ts +3 -0
- package/dist/components/modal/style/index.css +1 -0
- package/dist/components/notice/Notice.d.ts +137 -0
- package/dist/components/notice/Notice.js +192 -0
- package/dist/components/notice/Notice.js.map +1 -0
- package/dist/components/notice/index.d.ts +51 -0
- package/dist/components/notice/index.js +243 -0
- package/dist/components/notice/index.js.map +1 -0
- package/dist/components/notice/src/_util/index.d.ts +11 -0
- package/dist/components/notice/src/_util/index.js +50 -0
- package/dist/components/notice/src/_util/index.js.map +1 -0
- package/dist/components/notice/src/style/index.css +1 -0
- package/dist/components/notice/types.d.ts +98 -0
- package/dist/components/number/Number copy.d.ts +966 -0
- package/dist/components/number/Number.d.ts +1034 -0
- package/dist/components/number/Number.js +241 -0
- package/dist/components/number/Number.js.map +1 -0
- package/dist/components/number/config.d.ts +26 -0
- package/dist/components/number/config.js +15 -0
- package/dist/components/number/config.js.map +1 -0
- package/dist/components/number/index.d.ts +3 -0
- package/dist/components/number/style/index.css +1 -0
- package/dist/components/pagination/index.d.ts +3 -0
- package/dist/components/pagination/src/Pagination.d.ts +2830 -0
- package/dist/components/pagination/src/Pagination.js +288 -0
- package/dist/components/pagination/src/Pagination.js.map +1 -0
- package/dist/components/pagination/src/config.d.ts +25 -0
- package/dist/components/pagination/src/config.js +20 -0
- package/dist/components/pagination/src/config.js.map +1 -0
- package/dist/components/pagination/src/style/index.css +1 -0
- package/dist/components/picture/Picture.d.ts +18 -0
- package/dist/components/picture/Picture.js +254 -0
- package/dist/components/picture/Picture.js.map +1 -0
- package/dist/components/picture/PictureToolbar.d.ts +29 -0
- package/dist/components/picture/PictureToolbar.js +97 -0
- package/dist/components/picture/PictureToolbar.js.map +1 -0
- package/dist/components/picture/PictureViewport.d.ts +47 -0
- package/dist/components/picture/PictureViewport.js +203 -0
- package/dist/components/picture/PictureViewport.js.map +1 -0
- package/dist/components/picture/config.d.ts +16 -0
- package/dist/components/picture/config.js +16 -0
- package/dist/components/picture/config.js.map +1 -0
- package/dist/components/picture/index.d.ts +5 -0
- package/dist/components/picture/pictureFlip.d.ts +16 -0
- package/dist/components/picture/pictureFlip.js +103 -0
- package/dist/components/picture/pictureFlip.js.map +1 -0
- package/dist/components/picture/style/index.css +1 -0
- package/dist/components/progress/Progress.d.ts +94 -0
- package/dist/components/progress/Progress.js +112 -0
- package/dist/components/progress/Progress.js.map +1 -0
- package/dist/components/progress/index.d.ts +1 -0
- package/dist/components/progress/style/index.css +1 -0
- package/dist/components/radio/Radio.d.ts +112 -0
- package/dist/components/radio/Radio.js +130 -0
- package/dist/components/radio/Radio.js.map +1 -0
- package/dist/components/radio/config.d.ts +29 -0
- package/dist/components/radio/config.js +18 -0
- package/dist/components/radio/config.js.map +1 -0
- package/dist/components/radio/index.d.ts +3 -0
- package/dist/components/radio/style/index.css +1 -0
- package/dist/components/scrollbar/Scrollbar.d.ts +93 -0
- package/dist/components/scrollbar/Scrollbar.js +515 -0
- package/dist/components/scrollbar/Scrollbar.js.map +1 -0
- package/dist/components/scrollbar/index.d.ts +1 -0
- package/dist/components/scrollbar/style/index.css +1 -0
- package/dist/components/sheet/Sheet.d.ts +1448 -0
- package/dist/components/sheet/Sheet.js +592 -0
- package/dist/components/sheet/Sheet.js.map +1 -0
- package/dist/components/sheet/_cell.d.ts +181 -0
- package/dist/components/sheet/_cell.js +132 -0
- package/dist/components/sheet/_cell.js.map +1 -0
- package/dist/components/sheet/_props.d.ts +170 -0
- package/dist/components/sheet/_props.js +183 -0
- package/dist/components/sheet/_props.js.map +1 -0
- package/dist/components/sheet/_row.d.ts +2 -0
- package/dist/components/sheet/_row.js +14 -0
- package/dist/components/sheet/_row.js.map +1 -0
- package/dist/components/sheet/_tbody.d.ts +348 -0
- package/dist/components/sheet/_tbody.js +255 -0
- package/dist/components/sheet/_tbody.js.map +1 -0
- package/dist/components/sheet/_tfoot.d.ts +195 -0
- package/dist/components/sheet/_tfoot.js +78 -0
- package/dist/components/sheet/_tfoot.js.map +1 -0
- package/dist/components/sheet/_thead.d.ts +529 -0
- package/dist/components/sheet/_thead.js +148 -0
- package/dist/components/sheet/_thead.js.map +1 -0
- package/dist/components/sheet/_use.d.ts +38 -0
- package/dist/components/sheet/_use.js +493 -0
- package/dist/components/sheet/_use.js.map +1 -0
- package/dist/components/sheet/_util.d.ts +34 -0
- package/dist/components/sheet/_util.js +111 -0
- package/dist/components/sheet/_util.js.map +1 -0
- package/dist/components/sheet/index.d.ts +1 -0
- package/dist/components/sheet/style/index.css +1 -0
- package/dist/components/slideDown/SlideDown.d.ts +62 -0
- package/dist/components/slideDown/SlideDown.js +128 -0
- package/dist/components/slideDown/SlideDown.js.map +1 -0
- package/dist/components/slideDown/index.d.ts +1 -0
- package/dist/components/slider/Slider.d.ts +1726 -0
- package/dist/components/slider/Slider.js +471 -0
- package/dist/components/slider/Slider.js.map +1 -0
- package/dist/components/slider/index.d.ts +1 -0
- package/dist/components/slider/style/index.css +1 -0
- package/dist/components/svgIcon/SvgIcon.d.ts +37 -0
- package/dist/components/svgIcon/SvgIcon.js +78 -0
- package/dist/components/svgIcon/SvgIcon.js.map +1 -0
- package/dist/components/svgIcon/index.d.ts +3 -0
- package/dist/components/svgIcon/style/index.css +1 -0
- package/dist/components/switch/Switch.d.ts +105 -0
- package/dist/components/switch/Switch.js +158 -0
- package/dist/components/switch/Switch.js.map +1 -0
- package/dist/components/switch/config.d.ts +16 -0
- package/dist/components/switch/config.js +11 -0
- package/dist/components/switch/config.js.map +1 -0
- package/dist/components/switch/index.d.ts +1 -0
- package/dist/components/switch/style/index.css +1 -0
- package/dist/components/tab/Tab.d.ts +113 -0
- package/dist/components/tab/Tab.js +485 -0
- package/dist/components/tab/Tab.js.map +1 -0
- package/dist/components/tab/index.d.ts +2 -0
- package/dist/components/tab/style/index.css +1 -0
- package/dist/components/textarea/Textarea.d.ts +37 -0
- package/dist/components/textarea/Textarea.js +193 -0
- package/dist/components/textarea/Textarea.js.map +1 -0
- package/dist/components/textarea/config.d.ts +30 -0
- package/dist/components/textarea/config.js +16 -0
- package/dist/components/textarea/config.js.map +1 -0
- package/dist/components/textarea/index.d.ts +4 -0
- package/dist/components/textarea/style/index.css +1 -0
- package/dist/components/time/Dial.js +7 -0
- package/dist/components/time/Dial.js.map +1 -0
- package/dist/components/time/Dial.vue_vue_type_script_setup_true_lang.js +178 -0
- package/dist/components/time/Dial.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/time/TimePicker.d.ts +1301 -0
- package/dist/components/time/TimePicker.js +162 -0
- package/dist/components/time/TimePicker.js.map +1 -0
- package/dist/components/time/_use/useTimeModules.d.ts +1 -0
- package/dist/components/time/index.d.ts +1 -0
- package/dist/components/time/style/dial.css +1 -0
- package/dist/components/time/style/index.css +1 -0
- package/dist/components/toggle/Toggle.d.ts +140 -0
- package/dist/components/toggle/Toggle.js +209 -0
- package/dist/components/toggle/Toggle.js.map +1 -0
- package/dist/components/toggle/index.d.ts +1 -0
- package/dist/components/toggle/style/index.css +1 -0
- package/dist/components/toggle/style/scale.css +1 -0
- package/dist/components/toggle/style/translate.css +1 -0
- package/dist/components/tooltip/Tooltip.d.ts +536 -0
- package/dist/components/tooltip/Tooltip.js +51 -0
- package/dist/components/tooltip/Tooltip.js.map +1 -0
- package/dist/components/tooltip/index.d.ts +1 -0
- package/dist/components/tooltip/style/index.css +1 -0
- package/dist/components/tree/Tree.d.ts +187 -0
- package/dist/components/tree/Tree.js +229 -0
- package/dist/components/tree/Tree.js.map +1 -0
- package/dist/components/tree/TreeItem.d.ts +86 -0
- package/dist/components/tree/TreeItem.js +152 -0
- package/dist/components/tree/TreeItem.js.map +1 -0
- package/dist/components/tree/TreeList.d.ts +86 -0
- package/dist/components/tree/TreeList.js +52 -0
- package/dist/components/tree/TreeList.js.map +1 -0
- package/dist/components/tree/_use/treeState.d.ts +45 -0
- package/dist/components/tree/_use/treeState.js +417 -0
- package/dist/components/tree/_use/treeState.js.map +1 -0
- package/dist/components/tree/config.d.ts +27 -0
- package/dist/components/tree/config.js +16 -0
- package/dist/components/tree/config.js.map +1 -0
- package/dist/components/tree/index.d.ts +4 -0
- package/dist/components/tree/style/index.css +1 -0
- package/dist/components/tree-choose/TreeChoose.d.ts +833 -0
- package/dist/components/tree-choose/TreeChoose.js +320 -0
- package/dist/components/tree-choose/TreeChoose.js.map +1 -0
- package/dist/components/tree-choose/config.d.ts +41 -0
- package/dist/components/tree-choose/config.js +19 -0
- package/dist/components/tree-choose/config.js.map +1 -0
- package/dist/components/tree-choose/index.d.ts +4 -0
- package/dist/components/tree-choose/style/index.css +1 -0
- package/dist/components/trigger/Trigger.d.ts +921 -0
- package/dist/components/trigger/Trigger.js +105 -0
- package/dist/components/trigger/Trigger.js.map +1 -0
- package/dist/components/trigger/index.d.ts +1 -0
- package/dist/components/trigger/style/index.css +2 -0
- package/dist/components/upload/Upload.d.ts +249 -0
- package/dist/components/upload/Upload.js +342 -0
- package/dist/components/upload/Upload.js.map +1 -0
- package/dist/components/upload/config.d.ts +39 -0
- package/dist/components/upload/config.js +21 -0
- package/dist/components/upload/config.js.map +1 -0
- package/dist/components/upload/index.d.ts +4 -0
- package/dist/components/upload/style/index.css +1 -0
- package/dist/components/upload/types.d.ts +47 -0
- package/dist/components/virtual/Virtual.d.ts +57 -0
- package/dist/components/virtual/Virtual.js +62 -0
- package/dist/components/virtual/Virtual.js.map +1 -0
- package/dist/components/virtual/Virtual/345/216/237/347/211/210.d.ts +44 -0
- package/dist/components/virtual/index.d.ts +4 -0
- package/dist/components/virtual/style/index.css +1 -0
- package/dist/components/virtual/useVirtualList.d.ts +50 -0
- package/dist/components/virtual/useVirtualList.js +376 -0
- package/dist/components/virtual/useVirtualList.js.map +1 -0
- package/dist/components/write/Write.d.ts +532 -0
- package/dist/components/write/Write.js +228 -0
- package/dist/components/write/Write.js.map +1 -0
- package/dist/components/write/index.d.ts +1 -0
- package/dist/components/write/style/index.css +1 -0
- package/dist/config/dictionary.d.ts +21 -0
- package/dist/config/dictionary.js +28 -0
- package/dist/config/dictionary.js.map +1 -0
- package/dist/config/i18n.d.ts +22 -0
- package/dist/config/i18n.js +53 -0
- package/dist/config/i18n.js.map +1 -0
- package/dist/config/plugin.d.ts +88 -0
- package/dist/config/plugin.js +13 -0
- package/dist/config/plugin.js.map +1 -0
- package/dist/config/types.d.ts +56 -0
- package/dist/directives/clickOutside.d.ts +10 -0
- package/dist/directives/clickOutside.js +69 -0
- package/dist/directives/clickOutside.js.map +1 -0
- package/dist/directives/index.d.ts +3 -0
- package/dist/directives/index.js +13 -0
- package/dist/directives/index.js.map +1 -0
- package/dist/directives/loading.d.ts +19 -0
- package/dist/directives/loading.js +64 -0
- package/dist/directives/loading.js.map +1 -0
- package/dist/index.d.ts +127 -0
- package/dist/index.js +91 -0
- package/dist/locales/de-DE/index.d.ts +144 -0
- package/dist/locales/de-DE/index.js +140 -0
- package/dist/locales/de-DE/index.js.map +1 -0
- package/dist/locales/en-US/index.d.ts +144 -0
- package/dist/locales/en-US/index.js +140 -0
- package/dist/locales/en-US/index.js.map +1 -0
- package/dist/locales/index.d.ts +3 -0
- package/dist/locales/zh-CN/index.d.ts +144 -0
- package/dist/locales/zh-CN/index.js +140 -0
- package/dist/locales/zh-CN/index.js.map +1 -0
- package/dist/plugin.d.ts +6 -0
- package/dist/plugin.js +38 -0
- package/dist/plugin.js.map +1 -0
- package/dist/styles/index.css +49 -0
- package/dist/theme/_transition.css +169 -0
- package/dist/theme/index.css +5 -0
- package/dist/theme/tokens/_base.css +7 -0
- package/dist/theme/tokens/_common.css +37 -0
- package/dist/theme/tokens/_scrollbar.css +53 -0
- package/dist/theme/tokens/_size.css +18 -0
- package/dist/theme/tokens/_text.css +16 -0
- package/dist/theme/tokens/_var.css +1087 -0
- package/dist/theme/tokens/components/audioPlayer.css +542 -0
- package/dist/theme/tokens/components/btn.css +253 -0
- package/dist/theme/tokens/components/btnGroup.css +68 -0
- package/dist/theme/tokens/components/cascade.css +77 -0
- package/dist/theme/tokens/components/checkbox.css +100 -0
- package/dist/theme/tokens/components/choose.css +175 -0
- package/dist/theme/tokens/components/choose2.css +242 -0
- package/dist/theme/tokens/components/chooseItem.css +54 -0
- package/dist/theme/tokens/components/circleProgress.css +61 -0
- package/dist/theme/tokens/components/close.css +12 -0
- package/dist/theme/tokens/components/colorPicker.css +404 -0
- package/dist/theme/tokens/components/confirm.css +128 -0
- package/dist/theme/tokens/components/copy.css +80 -0
- package/dist/theme/tokens/components/cornerEars.css +102 -0
- package/dist/theme/tokens/components/date/days.css +79 -0
- package/dist/theme/tokens/components/date/index.css +249 -0
- package/dist/theme/tokens/components/date/months.css +68 -0
- package/dist/theme/tokens/components/drawer.css +189 -0
- package/dist/theme/tokens/components/ellipsis.css +46 -0
- package/dist/theme/tokens/components/empty.css +24 -0
- package/dist/theme/tokens/components/equalizer.css +51 -0
- package/dist/theme/tokens/components/fallback.css +4 -0
- package/dist/theme/tokens/components/form.css +50 -0
- package/dist/theme/tokens/components/formItem.css +194 -0
- package/dist/theme/tokens/components/icon.css +41 -0
- package/dist/theme/tokens/components/image.css +70 -0
- package/dist/theme/tokens/components/layer.css +190 -0
- package/dist/theme/tokens/components/lcdFont.css +121 -0
- package/dist/theme/tokens/components/list.css +97 -0
- package/dist/theme/tokens/components/loading.css +64 -0
- package/dist/theme/tokens/components/mask.css +26 -0
- package/dist/theme/tokens/components/match.css +119 -0
- package/dist/theme/tokens/components/modal.css +136 -0
- package/dist/theme/tokens/components/notice.css +264 -0
- package/dist/theme/tokens/components/number.css +150 -0
- package/dist/theme/tokens/components/pagination.css +215 -0
- package/dist/theme/tokens/components/picture.css +299 -0
- package/dist/theme/tokens/components/progress.css +101 -0
- package/dist/theme/tokens/components/radio.css +183 -0
- package/dist/theme/tokens/components/scrollbar.css +160 -0
- package/dist/theme/tokens/components/sheet.css +518 -0
- package/dist/theme/tokens/components/slider.css +171 -0
- package/dist/theme/tokens/components/svgIcon.css +6 -0
- package/dist/theme/tokens/components/switch.css +67 -0
- package/dist/theme/tokens/components/tab.css +215 -0
- package/dist/theme/tokens/components/textarea.css +109 -0
- package/dist/theme/tokens/components/time/dial.css +123 -0
- package/dist/theme/tokens/components/time/index.css +29 -0
- package/dist/theme/tokens/components/toggle/index.css +14 -0
- package/dist/theme/tokens/components/toggle/scale.css +34 -0
- package/dist/theme/tokens/components/toggle/translate.css +41 -0
- package/dist/theme/tokens/components/tooltip.css +77 -0
- package/dist/theme/tokens/components/tree-choose.css +154 -0
- package/dist/theme/tokens/components/tree.css +172 -0
- package/dist/theme/tokens/components/trigger.css +90 -0
- package/dist/theme/tokens/components/upload.css +302 -0
- package/dist/theme/tokens/components/virtual.css +6 -0
- package/dist/theme/tokens/components/write.css +155 -0
- package/dist/theme/tokens/iconfont/iconfont.css +103 -0
- package/dist/theme/tokens/iconfont/iconfont.ttf +0 -0
- package/dist/theme/tokens/iconfont/iconfont.woff +0 -0
- package/dist/theme/tokens/iconfont/iconfont.woff2 +0 -0
- package/dist/theme/tokens/index.css +19 -0
- package/dist/use/index.d.ts +34 -0
- package/dist/use/toggle/types.d.ts +27 -0
- package/dist/use/toggle/useToggle.d.ts +22 -0
- package/dist/use/toggle/useToggleArray.d.ts +14 -0
- package/dist/use/toggle/useToggleArray.js +36 -0
- package/dist/use/toggle/useToggleArray.js.map +1 -0
- package/dist/use/toggle/useToggleCycle.d.ts +11 -0
- package/dist/use/toggle/useToggleCycle.js +88 -0
- package/dist/use/toggle/useToggleCycle.js.map +1 -0
- package/dist/use/toggle/useToggleMap.d.ts +10 -0
- package/dist/use/toggle/useToggleObject.d.ts +13 -0
- package/dist/use/useAudioPlayer.d.ts +160 -0
- package/dist/use/useAudioPlayer.js +799 -0
- package/dist/use/useAudioPlayer.js.map +1 -0
- package/dist/use/useBoundingClientRect.d.ts +14 -0
- package/dist/use/useBoundingClientRect.js +54 -0
- package/dist/use/useBoundingClientRect.js.map +1 -0
- package/dist/use/useChildComponentsCollector.js +30 -0
- package/dist/use/useChildComponentsCollector.js.map +1 -0
- package/dist/use/useComponentClass.d.ts +1 -0
- package/dist/use/useComponentClass.js +6 -0
- package/dist/use/useComponentClass.js.map +1 -0
- package/dist/use/useComponentConfig.d.ts +10 -0
- package/dist/use/useComponentConfig.js +31 -0
- package/dist/use/useComponentConfig.js.map +1 -0
- package/dist/use/useCount.d.ts +13 -0
- package/dist/use/useCount.js +36 -0
- package/dist/use/useCount.js.map +1 -0
- package/dist/use/useDate.d.ts +53 -0
- package/dist/use/useDate.js +280 -0
- package/dist/use/useDate.js.map +1 -0
- package/dist/use/useDelay.d.ts +5 -0
- package/dist/use/useDelay.js +38 -0
- package/dist/use/useDelay.js.map +1 -0
- package/dist/use/useDrag.d.ts +17 -0
- package/dist/use/useElement.d.ts +15 -0
- package/dist/use/useElement.js +41 -0
- package/dist/use/useElement.js.map +1 -0
- package/dist/use/useEscStack.d.ts +14 -0
- package/dist/use/useEscStack.js +62 -0
- package/dist/use/useEscStack.js.map +1 -0
- package/dist/use/useEvent.d.ts +9 -0
- package/dist/use/useEvent.js +43 -0
- package/dist/use/useEvent.js.map +1 -0
- package/dist/use/useFormItem.d.ts +9 -0
- package/dist/use/useFormItem.js +20 -0
- package/dist/use/useFormItem.js.map +1 -0
- package/dist/use/useGlobalZIndex.d.ts +6 -0
- package/dist/use/useGlobalZIndex.js +28 -0
- package/dist/use/useGlobalZIndex.js.map +1 -0
- package/dist/use/useMouse.d.ts +15 -0
- package/dist/use/useMouse.js +36 -0
- package/dist/use/useMouse.js.map +1 -0
- package/dist/use/useMousePositionInElement.d.ts +6 -0
- package/dist/use/useMousePositionInElement.js +27 -0
- package/dist/use/useMousePositionInElement.js.map +1 -0
- package/dist/use/useParentNode.d.ts +3 -0
- package/dist/use/useParentNode.js +25 -0
- package/dist/use/useParentNode.js.map +1 -0
- package/dist/use/usePercentDrag.d.ts +20 -0
- package/dist/use/usePercentDrag.js +59 -0
- package/dist/use/usePercentDrag.js.map +1 -0
- package/dist/use/usePictureViewport.d.ts +57 -0
- package/dist/use/usePictureViewport.js +229 -0
- package/dist/use/usePictureViewport.js.map +1 -0
- package/dist/use/useRequest.d.ts +7 -0
- package/dist/use/useRequest.js +31 -0
- package/dist/use/useRequest.js.map +1 -0
- package/dist/use/useScaleFromPoint.d.ts +57 -0
- package/dist/use/useScaleFromPoint.js +325 -0
- package/dist/use/useScaleFromPoint.js.map +1 -0
- package/dist/use/useScroll.d.ts +9 -0
- package/dist/use/useScroll.js +60 -0
- package/dist/use/useScroll.js.map +1 -0
- package/dist/use/useSearch.d.ts +11 -0
- package/dist/use/useSearch.js +65 -0
- package/dist/use/useSearch.js.map +1 -0
- package/dist/use/useSlot.d.ts +10 -0
- package/dist/use/useSlot.js +57 -0
- package/dist/use/useSlot.js.map +1 -0
- package/dist/use/useTabIndex.d.ts +1 -0
- package/dist/use/useTabIndex.js +18 -0
- package/dist/use/useTabIndex.js.map +1 -0
- package/dist/use/useUII18n.js +26 -0
- package/dist/use/useUII18n.js.map +1 -0
- package/dist/use/useUpload.d.ts +49 -0
- package/dist/use/useUpload.js +396 -0
- package/dist/use/useUpload.js.map +1 -0
- package/dist/use/useVisibleResize.d.ts +6 -0
- package/dist/use/useVisibleResize.js +77 -0
- package/dist/use/useVisibleResize.js.map +1 -0
- package/dist/util/calc.d.ts +40 -0
- package/dist/util/calc.js +239 -0
- package/dist/util/calc.js.map +1 -0
- package/dist/util/colors.d.ts +78 -0
- package/dist/util/colors.js +320 -0
- package/dist/util/colors.js.map +1 -0
- package/dist/util/cssVars.d.ts +62 -0
- package/dist/util/cssVars.js +170 -0
- package/dist/util/cssVars.js.map +1 -0
- package/dist/util/dom.d.ts +65 -0
- package/dist/util/dom.js +212 -0
- package/dist/util/dom.js.map +1 -0
- package/dist/util/index.d.ts +5 -0
- package/dist/util/tools.d.ts +54 -0
- package/dist/util/tools.js +90 -0
- package/dist/util/tools.js.map +1 -0
- package/dist/util/vnode.d.ts +2 -0
- package/package.json +88 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import useComponentConfig from "../../use/useComponentConfig.js";
|
|
2
|
+
import { mergeStyle, sizeToCssVars, toCssVarsStyle } from "../../util/cssVars.js";
|
|
3
|
+
import { FORM_FALLBACK } from "./config.js";
|
|
4
|
+
import { FORM_DATA_LEGACY_KEY, FORM_KEY } from "./context.js";
|
|
5
|
+
import { computed, createVNode, defineComponent, provide, reactive, watch } from "vue";
|
|
6
|
+
//#region components/form/Form.tsx
|
|
7
|
+
var Form_default = /* @__PURE__ */ defineComponent({
|
|
8
|
+
name: "Form",
|
|
9
|
+
props: {
|
|
10
|
+
model: {
|
|
11
|
+
type: Object,
|
|
12
|
+
default: void 0
|
|
13
|
+
},
|
|
14
|
+
rules: {
|
|
15
|
+
type: Object,
|
|
16
|
+
default: void 0
|
|
17
|
+
},
|
|
18
|
+
title: {
|
|
19
|
+
type: String,
|
|
20
|
+
default: void 0
|
|
21
|
+
},
|
|
22
|
+
titleWidth: {
|
|
23
|
+
type: [String, Number],
|
|
24
|
+
default: void 0
|
|
25
|
+
},
|
|
26
|
+
labelPosition: {
|
|
27
|
+
type: String,
|
|
28
|
+
default: void 0
|
|
29
|
+
},
|
|
30
|
+
legendPosition: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: void 0
|
|
33
|
+
},
|
|
34
|
+
fieldset: {
|
|
35
|
+
type: Boolean,
|
|
36
|
+
default: void 0
|
|
37
|
+
},
|
|
38
|
+
border: {
|
|
39
|
+
type: [String, Number],
|
|
40
|
+
default: void 0
|
|
41
|
+
},
|
|
42
|
+
errorBorder: {
|
|
43
|
+
type: Boolean,
|
|
44
|
+
default: void 0
|
|
45
|
+
},
|
|
46
|
+
errorPosition: {
|
|
47
|
+
type: String,
|
|
48
|
+
default: void 0
|
|
49
|
+
},
|
|
50
|
+
disabled: {
|
|
51
|
+
type: Boolean,
|
|
52
|
+
default: void 0
|
|
53
|
+
},
|
|
54
|
+
inline: {
|
|
55
|
+
type: Boolean,
|
|
56
|
+
default: void 0
|
|
57
|
+
},
|
|
58
|
+
labelWidth: {
|
|
59
|
+
type: [String, Number],
|
|
60
|
+
default: void 0
|
|
61
|
+
},
|
|
62
|
+
size: {
|
|
63
|
+
type: Number,
|
|
64
|
+
default: void 0
|
|
65
|
+
},
|
|
66
|
+
scrollToError: {
|
|
67
|
+
type: Boolean,
|
|
68
|
+
default: void 0
|
|
69
|
+
},
|
|
70
|
+
validateOnRuleChange: {
|
|
71
|
+
type: Boolean,
|
|
72
|
+
default: void 0
|
|
73
|
+
},
|
|
74
|
+
preventDefault: {
|
|
75
|
+
type: Boolean,
|
|
76
|
+
default: true
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
emits: { validate: (_prop, _isValid, _message) => true },
|
|
80
|
+
setup(props, { emit, slots, expose }) {
|
|
81
|
+
const cfg = useComponentConfig("Form", props, FORM_FALLBACK);
|
|
82
|
+
const fields = [];
|
|
83
|
+
function addField(field) {
|
|
84
|
+
if (field) fields.push(field);
|
|
85
|
+
}
|
|
86
|
+
function removeField(field) {
|
|
87
|
+
const i = fields.indexOf(field);
|
|
88
|
+
if (i > -1) fields.splice(i, 1);
|
|
89
|
+
}
|
|
90
|
+
function getFields(prop) {
|
|
91
|
+
if (prop == null || Array.isArray(prop) && !prop.length) return [...fields];
|
|
92
|
+
const list = typeof prop === "string" ? [prop] : prop;
|
|
93
|
+
return fields.filter((f) => f.prop && list.includes(f.prop));
|
|
94
|
+
}
|
|
95
|
+
function emitValidate(prop, isValid, message) {
|
|
96
|
+
emit("validate", prop, isValid, message);
|
|
97
|
+
}
|
|
98
|
+
const scrollToField = (prop) => {
|
|
99
|
+
const el = fields.find((f) => f.prop === prop)?.$el;
|
|
100
|
+
if (el && typeof el.scrollIntoView === "function") el.scrollIntoView({
|
|
101
|
+
behavior: "smooth",
|
|
102
|
+
block: "center"
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
const validateField = (propsOrCallback, maybeCallback) => {
|
|
106
|
+
let propsFilter;
|
|
107
|
+
let callback;
|
|
108
|
+
if (typeof propsOrCallback === "function") callback = propsOrCallback;
|
|
109
|
+
else {
|
|
110
|
+
propsFilter = propsOrCallback;
|
|
111
|
+
callback = maybeCallback;
|
|
112
|
+
}
|
|
113
|
+
const targets = getFields(propsFilter);
|
|
114
|
+
if (!props.model || !targets.length) {
|
|
115
|
+
callback?.(true);
|
|
116
|
+
return Promise.resolve(true);
|
|
117
|
+
}
|
|
118
|
+
let valid = true;
|
|
119
|
+
let count = 0;
|
|
120
|
+
let invalidFields = {};
|
|
121
|
+
let firstErrorProp;
|
|
122
|
+
return new Promise((resolve, reject) => {
|
|
123
|
+
const done = () => {
|
|
124
|
+
if (valid) {
|
|
125
|
+
callback?.(true);
|
|
126
|
+
resolve(true);
|
|
127
|
+
} else {
|
|
128
|
+
callback?.(false, invalidFields);
|
|
129
|
+
if (cfg.value.scrollToError && firstErrorProp) scrollToField(firstErrorProp);
|
|
130
|
+
reject(invalidFields);
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
for (const field of targets) field.validate("", (message, fieldErrors) => {
|
|
134
|
+
if (message) {
|
|
135
|
+
valid = false;
|
|
136
|
+
if (!firstErrorProp && field.prop) firstErrorProp = field.prop;
|
|
137
|
+
}
|
|
138
|
+
if (fieldErrors) invalidFields = {
|
|
139
|
+
...invalidFields,
|
|
140
|
+
...fieldErrors
|
|
141
|
+
};
|
|
142
|
+
if (++count === targets.length) done();
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
};
|
|
146
|
+
const validate = (callback) => validateField(void 0, callback);
|
|
147
|
+
const resetFields = (prop) => {
|
|
148
|
+
if (!props.model) return;
|
|
149
|
+
getFields(prop).forEach((f) => f.resetField());
|
|
150
|
+
};
|
|
151
|
+
const clearValidate = (prop) => {
|
|
152
|
+
getFields(prop).forEach((f) => f.clearValidate());
|
|
153
|
+
};
|
|
154
|
+
const formContext = reactive({
|
|
155
|
+
get model() {
|
|
156
|
+
return props.model;
|
|
157
|
+
},
|
|
158
|
+
get rules() {
|
|
159
|
+
return props.rules;
|
|
160
|
+
},
|
|
161
|
+
get labelPosition() {
|
|
162
|
+
return cfg.value.labelPosition;
|
|
163
|
+
},
|
|
164
|
+
get labelWidth() {
|
|
165
|
+
return cfg.value.labelWidth ?? props.labelWidth;
|
|
166
|
+
},
|
|
167
|
+
get errorPosition() {
|
|
168
|
+
return cfg.value.errorPosition;
|
|
169
|
+
},
|
|
170
|
+
get errorBorder() {
|
|
171
|
+
return !!cfg.value.errorBorder;
|
|
172
|
+
},
|
|
173
|
+
get disabled() {
|
|
174
|
+
return !!cfg.value.disabled;
|
|
175
|
+
},
|
|
176
|
+
get inline() {
|
|
177
|
+
return !!cfg.value.inline;
|
|
178
|
+
},
|
|
179
|
+
get size() {
|
|
180
|
+
return cfg.value.size;
|
|
181
|
+
},
|
|
182
|
+
get scrollToError() {
|
|
183
|
+
return !!cfg.value.scrollToError;
|
|
184
|
+
},
|
|
185
|
+
get validateOnRuleChange() {
|
|
186
|
+
return !!cfg.value.validateOnRuleChange;
|
|
187
|
+
},
|
|
188
|
+
addField,
|
|
189
|
+
removeField,
|
|
190
|
+
emitValidate
|
|
191
|
+
});
|
|
192
|
+
provide(FORM_KEY, formContext);
|
|
193
|
+
provide(FORM_DATA_LEGACY_KEY, formContext);
|
|
194
|
+
watch(() => props.rules, () => {
|
|
195
|
+
if (cfg.value.validateOnRuleChange) clearValidate();
|
|
196
|
+
}, { deep: true });
|
|
197
|
+
expose({
|
|
198
|
+
validate,
|
|
199
|
+
validateField,
|
|
200
|
+
resetFields,
|
|
201
|
+
clearValidate,
|
|
202
|
+
scrollToField
|
|
203
|
+
});
|
|
204
|
+
const rootClass = computed(() => [cfg.value.inline ? "w-form-inline" : "w-form", { "w-form-fieldset": cfg.value.fieldset }]);
|
|
205
|
+
const fieldsetStyle = computed(() => {
|
|
206
|
+
const sizeStyle = toCssVarsStyle(sizeToCssVars("--w-size", cfg.value.size));
|
|
207
|
+
if (!cfg.value.fieldset) return mergeStyle(sizeStyle, { border: "0" });
|
|
208
|
+
const b = cfg.value.border;
|
|
209
|
+
if (typeof b === "string" && b !== "") return mergeStyle(sizeStyle, { border: b });
|
|
210
|
+
if (typeof b === "number") return mergeStyle(sizeStyle, { border: `${b}px solid var(--w-color-border)` });
|
|
211
|
+
return sizeStyle;
|
|
212
|
+
});
|
|
213
|
+
const legendStyle = computed(() => {
|
|
214
|
+
const w = props.titleWidth;
|
|
215
|
+
return {
|
|
216
|
+
textAlign: cfg.value.legendPosition || "left",
|
|
217
|
+
...w != null && w !== "" ? { width: typeof w === "number" ? `${w}px` : w } : {}
|
|
218
|
+
};
|
|
219
|
+
});
|
|
220
|
+
return () => createVNode("form", {
|
|
221
|
+
"class": rootClass.value,
|
|
222
|
+
"style": fieldsetStyle.value,
|
|
223
|
+
"onSubmit": (e) => {
|
|
224
|
+
if (props.preventDefault !== false) e.preventDefault();
|
|
225
|
+
}
|
|
226
|
+
}, [(slots.title || cfg.value.title) && createVNode("div", {
|
|
227
|
+
"class": "w-form-title",
|
|
228
|
+
"style": legendStyle.value
|
|
229
|
+
}, [slots.title?.() || cfg.value.title]), slots.default?.()]);
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
//#endregion
|
|
233
|
+
export { Form_default as default };
|
|
234
|
+
|
|
235
|
+
//# sourceMappingURL=Form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.js","names":["computed","defineComponent","provide","reactive","watch","createVNode","_createVNode","useComponentConfig","mergeStyle","sizeToCssVars","toCssVarsStyle","FORM_FALLBACK","FORM_DATA_LEGACY_KEY","FORM_KEY","name","props","model","type","Object","default","undefined","rules","title","String","titleWidth","Number","labelPosition","legendPosition","fieldset","Boolean","border","errorBorder","errorPosition","disabled","inline","labelWidth","size","scrollToError","validateOnRuleChange","preventDefault","emits","validate","_prop","_isValid","_message","setup","emit","slots","expose","cfg","fields","addField","field","push","removeField","i","indexOf","splice","getFields","prop","Array","isArray","length","list","filter","f","includes","emitValidate","isValid","message","scrollToField","find","el","$el","scrollIntoView","behavior","block","validateField","propsOrCallback","maybeCallback","propsFilter","callback","targets","Promise","resolve","valid","count","invalidFields","firstErrorProp","reject","done","value","fieldErrors","resetFields","forEach","resetField","clearValidate","formContext","deep","rootClass","fieldsetStyle","sizeStyle","b","legendStyle","w","textAlign","width","e"],"sources":["../../../components/form/Form.tsx"],"sourcesContent":["import {\r\n computed,\r\n defineComponent,\r\n provide,\r\n reactive,\r\n watch,\r\n type PropType,\r\n} from 'vue'\r\nimport type { FormRules } from '../../config/types'\r\nimport useComponentConfig from '../../use/useComponentConfig'\r\nimport { mergeStyle, sizeToCssVars, toCssVarsStyle } from '../../util'\r\nimport type { FormItemContext } from '../formItem/context'\r\nimport { FORM_FALLBACK } from './config'\r\nimport {\r\n FORM_DATA_LEGACY_KEY,\r\n FORM_KEY,\r\n type FormContext,\r\n type FormErrorPosition,\r\n type FormExpose,\r\n type FormLabelPosition,\r\n type FormSize,\r\n type FormValidateCallback,\r\n} from './context'\r\n\r\nexport type { FormGlobalConfig } from './config'\r\nexport { FORM_FALLBACK } from './config'\r\nexport type {\r\n FormContext,\r\n FormExpose,\r\n FormLabelPosition,\r\n FormErrorPosition,\r\n FormSize,\r\n FormValidateCallback,\r\n} from './context'\r\nexport { FORM_KEY } from './context'\r\n\r\nexport default defineComponent({\r\n name: 'Form',\r\n props: {\r\n model: { type: Object as PropType<Record<string, any>>, default: undefined },\r\n rules: { type: Object as PropType<FormRules>, default: undefined },\r\n title: { type: String, default: undefined },\r\n titleWidth: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n labelPosition: {\r\n type: String as PropType<FormLabelPosition>,\r\n default: undefined,\r\n },\r\n legendPosition: {\r\n type: String as PropType<'left' | 'right' | 'center'>,\r\n default: undefined,\r\n },\r\n fieldset: { type: Boolean, default: undefined },\r\n border: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n errorBorder: { type: Boolean, default: undefined },\r\n errorPosition: {\r\n type: String as PropType<FormErrorPosition>,\r\n default: undefined,\r\n },\r\n disabled: { type: Boolean, default: undefined },\r\n inline: { type: Boolean, default: undefined },\r\n labelWidth: {\r\n type: [String, Number] as PropType<string | number>,\r\n default: undefined,\r\n },\r\n size: { type: Number as PropType<FormSize>, default: undefined },\r\n scrollToError: { type: Boolean, default: undefined },\r\n validateOnRuleChange: { type: Boolean, default: undefined },\r\n preventDefault: { type: Boolean, default: true },\r\n },\r\n emits: {\r\n validate: (_prop: string, _isValid: boolean, _message: string | null) =>\r\n true,\r\n },\r\n setup(props, { emit, slots, expose }) {\r\n const cfg = useComponentConfig('Form', props, FORM_FALLBACK)\r\n const fields: FormItemContext[] = []\r\n\r\n function addField(field: FormItemContext) {\r\n if (field) fields.push(field)\r\n }\r\n function removeField(field: FormItemContext) {\r\n const i = fields.indexOf(field)\r\n if (i > -1) fields.splice(i, 1)\r\n }\r\n\r\n function getFields(prop?: string | string[]): FormItemContext[] {\r\n if (prop == null || (Array.isArray(prop) && !prop.length)) {\r\n return [...fields]\r\n }\r\n const list = typeof prop === 'string' ? [prop] : prop\r\n return fields.filter((f) => f.prop && list.includes(f.prop))\r\n }\r\n\r\n function emitValidate(\r\n prop: string,\r\n isValid: boolean,\r\n message: string | null,\r\n ) {\r\n emit('validate', prop, isValid, message)\r\n }\r\n\r\n const scrollToField = (prop: string) => {\r\n const field = fields.find((f) => f.prop === prop)\r\n const el = field?.$el\r\n if (el && typeof el.scrollIntoView === 'function') {\r\n el.scrollIntoView({ behavior: 'smooth', block: 'center' })\r\n }\r\n }\r\n\r\n const validateField = (\r\n propsOrCallback?: string | string[] | FormValidateCallback,\r\n maybeCallback?: FormValidateCallback,\r\n ): Promise<boolean> => {\r\n let propsFilter: string | string[] | undefined\r\n let callback: FormValidateCallback | undefined\r\n if (typeof propsOrCallback === 'function') {\r\n callback = propsOrCallback\r\n } else {\r\n propsFilter = propsOrCallback\r\n callback = maybeCallback\r\n }\r\n\r\n const targets = getFields(propsFilter)\r\n if (!props.model || !targets.length) {\r\n callback?.(true)\r\n return Promise.resolve(true)\r\n }\r\n\r\n let valid = true\r\n let count = 0\r\n let invalidFields: Record<string, any> = {}\r\n let firstErrorProp: string | undefined\r\n\r\n return new Promise((resolve, reject) => {\r\n const done = () => {\r\n if (valid) {\r\n callback?.(true)\r\n resolve(true)\r\n } else {\r\n callback?.(false, invalidFields)\r\n if (cfg.value.scrollToError && firstErrorProp) {\r\n scrollToField(firstErrorProp)\r\n }\r\n reject(invalidFields)\r\n }\r\n }\r\n\r\n for (const field of targets) {\r\n void field.validate('', (message, fieldErrors) => {\r\n if (message) {\r\n valid = false\r\n if (!firstErrorProp && field.prop) firstErrorProp = field.prop\r\n }\r\n if (fieldErrors) {\r\n invalidFields = { ...invalidFields, ...fieldErrors }\r\n }\r\n if (++count === targets.length) done()\r\n })\r\n }\r\n })\r\n }\r\n\r\n const validate = (callback?: FormValidateCallback) =>\r\n validateField(undefined, callback)\r\n\r\n const resetFields = (prop?: string | string[]) => {\r\n if (!props.model) return\r\n getFields(prop).forEach((f) => f.resetField())\r\n }\r\n\r\n const clearValidate = (prop?: string | string[]) => {\r\n getFields(prop).forEach((f) => f.clearValidate())\r\n }\r\n\r\n const formContext = reactive({\r\n get model() {\r\n return props.model\r\n },\r\n get rules() {\r\n return props.rules\r\n },\r\n get labelPosition() {\r\n return cfg.value.labelPosition\r\n },\r\n get labelWidth() {\r\n return cfg.value.labelWidth ?? props.labelWidth\r\n },\r\n get errorPosition() {\r\n return cfg.value.errorPosition\r\n },\r\n get errorBorder() {\r\n return !!cfg.value.errorBorder\r\n },\r\n get disabled() {\r\n return !!cfg.value.disabled\r\n },\r\n get inline() {\r\n return !!cfg.value.inline\r\n },\r\n get size() {\r\n return cfg.value.size\r\n },\r\n get scrollToError() {\r\n return !!cfg.value.scrollToError\r\n },\r\n get validateOnRuleChange() {\r\n return !!cfg.value.validateOnRuleChange\r\n },\r\n addField,\r\n removeField,\r\n emitValidate,\r\n }) as FormContext\r\n\r\n provide(FORM_KEY, formContext)\r\n provide(FORM_DATA_LEGACY_KEY, formContext)\r\n\r\n watch(\r\n () => props.rules,\r\n () => {\r\n if (cfg.value.validateOnRuleChange) clearValidate()\r\n },\r\n { deep: true },\r\n )\r\n\r\n expose({\r\n validate,\r\n validateField,\r\n resetFields,\r\n clearValidate,\r\n scrollToField,\r\n } satisfies FormExpose)\r\n\r\n const rootClass = computed(() => [\r\n cfg.value.inline ? 'w-form-inline' : 'w-form',\r\n { 'w-form-fieldset': cfg.value.fieldset },\r\n ])\r\n\r\n const fieldsetStyle = computed(() => {\r\n const sizeStyle = toCssVarsStyle(\r\n sizeToCssVars('--w-size', cfg.value.size),\r\n )\r\n if (!cfg.value.fieldset) {\r\n return mergeStyle(sizeStyle, { border: '0' })\r\n }\r\n const b = cfg.value.border\r\n if (typeof b === 'string' && b !== '') {\r\n return mergeStyle(sizeStyle, { border: b })\r\n }\r\n if (typeof b === 'number') {\r\n return mergeStyle(sizeStyle, {\r\n border: `${b}px solid var(--w-color-border)`,\r\n })\r\n }\r\n return sizeStyle\r\n })\r\n\r\n const legendStyle = computed(() => {\r\n const w = props.titleWidth\r\n return {\r\n textAlign: (cfg.value.legendPosition || 'left') as any,\r\n ...(w != null && w !== ''\r\n ? { width: typeof w === 'number' ? `${w}px` : w }\r\n : {}),\r\n }\r\n })\r\n\r\n return () => (\r\n <form\r\n class={rootClass.value}\r\n style={fieldsetStyle.value}\r\n onSubmit={(e: Event) => {\r\n if (props.preventDefault !== false) e.preventDefault()\r\n }}>\r\n {(slots.title || cfg.value.title) && (\r\n <div class=\"w-form-title\" style={legendStyle.value}>\r\n {slots.title?.() || cfg.value.title}\r\n </div>\r\n )}\r\n {slots.default?.()}\r\n </form>\r\n )\r\n },\r\n})\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FormRuleItem, FormRules } from '../../config/types';
|
|
2
|
+
/** 将 rules 统一为数组,并拷贝避免污染源对象 */
|
|
3
|
+
export declare function normalizeRules(input?: FormRuleItem | FormRuleItem[] | null): FormRuleItem[];
|
|
4
|
+
/** 合并 Form 级、FormItem 级与 required 标记 */
|
|
5
|
+
export declare function mergeFieldRules(options: {
|
|
6
|
+
formRules?: FormRules;
|
|
7
|
+
prop?: string;
|
|
8
|
+
itemRules?: FormRuleItem | FormRuleItem[];
|
|
9
|
+
required?: boolean;
|
|
10
|
+
}): FormRuleItem[];
|
|
11
|
+
export declare function filterRulesByTrigger(rules: FormRuleItem[], trigger: string): FormRuleItem[];
|
|
12
|
+
export declare function isRequiredFromRules(rules: FormRuleItem[], requiredProp?: boolean): boolean;
|
|
13
|
+
/** 读取嵌套路径 a.b.0.c */
|
|
14
|
+
export declare function getPropByPath(obj: any, path: string): any;
|
|
15
|
+
/** 写入嵌套路径 */
|
|
16
|
+
export declare function setPropByPath(obj: any, path: string, value: any): void;
|
|
17
|
+
export declare function cloneValue<T>(value: T): T;
|
|
18
|
+
export declare function toCssWidth(value: string | number | undefined): string;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
//#region components/form/_use/formRules.ts
|
|
2
|
+
/** 将 rules 统一为数组,并拷贝避免污染源对象 */
|
|
3
|
+
function normalizeRules(input) {
|
|
4
|
+
if (input == null) return [];
|
|
5
|
+
return (Array.isArray(input) ? input : [input]).map((rule) => ({ ...rule }));
|
|
6
|
+
}
|
|
7
|
+
/** 合并 Form 级、FormItem 级与 required 标记 */
|
|
8
|
+
function mergeFieldRules(options) {
|
|
9
|
+
const fromForm = options.prop && options.formRules ? normalizeRules(options.formRules[options.prop]) : [];
|
|
10
|
+
const fromItem = normalizeRules(options.itemRules);
|
|
11
|
+
const requiredRule = options.required !== void 0 ? [{
|
|
12
|
+
required: !!options.required,
|
|
13
|
+
message: void 0
|
|
14
|
+
}] : [];
|
|
15
|
+
return [
|
|
16
|
+
...fromForm,
|
|
17
|
+
...fromItem,
|
|
18
|
+
...requiredRule
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
function filterRulesByTrigger(rules, trigger) {
|
|
22
|
+
return rules.filter((rule) => {
|
|
23
|
+
if (!trigger || trigger === "") return true;
|
|
24
|
+
if (!rule.trigger) return true;
|
|
25
|
+
if (Array.isArray(rule.trigger)) return rule.trigger.includes(trigger);
|
|
26
|
+
return rule.trigger === trigger;
|
|
27
|
+
}).map((rule) => {
|
|
28
|
+
const next = { ...rule };
|
|
29
|
+
delete next.trigger;
|
|
30
|
+
return next;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function isRequiredFromRules(rules, requiredProp) {
|
|
34
|
+
if (requiredProp) return true;
|
|
35
|
+
return rules.some((r) => !!r.required);
|
|
36
|
+
}
|
|
37
|
+
/** 读取嵌套路径 a.b.0.c */
|
|
38
|
+
function getPropByPath(obj, path) {
|
|
39
|
+
if (!obj || !path) return void 0;
|
|
40
|
+
if (!path.includes(".")) return obj[path];
|
|
41
|
+
const keys = path.replace(/\[(\w+)\]/g, ".$1").replace(/^\./, "").split(".");
|
|
42
|
+
let cur = obj;
|
|
43
|
+
for (const key of keys) {
|
|
44
|
+
if (cur == null) return void 0;
|
|
45
|
+
cur = cur[key];
|
|
46
|
+
}
|
|
47
|
+
return cur;
|
|
48
|
+
}
|
|
49
|
+
/** 写入嵌套路径 */
|
|
50
|
+
function setPropByPath(obj, path, value) {
|
|
51
|
+
if (!obj || !path) return;
|
|
52
|
+
if (!path.includes(".")) {
|
|
53
|
+
obj[path] = value;
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const keys = path.replace(/\[(\w+)\]/g, ".$1").replace(/^\./, "").split(".");
|
|
57
|
+
let cur = obj;
|
|
58
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
59
|
+
const key = keys[i];
|
|
60
|
+
if (cur[key] == null || typeof cur[key] !== "object") cur[key] = /^\d+$/.test(keys[i + 1]) ? [] : {};
|
|
61
|
+
cur = cur[key];
|
|
62
|
+
}
|
|
63
|
+
cur[keys[keys.length - 1]] = value;
|
|
64
|
+
}
|
|
65
|
+
function cloneValue(value) {
|
|
66
|
+
if (value == null || typeof value !== "object") return value;
|
|
67
|
+
try {
|
|
68
|
+
return structuredClone(value);
|
|
69
|
+
} catch {
|
|
70
|
+
return JSON.parse(JSON.stringify(value));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function toCssWidth(value) {
|
|
74
|
+
if (value === void 0 || value === "") return "";
|
|
75
|
+
return typeof value === "number" ? `${value}px` : value;
|
|
76
|
+
}
|
|
77
|
+
//#endregion
|
|
78
|
+
export { cloneValue, filterRulesByTrigger, getPropByPath, isRequiredFromRules, mergeFieldRules, normalizeRules, setPropByPath, toCssWidth };
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=formRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formRules.js","names":[],"sources":["../../../../components/form/_use/formRules.ts"],"sourcesContent":["import type { FormRuleItem, FormRules } from '../../config/types'\r\n\r\n/** 将 rules 统一为数组,并拷贝避免污染源对象 */\r\nexport function normalizeRules(\r\n input?: FormRuleItem | FormRuleItem[] | null,\r\n): FormRuleItem[] {\r\n if (input == null) return []\r\n const list = Array.isArray(input) ? input : [input]\r\n return list.map((rule) => ({ ...rule }))\r\n}\r\n\r\n/** 合并 Form 级、FormItem 级与 required 标记 */\r\nexport function mergeFieldRules(options: {\r\n formRules?: FormRules\r\n prop?: string\r\n itemRules?: FormRuleItem | FormRuleItem[]\r\n required?: boolean\r\n}): FormRuleItem[] {\r\n const fromForm =\r\n options.prop && options.formRules\r\n ? normalizeRules(options.formRules[options.prop])\r\n : []\r\n const fromItem = normalizeRules(options.itemRules)\r\n const requiredRule: FormRuleItem[] =\r\n options.required !== undefined\r\n ? [{ required: !!options.required, message: undefined }]\r\n : []\r\n return [...fromForm, ...fromItem, ...requiredRule]\r\n}\r\n\r\nexport function filterRulesByTrigger(\r\n rules: FormRuleItem[],\r\n trigger: string,\r\n): FormRuleItem[] {\r\n return rules\r\n .filter((rule) => {\r\n if (!trigger || trigger === '') return true\r\n if (!rule.trigger) return true\r\n if (Array.isArray(rule.trigger)) {\r\n return rule.trigger.includes(trigger)\r\n }\r\n return rule.trigger === trigger\r\n })\r\n .map((rule) => {\r\n const next = { ...rule }\r\n delete next.trigger\r\n return next\r\n })\r\n}\r\n\r\nexport function isRequiredFromRules(\r\n rules: FormRuleItem[],\r\n requiredProp?: boolean,\r\n): boolean {\r\n if (requiredProp) return true\r\n return rules.some((r) => !!r.required)\r\n}\r\n\r\n/** 读取嵌套路径 a.b.0.c */\r\nexport function getPropByPath(obj: any, path: string): any {\r\n if (!obj || !path) return undefined\r\n if (!path.includes('.')) return obj[path]\r\n const keys = path.replace(/\\[(\\w+)\\]/g, '.$1').replace(/^\\./, '').split('.')\r\n let cur = obj\r\n for (const key of keys) {\r\n if (cur == null) return undefined\r\n cur = cur[key]\r\n }\r\n return cur\r\n}\r\n\r\n/** 写入嵌套路径 */\r\nexport function setPropByPath(obj: any, path: string, value: any): void {\r\n if (!obj || !path) return\r\n if (!path.includes('.')) {\r\n obj[path] = value\r\n return\r\n }\r\n const keys = path.replace(/\\[(\\w+)\\]/g, '.$1').replace(/^\\./, '').split('.')\r\n let cur = obj\r\n for (let i = 0; i < keys.length - 1; i++) {\r\n const key = keys[i]\r\n if (cur[key] == null || typeof cur[key] !== 'object') {\r\n cur[key] = /^\\d+$/.test(keys[i + 1]) ? [] : {}\r\n }\r\n cur = cur[key]\r\n }\r\n cur[keys[keys.length - 1]] = value\r\n}\r\n\r\nexport function cloneValue<T>(value: T): T {\r\n if (value == null || typeof value !== 'object') return value\r\n try {\r\n return structuredClone(value)\r\n } catch {\r\n return JSON.parse(JSON.stringify(value)) as T\r\n }\r\n}\r\n\r\nexport function toCssWidth(value: string | number | undefined): string {\r\n if (value === undefined || value === '') return ''\r\n return typeof value === 'number' ? `${value}px` : value\r\n}\r\n"],"mappings":";;AAGA,SAAgB,eACd,OACgB;CAChB,IAAI,SAAS,MAAM,OAAO,CAAC;CAE3B,QADa,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAA,CACtC,KAAK,UAAU,EAAE,GAAG,KAAK,EAAE;AACzC;;AAGA,SAAgB,gBAAgB,SAKb;CACjB,MAAM,WACJ,QAAQ,QAAQ,QAAQ,YACpB,eAAe,QAAQ,UAAU,QAAQ,KAAK,IAC9C,CAAC;CACP,MAAM,WAAW,eAAe,QAAQ,SAAS;CACjD,MAAM,eACJ,QAAQ,aAAa,KAAA,IACjB,CAAC;EAAE,UAAU,CAAC,CAAC,QAAQ;EAAU,SAAS,KAAA;CAAU,CAAC,IACrD,CAAC;CACP,OAAO;EAAC,GAAG;EAAU,GAAG;EAAU,GAAG;CAAY;AACnD;AAEA,SAAgB,qBACd,OACA,SACgB;CAChB,OAAO,MACJ,QAAQ,SAAS;EAChB,IAAI,CAAC,WAAW,YAAY,IAAI,OAAO;EACvC,IAAI,CAAC,KAAK,SAAS,OAAO;EAC1B,IAAI,MAAM,QAAQ,KAAK,OAAO,GAC5B,OAAO,KAAK,QAAQ,SAAS,OAAO;EAEtC,OAAO,KAAK,YAAY;CAC1B,CAAC,CAAC,CACD,KAAK,SAAS;EACb,MAAM,OAAO,EAAE,GAAG,KAAK;EACvB,OAAO,KAAK;EACZ,OAAO;CACT,CAAC;AACL;AAEA,SAAgB,oBACd,OACA,cACS;CACT,IAAI,cAAc,OAAO;CACzB,OAAO,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,QAAQ;AACvC;;AAGA,SAAgB,cAAc,KAAU,MAAmB;CACzD,IAAI,CAAC,OAAO,CAAC,MAAM,OAAO,KAAA;CAC1B,IAAI,CAAC,KAAK,SAAS,GAAG,GAAG,OAAO,IAAI;CACpC,MAAM,OAAO,KAAK,QAAQ,cAAc,KAAK,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG;CAC3E,IAAI,MAAM;CACV,KAAK,MAAM,OAAO,MAAM;EACtB,IAAI,OAAO,MAAM,OAAO,KAAA;EACxB,MAAM,IAAI;CACZ;CACA,OAAO;AACT;;AAGA,SAAgB,cAAc,KAAU,MAAc,OAAkB;CACtE,IAAI,CAAC,OAAO,CAAC,MAAM;CACnB,IAAI,CAAC,KAAK,SAAS,GAAG,GAAG;EACvB,IAAI,QAAQ;EACZ;CACF;CACA,MAAM,OAAO,KAAK,QAAQ,cAAc,KAAK,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG;CAC3E,IAAI,MAAM;CACV,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;EACxC,MAAM,MAAM,KAAK;EACjB,IAAI,IAAI,QAAQ,QAAQ,OAAO,IAAI,SAAS,UAC1C,IAAI,OAAO,QAAQ,KAAK,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;EAE/C,MAAM,IAAI;CACZ;CACA,IAAI,KAAK,KAAK,SAAS,MAAM;AAC/B;AAEA,SAAgB,WAAc,OAAa;CACzC,IAAI,SAAS,QAAQ,OAAO,UAAU,UAAU,OAAO;CACvD,IAAI;EACF,OAAO,gBAAgB,KAAK;CAC9B,QAAQ;EACN,OAAO,KAAK,MAAM,KAAK,UAAU,KAAK,CAAC;CACzC;AACF;AAEA,SAAgB,WAAW,OAA4C;CACrE,IAAI,UAAU,KAAA,KAAa,UAAU,IAAI,OAAO;CAChD,OAAO,OAAO,UAAU,WAAW,GAAG,MAAM,MAAM;AACpD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { FormErrorPosition, FormLabelPosition, FormSize } from './context';
|
|
2
|
+
/**
|
|
3
|
+
* 可通过 `app.use(UI, { components: { Form: {...} } })` 配置的项。
|
|
4
|
+
* 不宜全局配置:model、rules(实例数据)。
|
|
5
|
+
*/
|
|
6
|
+
export type FormGlobalConfig = Partial<{
|
|
7
|
+
labelPosition: FormLabelPosition;
|
|
8
|
+
labelWidth: string | number;
|
|
9
|
+
errorPosition: FormErrorPosition;
|
|
10
|
+
errorBorder: boolean;
|
|
11
|
+
disabled: boolean;
|
|
12
|
+
inline: boolean;
|
|
13
|
+
size: FormSize;
|
|
14
|
+
scrollToError: boolean;
|
|
15
|
+
validateOnRuleChange: boolean;
|
|
16
|
+
title: string;
|
|
17
|
+
fieldset: boolean;
|
|
18
|
+
border: string | number;
|
|
19
|
+
legendPosition: 'left' | 'right' | 'center';
|
|
20
|
+
}>;
|
|
21
|
+
export declare const FORM_FALLBACK: {
|
|
22
|
+
labelPosition: FormLabelPosition;
|
|
23
|
+
labelWidth: string | number | undefined;
|
|
24
|
+
errorPosition: FormErrorPosition;
|
|
25
|
+
errorBorder: boolean;
|
|
26
|
+
disabled: boolean;
|
|
27
|
+
inline: boolean;
|
|
28
|
+
size: FormSize | undefined;
|
|
29
|
+
scrollToError: boolean;
|
|
30
|
+
validateOnRuleChange: boolean;
|
|
31
|
+
title: string;
|
|
32
|
+
fieldset: boolean;
|
|
33
|
+
border: string;
|
|
34
|
+
legendPosition: "left" | "right" | "center";
|
|
35
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region components/form/config.ts
|
|
2
|
+
var FORM_FALLBACK = {
|
|
3
|
+
labelPosition: "right",
|
|
4
|
+
labelWidth: void 0,
|
|
5
|
+
errorPosition: "bottom",
|
|
6
|
+
errorBorder: false,
|
|
7
|
+
disabled: false,
|
|
8
|
+
inline: false,
|
|
9
|
+
size: void 0,
|
|
10
|
+
scrollToError: false,
|
|
11
|
+
validateOnRuleChange: true,
|
|
12
|
+
title: "",
|
|
13
|
+
fieldset: false,
|
|
14
|
+
border: "",
|
|
15
|
+
legendPosition: "left"
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
18
|
+
export { FORM_FALLBACK };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","names":[],"sources":["../../../components/form/config.ts"],"sourcesContent":["import type {\r\n FormErrorPosition,\r\n FormLabelPosition,\r\n FormSize,\r\n} from './context'\r\n\r\n/**\r\n * 可通过 `app.use(UI, { components: { Form: {...} } })` 配置的项。\r\n * 不宜全局配置:model、rules(实例数据)。\r\n */\r\nexport type FormGlobalConfig = Partial<{\r\n labelPosition: FormLabelPosition\r\n labelWidth: string | number\r\n errorPosition: FormErrorPosition\r\n errorBorder: boolean\r\n disabled: boolean\r\n inline: boolean\r\n size: FormSize\r\n scrollToError: boolean\r\n validateOnRuleChange: boolean\r\n title: string\r\n fieldset: boolean\r\n border: string | number\r\n legendPosition: 'left' | 'right' | 'center'\r\n}>\r\n\r\nexport const FORM_FALLBACK = {\r\n labelPosition: 'right' as FormLabelPosition,\r\n labelWidth: undefined as string | number | undefined,\r\n errorPosition: 'bottom' as FormErrorPosition,\r\n errorBorder: false,\r\n disabled: false,\r\n inline: false,\r\n size: undefined as FormSize | undefined,\r\n scrollToError: false,\r\n validateOnRuleChange: true,\r\n title: '',\r\n fieldset: false,\r\n border: '',\r\n legendPosition: 'left' as 'left' | 'right' | 'center',\r\n}\r\n"],"mappings":";AA0BA,IAAa,gBAAgB;CAC3B,eAAe;CACf,YAAY,KAAA;CACZ,eAAe;CACf,aAAa;CACb,UAAU;CACV,QAAQ;CACR,MAAM,KAAA;CACN,eAAe;CACf,sBAAsB;CACtB,OAAO;CACP,UAAU;CACV,QAAQ;CACR,gBAAgB;AAClB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { FormRuleItem, FormRules } from '../../config/types';
|
|
2
|
+
import { FormItemContext } from '../formItem/context';
|
|
3
|
+
export declare const FORM_KEY: unique symbol;
|
|
4
|
+
/** @deprecated 兼容旧 inject('formData') */
|
|
5
|
+
export declare const FORM_DATA_LEGACY_KEY = "formData";
|
|
6
|
+
export type FormLabelPosition = 'left' | 'right' | 'top';
|
|
7
|
+
export type FormErrorPosition = 'right' | 'bottom';
|
|
8
|
+
/** 实例高度基准(px),写入根上 `--w-size` 级联子控件 */
|
|
9
|
+
export type FormSize = number;
|
|
10
|
+
export type FormValidateCallback = (isValid: boolean, invalidFields?: Record<string, any>) => void;
|
|
11
|
+
export interface FormContext {
|
|
12
|
+
model?: Record<string, any>;
|
|
13
|
+
rules?: FormRules;
|
|
14
|
+
labelPosition: FormLabelPosition;
|
|
15
|
+
labelWidth?: string | number;
|
|
16
|
+
errorPosition: FormErrorPosition;
|
|
17
|
+
errorBorder: boolean;
|
|
18
|
+
disabled: boolean;
|
|
19
|
+
inline: boolean;
|
|
20
|
+
size?: FormSize;
|
|
21
|
+
scrollToError: boolean;
|
|
22
|
+
validateOnRuleChange: boolean;
|
|
23
|
+
addField: (field: FormItemContext) => void;
|
|
24
|
+
removeField: (field: FormItemContext) => void;
|
|
25
|
+
emitValidate: (prop: string, isValid: boolean, message: string | null) => void;
|
|
26
|
+
}
|
|
27
|
+
export interface FormExpose {
|
|
28
|
+
validate: (callback?: FormValidateCallback) => Promise<boolean>;
|
|
29
|
+
validateField: (props: string | string[], callback?: FormValidateCallback) => Promise<boolean>;
|
|
30
|
+
resetFields: (props?: string | string[]) => void;
|
|
31
|
+
clearValidate: (props?: string | string[]) => void;
|
|
32
|
+
scrollToField: (prop: string) => void;
|
|
33
|
+
}
|
|
34
|
+
export type { FormRuleItem, FormRules };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../components/form/context.ts"],"sourcesContent":["import type { FormRuleItem, FormRules } from '../../config/types'\r\nimport type { FormItemContext } from '../formItem/context'\r\n\r\nexport const FORM_KEY = Symbol('w-form')\r\n/** @deprecated 兼容旧 inject('formData') */\r\nexport const FORM_DATA_LEGACY_KEY = 'formData'\r\n\r\nexport type FormLabelPosition = 'left' | 'right' | 'top'\r\nexport type FormErrorPosition = 'right' | 'bottom'\r\n/** 实例高度基准(px),写入根上 `--w-size` 级联子控件 */\r\nexport type FormSize = number\r\nexport type FormValidateCallback = (\r\n isValid: boolean,\r\n invalidFields?: Record<string, any>,\r\n) => void\r\n\r\nexport interface FormContext {\r\n model?: Record<string, any>\r\n rules?: FormRules\r\n labelPosition: FormLabelPosition\r\n labelWidth?: string | number\r\n errorPosition: FormErrorPosition\r\n errorBorder: boolean\r\n disabled: boolean\r\n inline: boolean\r\n size?: FormSize\r\n scrollToError: boolean\r\n validateOnRuleChange: boolean\r\n addField: (field: FormItemContext) => void\r\n removeField: (field: FormItemContext) => void\r\n emitValidate: (prop: string, isValid: boolean, message: string | null) => void\r\n}\r\n\r\nexport interface FormExpose {\r\n validate: (callback?: FormValidateCallback) => Promise<boolean>\r\n validateField: (\r\n props: string | string[],\r\n callback?: FormValidateCallback,\r\n ) => Promise<boolean>\r\n resetFields: (props?: string | string[]) => void\r\n clearValidate: (props?: string | string[]) => void\r\n scrollToField: (prop: string) => void\r\n}\r\n\r\nexport type { FormRuleItem, FormRules }\r\n"],"mappings":";AAGA,IAAa,WAAW,OAAO,QAAQ;;AAEvC,IAAa,uBAAuB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import '../../../theme/tokens/components/form.css';
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { PropType, SlotsType } from 'vue';
|
|
2
|
+
import { FormRuleItem } from '../../config/types';
|
|
3
|
+
import { FormItemValidateState } from './context';
|
|
4
|
+
import { CssVars } from '../../util';
|
|
5
|
+
export type { FormItemGlobalConfig } from './config';
|
|
6
|
+
export { FORM_ITEM_FALLBACK } from './config';
|
|
7
|
+
export type { FormItemContext, FormItemExpose, FormItemValidateState, } from './context';
|
|
8
|
+
export { FORM_ITEM_KEY } from './context';
|
|
9
|
+
type FormItemSlots = {
|
|
10
|
+
label?: () => any;
|
|
11
|
+
default?: () => any;
|
|
12
|
+
error?: (message: string) => any;
|
|
13
|
+
/** @deprecated 使用 error */
|
|
14
|
+
message?: (message: string) => any;
|
|
15
|
+
};
|
|
16
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
17
|
+
label: {
|
|
18
|
+
type: StringConstructor;
|
|
19
|
+
default: any;
|
|
20
|
+
};
|
|
21
|
+
prop: {
|
|
22
|
+
type: StringConstructor;
|
|
23
|
+
default: any;
|
|
24
|
+
};
|
|
25
|
+
labelWidth: {
|
|
26
|
+
type: PropType<string | number>;
|
|
27
|
+
default: any;
|
|
28
|
+
};
|
|
29
|
+
required: {
|
|
30
|
+
type: BooleanConstructor;
|
|
31
|
+
default: any;
|
|
32
|
+
};
|
|
33
|
+
rules: {
|
|
34
|
+
type: PropType<FormRuleItem | FormRuleItem[]>;
|
|
35
|
+
default: any;
|
|
36
|
+
};
|
|
37
|
+
error: {
|
|
38
|
+
type: StringConstructor;
|
|
39
|
+
default: any;
|
|
40
|
+
};
|
|
41
|
+
validateStatus: {
|
|
42
|
+
type: PropType<FormItemValidateState>;
|
|
43
|
+
default: any;
|
|
44
|
+
};
|
|
45
|
+
showMessage: {
|
|
46
|
+
type: BooleanConstructor;
|
|
47
|
+
default: any;
|
|
48
|
+
};
|
|
49
|
+
disabled: {
|
|
50
|
+
type: BooleanConstructor;
|
|
51
|
+
default: any;
|
|
52
|
+
};
|
|
53
|
+
position: {
|
|
54
|
+
type: PropType<"top" | "bottom" | "center">;
|
|
55
|
+
default: any;
|
|
56
|
+
};
|
|
57
|
+
/** 行高基准 → `--w-prop-form-item-size` */
|
|
58
|
+
size: {
|
|
59
|
+
type: NumberConstructor;
|
|
60
|
+
default: any;
|
|
61
|
+
};
|
|
62
|
+
/** 实例 CSS 变量 */
|
|
63
|
+
cssVars: {
|
|
64
|
+
type: PropType<CssVars>;
|
|
65
|
+
default: any;
|
|
66
|
+
};
|
|
67
|
+
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
68
|
+
validate: (_payload: {
|
|
69
|
+
prop?: string;
|
|
70
|
+
isValid: boolean;
|
|
71
|
+
message: string | null;
|
|
72
|
+
}) => true;
|
|
73
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
74
|
+
label: {
|
|
75
|
+
type: StringConstructor;
|
|
76
|
+
default: any;
|
|
77
|
+
};
|
|
78
|
+
prop: {
|
|
79
|
+
type: StringConstructor;
|
|
80
|
+
default: any;
|
|
81
|
+
};
|
|
82
|
+
labelWidth: {
|
|
83
|
+
type: PropType<string | number>;
|
|
84
|
+
default: any;
|
|
85
|
+
};
|
|
86
|
+
required: {
|
|
87
|
+
type: BooleanConstructor;
|
|
88
|
+
default: any;
|
|
89
|
+
};
|
|
90
|
+
rules: {
|
|
91
|
+
type: PropType<FormRuleItem | FormRuleItem[]>;
|
|
92
|
+
default: any;
|
|
93
|
+
};
|
|
94
|
+
error: {
|
|
95
|
+
type: StringConstructor;
|
|
96
|
+
default: any;
|
|
97
|
+
};
|
|
98
|
+
validateStatus: {
|
|
99
|
+
type: PropType<FormItemValidateState>;
|
|
100
|
+
default: any;
|
|
101
|
+
};
|
|
102
|
+
showMessage: {
|
|
103
|
+
type: BooleanConstructor;
|
|
104
|
+
default: any;
|
|
105
|
+
};
|
|
106
|
+
disabled: {
|
|
107
|
+
type: BooleanConstructor;
|
|
108
|
+
default: any;
|
|
109
|
+
};
|
|
110
|
+
position: {
|
|
111
|
+
type: PropType<"top" | "bottom" | "center">;
|
|
112
|
+
default: any;
|
|
113
|
+
};
|
|
114
|
+
/** 行高基准 → `--w-prop-form-item-size` */
|
|
115
|
+
size: {
|
|
116
|
+
type: NumberConstructor;
|
|
117
|
+
default: any;
|
|
118
|
+
};
|
|
119
|
+
/** 实例 CSS 变量 */
|
|
120
|
+
cssVars: {
|
|
121
|
+
type: PropType<CssVars>;
|
|
122
|
+
default: any;
|
|
123
|
+
};
|
|
124
|
+
}>> & Readonly<{
|
|
125
|
+
onValidate?: (_payload: {
|
|
126
|
+
prop?: string;
|
|
127
|
+
isValid: boolean;
|
|
128
|
+
message: string | null;
|
|
129
|
+
}) => any;
|
|
130
|
+
}>, {
|
|
131
|
+
required: boolean;
|
|
132
|
+
label: string;
|
|
133
|
+
error: string;
|
|
134
|
+
prop: string;
|
|
135
|
+
size: number;
|
|
136
|
+
cssVars: CssVars;
|
|
137
|
+
disabled: boolean;
|
|
138
|
+
position: "top" | "bottom" | "center";
|
|
139
|
+
labelWidth: string | number;
|
|
140
|
+
showMessage: boolean;
|
|
141
|
+
rules: FormRuleItem | FormRuleItem[];
|
|
142
|
+
validateStatus: FormItemValidateState;
|
|
143
|
+
}, SlotsType<FormItemSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
144
|
+
export default _default;
|