antd-mobile 5.25.1 → 5.27.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/2x/README.md +6 -22
- package/2x/bundle/antd-mobile.cjs.development.js +1342 -1142
- package/2x/bundle/antd-mobile.cjs.js +9 -8
- package/2x/bundle/antd-mobile.es.development.js +1186 -986
- package/2x/bundle/antd-mobile.es.js +8576 -8366
- package/2x/bundle/antd-mobile.umd.development.js +1342 -1142
- package/2x/bundle/antd-mobile.umd.js +9 -8
- package/2x/bundle/style.css +29 -5
- package/2x/cjs/components/action-sheet/index.d.ts +0 -1
- package/2x/cjs/components/badge/index.d.ts +0 -1
- package/2x/cjs/components/calendar/calendar.js +9 -1
- package/2x/cjs/components/capsule-tabs/index.d.ts +0 -1
- package/2x/cjs/components/cascade-picker/index.d.ts +0 -1
- package/2x/cjs/components/cascader/index.d.ts +0 -1
- package/2x/cjs/components/cascader-view/index.d.ts +0 -1
- package/2x/cjs/components/check-list/index.d.ts +0 -1
- package/2x/cjs/components/checkbox/group-context.d.ts +0 -1
- package/2x/cjs/components/checkbox/index.d.ts +0 -1
- package/2x/cjs/components/collapse/index.d.ts +0 -1
- package/2x/cjs/components/date-picker/date-picker-date-utils.d.ts +2 -3
- package/2x/cjs/components/date-picker/date-picker-date-utils.js +14 -12
- package/2x/cjs/components/date-picker/date-picker-utils.d.ts +2 -3
- package/2x/cjs/components/date-picker/date-picker-utils.js +11 -12
- package/2x/cjs/components/date-picker/date-picker-week-utils.d.ts +0 -1
- package/2x/cjs/components/date-picker/date-picker-week-utils.js +0 -4
- package/2x/cjs/components/date-picker/date-picker.d.ts +20 -16
- package/2x/cjs/components/date-picker/date-picker.js +12 -3
- package/2x/cjs/components/date-picker/index.d.ts +10 -9
- package/2x/cjs/components/date-picker/index.js +3 -1
- package/2x/cjs/components/date-picker/prompt.d.ts +2 -1
- package/2x/cjs/components/date-picker/util.d.ts +4 -0
- package/2x/cjs/components/date-picker/util.js +8 -0
- package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +2 -1
- package/2x/cjs/components/date-picker-view/date-picker-view.js +7 -3
- package/2x/cjs/components/date-picker-view/useRenderLabel.d.ts +2 -0
- package/2x/cjs/components/date-picker-view/useRenderLabel.js +29 -0
- package/2x/cjs/components/dialog/index.d.ts +0 -1
- package/2x/cjs/components/dropdown/index.d.ts +0 -1
- package/2x/cjs/components/error-block/error-block.d.ts +0 -1
- package/2x/cjs/components/error-block/images/busy.d.ts +0 -1
- package/2x/cjs/components/error-block/images/default.d.ts +0 -1
- package/2x/cjs/components/error-block/images/disconnected.d.ts +0 -1
- package/2x/cjs/components/error-block/images/empty.d.ts +0 -1
- package/2x/cjs/components/floating-bubble/floating-bubble.d.ts +8 -0
- package/2x/cjs/components/floating-bubble/floating-bubble.js +25 -5
- package/2x/cjs/components/form/form.d.ts +1 -1
- package/2x/cjs/components/form/index.d.ts +0 -1
- package/2x/cjs/components/grid/index.d.ts +0 -1
- package/2x/cjs/components/image-uploader/image-uploader.css +16 -1
- package/2x/cjs/components/image-uploader/image-uploader.d.ts +4 -1
- package/2x/cjs/components/image-uploader/image-uploader.js +52 -12
- package/2x/cjs/components/image-uploader/preview-item.d.ts +2 -1
- package/2x/cjs/components/image-uploader/preview-item.js +5 -7
- package/2x/cjs/components/image-viewer/index.d.ts +0 -1
- package/2x/cjs/components/index-bar/index.d.ts +0 -1
- package/2x/cjs/components/jumbo-tabs/index.d.ts +0 -1
- package/2x/cjs/components/list/index.d.ts +0 -1
- package/2x/cjs/components/mask/mask.d.ts +1 -1
- package/2x/cjs/components/mask/mask.js +6 -2
- package/2x/cjs/components/modal/index.d.ts +0 -1
- package/2x/cjs/components/notice-bar/notice-bar.css +13 -4
- package/2x/cjs/components/notice-bar/notice-bar.d.ts +10 -8
- package/2x/cjs/components/notice-bar/notice-bar.js +5 -2
- package/2x/cjs/components/popover/index.d.ts +0 -1
- package/2x/cjs/components/radio/group-context.d.ts +0 -1
- package/2x/cjs/components/radio/index.d.ts +0 -1
- package/2x/cjs/components/result-page/index.d.ts +0 -1
- package/2x/cjs/components/side-bar/index.d.ts +0 -1
- package/2x/cjs/components/skeleton/index.d.ts +0 -1
- package/2x/cjs/components/slider/slider.js +8 -3
- package/2x/cjs/components/stepper/stepper.d.ts +23 -14
- package/2x/cjs/components/stepper/stepper.js +111 -54
- package/2x/cjs/components/steps/index.d.ts +0 -1
- package/2x/cjs/components/swiper/index.d.ts +0 -1
- package/2x/cjs/components/tab-bar/index.d.ts +0 -1
- package/2x/cjs/components/tabs/index.d.ts +0 -1
- package/2x/cjs/components/tree-select/index.d.ts +0 -1
- package/2x/cjs/components/water-mark/water-mark.d.ts +1 -1
- package/2x/cjs/components/water-mark/water-mark.js +5 -1
- package/2x/cjs/locales/base.d.ts +3 -0
- package/2x/cjs/locales/base.js +3 -0
- package/2x/cjs/locales/en-US.d.ts +3 -0
- package/2x/cjs/locales/es-ES.d.ts +3 -0
- package/2x/cjs/locales/fa-IR.d.ts +3 -0
- package/2x/cjs/locales/fr-FR.d.ts +3 -0
- package/2x/cjs/locales/id-ID.d.ts +3 -0
- package/2x/cjs/locales/ja-JP.d.ts +3 -0
- package/2x/cjs/locales/kk-KZ.d.ts +3 -0
- package/2x/cjs/locales/ko-KR.d.ts +3 -0
- package/2x/cjs/locales/zh-CN.d.ts +3 -0
- package/2x/cjs/locales/zh-CN.js +3 -0
- package/2x/cjs/locales/zh-HK.d.ts +3 -0
- package/2x/cjs/locales/zh-TW.d.ts +3 -0
- package/2x/cjs/utils/use-isomorphic-update-layout-effect.d.ts +0 -1
- package/2x/cjs/utils/use-ref-state.d.ts +0 -1
- package/2x/es/components/action-sheet/index.d.ts +0 -1
- package/2x/es/components/badge/index.d.ts +0 -1
- package/2x/es/components/calendar/calendar.js +9 -1
- package/2x/es/components/capsule-tabs/index.d.ts +0 -1
- package/2x/es/components/cascade-picker/index.d.ts +0 -1
- package/2x/es/components/cascader/index.d.ts +0 -1
- package/2x/es/components/cascader-view/index.d.ts +0 -1
- package/2x/es/components/check-list/index.d.ts +0 -1
- package/2x/es/components/checkbox/group-context.d.ts +0 -1
- package/2x/es/components/checkbox/index.d.ts +0 -1
- package/2x/es/components/collapse/index.d.ts +0 -1
- package/2x/es/components/date-picker/date-picker-date-utils.d.ts +2 -3
- package/2x/es/components/date-picker/date-picker-date-utils.js +14 -11
- package/2x/es/components/date-picker/date-picker-utils.d.ts +2 -3
- package/2x/es/components/date-picker/date-picker-utils.js +9 -9
- package/2x/es/components/date-picker/date-picker-week-utils.d.ts +0 -1
- package/2x/es/components/date-picker/date-picker-week-utils.js +0 -3
- package/2x/es/components/date-picker/date-picker.d.ts +20 -16
- package/2x/es/components/date-picker/date-picker.js +13 -4
- package/2x/es/components/date-picker/index.d.ts +10 -9
- package/2x/es/components/date-picker/index.js +3 -1
- package/2x/es/components/date-picker/prompt.d.ts +2 -1
- package/2x/es/components/date-picker/util.d.ts +4 -0
- package/2x/es/components/date-picker/util.js +1 -0
- package/2x/es/components/date-picker-view/date-picker-view.d.ts +2 -1
- package/2x/es/components/date-picker-view/date-picker-view.js +8 -4
- package/2x/es/components/date-picker-view/useRenderLabel.d.ts +2 -0
- package/2x/es/components/date-picker-view/useRenderLabel.js +23 -0
- package/2x/es/components/dialog/index.d.ts +0 -1
- package/2x/es/components/dropdown/index.d.ts +0 -1
- package/2x/es/components/error-block/error-block.d.ts +0 -1
- package/2x/es/components/error-block/images/busy.d.ts +0 -1
- package/2x/es/components/error-block/images/default.d.ts +0 -1
- package/2x/es/components/error-block/images/disconnected.d.ts +0 -1
- package/2x/es/components/error-block/images/empty.d.ts +0 -1
- package/2x/es/components/floating-bubble/floating-bubble.d.ts +8 -0
- package/2x/es/components/floating-bubble/floating-bubble.js +26 -6
- package/2x/es/components/form/form.d.ts +1 -1
- package/2x/es/components/form/index.d.ts +0 -1
- package/2x/es/components/grid/index.d.ts +0 -1
- package/2x/es/components/image-uploader/image-uploader.css +16 -1
- package/2x/es/components/image-uploader/image-uploader.d.ts +4 -1
- package/2x/es/components/image-uploader/image-uploader.js +54 -14
- package/2x/es/components/image-uploader/preview-item.d.ts +2 -1
- package/2x/es/components/image-uploader/preview-item.js +6 -8
- package/2x/es/components/image-viewer/index.d.ts +0 -1
- package/2x/es/components/index-bar/index.d.ts +0 -1
- package/2x/es/components/jumbo-tabs/index.d.ts +0 -1
- package/2x/es/components/list/index.d.ts +0 -1
- package/2x/es/components/mask/mask.d.ts +1 -1
- package/2x/es/components/mask/mask.js +6 -2
- package/2x/es/components/modal/index.d.ts +0 -1
- package/2x/es/components/notice-bar/notice-bar.css +13 -4
- package/2x/es/components/notice-bar/notice-bar.d.ts +10 -8
- package/2x/es/components/notice-bar/notice-bar.js +5 -2
- package/2x/es/components/popover/index.d.ts +0 -1
- package/2x/es/components/radio/group-context.d.ts +0 -1
- package/2x/es/components/radio/index.d.ts +0 -1
- package/2x/es/components/result-page/index.d.ts +0 -1
- package/2x/es/components/side-bar/index.d.ts +0 -1
- package/2x/es/components/skeleton/index.d.ts +0 -1
- package/2x/es/components/slider/slider.js +8 -3
- package/2x/es/components/stepper/stepper.d.ts +23 -14
- package/2x/es/components/stepper/stepper.js +110 -52
- package/2x/es/components/steps/index.d.ts +0 -1
- package/2x/es/components/swiper/index.d.ts +0 -1
- package/2x/es/components/tab-bar/index.d.ts +0 -1
- package/2x/es/components/tabs/index.d.ts +0 -1
- package/2x/es/components/tree-select/index.d.ts +0 -1
- package/2x/es/components/water-mark/water-mark.d.ts +1 -1
- package/2x/es/components/water-mark/water-mark.js +5 -1
- package/2x/es/locales/base.d.ts +3 -0
- package/2x/es/locales/base.js +3 -0
- package/2x/es/locales/en-US.d.ts +3 -0
- package/2x/es/locales/es-ES.d.ts +3 -0
- package/2x/es/locales/fa-IR.d.ts +3 -0
- package/2x/es/locales/fr-FR.d.ts +3 -0
- package/2x/es/locales/id-ID.d.ts +3 -0
- package/2x/es/locales/ja-JP.d.ts +3 -0
- package/2x/es/locales/kk-KZ.d.ts +3 -0
- package/2x/es/locales/ko-KR.d.ts +3 -0
- package/2x/es/locales/zh-CN.d.ts +3 -0
- package/2x/es/locales/zh-CN.js +3 -0
- package/2x/es/locales/zh-HK.d.ts +3 -0
- package/2x/es/locales/zh-TW.d.ts +3 -0
- package/2x/es/utils/use-isomorphic-update-layout-effect.d.ts +0 -1
- package/2x/es/utils/use-ref-state.d.ts +0 -1
- package/2x/package.json +11 -10
- package/README.md +6 -22
- package/bundle/antd-mobile.cjs.development.js +1342 -1142
- package/bundle/antd-mobile.cjs.js +9 -8
- package/bundle/antd-mobile.compatible.umd.js +1 -1
- package/bundle/antd-mobile.es.development.js +1186 -986
- package/bundle/antd-mobile.es.js +8576 -8366
- package/bundle/antd-mobile.umd.development.js +1342 -1142
- package/bundle/antd-mobile.umd.js +9 -8
- package/bundle/style.css +1 -1
- package/cjs/components/action-sheet/index.d.ts +0 -1
- package/cjs/components/badge/index.d.ts +0 -1
- package/cjs/components/calendar/calendar.js +9 -1
- package/cjs/components/capsule-tabs/index.d.ts +0 -1
- package/cjs/components/cascade-picker/index.d.ts +0 -1
- package/cjs/components/cascader/index.d.ts +0 -1
- package/cjs/components/cascader-view/index.d.ts +0 -1
- package/cjs/components/check-list/index.d.ts +0 -1
- package/cjs/components/checkbox/group-context.d.ts +0 -1
- package/cjs/components/checkbox/index.d.ts +0 -1
- package/cjs/components/collapse/index.d.ts +0 -1
- package/cjs/components/date-picker/date-picker-date-utils.d.ts +2 -3
- package/cjs/components/date-picker/date-picker-date-utils.js +14 -12
- package/cjs/components/date-picker/date-picker-utils.d.ts +2 -3
- package/cjs/components/date-picker/date-picker-utils.js +11 -12
- package/cjs/components/date-picker/date-picker-week-utils.d.ts +0 -1
- package/cjs/components/date-picker/date-picker-week-utils.js +0 -4
- package/cjs/components/date-picker/date-picker.d.ts +20 -16
- package/cjs/components/date-picker/date-picker.js +12 -3
- package/cjs/components/date-picker/index.d.ts +10 -9
- package/cjs/components/date-picker/index.js +3 -1
- package/cjs/components/date-picker/prompt.d.ts +2 -1
- package/cjs/components/date-picker/util.d.ts +4 -0
- package/cjs/components/date-picker/util.js +8 -0
- package/cjs/components/date-picker-view/date-picker-view.d.ts +2 -1
- package/cjs/components/date-picker-view/date-picker-view.js +7 -3
- package/cjs/components/date-picker-view/useRenderLabel.d.ts +2 -0
- package/cjs/components/date-picker-view/useRenderLabel.js +29 -0
- package/cjs/components/dialog/index.d.ts +0 -1
- package/cjs/components/dropdown/index.d.ts +0 -1
- package/cjs/components/error-block/error-block.d.ts +0 -1
- package/cjs/components/error-block/images/busy.d.ts +0 -1
- package/cjs/components/error-block/images/default.d.ts +0 -1
- package/cjs/components/error-block/images/disconnected.d.ts +0 -1
- package/cjs/components/error-block/images/empty.d.ts +0 -1
- package/cjs/components/floating-bubble/floating-bubble.d.ts +8 -0
- package/cjs/components/floating-bubble/floating-bubble.js +25 -5
- package/cjs/components/form/form.d.ts +1 -1
- package/cjs/components/form/index.d.ts +0 -1
- package/cjs/components/grid/index.d.ts +0 -1
- package/cjs/components/image-uploader/image-uploader.css +15 -1
- package/cjs/components/image-uploader/image-uploader.d.ts +4 -1
- package/cjs/components/image-uploader/image-uploader.js +52 -12
- package/cjs/components/image-uploader/preview-item.d.ts +2 -1
- package/cjs/components/image-uploader/preview-item.js +5 -7
- package/cjs/components/image-viewer/index.d.ts +0 -1
- package/cjs/components/index-bar/index.d.ts +0 -1
- package/cjs/components/jumbo-tabs/index.d.ts +0 -1
- package/cjs/components/list/index.d.ts +0 -1
- package/cjs/components/mask/mask.d.ts +1 -1
- package/cjs/components/mask/mask.js +6 -2
- package/cjs/components/modal/index.d.ts +0 -1
- package/cjs/components/notice-bar/notice-bar.css +11 -4
- package/cjs/components/notice-bar/notice-bar.d.ts +10 -8
- package/cjs/components/notice-bar/notice-bar.js +5 -2
- package/cjs/components/popover/index.d.ts +0 -1
- package/cjs/components/radio/group-context.d.ts +0 -1
- package/cjs/components/radio/index.d.ts +0 -1
- package/cjs/components/result-page/index.d.ts +0 -1
- package/cjs/components/side-bar/index.d.ts +0 -1
- package/cjs/components/skeleton/index.d.ts +0 -1
- package/cjs/components/slider/slider.js +8 -3
- package/cjs/components/stepper/stepper.d.ts +23 -14
- package/cjs/components/stepper/stepper.js +111 -54
- package/cjs/components/steps/index.d.ts +0 -1
- package/cjs/components/swiper/index.d.ts +0 -1
- package/cjs/components/tab-bar/index.d.ts +0 -1
- package/cjs/components/tabs/index.d.ts +0 -1
- package/cjs/components/tree-select/index.d.ts +0 -1
- package/cjs/components/water-mark/water-mark.d.ts +1 -1
- package/cjs/components/water-mark/water-mark.js +5 -1
- package/cjs/locales/base.d.ts +3 -0
- package/cjs/locales/base.js +3 -0
- package/cjs/locales/en-US.d.ts +3 -0
- package/cjs/locales/es-ES.d.ts +3 -0
- package/cjs/locales/fa-IR.d.ts +3 -0
- package/cjs/locales/fr-FR.d.ts +3 -0
- package/cjs/locales/id-ID.d.ts +3 -0
- package/cjs/locales/ja-JP.d.ts +3 -0
- package/cjs/locales/kk-KZ.d.ts +3 -0
- package/cjs/locales/ko-KR.d.ts +3 -0
- package/cjs/locales/zh-CN.d.ts +3 -0
- package/cjs/locales/zh-CN.js +3 -0
- package/cjs/locales/zh-HK.d.ts +3 -0
- package/cjs/locales/zh-TW.d.ts +3 -0
- package/cjs/utils/use-isomorphic-update-layout-effect.d.ts +0 -1
- package/cjs/utils/use-ref-state.d.ts +0 -1
- package/es/components/action-sheet/index.d.ts +0 -1
- package/es/components/badge/index.d.ts +0 -1
- package/es/components/calendar/calendar.js +9 -1
- package/es/components/capsule-tabs/index.d.ts +0 -1
- package/es/components/cascade-picker/index.d.ts +0 -1
- package/es/components/cascader/index.d.ts +0 -1
- package/es/components/cascader-view/index.d.ts +0 -1
- package/es/components/check-list/index.d.ts +0 -1
- package/es/components/checkbox/group-context.d.ts +0 -1
- package/es/components/checkbox/index.d.ts +0 -1
- package/es/components/collapse/index.d.ts +0 -1
- package/es/components/date-picker/date-picker-date-utils.d.ts +2 -3
- package/es/components/date-picker/date-picker-date-utils.js +14 -11
- package/es/components/date-picker/date-picker-utils.d.ts +2 -3
- package/es/components/date-picker/date-picker-utils.js +9 -9
- package/es/components/date-picker/date-picker-week-utils.d.ts +0 -1
- package/es/components/date-picker/date-picker-week-utils.js +0 -3
- package/es/components/date-picker/date-picker.d.ts +20 -16
- package/es/components/date-picker/date-picker.js +13 -4
- package/es/components/date-picker/index.d.ts +10 -9
- package/es/components/date-picker/index.js +3 -1
- package/es/components/date-picker/prompt.d.ts +2 -1
- package/es/components/date-picker/util.d.ts +4 -0
- package/es/components/date-picker/util.js +1 -0
- package/es/components/date-picker-view/date-picker-view.d.ts +2 -1
- package/es/components/date-picker-view/date-picker-view.js +8 -4
- package/es/components/date-picker-view/useRenderLabel.d.ts +2 -0
- package/es/components/date-picker-view/useRenderLabel.js +23 -0
- package/es/components/dialog/index.d.ts +0 -1
- package/es/components/dropdown/index.d.ts +0 -1
- package/es/components/error-block/error-block.d.ts +0 -1
- package/es/components/error-block/images/busy.d.ts +0 -1
- package/es/components/error-block/images/default.d.ts +0 -1
- package/es/components/error-block/images/disconnected.d.ts +0 -1
- package/es/components/error-block/images/empty.d.ts +0 -1
- package/es/components/floating-bubble/floating-bubble.d.ts +8 -0
- package/es/components/floating-bubble/floating-bubble.js +26 -6
- package/es/components/form/form.d.ts +1 -1
- package/es/components/form/index.d.ts +0 -1
- package/es/components/grid/index.d.ts +0 -1
- package/es/components/image-uploader/image-uploader.css +15 -1
- package/es/components/image-uploader/image-uploader.d.ts +4 -1
- package/es/components/image-uploader/image-uploader.js +54 -14
- package/es/components/image-uploader/preview-item.d.ts +2 -1
- package/es/components/image-uploader/preview-item.js +6 -8
- package/es/components/image-viewer/index.d.ts +0 -1
- package/es/components/index-bar/index.d.ts +0 -1
- package/es/components/jumbo-tabs/index.d.ts +0 -1
- package/es/components/list/index.d.ts +0 -1
- package/es/components/mask/mask.d.ts +1 -1
- package/es/components/mask/mask.js +6 -2
- package/es/components/modal/index.d.ts +0 -1
- package/es/components/notice-bar/notice-bar.css +11 -4
- package/es/components/notice-bar/notice-bar.d.ts +10 -8
- package/es/components/notice-bar/notice-bar.js +5 -2
- package/es/components/popover/index.d.ts +0 -1
- package/es/components/radio/group-context.d.ts +0 -1
- package/es/components/radio/index.d.ts +0 -1
- package/es/components/result-page/index.d.ts +0 -1
- package/es/components/side-bar/index.d.ts +0 -1
- package/es/components/skeleton/index.d.ts +0 -1
- package/es/components/slider/slider.js +8 -3
- package/es/components/stepper/stepper.d.ts +23 -14
- package/es/components/stepper/stepper.js +110 -52
- package/es/components/steps/index.d.ts +0 -1
- package/es/components/swiper/index.d.ts +0 -1
- package/es/components/tab-bar/index.d.ts +0 -1
- package/es/components/tabs/index.d.ts +0 -1
- package/es/components/tree-select/index.d.ts +0 -1
- package/es/components/water-mark/water-mark.d.ts +1 -1
- package/es/components/water-mark/water-mark.js +5 -1
- package/es/locales/base.d.ts +3 -0
- package/es/locales/base.js +3 -0
- package/es/locales/en-US.d.ts +3 -0
- package/es/locales/es-ES.d.ts +3 -0
- package/es/locales/fa-IR.d.ts +3 -0
- package/es/locales/fr-FR.d.ts +3 -0
- package/es/locales/id-ID.d.ts +3 -0
- package/es/locales/ja-JP.d.ts +3 -0
- package/es/locales/kk-KZ.d.ts +3 -0
- package/es/locales/ko-KR.d.ts +3 -0
- package/es/locales/zh-CN.d.ts +3 -0
- package/es/locales/zh-CN.js +3 -0
- package/es/locales/zh-HK.d.ts +3 -0
- package/es/locales/zh-TW.d.ts +3 -0
- package/es/utils/use-isomorphic-update-layout-effect.d.ts +0 -1
- package/es/utils/use-ref-state.d.ts +0 -1
- package/package.json +11 -10
- package/umd/antd-mobile.js +1 -1
- package/2x/cjs/components/image/test/image.test.d.ts +0 -1
- package/2x/cjs/components/image/test/image.test.js +0 -73
- package/2x/es/components/image/test/image.test.d.ts +0 -1
- package/2x/es/components/image/test/image.test.js +0 -70
- package/cjs/components/image/test/image.test.d.ts +0 -1
- package/cjs/components/image/test/image.test.js +0 -73
- package/es/components/image/test/image.test.d.ts +0 -1
- package/es/components/image/test/image.test.js +0 -70
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as dateUtils from './date-picker-date-utils';
|
|
2
2
|
import * as weekUtils from './date-picker-week-utils';
|
|
3
|
+
import { TILL_NOW } from './util';
|
|
3
4
|
const precisionLengthRecord = {
|
|
4
5
|
year: 1,
|
|
5
6
|
month: 2,
|
|
@@ -18,23 +19,22 @@ export const convertDateToStringArray = (date, precision) => {
|
|
|
18
19
|
}
|
|
19
20
|
};
|
|
20
21
|
export const convertStringArrayToDate = (value, precision) => {
|
|
22
|
+
// Special case for DATE_NOW
|
|
23
|
+
if ((value === null || value === void 0 ? void 0 : value[0]) === TILL_NOW) {
|
|
24
|
+
const now = new Date();
|
|
25
|
+
now.tillNow = true;
|
|
26
|
+
return now;
|
|
27
|
+
}
|
|
21
28
|
if (precision.includes('week')) {
|
|
22
29
|
return weekUtils.convertStringArrayToDate(value);
|
|
23
30
|
} else {
|
|
24
31
|
return dateUtils.convertStringArrayToDate(value);
|
|
25
32
|
}
|
|
26
33
|
};
|
|
27
|
-
export const generateDatePickerColumns = (selected, min, max, precision, renderLabel, filter) => {
|
|
34
|
+
export const generateDatePickerColumns = (selected, min, max, precision, renderLabel, filter, tillNow) => {
|
|
28
35
|
if (precision.startsWith('week')) {
|
|
29
36
|
return weekUtils.generateDatePickerColumns(selected, min, max, precision, renderLabel, filter);
|
|
30
37
|
} else {
|
|
31
|
-
return dateUtils.generateDatePickerColumns(selected, min, max, precision, renderLabel, filter);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
export const defaultRenderLabel = (precision, data) => {
|
|
35
|
-
if (precision.includes('week')) {
|
|
36
|
-
return weekUtils.defaultRenderLabel(precision, data);
|
|
37
|
-
} else {
|
|
38
|
-
return dateUtils.defaultRenderLabel(precision, data);
|
|
38
|
+
return dateUtils.generateDatePickerColumns(selected, min, max, precision, renderLabel, filter, tillNow);
|
|
39
39
|
}
|
|
40
40
|
};
|
|
@@ -2,7 +2,6 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
import { PickerColumn } from '../picker';
|
|
3
3
|
import type { DatePickerFilter } from './date-picker-utils';
|
|
4
4
|
export declare type WeekPrecision = 'year' | 'week' | 'week-day';
|
|
5
|
-
export declare function defaultRenderLabel(type: WeekPrecision, data: number): string;
|
|
6
5
|
export declare function generateDatePickerColumns(selected: string[], min: Date, max: Date, precision: WeekPrecision, renderLabel: (type: WeekPrecision, data: number) => ReactNode, filter: DatePickerFilter | undefined): PickerColumn[];
|
|
7
6
|
export declare function convertDateToStringArray(date: Date | undefined | null): string[];
|
|
8
7
|
export declare function convertStringArrayToDate(value: (string | null | undefined)[]): Date;
|
|
@@ -10,9 +10,6 @@ const precisionRankRecord = {
|
|
|
10
10
|
week: 1,
|
|
11
11
|
'week-day': 2
|
|
12
12
|
};
|
|
13
|
-
export function defaultRenderLabel(type, data) {
|
|
14
|
-
return data.toString();
|
|
15
|
-
}
|
|
16
13
|
export function generateDatePickerColumns(selected, min, max, precision, renderLabel, filter) {
|
|
17
14
|
const ret = [];
|
|
18
15
|
const minYear = min.getFullYear();
|
|
@@ -2,32 +2,36 @@ import React, { ReactNode } from 'react';
|
|
|
2
2
|
import type { PickerProps, PickerRef, PickerActions } from '../picker';
|
|
3
3
|
import { NativeProps } from '../../utils/native-props';
|
|
4
4
|
import type { Precision, DatePickerFilter } from './date-picker-utils';
|
|
5
|
+
import type { RenderLabel } from '../date-picker-view/date-picker-view';
|
|
6
|
+
import type { PickerDate } from './util';
|
|
5
7
|
export declare type DatePickerRef = PickerRef;
|
|
6
8
|
export declare type DatePickerProps = Pick<PickerProps, 'onCancel' | 'onClose' | 'closeOnMaskClick' | 'visible' | 'confirmText' | 'cancelText' | 'getContainer' | 'loading' | 'loadingContent' | 'afterShow' | 'afterClose' | 'onClick' | 'title' | 'stopPropagation' | 'style' | 'mouseWheel' | 'forceRender' | 'destroyOnClose'> & {
|
|
7
|
-
value?:
|
|
8
|
-
defaultValue?:
|
|
9
|
-
onSelect?: (value:
|
|
10
|
-
onConfirm?: (value:
|
|
11
|
-
min?:
|
|
12
|
-
max?:
|
|
9
|
+
value?: PickerDate | null;
|
|
10
|
+
defaultValue?: PickerDate | null;
|
|
11
|
+
onSelect?: (value: PickerDate) => void;
|
|
12
|
+
onConfirm?: (value: PickerDate) => void;
|
|
13
|
+
min?: PickerDate;
|
|
14
|
+
max?: PickerDate;
|
|
13
15
|
precision?: Precision;
|
|
14
|
-
children?: (value:
|
|
15
|
-
renderLabel?:
|
|
16
|
+
children?: (value: PickerDate | null, actions: PickerActions) => ReactNode;
|
|
17
|
+
renderLabel?: RenderLabel;
|
|
16
18
|
filter?: DatePickerFilter;
|
|
19
|
+
tillNow?: boolean;
|
|
17
20
|
} & NativeProps;
|
|
18
21
|
export declare const DatePicker: React.ForwardRefExoticComponent<Pick<PickerProps, "style" | "title" | "onClick" | "visible" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation" | "onCancel" | "onClose" | "loading" | "closeOnMaskClick" | "cancelText" | "mouseWheel" | "loadingContent" | "confirmText"> & {
|
|
19
|
-
value?:
|
|
20
|
-
defaultValue?:
|
|
21
|
-
onSelect?: ((value:
|
|
22
|
-
onConfirm?: ((value:
|
|
23
|
-
min?:
|
|
24
|
-
max?:
|
|
22
|
+
value?: PickerDate | null | undefined;
|
|
23
|
+
defaultValue?: PickerDate | null | undefined;
|
|
24
|
+
onSelect?: ((value: PickerDate) => void) | undefined;
|
|
25
|
+
onConfirm?: ((value: PickerDate) => void) | undefined;
|
|
26
|
+
min?: PickerDate | undefined;
|
|
27
|
+
max?: PickerDate | undefined;
|
|
25
28
|
precision?: Precision | undefined;
|
|
26
|
-
children?: ((value:
|
|
27
|
-
renderLabel?:
|
|
29
|
+
children?: ((value: PickerDate | null, actions: PickerActions) => ReactNode) | undefined;
|
|
30
|
+
renderLabel?: RenderLabel | undefined;
|
|
28
31
|
filter?: Partial<Record<Precision, (val: number, extend: {
|
|
29
32
|
date: Date;
|
|
30
33
|
}) => boolean>> | undefined;
|
|
34
|
+
tillNow?: boolean | undefined;
|
|
31
35
|
} & {
|
|
32
36
|
className?: string | undefined;
|
|
33
37
|
style?: (React.CSSProperties & Partial<Record<never, string>>) | undefined;
|
|
@@ -4,18 +4,22 @@ import Picker from '../picker';
|
|
|
4
4
|
import { withNativeProps } from '../../utils/native-props';
|
|
5
5
|
import { mergeProps } from '../../utils/with-default-props';
|
|
6
6
|
import { usePropsValue } from '../../utils/use-props-value';
|
|
7
|
-
import { convertDateToStringArray, convertStringArrayToDate, generateDatePickerColumns
|
|
7
|
+
import { convertDateToStringArray, convertStringArrayToDate, generateDatePickerColumns } from './date-picker-utils';
|
|
8
8
|
import { bound } from '../../utils/bound';
|
|
9
|
+
import useRenderLabel from '../date-picker-view/useRenderLabel';
|
|
10
|
+
import { TILL_NOW } from './util';
|
|
9
11
|
const thisYear = new Date().getFullYear();
|
|
10
12
|
const defaultProps = {
|
|
11
13
|
min: new Date(new Date().setFullYear(thisYear - 10)),
|
|
12
14
|
max: new Date(new Date().setFullYear(thisYear + 10)),
|
|
13
15
|
precision: 'day',
|
|
14
|
-
renderLabel: defaultRenderLabel,
|
|
15
16
|
defaultValue: null
|
|
16
17
|
};
|
|
17
18
|
export const DatePicker = forwardRef((p, ref) => {
|
|
18
19
|
const props = mergeProps(defaultProps, p);
|
|
20
|
+
const {
|
|
21
|
+
renderLabel
|
|
22
|
+
} = props;
|
|
19
23
|
const [value, setValue] = usePropsValue({
|
|
20
24
|
value: props.value,
|
|
21
25
|
defaultValue: props.defaultValue,
|
|
@@ -26,20 +30,25 @@ export const DatePicker = forwardRef((p, ref) => {
|
|
|
26
30
|
}
|
|
27
31
|
});
|
|
28
32
|
const now = useMemo(() => new Date(), []);
|
|
33
|
+
const mergedRenderLabel = useRenderLabel(renderLabel);
|
|
29
34
|
const pickerValue = useMemo(() => {
|
|
30
35
|
let date = value !== null && value !== void 0 ? value : now;
|
|
36
|
+
if (date.tillNow) {
|
|
37
|
+
return [TILL_NOW];
|
|
38
|
+
}
|
|
31
39
|
date = new Date(bound(date.getTime(), props.min.getTime(), props.max.getTime()));
|
|
32
40
|
return convertDateToStringArray(date, props.precision);
|
|
33
41
|
}, [value, props.precision, props.min, props.max]);
|
|
34
42
|
const onConfirm = useCallback(val => {
|
|
35
|
-
|
|
43
|
+
const date = convertStringArrayToDate(val, props.precision);
|
|
44
|
+
setValue(date, true);
|
|
36
45
|
}, [setValue, props.precision]);
|
|
37
46
|
const onSelect = useMemoizedFn(val => {
|
|
38
47
|
var _a;
|
|
39
48
|
const date = convertStringArrayToDate(val, props.precision);
|
|
40
49
|
(_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, date);
|
|
41
50
|
});
|
|
42
|
-
const columns = useCallback(selected => generateDatePickerColumns(selected, props.min, props.max, props.precision, props.
|
|
51
|
+
const columns = useCallback(selected => generateDatePickerColumns(selected, props.min, props.max, props.precision, mergedRenderLabel, props.filter, props.tillNow), [props.min, props.max, props.precision, mergedRenderLabel, props.tillNow]);
|
|
43
52
|
return withNativeProps(props, React.createElement(Picker, {
|
|
44
53
|
ref: ref,
|
|
45
54
|
columns: columns,
|
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import './date-picker.less';
|
|
3
2
|
import { prompt } from './prompt';
|
|
4
3
|
export type { DatePickerProps, DatePickerRef } from './date-picker';
|
|
5
4
|
export type { DatePickerFilter } from './date-picker-utils';
|
|
6
5
|
declare const _default: import("react").ForwardRefExoticComponent<Pick<import("../picker").PickerProps, "style" | "title" | "onClick" | "visible" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation" | "onCancel" | "onClose" | "loading" | "closeOnMaskClick" | "cancelText" | "mouseWheel" | "loadingContent" | "confirmText"> & {
|
|
7
|
-
value?:
|
|
8
|
-
defaultValue?:
|
|
9
|
-
onSelect?: ((value:
|
|
10
|
-
onConfirm?: ((value:
|
|
11
|
-
min?:
|
|
12
|
-
max?:
|
|
6
|
+
value?: import("./util").PickerDate | null | undefined;
|
|
7
|
+
defaultValue?: import("./util").PickerDate | null | undefined;
|
|
8
|
+
onSelect?: ((value: import("./util").PickerDate) => void) | undefined;
|
|
9
|
+
onConfirm?: ((value: import("./util").PickerDate) => void) | undefined;
|
|
10
|
+
min?: import("./util").PickerDate | undefined;
|
|
11
|
+
max?: import("./util").PickerDate | undefined;
|
|
13
12
|
precision?: import("./date-picker-utils").Precision | undefined;
|
|
14
|
-
children?: ((value:
|
|
15
|
-
renderLabel?:
|
|
13
|
+
children?: ((value: import("./util").PickerDate | null, actions: import("../picker").PickerActions) => import("react").ReactNode) | undefined;
|
|
14
|
+
renderLabel?: import("../date-picker-view/date-picker-view").RenderLabel | undefined;
|
|
16
15
|
filter?: Partial<Record<import("./date-picker-utils").Precision, (val: number, extend: {
|
|
17
16
|
date: Date;
|
|
18
17
|
}) => boolean>> | undefined;
|
|
18
|
+
tillNow?: boolean | undefined;
|
|
19
19
|
} & {
|
|
20
20
|
className?: string | undefined;
|
|
21
21
|
style?: (import("react").CSSProperties & Partial<Record<never, string>>) | undefined;
|
|
22
22
|
tabIndex?: number | undefined;
|
|
23
23
|
} & import("react").AriaAttributes & import("react").RefAttributes<import("../picker").PickerActions>> & {
|
|
24
24
|
prompt: typeof prompt;
|
|
25
|
+
DATE_NOW: string;
|
|
25
26
|
};
|
|
26
27
|
export default _default;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import "./date-picker.css";
|
|
2
2
|
import { attachPropertiesToComponent } from '../../utils/attach-properties-to-component';
|
|
3
3
|
import { DatePicker } from './date-picker';
|
|
4
|
+
import { TILL_NOW } from './util';
|
|
4
5
|
import { prompt } from './prompt';
|
|
5
6
|
export default attachPropertiesToComponent(DatePicker, {
|
|
6
|
-
prompt
|
|
7
|
+
prompt,
|
|
8
|
+
DATE_NOW: TILL_NOW
|
|
7
9
|
});
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { DatePickerProps } from './date-picker';
|
|
2
|
-
|
|
2
|
+
import type { PickerDate } from './util';
|
|
3
|
+
export declare function prompt(props: Omit<DatePickerProps, 'value' | 'visible' | 'children'>): Promise<PickerDate | null>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const TILL_NOW = 'TILL_NOW';
|
|
@@ -2,6 +2,7 @@ import { FC, ReactNode } from 'react';
|
|
|
2
2
|
import type { PickerViewProps } from '../picker-view';
|
|
3
3
|
import { NativeProps } from '../../utils/native-props';
|
|
4
4
|
import type { Precision, DatePickerFilter } from '../date-picker/date-picker-utils';
|
|
5
|
+
export declare type RenderLabel = (type: Precision | 'now', data: number) => ReactNode;
|
|
5
6
|
export declare type DatePickerViewProps = Pick<PickerViewProps, 'style' | 'mouseWheel' | 'loading' | 'loadingContent'> & {
|
|
6
7
|
value?: Date;
|
|
7
8
|
defaultValue?: Date;
|
|
@@ -9,7 +10,7 @@ export declare type DatePickerViewProps = Pick<PickerViewProps, 'style' | 'mouse
|
|
|
9
10
|
min?: Date;
|
|
10
11
|
max?: Date;
|
|
11
12
|
precision?: Precision;
|
|
12
|
-
renderLabel?:
|
|
13
|
+
renderLabel?: RenderLabel;
|
|
13
14
|
filter?: DatePickerFilter;
|
|
14
15
|
} & NativeProps;
|
|
15
16
|
export declare const DatePickerView: FC<DatePickerViewProps>;
|
|
@@ -3,21 +3,25 @@ import PickerView from '../picker-view';
|
|
|
3
3
|
import { withNativeProps } from '../../utils/native-props';
|
|
4
4
|
import { mergeProps } from '../../utils/with-default-props';
|
|
5
5
|
import { usePropsValue } from '../../utils/use-props-value';
|
|
6
|
-
import { generateDatePickerColumns, convertDateToStringArray, convertStringArrayToDate
|
|
6
|
+
import { generateDatePickerColumns, convertDateToStringArray, convertStringArrayToDate } from '../date-picker/date-picker-utils';
|
|
7
|
+
import useRenderLabel from './useRenderLabel';
|
|
7
8
|
const thisYear = new Date().getFullYear();
|
|
8
9
|
const defaultProps = {
|
|
9
10
|
min: new Date(new Date().setFullYear(thisYear - 10)),
|
|
10
11
|
max: new Date(new Date().setFullYear(thisYear + 10)),
|
|
11
|
-
precision: 'day'
|
|
12
|
-
renderLabel: defaultRenderLabel
|
|
12
|
+
precision: 'day'
|
|
13
13
|
};
|
|
14
14
|
export const DatePickerView = p => {
|
|
15
15
|
var _a;
|
|
16
16
|
const props = mergeProps(defaultProps, p);
|
|
17
|
+
const {
|
|
18
|
+
renderLabel
|
|
19
|
+
} = props;
|
|
17
20
|
const [value, setValue] = usePropsValue({
|
|
18
21
|
value: props.value,
|
|
19
22
|
defaultValue: (_a = props.defaultValue) !== null && _a !== void 0 ? _a : null
|
|
20
23
|
});
|
|
24
|
+
const mergedRenderLabel = useRenderLabel(renderLabel);
|
|
21
25
|
const pickerValue = useMemo(() => convertDateToStringArray(value, props.precision), [value, props.precision]);
|
|
22
26
|
const onChange = useCallback(val => {
|
|
23
27
|
var _a;
|
|
@@ -28,7 +32,7 @@ export const DatePickerView = p => {
|
|
|
28
32
|
}
|
|
29
33
|
}, [props.onChange, props.precision]);
|
|
30
34
|
return withNativeProps(props, React.createElement(PickerView, {
|
|
31
|
-
columns: selected => generateDatePickerColumns(selected, props.min, props.max, props.precision,
|
|
35
|
+
columns: selected => generateDatePickerColumns(selected, props.min, props.max, props.precision, mergedRenderLabel, props.filter),
|
|
32
36
|
loading: props.loading,
|
|
33
37
|
loadingContent: props.loadingContent,
|
|
34
38
|
value: pickerValue,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useConfig } from '../config-provider';
|
|
3
|
+
export default function useRenderLabel(renderLabel) {
|
|
4
|
+
const {
|
|
5
|
+
locale
|
|
6
|
+
} = useConfig();
|
|
7
|
+
return useCallback((type, data) => {
|
|
8
|
+
if (renderLabel) {
|
|
9
|
+
return renderLabel(type, data);
|
|
10
|
+
}
|
|
11
|
+
// Default render
|
|
12
|
+
switch (type) {
|
|
13
|
+
case 'minute':
|
|
14
|
+
case 'second':
|
|
15
|
+
case 'hour':
|
|
16
|
+
return ('0' + data.toString()).slice(-2);
|
|
17
|
+
case 'now':
|
|
18
|
+
return locale.DatePicker.tillNow;
|
|
19
|
+
default:
|
|
20
|
+
return data.toString();
|
|
21
|
+
}
|
|
22
|
+
}, [renderLabel]);
|
|
23
|
+
}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import React, { FC } from 'react';
|
|
2
2
|
import { NativeProps } from '../../utils/native-props';
|
|
3
|
+
declare type Offset = {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
};
|
|
3
7
|
export declare type FloatingBubbleProps = {
|
|
4
8
|
onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
|
|
5
9
|
axis?: 'x' | 'y' | 'xy' | 'lock';
|
|
6
10
|
magnetic?: 'x' | 'y';
|
|
7
11
|
children?: React.ReactNode;
|
|
12
|
+
offset?: Offset;
|
|
13
|
+
defaultOffset?: Offset;
|
|
14
|
+
onOffsetChange?: (offset: Offset) => void;
|
|
8
15
|
} & NativeProps<'--initial-position-left' | '--initial-position-right' | '--initial-position-top' | '--initial-position-bottom' | '--z-index' | '--edge-distance' | '--size' | '--border-radius' | '--background'>;
|
|
9
16
|
export declare const FloatingBubble: FC<FloatingBubbleProps>;
|
|
17
|
+
export {};
|
|
@@ -1,16 +1,28 @@
|
|
|
1
|
-
import React, { useRef } from 'react';
|
|
1
|
+
import React, { useRef, useEffect, useState } from 'react';
|
|
2
2
|
import { useSpring, animated, to } from '@react-spring/web';
|
|
3
3
|
import { useDrag } from '@use-gesture/react';
|
|
4
4
|
import { mergeProps } from '../../utils/with-default-props';
|
|
5
5
|
import { withNativeProps } from '../../utils/native-props';
|
|
6
6
|
const classPrefix = `adm-floating-bubble`;
|
|
7
7
|
const defaultProps = {
|
|
8
|
-
axis: 'y'
|
|
8
|
+
axis: 'y',
|
|
9
|
+
defaultOffset: {
|
|
10
|
+
x: 0,
|
|
11
|
+
y: 0
|
|
12
|
+
}
|
|
9
13
|
};
|
|
10
14
|
export const FloatingBubble = p => {
|
|
11
15
|
const props = mergeProps(defaultProps, p);
|
|
12
16
|
const boundaryRef = useRef(null);
|
|
13
17
|
const buttonRef = useRef(null);
|
|
18
|
+
const [innerValue, setInnerValue] = useState(props.offset === undefined ? props.defaultOffset : props.offset);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
if (props.offset === undefined) return;
|
|
21
|
+
api.start({
|
|
22
|
+
x: props.offset.x,
|
|
23
|
+
y: props.offset.y
|
|
24
|
+
});
|
|
25
|
+
}, [props.offset]);
|
|
14
26
|
/**
|
|
15
27
|
* memoize the `to` function
|
|
16
28
|
* inside a component that renders frequently
|
|
@@ -21,11 +33,12 @@ export const FloatingBubble = p => {
|
|
|
21
33
|
y,
|
|
22
34
|
opacity
|
|
23
35
|
}, api] = useSpring(() => ({
|
|
24
|
-
x:
|
|
25
|
-
y:
|
|
36
|
+
x: innerValue.x,
|
|
37
|
+
y: innerValue.y,
|
|
26
38
|
opacity: 1
|
|
27
39
|
}));
|
|
28
40
|
const bind = useDrag(state => {
|
|
41
|
+
var _a;
|
|
29
42
|
let nextX = state.offset[0];
|
|
30
43
|
let nextY = state.offset[1];
|
|
31
44
|
if (state.last && props.magnetic) {
|
|
@@ -54,10 +67,17 @@ export const FloatingBubble = p => {
|
|
|
54
67
|
}
|
|
55
68
|
}
|
|
56
69
|
}
|
|
57
|
-
|
|
70
|
+
const nextOffest = {
|
|
58
71
|
x: nextX,
|
|
59
72
|
y: nextY
|
|
60
|
-
}
|
|
73
|
+
};
|
|
74
|
+
if (props.offset === undefined) {
|
|
75
|
+
// Uncontrolled mode
|
|
76
|
+
api.start(nextOffest);
|
|
77
|
+
} else {
|
|
78
|
+
setInnerValue(nextOffest);
|
|
79
|
+
}
|
|
80
|
+
(_a = props.onOffsetChange) === null || _a === void 0 ? void 0 : _a.call(props, nextOffest);
|
|
61
81
|
// active status
|
|
62
82
|
api.start({
|
|
63
83
|
opacity: state.active ? 0.8 : 1
|
|
@@ -3,7 +3,7 @@ import { NativeProps } from '../../utils/native-props';
|
|
|
3
3
|
import { ListProps } from '../list';
|
|
4
4
|
import type { FormProps as RcFormProps, FormInstance as RCFormInstance } from 'rc-field-form';
|
|
5
5
|
import { FormContextType } from './context';
|
|
6
|
-
export declare type FormInstance = Pick<RCFormInstance, 'getFieldValue' | 'getFieldsValue' | 'getFieldError' | 'getFieldsError' | 'isFieldTouched' | 'isFieldsTouched' | 'resetFields' | 'setFields' | 'setFieldsValue' | 'submit' | 'validateFields'>;
|
|
6
|
+
export declare type FormInstance = Pick<RCFormInstance, 'getFieldValue' | 'getFieldsValue' | 'getFieldError' | 'getFieldsError' | 'isFieldTouched' | 'isFieldsTouched' | 'resetFields' | 'setFields' | 'setFieldValue' | 'setFieldsValue' | 'submit' | 'validateFields'>;
|
|
7
7
|
export declare type FormProps = Pick<RcFormProps, 'form' | 'initialValues' | 'name' | 'preserve' | 'validateMessages' | 'validateTrigger' | 'onFieldsChange' | 'onFinish' | 'onFinishFailed' | 'onValuesChange' | 'children'> & NativeProps<'--border-inner' | '--border-top' | '--border-bottom' | '--prefix-width'> & Partial<FormContextType> & {
|
|
8
8
|
footer?: ReactNode;
|
|
9
9
|
mode?: ListProps['mode'];
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
.adm-image-uploader {
|
|
2
2
|
--cell-size: 80px;
|
|
3
|
+
--gap: 12px;
|
|
4
|
+
---gap: var(--gap);
|
|
5
|
+
---gap-horizontal: var(--gap-horizontal, var(--gap));
|
|
6
|
+
---gap-vertical: var(--gap-vertical, var(--gap));
|
|
3
7
|
}
|
|
8
|
+
.adm-image-uploader-grid,
|
|
4
9
|
.adm-image-uploader-space {
|
|
5
|
-
--gap:
|
|
10
|
+
--gap: var(---gap);
|
|
11
|
+
--gap-horizontal: var(---gap-horizontal);
|
|
12
|
+
--gap-vertical: var(---gap-vertical);
|
|
6
13
|
}
|
|
7
14
|
.adm-image-uploader-cell {
|
|
8
15
|
position: relative;
|
|
@@ -82,3 +89,10 @@
|
|
|
82
89
|
height: 100%;
|
|
83
90
|
border-radius: 4px;
|
|
84
91
|
}
|
|
92
|
+
.adm-image-uploader .adm-image-uploader-gap-measure {
|
|
93
|
+
position: absolute;
|
|
94
|
+
left: 0;
|
|
95
|
+
top: 0;
|
|
96
|
+
height: var(--gap-horizontal);
|
|
97
|
+
width: 0;
|
|
98
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { FC, InputHTMLAttributes } from 'react';
|
|
2
2
|
import { NativeProps } from '../../utils/native-props';
|
|
3
3
|
import type { ImageProps } from '../image';
|
|
4
|
+
import { GridProps } from '../grid';
|
|
4
5
|
export declare type TaskStatus = 'pending' | 'fail' | 'success';
|
|
5
6
|
export interface ImageUploadItem {
|
|
6
7
|
key?: string | number;
|
|
@@ -18,6 +19,7 @@ export declare type UploadTask = Pick<Task, 'id' | 'status'>;
|
|
|
18
19
|
export declare type ImageUploaderProps = {
|
|
19
20
|
defaultValue?: ImageUploadItem[];
|
|
20
21
|
value?: ImageUploadItem[];
|
|
22
|
+
columns?: GridProps['columns'];
|
|
21
23
|
onChange?: (items: ImageUploadItem[]) => void;
|
|
22
24
|
onUploadQueueChange?: (tasks: UploadTask[]) => void;
|
|
23
25
|
accept?: string;
|
|
@@ -27,6 +29,7 @@ export declare type ImageUploaderProps = {
|
|
|
27
29
|
disableUpload?: boolean;
|
|
28
30
|
showUpload?: boolean;
|
|
29
31
|
deletable?: boolean;
|
|
32
|
+
deleteIcon?: React.ReactNode;
|
|
30
33
|
capture?: InputHTMLAttributes<unknown>['capture'];
|
|
31
34
|
onPreview?: (index: number, item: ImageUploadItem) => void;
|
|
32
35
|
beforeUpload?: (file: File, files: File[]) => Promise<File | null> | File | null;
|
|
@@ -37,6 +40,6 @@ export declare type ImageUploaderProps = {
|
|
|
37
40
|
imageFit?: ImageProps['fit'];
|
|
38
41
|
children?: React.ReactNode;
|
|
39
42
|
renderItem?: (originNode: React.ReactElement, file: ImageUploadItem, fileList: ImageUploadItem[]) => React.ReactNode;
|
|
40
|
-
} & NativeProps<'--cell-size'>;
|
|
43
|
+
} & NativeProps<'--cell-size' | '--gap' | '--gap-vertical' | '--gap-horizontal'>;
|
|
41
44
|
export declare const ImageUploader: FC<ImageUploaderProps>;
|
|
42
45
|
export {};
|
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import React, { useRef, useState } from 'react';
|
|
3
|
-
import { AddOutline } from 'antd-mobile-icons';
|
|
3
|
+
import { AddOutline, CloseOutline } from 'antd-mobile-icons';
|
|
4
4
|
import { mergeProps } from '../../utils/with-default-props';
|
|
5
5
|
import ImageViewer from '../image-viewer';
|
|
6
6
|
import PreviewItem from './preview-item';
|
|
7
7
|
import { usePropsValue } from '../../utils/use-props-value';
|
|
8
|
-
import { useIsomorphicLayoutEffect, useUnmount } from 'ahooks';
|
|
8
|
+
import { useIsomorphicLayoutEffect, useUnmount, useSize } from 'ahooks';
|
|
9
9
|
import Space from '../space';
|
|
10
10
|
import { withNativeProps } from '../../utils/native-props';
|
|
11
|
+
import { measureCSSLength } from '../../utils/measure-css-length';
|
|
11
12
|
import { useConfig } from '../config-provider';
|
|
13
|
+
import Grid from '../grid';
|
|
12
14
|
const classPrefix = `adm-image-uploader`;
|
|
13
15
|
const defaultProps = {
|
|
14
16
|
disableUpload: false,
|
|
15
17
|
deletable: true,
|
|
18
|
+
deleteIcon: React.createElement(CloseOutline, {
|
|
19
|
+
className: `${classPrefix}-cell-delete-icon`
|
|
20
|
+
}),
|
|
16
21
|
showUpload: true,
|
|
17
22
|
multiple: false,
|
|
18
23
|
maxCount: 0,
|
|
@@ -27,8 +32,26 @@ export const ImageUploader = p => {
|
|
|
27
32
|
locale
|
|
28
33
|
} = useConfig();
|
|
29
34
|
const props = mergeProps(defaultProps, p);
|
|
35
|
+
const {
|
|
36
|
+
columns
|
|
37
|
+
} = props;
|
|
30
38
|
const [value, setValue] = usePropsValue(props);
|
|
31
39
|
const [tasks, setTasks] = useState([]);
|
|
40
|
+
const containerRef = useRef(null);
|
|
41
|
+
const containerSize = useSize(containerRef);
|
|
42
|
+
const gapMeasureRef = useRef(null);
|
|
43
|
+
const [cellSize, setCellSize] = useState(80);
|
|
44
|
+
useIsomorphicLayoutEffect(() => {
|
|
45
|
+
const gapMeasure = gapMeasureRef.current;
|
|
46
|
+
if (columns && containerSize && gapMeasure) {
|
|
47
|
+
const width = containerSize.width;
|
|
48
|
+
const gap = measureCSSLength(window.getComputedStyle(gapMeasure).getPropertyValue('height'));
|
|
49
|
+
setCellSize((width - gap * (columns - 1)) / columns);
|
|
50
|
+
}
|
|
51
|
+
}, [containerSize === null || containerSize === void 0 ? void 0 : containerSize.width]);
|
|
52
|
+
const style = {
|
|
53
|
+
'--cell-size': cellSize + 'px'
|
|
54
|
+
};
|
|
32
55
|
useIsomorphicLayoutEffect(() => {
|
|
33
56
|
setTasks(prev => prev.filter(task => {
|
|
34
57
|
if (task.url === undefined) return true;
|
|
@@ -152,6 +175,7 @@ export const ImageUploader = p => {
|
|
|
152
175
|
key: (_a = fileItem.key) !== null && _a !== void 0 ? _a : index,
|
|
153
176
|
url: (_b = fileItem.thumbnailUrl) !== null && _b !== void 0 ? _b : fileItem.url,
|
|
154
177
|
deletable: props.deletable,
|
|
178
|
+
deleteIcon: props.deleteIcon,
|
|
155
179
|
imageFit: props.imageFit,
|
|
156
180
|
onClick: () => {
|
|
157
181
|
if (props.preview) {
|
|
@@ -169,26 +193,27 @@ export const ImageUploader = p => {
|
|
|
169
193
|
return renderItem ? renderItem(originNode, fileItem, value) : originNode;
|
|
170
194
|
});
|
|
171
195
|
};
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
wrap: true,
|
|
177
|
-
block: true
|
|
178
|
-
}, renderImages(), finalTasks.map(task => {
|
|
196
|
+
const contentNode = React.createElement(React.Fragment, null, renderImages(), tasks.map(task => {
|
|
197
|
+
if (!props.showFailed && task.status === 'fail') {
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
179
200
|
return React.createElement(PreviewItem, {
|
|
180
201
|
key: task.id,
|
|
181
202
|
file: task.file,
|
|
182
203
|
deletable: task.status !== 'pending',
|
|
204
|
+
deleteIcon: props.deleteIcon,
|
|
183
205
|
status: task.status,
|
|
184
206
|
imageFit: props.imageFit,
|
|
185
207
|
onDelete: () => {
|
|
186
|
-
setTasks(
|
|
208
|
+
setTasks(tasks.filter(x => x.id !== task.id));
|
|
187
209
|
}
|
|
188
210
|
});
|
|
189
|
-
}),
|
|
190
|
-
className: `${classPrefix}-upload-button-wrap
|
|
191
|
-
|
|
211
|
+
}), React.createElement("div", {
|
|
212
|
+
className: `${classPrefix}-upload-button-wrap`,
|
|
213
|
+
style: showUpload ? undefined : {
|
|
214
|
+
display: 'none'
|
|
215
|
+
}
|
|
216
|
+
}, props.children || React.createElement("span", {
|
|
192
217
|
className: `${classPrefix}-cell ${classPrefix}-upload-button`,
|
|
193
218
|
role: 'button',
|
|
194
219
|
"aria-label": locale.ImageUploader.upload
|
|
@@ -202,5 +227,20 @@ export const ImageUploader = p => {
|
|
|
202
227
|
className: `${classPrefix}-input`,
|
|
203
228
|
onChange: onChange,
|
|
204
229
|
"aria-hidden": true
|
|
205
|
-
})))
|
|
230
|
+
})));
|
|
231
|
+
return withNativeProps(props, React.createElement("div", {
|
|
232
|
+
className: classPrefix,
|
|
233
|
+
ref: containerRef
|
|
234
|
+
}, columns ? React.createElement(Grid, {
|
|
235
|
+
className: `${classPrefix}-grid`,
|
|
236
|
+
columns: columns,
|
|
237
|
+
style: style
|
|
238
|
+
}, React.createElement("div", {
|
|
239
|
+
className: `${classPrefix}-gap-measure`,
|
|
240
|
+
ref: gapMeasureRef
|
|
241
|
+
}), contentNode.props.children) : React.createElement(Space, {
|
|
242
|
+
className: `${classPrefix}-space`,
|
|
243
|
+
wrap: true,
|
|
244
|
+
block: true
|
|
245
|
+
}, contentNode.props.children)));
|
|
206
246
|
};
|