@ioca/react 1.4.78 → 1.4.79
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/lib/cjs/_virtual/_rolldown/runtime.cjs +23 -0
- package/lib/cjs/components/affix/affix.cjs +66 -0
- package/lib/cjs/components/affix/affix.cjs.map +1 -0
- package/lib/cjs/components/affix/index.cjs +6 -0
- package/lib/cjs/components/affix/index.cjs.map +1 -0
- package/lib/cjs/components/affix/totop.cjs +25 -0
- package/lib/cjs/components/affix/totop.cjs.map +1 -0
- package/lib/cjs/components/badge/badge.cjs +24 -0
- package/lib/cjs/components/badge/badge.cjs.map +1 -0
- package/lib/cjs/components/badge/index.cjs +6 -0
- package/lib/cjs/components/badge/index.cjs.map +1 -0
- package/lib/cjs/components/button/button.cjs +64 -0
- package/lib/cjs/components/button/button.cjs.map +1 -0
- package/lib/cjs/components/button/confirm.cjs +60 -0
- package/lib/cjs/components/button/confirm.cjs.map +1 -0
- package/lib/cjs/components/button/group.cjs +26 -0
- package/lib/cjs/components/button/group.cjs.map +1 -0
- package/lib/cjs/components/button/index.cjs +6 -0
- package/lib/cjs/components/button/index.cjs.map +1 -0
- package/lib/cjs/components/button/toggle.cjs +46 -0
- package/lib/cjs/components/button/toggle.cjs.map +1 -0
- package/lib/cjs/components/card/card.cjs +33 -0
- package/lib/cjs/components/card/card.cjs.map +1 -0
- package/lib/cjs/components/card/index.cjs +6 -0
- package/lib/cjs/components/card/index.cjs.map +1 -0
- package/lib/cjs/components/checkbox/checkbox.cjs +66 -0
- package/lib/cjs/components/checkbox/checkbox.cjs.map +1 -0
- package/lib/cjs/components/checkbox/index.cjs +6 -0
- package/lib/cjs/components/checkbox/index.cjs.map +1 -0
- package/lib/cjs/components/checkbox/item.cjs +59 -0
- package/lib/cjs/components/checkbox/item.cjs.map +1 -0
- package/lib/cjs/components/collapse/collapse.cjs +84 -0
- package/lib/cjs/components/collapse/collapse.cjs.map +1 -0
- package/lib/cjs/components/collapse/index.cjs +6 -0
- package/lib/cjs/components/collapse/index.cjs.map +1 -0
- package/lib/cjs/components/collapse/item.cjs +10 -0
- package/lib/cjs/components/collapse/item.cjs.map +1 -0
- package/lib/cjs/components/datagrid/cell.cjs +39 -0
- package/lib/cjs/components/datagrid/cell.cjs.map +1 -0
- package/lib/cjs/components/datagrid/datagrid.cjs +140 -0
- package/lib/cjs/components/datagrid/datagrid.cjs.map +1 -0
- package/lib/cjs/components/datagrid/index.cjs +6 -0
- package/lib/cjs/components/datagrid/index.cjs.map +1 -0
- package/lib/cjs/components/datagrid/resize.cjs +42 -0
- package/lib/cjs/components/datagrid/resize.cjs.map +1 -0
- package/lib/cjs/components/datagrid/row.cjs +68 -0
- package/lib/cjs/components/datagrid/row.cjs.map +1 -0
- package/lib/cjs/components/datagrid/sorter.cjs +28 -0
- package/lib/cjs/components/datagrid/sorter.cjs.map +1 -0
- package/lib/cjs/components/description/description.cjs +43 -0
- package/lib/cjs/components/description/description.cjs.map +1 -0
- package/lib/cjs/components/description/index.cjs +6 -0
- package/lib/cjs/components/description/index.cjs.map +1 -0
- package/lib/cjs/components/drawer/drawer.cjs +84 -0
- package/lib/cjs/components/drawer/drawer.cjs.map +1 -0
- package/lib/cjs/components/drawer/index.cjs +6 -0
- package/lib/cjs/components/drawer/index.cjs.map +1 -0
- package/lib/cjs/components/dropdown/dropdown.cjs +38 -0
- package/lib/cjs/components/dropdown/dropdown.cjs.map +1 -0
- package/lib/cjs/components/dropdown/index.cjs +6 -0
- package/lib/cjs/components/dropdown/index.cjs.map +1 -0
- package/lib/cjs/components/dropdown/item.cjs +36 -0
- package/lib/cjs/components/dropdown/item.cjs.map +1 -0
- package/lib/cjs/components/editor/controls.cjs +89 -0
- package/lib/cjs/components/editor/controls.cjs.map +1 -0
- package/lib/cjs/components/editor/editor.cjs +91 -0
- package/lib/cjs/components/editor/editor.cjs.map +1 -0
- package/lib/cjs/components/editor/index.cjs +6 -0
- package/lib/cjs/components/editor/index.cjs.map +1 -0
- package/lib/cjs/components/flex/flex.cjs +31 -0
- package/lib/cjs/components/flex/flex.cjs.map +1 -0
- package/lib/cjs/components/flex/index.cjs +6 -0
- package/lib/cjs/components/flex/index.cjs.map +1 -0
- package/lib/cjs/components/form/context.cjs +7 -0
- package/lib/cjs/components/form/context.cjs.map +1 -0
- package/lib/cjs/components/form/field.cjs +71 -0
- package/lib/cjs/components/form/field.cjs.map +1 -0
- package/lib/cjs/components/form/form.cjs +64 -0
- package/lib/cjs/components/form/form.cjs.map +1 -0
- package/lib/cjs/components/form/index.cjs +6 -0
- package/lib/cjs/components/form/index.cjs.map +1 -0
- package/lib/cjs/components/form/useConfig.cjs +45 -0
- package/lib/cjs/components/form/useConfig.cjs.map +1 -0
- package/lib/cjs/components/form/useForm.cjs +123 -0
- package/lib/cjs/components/form/useForm.cjs.map +1 -0
- package/lib/cjs/components/icon/icon.cjs +24 -0
- package/lib/cjs/components/icon/icon.cjs.map +1 -0
- package/lib/cjs/components/icon/index.cjs +6 -0
- package/lib/cjs/components/icon/index.cjs.map +1 -0
- package/lib/cjs/components/image/image.cjs +86 -0
- package/lib/cjs/components/image/image.cjs.map +1 -0
- package/lib/cjs/components/image/index.cjs +6 -0
- package/lib/cjs/components/image/index.cjs.map +1 -0
- package/lib/cjs/components/image/list.cjs +49 -0
- package/lib/cjs/components/image/list.cjs.map +1 -0
- package/lib/cjs/components/input/container.cjs +30 -0
- package/lib/cjs/components/input/container.cjs.map +1 -0
- package/lib/cjs/components/input/index.cjs +6 -0
- package/lib/cjs/components/input/index.cjs.map +1 -0
- package/lib/cjs/components/input/input.cjs +113 -0
- package/lib/cjs/components/input/input.cjs.map +1 -0
- package/lib/cjs/components/input/number.cjs +138 -0
- package/lib/cjs/components/input/number.cjs.map +1 -0
- package/lib/cjs/components/input/range.cjs +134 -0
- package/lib/cjs/components/input/range.cjs.map +1 -0
- package/lib/cjs/components/input/textarea.cjs +61 -0
- package/lib/cjs/components/input/textarea.cjs.map +1 -0
- package/lib/cjs/components/list/index.cjs +6 -0
- package/lib/cjs/components/list/index.cjs.map +1 -0
- package/lib/cjs/components/list/item.cjs +30 -0
- package/lib/cjs/components/list/item.cjs.map +1 -0
- package/lib/cjs/components/list/list.cjs +30 -0
- package/lib/cjs/components/list/list.cjs.map +1 -0
- package/lib/cjs/components/loading/index.cjs +6 -0
- package/lib/cjs/components/loading/index.cjs.map +1 -0
- package/lib/cjs/components/loading/loading.cjs +39 -0
- package/lib/cjs/components/loading/loading.cjs.map +1 -0
- package/lib/cjs/components/message/index.cjs +6 -0
- package/lib/cjs/components/message/index.cjs.map +1 -0
- package/lib/cjs/components/message/message.cjs +197 -0
- package/lib/cjs/components/message/message.cjs.map +1 -0
- package/lib/cjs/components/modal/content.cjs +57 -0
- package/lib/cjs/components/modal/content.cjs.map +1 -0
- package/lib/cjs/components/modal/context.cjs +7 -0
- package/lib/cjs/components/modal/context.cjs.map +1 -0
- package/lib/cjs/components/modal/hookModal.cjs +28 -0
- package/lib/cjs/components/modal/hookModal.cjs.map +1 -0
- package/lib/cjs/components/modal/index.cjs +6 -0
- package/lib/cjs/components/modal/index.cjs.map +1 -0
- package/lib/cjs/components/modal/modal.cjs +117 -0
- package/lib/cjs/components/modal/modal.cjs.map +1 -0
- package/lib/cjs/components/modal/useModal.cjs +39 -0
- package/lib/cjs/components/modal/useModal.cjs.map +1 -0
- package/lib/cjs/components/pagination/index.cjs +6 -0
- package/lib/cjs/components/pagination/index.cjs.map +1 -0
- package/lib/cjs/components/pagination/page.cjs +31 -0
- package/lib/cjs/components/pagination/page.cjs.map +1 -0
- package/lib/cjs/components/pagination/pagination.cjs +86 -0
- package/lib/cjs/components/pagination/pagination.cjs.map +1 -0
- package/lib/cjs/components/picker/colors/footer.cjs +64 -0
- package/lib/cjs/components/picker/colors/footer.cjs.map +1 -0
- package/lib/cjs/components/picker/colors/handle.cjs +25 -0
- package/lib/cjs/components/picker/colors/handle.cjs.map +1 -0
- package/lib/cjs/components/picker/colors/index.cjs +81 -0
- package/lib/cjs/components/picker/colors/index.cjs.map +1 -0
- package/lib/cjs/components/picker/dates/dates.cjs +68 -0
- package/lib/cjs/components/picker/dates/dates.cjs.map +1 -0
- package/lib/cjs/components/picker/dates/index.cjs +97 -0
- package/lib/cjs/components/picker/dates/index.cjs.map +1 -0
- package/lib/cjs/components/picker/dates/panel.cjs +151 -0
- package/lib/cjs/components/picker/dates/panel.cjs.map +1 -0
- package/lib/cjs/components/picker/time/index.cjs +73 -0
- package/lib/cjs/components/picker/time/index.cjs.map +1 -0
- package/lib/cjs/components/picker/time/item.cjs +20 -0
- package/lib/cjs/components/picker/time/item.cjs.map +1 -0
- package/lib/cjs/components/picker/time/panel.cjs +144 -0
- package/lib/cjs/components/picker/time/panel.cjs.map +1 -0
- package/lib/cjs/components/popconfirm/index.cjs +6 -0
- package/lib/cjs/components/popconfirm/index.cjs.map +1 -0
- package/lib/cjs/components/popconfirm/popconfirm.cjs +86 -0
- package/lib/cjs/components/popconfirm/popconfirm.cjs.map +1 -0
- package/lib/cjs/components/popup/content.cjs +56 -0
- package/lib/cjs/components/popup/content.cjs.map +1 -0
- package/lib/cjs/components/popup/index.cjs +6 -0
- package/lib/cjs/components/popup/index.cjs.map +1 -0
- package/lib/cjs/components/popup/popup.cjs +425 -0
- package/lib/cjs/components/popup/popup.cjs.map +1 -0
- package/lib/cjs/components/progress/circle.cjs +45 -0
- package/lib/cjs/components/progress/circle.cjs.map +1 -0
- package/lib/cjs/components/progress/index.cjs +6 -0
- package/lib/cjs/components/progress/index.cjs.map +1 -0
- package/lib/cjs/components/progress/line.cjs +27 -0
- package/lib/cjs/components/progress/line.cjs.map +1 -0
- package/lib/cjs/components/progress/progress.cjs +100 -0
- package/lib/cjs/components/progress/progress.cjs.map +1 -0
- package/lib/cjs/components/radio/index.cjs +6 -0
- package/lib/cjs/components/radio/index.cjs.map +1 -0
- package/lib/cjs/components/radio/item.cjs +34 -0
- package/lib/cjs/components/radio/item.cjs.map +1 -0
- package/lib/cjs/components/radio/radio.cjs +62 -0
- package/lib/cjs/components/radio/radio.cjs.map +1 -0
- package/lib/cjs/components/resizable/index.cjs +6 -0
- package/lib/cjs/components/resizable/index.cjs.map +1 -0
- package/lib/cjs/components/resizable/resizable.cjs +81 -0
- package/lib/cjs/components/resizable/resizable.cjs.map +1 -0
- package/lib/cjs/components/river/index.cjs +6 -0
- package/lib/cjs/components/river/index.cjs.map +1 -0
- package/lib/cjs/components/river/river.cjs +116 -0
- package/lib/cjs/components/river/river.cjs.map +1 -0
- package/lib/cjs/components/select/index.cjs +6 -0
- package/lib/cjs/components/select/index.cjs.map +1 -0
- package/lib/cjs/components/select/options.cjs +76 -0
- package/lib/cjs/components/select/options.cjs.map +1 -0
- package/lib/cjs/components/select/select.cjs +155 -0
- package/lib/cjs/components/select/select.cjs.map +1 -0
- package/lib/cjs/components/step/divider.cjs +10 -0
- package/lib/cjs/components/step/divider.cjs.map +1 -0
- package/lib/cjs/components/step/index.cjs +6 -0
- package/lib/cjs/components/step/index.cjs.map +1 -0
- package/lib/cjs/components/step/item.cjs +60 -0
- package/lib/cjs/components/step/item.cjs.map +1 -0
- package/lib/cjs/components/step/step.cjs +42 -0
- package/lib/cjs/components/step/step.cjs.map +1 -0
- package/lib/cjs/components/swiper/index.cjs +6 -0
- package/lib/cjs/components/swiper/index.cjs.map +1 -0
- package/lib/cjs/components/swiper/item.cjs +39 -0
- package/lib/cjs/components/swiper/item.cjs.map +1 -0
- package/lib/cjs/components/swiper/swiper.cjs +262 -0
- package/lib/cjs/components/swiper/swiper.cjs.map +1 -0
- package/lib/cjs/components/tabs/index.cjs +6 -0
- package/lib/cjs/components/tabs/index.cjs.map +1 -0
- package/lib/cjs/components/tabs/item.cjs +10 -0
- package/lib/cjs/components/tabs/item.cjs.map +1 -0
- package/lib/cjs/components/tabs/tabs.cjs +272 -0
- package/lib/cjs/components/tabs/tabs.cjs.map +1 -0
- package/lib/cjs/components/tag/index.cjs +6 -0
- package/lib/cjs/components/tag/index.cjs.map +1 -0
- package/lib/cjs/components/tag/tag.cjs +32 -0
- package/lib/cjs/components/tag/tag.cjs.map +1 -0
- package/lib/cjs/components/text/highlight.cjs +35 -0
- package/lib/cjs/components/text/highlight.cjs.map +1 -0
- package/lib/cjs/components/text/index.cjs +6 -0
- package/lib/cjs/components/text/index.cjs.map +1 -0
- package/lib/cjs/components/text/number.cjs +32 -0
- package/lib/cjs/components/text/number.cjs.map +1 -0
- package/lib/cjs/components/text/text.cjs +39 -0
- package/lib/cjs/components/text/text.cjs.map +1 -0
- package/lib/cjs/components/text/time.cjs +24 -0
- package/lib/cjs/components/text/time.cjs.map +1 -0
- package/lib/cjs/components/tree/index.cjs +6 -0
- package/lib/cjs/components/tree/index.cjs.map +1 -0
- package/lib/cjs/components/tree/item.cjs +136 -0
- package/lib/cjs/components/tree/item.cjs.map +1 -0
- package/lib/cjs/components/tree/tree.cjs +127 -0
- package/lib/cjs/components/tree/tree.cjs.map +1 -0
- package/lib/cjs/components/upload/index.cjs +6 -0
- package/lib/cjs/components/upload/index.cjs.map +1 -0
- package/lib/cjs/components/upload/renderFile.cjs +99 -0
- package/lib/cjs/components/upload/renderFile.cjs.map +1 -0
- package/lib/cjs/components/upload/upload.cjs +165 -0
- package/lib/cjs/components/upload/upload.cjs.map +1 -0
- package/lib/cjs/components/utils/empty/index.cjs +17 -0
- package/lib/cjs/components/utils/empty/index.cjs.map +1 -0
- package/lib/cjs/components/utils/helpericon/helpericon.cjs +24 -0
- package/lib/cjs/components/utils/helpericon/helpericon.cjs.map +1 -0
- package/lib/cjs/components/utils/helpericon/index.cjs +6 -0
- package/lib/cjs/components/utils/helpericon/index.cjs.map +1 -0
- package/lib/cjs/components/video/index.cjs +6 -0
- package/lib/cjs/components/video/index.cjs.map +1 -0
- package/lib/cjs/components/video/video.cjs +237 -0
- package/lib/cjs/components/video/video.cjs.map +1 -0
- package/lib/cjs/index.cjs +83 -0
- package/lib/cjs/js/hooks.cjs +259 -0
- package/lib/cjs/js/hooks.cjs.map +1 -0
- package/lib/cjs/js/usePreview/content.cjs +197 -0
- package/lib/cjs/js/usePreview/content.cjs.map +1 -0
- package/lib/cjs/js/usePreview/index.cjs +39 -0
- package/lib/cjs/js/usePreview/index.cjs.map +1 -0
- package/lib/cjs/js/usePreview/renderFile.cjs +28 -0
- package/lib/cjs/js/usePreview/renderFile.cjs.map +1 -0
- package/lib/cjs/js/usePreview/type.cjs +15 -0
- package/lib/cjs/js/usePreview/type.cjs.map +1 -0
- package/lib/cjs/js/useRipple/index.cjs +45 -0
- package/lib/cjs/js/useRipple/index.cjs.map +1 -0
- package/lib/cjs/js/useTheme/index.cjs +30 -0
- package/lib/cjs/js/useTheme/index.cjs.map +1 -0
- package/lib/cjs/js/utils.cjs +284 -0
- package/lib/cjs/js/utils.cjs.map +1 -0
- package/lib/es/components/affix/affix.js +1 -1
- package/lib/es/components/affix/affix.js.map +1 -1
- package/lib/es/components/affix/totop.js +1 -1
- package/lib/es/components/affix/totop.js.map +1 -1
- package/lib/es/components/badge/badge.js.map +1 -1
- package/lib/es/components/button/button.js.map +1 -1
- package/lib/es/components/card/card.js.map +1 -1
- package/lib/es/components/checkbox/checkbox.js.map +1 -1
- package/lib/es/components/collapse/collapse.js +1 -2
- package/lib/es/components/collapse/collapse.js.map +1 -1
- package/lib/es/components/datagrid/datagrid.js.map +1 -1
- package/lib/es/components/description/description.js.map +1 -1
- package/lib/es/components/drawer/drawer.js.map +1 -1
- package/lib/es/components/dropdown/dropdown.js.map +1 -1
- package/lib/es/components/editor/controls.js +1 -7
- package/lib/es/components/editor/controls.js.map +1 -1
- package/lib/es/components/editor/editor.js.map +1 -1
- package/lib/es/components/flex/flex.js.map +1 -1
- package/lib/es/components/form/field.js +1 -1
- package/lib/es/components/form/form.js +1 -1
- package/lib/es/components/form/form.js.map +1 -1
- package/lib/es/components/form/useForm.js +2 -2
- package/lib/es/components/icon/icon.js.map +1 -1
- package/lib/es/components/image/image.js.map +1 -1
- package/lib/es/components/input/input.js +1 -2
- package/lib/es/components/input/input.js.map +1 -1
- package/lib/es/components/input/number.js +1 -3
- package/lib/es/components/input/number.js.map +1 -1
- package/lib/es/components/input/range.js +1 -3
- package/lib/es/components/input/range.js.map +1 -1
- package/lib/es/components/input/textarea.js.map +1 -1
- package/lib/es/components/list/list.js.map +1 -1
- package/lib/es/components/loading/loading.js.map +1 -1
- package/lib/es/components/message/message.js +2 -2
- package/lib/es/components/message/message.js.map +1 -1
- package/lib/es/components/modal/content.js.map +1 -1
- package/lib/es/components/modal/modal.js.map +1 -1
- package/lib/es/components/pagination/pagination.js +1 -3
- package/lib/es/components/pagination/pagination.js.map +1 -1
- package/lib/es/components/picker/colors/footer.js +1 -1
- package/lib/es/components/picker/colors/footer.js.map +1 -1
- package/lib/es/components/picker/colors/index.js.map +1 -1
- package/lib/es/components/picker/dates/index.js +2 -2
- package/lib/es/components/picker/dates/index.js.map +1 -1
- package/lib/es/components/picker/dates/panel.js +2 -3
- package/lib/es/components/picker/dates/panel.js.map +1 -1
- package/lib/es/components/picker/time/index.js +1 -1
- package/lib/es/components/picker/time/index.js.map +1 -1
- package/lib/es/components/picker/time/panel.js.map +1 -1
- package/lib/es/components/popconfirm/popconfirm.js +1 -1
- package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
- package/lib/es/components/popup/popup.js +1 -1
- package/lib/es/components/popup/popup.js.map +1 -1
- package/lib/es/components/progress/progress.js.map +1 -1
- package/lib/es/components/radio/radio.js.map +1 -1
- package/lib/es/components/resizable/resizable.js.map +1 -1
- package/lib/es/components/river/river.js.map +1 -1
- package/lib/es/components/select/options.js +1 -2
- package/lib/es/components/select/options.js.map +1 -1
- package/lib/es/components/select/select.js +2 -2
- package/lib/es/components/select/select.js.map +1 -1
- package/lib/es/components/step/divider.js.map +1 -1
- package/lib/es/components/step/item.js +1 -1
- package/lib/es/components/step/item.js.map +1 -1
- package/lib/es/components/step/step.js.map +1 -1
- package/lib/es/components/swiper/swiper.js +1 -2
- package/lib/es/components/swiper/swiper.js.map +1 -1
- package/lib/es/components/tabs/tabs.js +1 -1
- package/lib/es/components/tabs/tabs.js.map +1 -1
- package/lib/es/components/tag/tag.js.map +1 -1
- package/lib/es/components/text/highlight.js +1 -1
- package/lib/es/components/text/text.js.map +1 -1
- package/lib/es/components/tree/item.js +1 -1
- package/lib/es/components/tree/item.js.map +1 -1
- package/lib/es/components/tree/tree.js.map +1 -1
- package/lib/es/components/upload/renderFile.js +2 -2
- package/lib/es/components/upload/renderFile.js.map +1 -1
- package/lib/es/components/upload/upload.js +2 -3
- package/lib/es/components/upload/upload.js.map +1 -1
- package/lib/es/components/utils/empty/index.js +1 -1
- package/lib/es/components/utils/empty/index.js.map +1 -1
- package/lib/es/components/utils/helpericon/helpericon.js +2 -2
- package/lib/es/components/utils/helpericon/helpericon.js.map +1 -1
- package/lib/es/components/video/video.js +2 -8
- package/lib/es/components/video/video.js.map +1 -1
- package/lib/es/js/usePreview/content.js +2 -9
- package/lib/es/js/usePreview/content.js.map +1 -1
- package/lib/es/js/usePreview/index.js.map +1 -1
- package/lib/es/js/usePreview/renderFile.js +1 -1
- package/lib/es/js/usePreview/renderFile.js.map +1 -1
- package/lib/es/js/useRipple/index.js.map +1 -1
- package/lib/es/js/utils.js +1 -1
- package/lib/types/components/affix/affix.js +1 -2
- package/lib/types/components/affix/totop.js +1 -1
- package/lib/types/components/badge/badge.js +0 -1
- package/lib/types/components/button/button.js +0 -1
- package/lib/types/components/card/card.js +0 -1
- package/lib/types/components/checkbox/checkbox.js +0 -2
- package/lib/types/components/collapse/collapse.js +1 -3
- package/lib/types/components/datagrid/datagrid.js +0 -1
- package/lib/types/components/description/description.js +0 -1
- package/lib/types/components/drawer/drawer.js +0 -1
- package/lib/types/components/dropdown/dropdown.js +0 -1
- package/lib/types/components/editor/controls.js +1 -7
- package/lib/types/components/editor/editor.js +0 -1
- package/lib/types/components/flex/flex.js +0 -1
- package/lib/types/components/form/field.js +1 -1
- package/lib/types/components/form/form.js +1 -2
- package/lib/types/components/form/useForm.js +2 -2
- package/lib/types/components/icon/icon.js +0 -1
- package/lib/types/components/image/image.js +0 -1
- package/lib/types/components/input/input.js +1 -3
- package/lib/types/components/input/number.js +1 -4
- package/lib/types/components/input/range.js +1 -4
- package/lib/types/components/input/textarea.js +0 -1
- package/lib/types/components/list/list.js +0 -1
- package/lib/types/components/loading/loading.js +0 -1
- package/lib/types/components/message/message.js +2 -3
- package/lib/types/components/modal/content.js +0 -1
- package/lib/types/components/modal/modal.js +0 -1
- package/lib/types/components/pagination/pagination.js +1 -4
- package/lib/types/components/picker/colors/footer.js +1 -1
- package/lib/types/components/picker/colors/index.js +0 -1
- package/lib/types/components/picker/dates/index.js +2 -3
- package/lib/types/components/picker/dates/panel.js +2 -3
- package/lib/types/components/picker/time/index.js +1 -1
- package/lib/types/components/picker/time/panel.js +0 -1
- package/lib/types/components/popconfirm/popconfirm.js +1 -2
- package/lib/types/components/popup/popup.js +1 -2
- package/lib/types/components/progress/progress.js +0 -2
- package/lib/types/components/radio/radio.js +0 -2
- package/lib/types/components/resizable/resizable.js +0 -1
- package/lib/types/components/river/river.js +0 -1
- package/lib/types/components/select/options.js +1 -2
- package/lib/types/components/select/select.js +2 -4
- package/lib/types/components/step/divider.js +0 -1
- package/lib/types/components/step/item.js +1 -1
- package/lib/types/components/step/step.js +0 -1
- package/lib/types/components/swiper/swiper.js +1 -3
- package/lib/types/components/tabs/tabs.js +1 -2
- package/lib/types/components/tag/tag.js +0 -1
- package/lib/types/components/text/highlight.js +1 -1
- package/lib/types/components/text/text.js +0 -1
- package/lib/types/components/tree/item.js +1 -1
- package/lib/types/components/tree/tree.js +0 -1
- package/lib/types/components/upload/renderFile.js +2 -2
- package/lib/types/components/upload/upload.js +2 -4
- package/lib/types/components/utils/empty/index.js +1 -2
- package/lib/types/components/utils/helpericon/helpericon.js +2 -3
- package/lib/types/components/video/video.js +2 -9
- package/lib/types/index.js +0 -1
- package/lib/types/js/usePreview/content.js +2 -9
- package/lib/types/js/usePreview/index.js +0 -1
- package/lib/types/js/usePreview/renderFile.js +1 -1
- package/lib/types/js/useRipple/index.js +0 -1
- package/lib/types/js/utils.js +1 -1
- package/package.json +6 -3
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_index = require("../icon/index.cjs");
|
|
3
|
+
const require_index$1 = require("../checkbox/index.cjs");
|
|
4
|
+
let classnames = require("classnames");
|
|
5
|
+
classnames = require_runtime.__toESM(classnames);
|
|
6
|
+
let react = require("react");
|
|
7
|
+
let _ricons_material = require("@ricons/material");
|
|
8
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
|
+
//#region packages/components/tree/item.tsx
|
|
10
|
+
function TreeList(props) {
|
|
11
|
+
const { data = [], depth = 0, round, style, className, parent, nodeProps, ...restProps } = props;
|
|
12
|
+
const contents = data.map((item, i) => {
|
|
13
|
+
const { type } = item;
|
|
14
|
+
const title = item[nodeProps.title];
|
|
15
|
+
const itemKey = item[nodeProps.key] || (parent?.key !== void 0 ? `${parent.key}-${i}` : `${i}`);
|
|
16
|
+
item.key = itemKey;
|
|
17
|
+
item.parent = parent;
|
|
18
|
+
if (type === "title") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
19
|
+
className: "i-tree-group-title",
|
|
20
|
+
children: title
|
|
21
|
+
}, i);
|
|
22
|
+
if (type && type !== "item") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
23
|
+
className: `i-tree-type-${type}`,
|
|
24
|
+
children: title
|
|
25
|
+
}, i);
|
|
26
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeItem, {
|
|
27
|
+
index: i,
|
|
28
|
+
item,
|
|
29
|
+
depth,
|
|
30
|
+
nodeProps,
|
|
31
|
+
...restProps
|
|
32
|
+
}, itemKey);
|
|
33
|
+
});
|
|
34
|
+
if (depth > 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: contents });
|
|
35
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
36
|
+
className: (0, classnames.default)("i-tree", className, { "i-tree-round": round }),
|
|
37
|
+
style,
|
|
38
|
+
children: contents
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
const Header = (props) => {
|
|
42
|
+
const { as: Tag = "a", href, selected, children, ...restProps } = props;
|
|
43
|
+
const className = (0, classnames.default)("i-tree-item-header", { "i-tree-item-selected": selected });
|
|
44
|
+
if (typeof Tag === "string") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
|
|
45
|
+
href,
|
|
46
|
+
className,
|
|
47
|
+
...restProps,
|
|
48
|
+
children
|
|
49
|
+
});
|
|
50
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
|
|
51
|
+
to: href || "",
|
|
52
|
+
className,
|
|
53
|
+
...restProps,
|
|
54
|
+
children
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
const TreeItem = (props) => {
|
|
58
|
+
const { item, depth = 0, index, selected, checked = [], partofs = {}, checkable, nodeProps, renderExtra, onItemClick, onItemSelect, onItemCheck, ...restProps } = props;
|
|
59
|
+
const { as, key = "", href, icon, title, expanded, disabled } = item;
|
|
60
|
+
const children = item[nodeProps.children];
|
|
61
|
+
const [expand, setExpand] = (0, react.useState)(expanded);
|
|
62
|
+
const handleExpand = (e, fromToggle) => {
|
|
63
|
+
if (fromToggle) {
|
|
64
|
+
e.preventDefault();
|
|
65
|
+
e.stopPropagation();
|
|
66
|
+
}
|
|
67
|
+
if (disabled || !children?.length) return;
|
|
68
|
+
setExpand((v) => !v);
|
|
69
|
+
};
|
|
70
|
+
const handleItemClick = (e) => {
|
|
71
|
+
if (disabled) {
|
|
72
|
+
e.preventDefault();
|
|
73
|
+
e.stopPropagation();
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
handleExpand(e);
|
|
77
|
+
onItemClick?.(item, e);
|
|
78
|
+
onItemSelect?.(key, item);
|
|
79
|
+
};
|
|
80
|
+
const handleItemCheck = (checked) => onItemCheck?.(item, checked, []);
|
|
81
|
+
const itemChecked = checked.includes(key);
|
|
82
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
83
|
+
className: (0, classnames.default)("i-tree-item", { "i-tree-expand": expand }),
|
|
84
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Header, {
|
|
85
|
+
as,
|
|
86
|
+
href,
|
|
87
|
+
style: { paddingLeft: `${depth * 1.5 + .5}em` },
|
|
88
|
+
selected: selected === key,
|
|
89
|
+
onClick: handleItemClick,
|
|
90
|
+
children: [
|
|
91
|
+
checkable && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default.Item, {
|
|
92
|
+
value: itemChecked,
|
|
93
|
+
partof: !itemChecked && partofs[key],
|
|
94
|
+
className: "i-tree-checkbox",
|
|
95
|
+
onChange: handleItemCheck,
|
|
96
|
+
onClick: (e) => e.stopPropagation()
|
|
97
|
+
}),
|
|
98
|
+
icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
99
|
+
className: "i-tree-item-icon",
|
|
100
|
+
children: icon
|
|
101
|
+
}),
|
|
102
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
103
|
+
className: "i-tree-item-title",
|
|
104
|
+
children: title
|
|
105
|
+
}),
|
|
106
|
+
renderExtra?.(item),
|
|
107
|
+
children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, {
|
|
108
|
+
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.KeyboardArrowDownRound, {}),
|
|
109
|
+
className: "i-tree-toggle",
|
|
110
|
+
onClick: (e) => handleExpand(e, true)
|
|
111
|
+
})
|
|
112
|
+
]
|
|
113
|
+
}), children?.length && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
114
|
+
className: "i-tree-item-content",
|
|
115
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeList, {
|
|
116
|
+
data: children,
|
|
117
|
+
depth: depth + 1,
|
|
118
|
+
selected,
|
|
119
|
+
checkable,
|
|
120
|
+
parent: item,
|
|
121
|
+
partofs,
|
|
122
|
+
checked,
|
|
123
|
+
nodeProps,
|
|
124
|
+
renderExtra,
|
|
125
|
+
onItemClick,
|
|
126
|
+
onItemSelect,
|
|
127
|
+
onItemCheck,
|
|
128
|
+
...restProps
|
|
129
|
+
})
|
|
130
|
+
})]
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
//#endregion
|
|
134
|
+
exports.TreeList = TreeList;
|
|
135
|
+
|
|
136
|
+
//# sourceMappingURL=item.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.cjs","names":["Checkbox","Icon","KeyboardArrowDownRound"],"sources":["../../../../packages/components/tree/item.tsx"],"sourcesContent":["import { KeyboardArrowDownRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { MouseEvent, useState } from \"react\";\nimport Checkbox from \"../checkbox\";\nimport Icon from \"../icon\";\nimport { ITree, ITreeHeader, PropsTreeItem } from \"./type\";\n\ninterface ITreeList extends Omit<ITree, \"nodeProps\"> {\n\tnodeProps: {\n\t\tkey: string;\n\t\ttitle: string;\n\t\tchildren: string;\n\t};\n}\n\nexport function TreeList(props: ITreeList) {\n\tconst {\n\t\tdata = [],\n\t\tdepth = 0,\n\t\tround,\n\t\tstyle,\n\t\tclassName,\n\t\tparent,\n\t\tnodeProps,\n\t\t...restProps\n\t} = props;\n\n\tconst contents = data.map((item, i) => {\n\t\tconst { type } = item;\n\t\tconst title = item[nodeProps.title];\n\t\tconst itemKey =\n\t\t\titem[nodeProps.key] ||\n\t\t\t(parent?.key !== undefined ? `${parent.key}-${i}` : `${i}`);\n\n\t\titem.key = itemKey;\n\t\titem.parent = parent;\n\n\t\tif (type === \"title\") {\n\t\t\treturn (\n\t\t\t\t<div key={i} className='i-tree-group-title'>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif (type && type !== \"item\") {\n\t\t\treturn (\n\t\t\t\t<div key={i} className={`i-tree-type-${type}`}>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<TreeItem\n\t\t\t\tkey={itemKey}\n\t\t\t\tindex={i}\n\t\t\t\titem={item}\n\t\t\t\tdepth={depth}\n\t\t\t\tnodeProps={nodeProps}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t);\n\t});\n\n\tif (depth > 0) return <>{contents}</>;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-tree\", className, {\n\t\t\t\t\"i-tree-round\": round,\n\t\t\t})}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{contents}\n\t\t</div>\n\t);\n}\n\nconst Header = (props: ITreeHeader) => {\n\tconst { as: Tag = \"a\", href, selected, children, ...restProps } = props;\n\n\tconst className = classNames(\"i-tree-item-header\", {\n\t\t\"i-tree-item-selected\": selected,\n\t});\n\n\tif (typeof Tag === \"string\") {\n\t\treturn (\n\t\t\t<Tag href={href} className={className} {...restProps}>\n\t\t\t\t{children}\n\t\t\t</Tag>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Tag to={href || \"\"} className={className} {...restProps}>\n\t\t\t{children}\n\t\t</Tag>\n\t);\n};\n\nexport const TreeItem = (props: PropsTreeItem) => {\n\tconst {\n\t\titem,\n\t\tdepth = 0,\n\t\tindex,\n\t\tselected,\n\t\tchecked = [],\n\t\tpartofs = {},\n\t\tcheckable,\n\t\tnodeProps,\n\t\trenderExtra,\n\t\tonItemClick,\n\t\tonItemSelect,\n\t\tonItemCheck,\n\t\t...restProps\n\t} = props;\n\n\tconst { as, key = \"\", href, icon, title, expanded, disabled } = item;\n\tconst children = item[nodeProps.children];\n\n\tconst [expand, setExpand] = useState(expanded);\n\n\tconst handleExpand = (e: MouseEvent<HTMLElement>, fromToggle?: boolean) => {\n\t\tif (fromToggle) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (disabled || !children?.length) return;\n\n\t\tsetExpand((v) => !v);\n\t};\n\n\tconst handleItemClick = (e: MouseEvent<HTMLElement>) => {\n\t\tif (disabled) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\thandleExpand(e);\n\t\tonItemClick?.(item, e);\n\t\tonItemSelect?.(key, item);\n\t};\n\n\tconst handleItemCheck = (checked) => onItemCheck?.(item, checked, []);\n\tconst itemChecked = checked.includes(key);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-tree-item\", {\n\t\t\t\t\"i-tree-expand\": expand,\n\t\t\t})}\n\t\t>\n\t\t\t<Header\n\t\t\t\tas={as}\n\t\t\t\thref={href}\n\t\t\t\tstyle={{ paddingLeft: `${depth * 1.5 + 0.5}em` }}\n\t\t\t\tselected={selected === key}\n\t\t\t\tonClick={handleItemClick}\n\t\t\t>\n\t\t\t\t{checkable && (\n\t\t\t\t\t<Checkbox.Item\n\t\t\t\t\t\tvalue={itemChecked}\n\t\t\t\t\t\tpartof={!itemChecked && partofs[key]}\n\t\t\t\t\t\tclassName='i-tree-checkbox'\n\t\t\t\t\t\tonChange={handleItemCheck}\n\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{icon && <span className='i-tree-item-icon'>{icon}</span>}\n\n\t\t\t\t<span className='i-tree-item-title'>{title}</span>\n\n\t\t\t\t{renderExtra?.(item)}\n\n\t\t\t\t{children && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<KeyboardArrowDownRound />}\n\t\t\t\t\t\tclassName='i-tree-toggle'\n\t\t\t\t\t\tonClick={(e) => handleExpand(e, true)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Header>\n\n\t\t\t{children?.length && (\n\t\t\t\t<div className='i-tree-item-content'>\n\t\t\t\t\t<TreeList\n\t\t\t\t\t\tdata={children}\n\t\t\t\t\t\tdepth={depth + 1}\n\t\t\t\t\t\tselected={selected}\n\t\t\t\t\t\tcheckable={checkable}\n\t\t\t\t\t\tparent={item}\n\t\t\t\t\t\tpartofs={partofs}\n\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t\tnodeProps={nodeProps}\n\t\t\t\t\t\trenderExtra={renderExtra}\n\t\t\t\t\t\tonItemClick={onItemClick}\n\t\t\t\t\t\tonItemSelect={onItemSelect}\n\t\t\t\t\t\tonItemCheck={onItemCheck}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"mappings":";;;;;;;;;AAeA,SAAgB,SAAS,OAAkB;CAC1C,MAAM,EACL,OAAO,EAAE,EACT,QAAQ,GACR,OACA,OACA,WACA,QACA,WACA,GAAG,cACA;CAEJ,MAAM,WAAW,KAAK,KAAK,MAAM,MAAM;EACtC,MAAM,EAAE,SAAS;EACjB,MAAM,QAAQ,KAAK,UAAU;EAC7B,MAAM,UACL,KAAK,UAAU,SACd,QAAQ,QAAQ,KAAA,IAAY,GAAG,OAAO,IAAI,GAAG,MAAM,GAAG;AAExD,OAAK,MAAM;AACX,OAAK,SAAS;AAEd,MAAI,SAAS,QACZ,QACC,iBAAA,GAAA,kBAAA,KAAC,OAAD;GAAa,WAAU;aACrB;GACI,EAFI,EAEJ;AAIR,MAAI,QAAQ,SAAS,OACpB,QACC,iBAAA,GAAA,kBAAA,KAAC,OAAD;GAAa,WAAW,eAAe;aACrC;GACI,EAFI,EAEJ;AAIR,SACC,iBAAA,GAAA,kBAAA,KAAC,UAAD;GAEC,OAAO;GACD;GACC;GACI;GACX,GAAI;GACH,EANI,QAMJ;GAEF;AAEF,KAAI,QAAQ,EAAG,QAAO,iBAAA,GAAA,kBAAA,KAAA,kBAAA,UAAA,EAAA,UAAG,UAAY,CAAA;AAErC,QACC,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACC,YAAA,GAAA,WAAA,SAAsB,UAAU,WAAW,EAC1C,gBAAgB,OAChB,CAAC;EACK;YAEN;EACI,CAAA;;AAIR,MAAM,UAAU,UAAuB;CACtC,MAAM,EAAE,IAAI,MAAM,KAAK,MAAM,UAAU,UAAU,GAAG,cAAc;CAElE,MAAM,aAAA,GAAA,WAAA,SAAuB,sBAAsB,EAClD,wBAAwB,UACxB,CAAC;AAEF,KAAI,OAAO,QAAQ,SAClB,QACC,iBAAA,GAAA,kBAAA,KAAC,KAAD;EAAW;EAAiB;EAAW,GAAI;EACzC;EACI,CAAA;AAIR,QACC,iBAAA,GAAA,kBAAA,KAAC,KAAD;EAAK,IAAI,QAAQ;EAAe;EAAW,GAAI;EAC7C;EACI,CAAA;;AAIR,MAAa,YAAY,UAAyB;CACjD,MAAM,EACL,MACA,QAAQ,GACR,OACA,UACA,UAAU,EAAE,EACZ,UAAU,EAAE,EACZ,WACA,WACA,aACA,aACA,cACA,aACA,GAAG,cACA;CAEJ,MAAM,EAAE,IAAI,MAAM,IAAI,MAAM,MAAM,OAAO,UAAU,aAAa;CAChE,MAAM,WAAW,KAAK,UAAU;CAEhC,MAAM,CAAC,QAAQ,cAAA,GAAA,MAAA,UAAsB,SAAS;CAE9C,MAAM,gBAAgB,GAA4B,eAAyB;AAC1E,MAAI,YAAY;AACf,KAAE,gBAAgB;AAClB,KAAE,iBAAiB;;AAGpB,MAAI,YAAY,CAAC,UAAU,OAAQ;AAEnC,aAAW,MAAM,CAAC,EAAE;;CAGrB,MAAM,mBAAmB,MAA+B;AACvD,MAAI,UAAU;AACb,KAAE,gBAAgB;AAClB,KAAE,iBAAiB;AACnB;;AAGD,eAAa,EAAE;AACf,gBAAc,MAAM,EAAE;AACtB,iBAAe,KAAK,KAAK;;CAG1B,MAAM,mBAAmB,YAAY,cAAc,MAAM,SAAS,EAAE,CAAC;CACrE,MAAM,cAAc,QAAQ,SAAS,IAAI;AAEzC,QACC,iBAAA,GAAA,kBAAA,MAAC,OAAD;EACC,YAAA,GAAA,WAAA,SAAsB,eAAe,EACpC,iBAAiB,QACjB,CAAC;YAHH,CAKC,iBAAA,GAAA,kBAAA,MAAC,QAAD;GACK;GACE;GACN,OAAO,EAAE,aAAa,GAAG,QAAQ,MAAM,GAAI,KAAK;GAChD,UAAU,aAAa;GACvB,SAAS;aALV;IAOE,aACA,iBAAA,GAAA,kBAAA,KAACA,gBAAAA,QAAS,MAAV;KACC,OAAO;KACP,QAAQ,CAAC,eAAe,QAAQ;KAChC,WAAU;KACV,UAAU;KACV,UAAU,MAAM,EAAE,iBAAiB;KAClC,CAAA;IAGF,QAAQ,iBAAA,GAAA,kBAAA,KAAC,QAAD;KAAM,WAAU;eAAoB;KAAY,CAAA;IAEzD,iBAAA,GAAA,kBAAA,KAAC,QAAD;KAAM,WAAU;eAAqB;KAAa,CAAA;IAEjD,cAAc,KAAK;IAEnB,YACA,iBAAA,GAAA,kBAAA,KAACC,cAAAA,SAAD;KACC,MAAM,iBAAA,GAAA,kBAAA,KAACC,iBAAAA,wBAAD,EAA0B,CAAA;KAChC,WAAU;KACV,UAAU,MAAM,aAAa,GAAG,KAAK;KACpC,CAAA;IAEK;MAER,UAAU,UACV,iBAAA,GAAA,kBAAA,KAAC,OAAD;GAAK,WAAU;aACd,iBAAA,GAAA,kBAAA,KAAC,UAAD;IACC,MAAM;IACN,OAAO,QAAQ;IACL;IACC;IACX,QAAQ;IACC;IACA;IACE;IACE;IACA;IACC;IACD;IACb,GAAI;IACH,CAAA;GACG,CAAA,CAEF"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_item = require("./item.cjs");
|
|
3
|
+
let react = require("react");
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
//#region packages/components/tree/tree.tsx
|
|
6
|
+
const defaultNodeProps = {
|
|
7
|
+
key: "key",
|
|
8
|
+
title: "title",
|
|
9
|
+
children: "children"
|
|
10
|
+
};
|
|
11
|
+
const Tree = (props) => {
|
|
12
|
+
const { data = [], ref, selected, checked = [], disabledRelated, nodeProps, onItemSelect, onItemCheck, ...restProps } = props;
|
|
13
|
+
const [selectedKey, setSelectedKey] = (0, react.useState)(selected);
|
|
14
|
+
const [checkedKeys, setCheckedKeys] = (0, react.useState)(checked);
|
|
15
|
+
const [partofs, setPartofs] = (0, react.useState)({});
|
|
16
|
+
const nodeMapsRef = (0, react.useRef)(/* @__PURE__ */ new Map());
|
|
17
|
+
const oNodeProps = Object.assign({}, defaultNodeProps, nodeProps);
|
|
18
|
+
const isChecked = (key) => checkedKeys.includes(key || "");
|
|
19
|
+
const checkItem = (item, checked, direction) => {
|
|
20
|
+
const { key = "", parent, children } = item;
|
|
21
|
+
const shouldChanged = { [key]: checked };
|
|
22
|
+
const partofs = { [key]: false };
|
|
23
|
+
if (disabledRelated) return [shouldChanged];
|
|
24
|
+
if (checked) {
|
|
25
|
+
if (parent && direction !== "leaf") {
|
|
26
|
+
const hasUnchecked = parent.children?.some((o) => o.key !== key && !isChecked(o.key));
|
|
27
|
+
const [changes, parts] = checkItem(parent, true, "root");
|
|
28
|
+
if (!hasUnchecked) Object.assign(shouldChanged, changes);
|
|
29
|
+
Object.assign(partofs, hasUnchecked ? parts : {}, { [parent.key]: true });
|
|
30
|
+
}
|
|
31
|
+
if (children?.length && direction !== "root") children.map((o) => {
|
|
32
|
+
if (isChecked(o.key)) return;
|
|
33
|
+
const [changes] = checkItem(o, true, "leaf");
|
|
34
|
+
Object.assign(shouldChanged, changes);
|
|
35
|
+
partofs[o.key] = false;
|
|
36
|
+
});
|
|
37
|
+
return [shouldChanged, partofs];
|
|
38
|
+
}
|
|
39
|
+
if (parent && direction !== "leaf") {
|
|
40
|
+
const [changes, parts] = checkItem(parent, false, "root");
|
|
41
|
+
Object.assign(shouldChanged, changes);
|
|
42
|
+
const hasChecked = parent.children?.some((o) => isChecked(o.key) && o.key !== key);
|
|
43
|
+
Object.assign(partofs, hasChecked ? {} : parts, {
|
|
44
|
+
[parent.key]: hasChecked,
|
|
45
|
+
[key]: false
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
if (children?.length && direction !== "root") children.map((o) => {
|
|
49
|
+
const [changes] = checkItem(o, false, "leaf");
|
|
50
|
+
if (!isChecked(o.key)) return;
|
|
51
|
+
Object.assign(shouldChanged, changes);
|
|
52
|
+
partofs[o.key] = false;
|
|
53
|
+
});
|
|
54
|
+
return [shouldChanged, partofs];
|
|
55
|
+
};
|
|
56
|
+
const handleCheck = (item, checked) => {
|
|
57
|
+
const [shouldChanged, partofs] = checkItem(item, checked);
|
|
58
|
+
const changedKeys = Object.keys(shouldChanged);
|
|
59
|
+
const nextChecked = checked ? Array.from(new Set([...checkedKeys, ...changedKeys])) : checkedKeys.filter((k) => !changedKeys.includes(k));
|
|
60
|
+
setCheckedKeys(nextChecked);
|
|
61
|
+
setPartofs((p) => ({
|
|
62
|
+
...p,
|
|
63
|
+
...partofs
|
|
64
|
+
}));
|
|
65
|
+
onItemCheck?.(item, checked, nextChecked);
|
|
66
|
+
};
|
|
67
|
+
const handleSelect = (key, item) => {
|
|
68
|
+
if (!props.selectable) return;
|
|
69
|
+
setSelectedKey(key);
|
|
70
|
+
onItemSelect?.(key, item);
|
|
71
|
+
};
|
|
72
|
+
(0, react.useEffect)(() => {
|
|
73
|
+
if (selected === void 0) return;
|
|
74
|
+
setSelectedKey(selected);
|
|
75
|
+
}, [selected]);
|
|
76
|
+
(0, react.useEffect)(() => {
|
|
77
|
+
nodeMapsRef.current.clear();
|
|
78
|
+
const { key, children } = oNodeProps;
|
|
79
|
+
const recursive = (nodes) => {
|
|
80
|
+
nodes.map((o) => {
|
|
81
|
+
nodeMapsRef.current.set(o[key], o);
|
|
82
|
+
o[children]?.length > 0 && recursive(o[children]);
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
recursive(data);
|
|
86
|
+
}, [data]);
|
|
87
|
+
(0, react.useImperativeHandle)(ref, () => {
|
|
88
|
+
return {
|
|
89
|
+
getChecked: () => {
|
|
90
|
+
const items = [];
|
|
91
|
+
checkedKeys.map((k) => {
|
|
92
|
+
const item = nodeMapsRef.current.get(k);
|
|
93
|
+
items.push(item);
|
|
94
|
+
});
|
|
95
|
+
return [checkedKeys, items];
|
|
96
|
+
},
|
|
97
|
+
getSelected: () => {
|
|
98
|
+
return [selectedKey, nodeMapsRef.current.get(selectedKey)];
|
|
99
|
+
},
|
|
100
|
+
getPartofs: () => {
|
|
101
|
+
const items = [];
|
|
102
|
+
return [Object.keys(partofs).filter((k) => {
|
|
103
|
+
const indeterminate = partofs[k];
|
|
104
|
+
if (indeterminate) {
|
|
105
|
+
const item = nodeMapsRef.current.get(k);
|
|
106
|
+
items.push(item);
|
|
107
|
+
}
|
|
108
|
+
return indeterminate;
|
|
109
|
+
}), items];
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_item.TreeList, {
|
|
114
|
+
data,
|
|
115
|
+
selected: selectedKey,
|
|
116
|
+
checked: checkedKeys,
|
|
117
|
+
partofs,
|
|
118
|
+
nodeProps: oNodeProps,
|
|
119
|
+
onItemCheck: handleCheck,
|
|
120
|
+
onItemSelect: handleSelect,
|
|
121
|
+
...restProps
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
//#endregion
|
|
125
|
+
exports.default = Tree;
|
|
126
|
+
|
|
127
|
+
//# sourceMappingURL=tree.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.cjs","names":[],"sources":["../../../../packages/components/tree/tree.tsx"],"sourcesContent":["import { useEffect, useImperativeHandle, useRef, useState } from \"react\";\nimport \"./index.css\";\nimport { TreeList } from \"./item\";\nimport { ITree, ITreeItem } from \"./type\";\n\nconst defaultNodeProps = {\n\tkey: \"key\",\n\ttitle: \"title\",\n\tchildren: \"children\",\n};\n\nconst Tree = (props: ITree) => {\n\tconst {\n\t\tdata = [],\n\t\tref,\n\t\tselected,\n\t\tchecked = [],\n\t\tdisabledRelated,\n\t\tnodeProps,\n\t\tonItemSelect,\n\t\tonItemCheck,\n\t\t...restProps\n\t} = props;\n\tconst [selectedKey, setSelectedKey] = useState(selected);\n\tconst [checkedKeys, setCheckedKeys] = useState(checked);\n\tconst [partofs, setPartofs] = useState<Record<string, boolean>>({});\n\tconst nodeMapsRef = useRef<Map<any, any>>(new Map());\n\tconst oNodeProps = Object.assign({}, defaultNodeProps, nodeProps);\n\n\tconst isChecked = (key?: string) => checkedKeys.includes(key || \"\");\n\n\tconst checkItem = (\n\t\titem: ITreeItem,\n\t\tchecked: boolean,\n\t\tdirection?: \"root\" | \"leaf\"\n\t) => {\n\t\tconst { key = \"\", parent, children } = item;\n\t\tconst shouldChanged = { [key]: checked };\n\t\tconst partofs = { [key]: false };\n\n\t\tif (disabledRelated) return [shouldChanged];\n\n\t\tif (checked) {\n\t\t\tif (parent && direction !== \"leaf\") {\n\t\t\t\tconst hasUnchecked = parent.children?.some(\n\t\t\t\t\t(o) => o.key !== key && !isChecked(o.key)\n\t\t\t\t);\n\n\t\t\t\tconst [changes, parts] = checkItem(parent, true, \"root\");\n\n\t\t\t\tif (!hasUnchecked) {\n\t\t\t\t\tObject.assign(shouldChanged, changes);\n\t\t\t\t}\n\n\t\t\t\tObject.assign(partofs, hasUnchecked ? parts : {}, {\n\t\t\t\t\t[parent.key as string]: true,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (children?.length && direction !== \"root\") {\n\t\t\t\tchildren.map((o) => {\n\t\t\t\t\tif (isChecked(o.key)) return;\n\n\t\t\t\t\tconst [changes] = checkItem(o, true, \"leaf\");\n\n\t\t\t\t\tObject.assign(shouldChanged, changes);\n\t\t\t\t\tpartofs[o.key as string] = false;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn [shouldChanged, partofs];\n\t\t}\n\n\t\tif (parent && direction !== \"leaf\") {\n\t\t\tconst [changes, parts] = checkItem(parent, false, \"root\");\n\n\t\t\tObject.assign(shouldChanged, changes);\n\n\t\t\tconst hasChecked = parent.children?.some(\n\t\t\t\t(o) => isChecked(o.key) && o.key !== key\n\t\t\t);\n\n\t\t\tObject.assign(partofs, hasChecked ? {} : parts, {\n\t\t\t\t[parent.key as string]: hasChecked,\n\t\t\t\t[key]: false,\n\t\t\t});\n\t\t}\n\t\tif (children?.length && direction !== \"root\") {\n\t\t\tchildren.map((o) => {\n\t\t\t\tconst [changes] = checkItem(o, false, \"leaf\");\n\n\t\t\t\tif (!isChecked(o.key)) return;\n\n\t\t\t\tObject.assign(shouldChanged, changes);\n\t\t\t\tpartofs[o.key as string] = false;\n\t\t\t});\n\t\t}\n\n\t\treturn [shouldChanged, partofs];\n\t};\n\n\tconst handleCheck = (item: ITreeItem, checked: boolean) => {\n\t\tconst [shouldChanged, partofs] = checkItem(item, checked);\n\t\tconst changedKeys = Object.keys(shouldChanged);\n\n\t\tconst nextChecked = checked\n\t\t\t? Array.from(new Set([...checkedKeys, ...changedKeys]))\n\t\t\t: checkedKeys.filter((k) => !changedKeys.includes(k));\n\n\t\tsetCheckedKeys(nextChecked);\n\t\tsetPartofs((p) => ({ ...p, ...partofs }));\n\t\tonItemCheck?.(item, checked, nextChecked);\n\t};\n\n\tconst handleSelect = (key: string, item: ITreeItem) => {\n\t\tif (!props.selectable) return;\n\n\t\tsetSelectedKey(key);\n\t\tonItemSelect?.(key, item);\n\t};\n\n\tuseEffect(() => {\n\t\tif (selected === undefined) return;\n\n\t\tsetSelectedKey(selected);\n\t}, [selected]);\n\n\tuseEffect(() => {\n\t\tnodeMapsRef.current.clear();\n\n\t\tconst { key, children } = oNodeProps;\n\t\tconst recursive = (nodes) => {\n\t\t\tnodes.map((o) => {\n\t\t\t\tnodeMapsRef.current.set(o[key], o);\n\n\t\t\t\to[children]?.length > 0 && recursive(o[children]);\n\t\t\t});\n\t\t};\n\n\t\trecursive(data);\n\t}, [data]);\n\n\tuseImperativeHandle(ref, () => {\n\t\treturn {\n\t\t\tgetChecked: () => {\n\t\t\t\tconst items: ITreeItem[] = [];\n\t\t\t\tcheckedKeys.map((k) => {\n\t\t\t\t\tconst item = nodeMapsRef.current.get(k);\n\t\t\t\t\titems.push(item);\n\t\t\t\t});\n\t\t\t\treturn [checkedKeys, items];\n\t\t\t},\n\t\t\tgetSelected: () => {\n\t\t\t\tconst item = nodeMapsRef.current.get(selectedKey);\n\t\t\t\treturn [selectedKey, item];\n\t\t\t},\n\t\t\tgetPartofs: () => {\n\t\t\t\tconst items: ITreeItem[] = [];\n\t\t\t\tconst keys = Object.keys(partofs).filter((k) => {\n\t\t\t\t\tconst indeterminate = partofs[k];\n\n\t\t\t\t\tif (indeterminate) {\n\t\t\t\t\t\tconst item = nodeMapsRef.current.get(k);\n\t\t\t\t\t\titems.push(item);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn indeterminate;\n\t\t\t\t});\n\n\t\t\t\treturn [keys, items];\n\t\t\t},\n\t\t};\n\t});\n\n\treturn (\n\t\t<TreeList\n\t\t\tdata={data}\n\t\t\tselected={selectedKey}\n\t\t\tchecked={checkedKeys}\n\t\t\tpartofs={partofs}\n\t\t\tnodeProps={oNodeProps}\n\t\t\tonItemCheck={handleCheck}\n\t\t\tonItemSelect={handleSelect}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nexport default Tree;\n"],"mappings":";;;;;;CAKA,KAAM;CACL,OAAM;CACN,UAAQ;CACR;;CAGD,MAAM,EACL,OAAM,EAAA,EACL,KACA,UACA,UAAQ,EAAA,EACR,iBACA,WACA,cACA,aACA,GAAA,cACG;CACJ,MAAI,CAAA,aAAK,mBAAA,GAAA,MAAA,UAAA,SAAA;CACT,MAAM,CAAC,aAAa,mBAAA,GAAA,MAAA,UAA2B,QAAQ;CACvD,MAAM,CAAC,SAAA,eAAA,GAAA,MAAA,UAAgD,EAAA,CAAA;CACvD,MAAM,eAAA,GAAA,MAAA,wBAAiC,IAAO,KAAA,CAAM;CACpD,MAAM,aAAa,OAAO,OAAK,EAAI,EAAC,kBAAgB,UAAA;;oBAKpD,MACC,SACA,cACA;EACA,MAAI,EAAA,MAAA,IAAA,QAAA,aAAA;EACJ,MAAM,gBAAY,GAAO,MAAC,SAAa;EACvC,MAAM,UAAA,GAAa,MAAM,OAAM;;;AAK/B,OAAI,UAAS,cAAA,QAAA;IACZ,MAAI,eAAU,OAAe,UAAO,MACnC,MAAM,EAAA,QAAY,OAAG,CAAA,UAAe,EAAE,IAAI,CACzC;;sBAKD,QAAK,OAAA,eAAc,QAAA;yDAInB,OAAO,MAAgB,MACtB,CAAC;;gDAIH,UAAI,KAAU,MAAO;AACpB,QAAA,UAAe,EAAE,IAAG,CAAA;;;AAKnB,YAAO,EAAA,OAAoB;KAC3B;;;;GAOH,MAAI,CAAA,SAAU,SAAY,UAAU,QAAA,OAAA,OAAA;;6CAKnC,MAAM,UAAY,EAAC,IAAA,IAAO,EAAA,QAAU,IACnC;;KAGD,OAAO,MAAgB;KACrB,MAAM;IACP,CAAC;;AAEH,MAAA,UAAA,UAAA,cAAA,OACA,UAAI,KAAU,MAAO;GACpB,MAAA,CAAQ,WAAW,UAAC,GAAA,OAAA,OAAA;;;AAKnB,WAAO,EAAA,OAAoB;IAC3B;;;;EAOH,MAAM,CAAA,eAAe,WAAM,UAAW,MAAS,QAAW;EACzD,MAAM,cAAc,OAAE,KAAU,cAAW;gCAG3C,MAAM,KAAA,IAAY,IAAE,CAAA,GAAA,aAAA,GAAA,YAAA,CAAA,CAAA,GACjB,YAAW,QAAS,MAAG,CAAA,YAAgB,SAAA,EAAW,CAAC;;AAGtD,cAAA,OAAe;GAAA,GAAA;GAAY,GAAA;GAAA,EAAA;AAC3B,gBAAc,MAAM,SAAS,YAAY;;;AAI1C,MAAK,CAAC,MAAA,WAAgB;;AAGrB,iBAAe,KAAI,KAAA;;;AAIpB,MAAA,aAAgB,KAAA,EAAA;;IAGf,CAAA,SAAA,CAAA;;AAGD,cAAa,QAAG,OAAA;;EAGf,MAAM,aAAO,UAAa;AAC1B,SAAM,KAAA,MAAY;AACjB,gBAAa,QAAI,IAAA,EAAA,MAAA,EAAA;;KAGf;;;IAIH,CAAA,KAAA,CAAS;;AAGV,SAAA;GACC,kBAAO;IACN,MAAA,QAAkB,EAAA;AACjB,gBAAY,KAAC,MAAU;KACvB,MAAA,OAAY,YAAW,QAAA,IAAA,EAAA;AACtB,WAAM,KAAK,KAAE;MACb;AACD,WAAE,CAAA,aAAA,MAAA;;GAEH,mBAAC;AAEA,WAAM,CAAA,aADO,YAAK,QAAA,IAAA,YAAA,CACO;;GAE1B,kBAAC;IACD,MAAA,QAAkB,EAAA;YACJ,OAAA,KAAY,QAAI,CAAA,QAAA,MAAA;KAC7B,MAAM,gBAAc,QAAK;;MAGxB,MAAI,OAAA,YAAe,QAAA,IAAA,EAAA;AAClB,YAAM,KAAK,KAAE;;;MAId,EAAA,MAAA;;GAIF;GACA;QAGF,iBAAA,GAAA,kBAAA,KAAA,aAAA,UAAA;EACE;EACA,UAAU;EACV,SAAS;EACA;EACT,WAAS;EACT,aAAW;EACX,cAAa;EACb,GAAA;EACC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["Upload"],"sources":["../../../../packages/components/upload/index.tsx"],"sourcesContent":["import Upload from \"./upload\";\n\nexport default Upload;\n"],"mappings":";AAEA,IAAA,yCAAeA"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_index = require("../icon/index.cjs");
|
|
3
|
+
const require_utils = require("../../js/utils.cjs");
|
|
4
|
+
const require_index$1 = require("../utils/helpericon/index.cjs");
|
|
5
|
+
const require_type = require("../../js/usePreview/type.cjs");
|
|
6
|
+
const require_index$2 = require("../image/index.cjs");
|
|
7
|
+
let _Users_iann_codes_ioca_react_node_modules__pnpm_radash_12_1_1_node_modules_radash_dist_esm_index_mjs = require("/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs");
|
|
8
|
+
let _ricons_material = require("@ricons/material");
|
|
9
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
|
+
let react_easy_sort = require("react-easy-sort");
|
|
11
|
+
react_easy_sort = require_runtime.__toESM(react_easy_sort);
|
|
12
|
+
//#region packages/components/upload/renderFile.tsx
|
|
13
|
+
const ListContainer = (props) => {
|
|
14
|
+
const { sortable, onSortEnd, itemProps, ...restProps } = props;
|
|
15
|
+
const customProps = {
|
|
16
|
+
className: "i-upload-list",
|
|
17
|
+
onClick: (e) => {
|
|
18
|
+
e.stopPropagation();
|
|
19
|
+
e.preventDefault();
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
if (!sortable) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
23
|
+
...customProps,
|
|
24
|
+
...restProps
|
|
25
|
+
});
|
|
26
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_easy_sort.default, {
|
|
27
|
+
draggedItemClassName: "i-upload-item-dragged",
|
|
28
|
+
onSortEnd,
|
|
29
|
+
...customProps,
|
|
30
|
+
...restProps
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
const FileListItem = (props) => {
|
|
34
|
+
const { ref, mode, index, file, renderItem, onRemove, onPreview } = props;
|
|
35
|
+
if (!file) return "";
|
|
36
|
+
const { id, name, size, url, src } = file;
|
|
37
|
+
const type = require_utils.getFileType(name, file.type);
|
|
38
|
+
if (renderItem) return renderItem(file, index);
|
|
39
|
+
const CloseBtn = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, {
|
|
40
|
+
active: true,
|
|
41
|
+
className: "i-upload-delete",
|
|
42
|
+
onClick: (e) => {
|
|
43
|
+
e.stopPropagation();
|
|
44
|
+
e.preventDefault();
|
|
45
|
+
onRemove(index);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
switch (mode) {
|
|
49
|
+
case "card":
|
|
50
|
+
let node = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, {});
|
|
51
|
+
switch (type) {
|
|
52
|
+
case require_type.TFileType.IMAGE:
|
|
53
|
+
node = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$2.default, {
|
|
54
|
+
lazyload: true,
|
|
55
|
+
src: url || src,
|
|
56
|
+
fit: "cover",
|
|
57
|
+
onMouseDown: (e) => e.preventDefault()
|
|
58
|
+
});
|
|
59
|
+
break;
|
|
60
|
+
case require_type.TFileType.VIDEO:
|
|
61
|
+
node = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("video", {
|
|
62
|
+
src: url || src,
|
|
63
|
+
preload: "none"
|
|
64
|
+
});
|
|
65
|
+
break;
|
|
66
|
+
default:
|
|
67
|
+
node = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.ListAltRound, {}) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
68
|
+
className: "i-upload-file-name",
|
|
69
|
+
children: (0, _Users_iann_codes_ioca_react_node_modules__pnpm_radash_12_1_1_node_modules_radash_dist_esm_index_mjs.title)(name)
|
|
70
|
+
})] });
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
74
|
+
ref,
|
|
75
|
+
title: name,
|
|
76
|
+
className: "i-upload-item-card",
|
|
77
|
+
onClick: () => onPreview?.(index),
|
|
78
|
+
children: [node, CloseBtn]
|
|
79
|
+
});
|
|
80
|
+
default: return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
81
|
+
ref,
|
|
82
|
+
className: "i-upload-item",
|
|
83
|
+
onClick: () => onPreview?.(index),
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: name }),
|
|
86
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("i", {
|
|
87
|
+
className: "i-upload-size",
|
|
88
|
+
children: require_utils.formatBytes(size ?? 0)
|
|
89
|
+
}),
|
|
90
|
+
CloseBtn
|
|
91
|
+
]
|
|
92
|
+
}, id);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
//#endregion
|
|
96
|
+
exports.ListContainer = ListContainer;
|
|
97
|
+
exports.default = FileListItem;
|
|
98
|
+
|
|
99
|
+
//# sourceMappingURL=renderFile.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderFile.cjs","names":["SortableContainer","getFileType","Helpericon","TFileType","Image","Icon","ListAltRound","formatBytes"],"sources":["../../../../packages/components/upload/renderFile.tsx"],"sourcesContent":["import { ListAltRound } from \"@ricons/material\";\nimport { title } from \"radash\";\nimport { RefObject } from \"react\";\nimport SortableContainer from \"react-easy-sort\";\nimport { TFileType } from \"../../js/usePreview/type\";\nimport { formatBytes, getFileType } from \"../../js/utils\";\nimport Icon from \"../icon\";\nimport Image from \"../image\";\nimport Helpericon from \"../utils/helpericon\";\nimport { IUploadItem } from \"./type\";\n\nexport const ListContainer = (props) => {\n\tconst { sortable, onSortEnd, itemProps, ...restProps } = props;\n\tconst customProps = {\n\t\tclassName: \"i-upload-list\",\n\t\tonClick: (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t},\n\t};\n\n\tif (!sortable) {\n\t\treturn <div {...customProps} {...restProps} />;\n\t}\n\treturn (\n\t\t<SortableContainer\n\t\t\tdraggedItemClassName='i-upload-item-dragged'\n\t\t\tonSortEnd={onSortEnd}\n\t\t\t{...customProps}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nconst FileListItem = (\n\tprops: IUploadItem & { ref?: RefObject<HTMLDivElement | null> }\n) => {\n\tconst { ref, mode, index, file, renderItem, onRemove, onPreview } = props;\n\n\tif (!file) return \"\";\n\n\tconst { id, name, size, url, src } = file;\n\tconst type = getFileType(name, file.type);\n\n\tif (renderItem) {\n\t\treturn renderItem(file, index);\n\t}\n\n\tconst CloseBtn = (\n\t\t<Helpericon\n\t\t\tactive\n\t\t\tclassName='i-upload-delete'\n\t\t\tonClick={(e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\te.preventDefault();\n\t\t\t\tonRemove(index);\n\t\t\t}}\n\t\t/>\n\t);\n\n\tswitch (mode) {\n\t\tcase \"card\":\n\t\t\tlet node = <></>;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase TFileType.IMAGE:\n\t\t\t\t\tnode = (\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tlazyload\n\t\t\t\t\t\t\tsrc={url || src}\n\t\t\t\t\t\t\tfit='cover'\n\t\t\t\t\t\t\tonMouseDown={(e) => e.preventDefault()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase TFileType.VIDEO:\n\t\t\t\t\tnode = <video src={url || src} preload='none' />;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tnode = (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Icon icon={<ListAltRound />} />\n\t\t\t\t\t\t\t<span className='i-upload-file-name'>\n\t\t\t\t\t\t\t\t{title(name)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\ttitle={name}\n\t\t\t\t\tclassName='i-upload-item-card'\n\t\t\t\t\tonClick={() => onPreview?.(index)}\n\t\t\t\t>\n\t\t\t\t\t{node}\n\t\t\t\t\t{CloseBtn}\n\t\t\t\t</div>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\tkey={id}\n\t\t\t\t\tclassName='i-upload-item'\n\t\t\t\t\tonClick={() => onPreview?.(index)}\n\t\t\t\t>\n\t\t\t\t\t<span>{name}</span>\n\n\t\t\t\t\t<i className='i-upload-size'>{formatBytes(size ?? 0)}</i>\n\n\t\t\t\t\t{CloseBtn}\n\t\t\t\t</div>\n\t\t\t);\n\t}\n};\n\nexport default FileListItem;\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,iBAAiB,UAAU;CACvC,MAAM,EAAE,UAAU,WAAW,WAAW,GAAG,cAAc;CACzD,MAAM,cAAc;EACnB,WAAW;EACX,UAAU,MAAM;AACf,KAAE,iBAAiB;AACnB,KAAE,gBAAgB;;EAEnB;AAED,KAAI,CAAC,SACJ,QAAO,iBAAA,GAAA,kBAAA,KAAC,OAAD;EAAK,GAAI;EAAa,GAAI;EAAa,CAAA;AAE/C,QACC,iBAAA,GAAA,kBAAA,KAACA,gBAAAA,SAAD;EACC,sBAAqB;EACV;EACX,GAAI;EACJ,GAAI;EACH,CAAA;;AAIJ,MAAM,gBACL,UACI;CACJ,MAAM,EAAE,KAAK,MAAM,OAAO,MAAM,YAAY,UAAU,cAAc;AAEpE,KAAI,CAAC,KAAM,QAAO;CAElB,MAAM,EAAE,IAAI,MAAM,MAAM,KAAK,QAAQ;CACrC,MAAM,OAAOC,cAAAA,YAAY,MAAM,KAAK,KAAK;AAEzC,KAAI,WACH,QAAO,WAAW,MAAM,MAAM;CAG/B,MAAM,WACL,iBAAA,GAAA,kBAAA,KAACC,gBAAAA,SAAD;EACC,QAAA;EACA,WAAU;EACV,UAAU,MAAM;AACf,KAAE,iBAAiB;AACnB,KAAE,gBAAgB;AAClB,YAAS,MAAM;;EAEf,CAAA;AAGH,SAAQ,MAAR;EACC,KAAK;GACJ,IAAI,OAAO,iBAAA,GAAA,kBAAA,KAAA,kBAAA,UAAA,EAAK,CAAA;AAEhB,WAAQ,MAAR;IACC,KAAKC,aAAAA,UAAU;AACd,YACC,iBAAA,GAAA,kBAAA,KAACC,gBAAAA,SAAD;MACC,UAAA;MACA,KAAK,OAAO;MACZ,KAAI;MACJ,cAAc,MAAM,EAAE,gBAAgB;MACrC,CAAA;AAEH;IACD,KAAKD,aAAAA,UAAU;AACd,YAAO,iBAAA,GAAA,kBAAA,KAAC,SAAD;MAAO,KAAK,OAAO;MAAK,SAAQ;MAAS,CAAA;AAChD;IACD;AACC,YACC,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA,CACC,iBAAA,GAAA,kBAAA,KAACE,cAAAA,SAAD,EAAM,MAAM,iBAAA,GAAA,kBAAA,KAACC,iBAAAA,cAAD,EAAgB,CAAA,EAAI,CAAA,EAChC,iBAAA,GAAA,kBAAA,KAAC,QAAD;MAAM,WAAU;gIACR,KAAK;MACN,CAAA,CACL,EAAA,CAAA;AAEJ;;AAGF,UACC,iBAAA,GAAA,kBAAA,MAAC,OAAD;IACM;IACL,OAAO;IACP,WAAU;IACV,eAAe,YAAY,MAAM;cAJlC,CAME,MACA,SACI;;EAER,QACC,QACC,iBAAA,GAAA,kBAAA,MAAC,OAAD;GACM;GAEL,WAAU;GACV,eAAe,YAAY,MAAM;aAJlC;IAMC,iBAAA,GAAA,kBAAA,KAAC,QAAD,EAAA,UAAO,MAAY,CAAA;IAEnB,iBAAA,GAAA,kBAAA,KAAC,KAAD;KAAG,WAAU;eAAiBC,cAAAA,YAAY,QAAQ,EAAE;KAAK,CAAA;IAExD;IACI;KATA,GASA"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_index = require("../button/index.cjs");
|
|
3
|
+
const require_index$1 = require("../icon/index.cjs");
|
|
4
|
+
const require_utils = require("../../js/utils.cjs");
|
|
5
|
+
const require_index$2 = require("../../js/usePreview/index.cjs");
|
|
6
|
+
const require_container = require("../input/container.cjs");
|
|
7
|
+
const require_renderFile = require("./renderFile.cjs");
|
|
8
|
+
let classnames = require("classnames");
|
|
9
|
+
classnames = require_runtime.__toESM(classnames);
|
|
10
|
+
let _Users_iann_codes_ioca_react_node_modules__pnpm_radash_12_1_1_node_modules_radash_dist_esm_index_mjs = require("/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs");
|
|
11
|
+
let react = require("react");
|
|
12
|
+
let _ricons_material = require("@ricons/material");
|
|
13
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
14
|
+
let react_easy_sort = require("react-easy-sort");
|
|
15
|
+
//#region packages/components/upload/upload.tsx
|
|
16
|
+
const Upload = (props) => {
|
|
17
|
+
const { ref, label, labelInline, value, files = [], initialFiles, placeholder, status = "normal", message, className, style, children, defaultButtonProps, mode = "default", cardSize = "4em", disabled, sortable, limit = props.multiple ? Infinity : 1, multiple, renderItem, shouldUpload = () => true, uploader, onChange, onFilesChange, onUpload, ...restProps } = props;
|
|
18
|
+
const [fileList, setFileListState] = (0, react.useState)(files);
|
|
19
|
+
const [uploadMessage, setUploadMessage] = (0, react.useState)(message);
|
|
20
|
+
const inputRef = (0, react.useRef)(null);
|
|
21
|
+
const preview = require_index$2.default();
|
|
22
|
+
const defBtnProps = Object.assign({ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.DriveFolderUploadOutlined, {}) }), " 上传"] }) }, defaultButtonProps);
|
|
23
|
+
const trigger = (0, react.useMemo)(() => {
|
|
24
|
+
if (children) return children;
|
|
25
|
+
switch (mode) {
|
|
26
|
+
case "card": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, {
|
|
27
|
+
className: "i-upload-card-btn color-5",
|
|
28
|
+
square: true,
|
|
29
|
+
flat: true,
|
|
30
|
+
outline: true,
|
|
31
|
+
disabled,
|
|
32
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.PlusSharp, {}) })
|
|
33
|
+
});
|
|
34
|
+
default: return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, {
|
|
35
|
+
...defBtnProps,
|
|
36
|
+
className: (0, classnames.default)("i-upload-btn", defBtnProps.className),
|
|
37
|
+
disabled
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}, [mode, children]);
|
|
41
|
+
const handleChange = (e) => {
|
|
42
|
+
const files = Array.from(e.target.files || []);
|
|
43
|
+
const before = fileList;
|
|
44
|
+
const changed = [];
|
|
45
|
+
files.map((f) => {
|
|
46
|
+
const { id, name, size, type } = f;
|
|
47
|
+
const same = before.find((pf) => {
|
|
48
|
+
const { name: n, size: s, type: t } = pf;
|
|
49
|
+
return n === name && s === size && t === type;
|
|
50
|
+
});
|
|
51
|
+
const src = URL.createObjectURL(f);
|
|
52
|
+
Object.assign(f, {
|
|
53
|
+
id: id ?? (0, _Users_iann_codes_ioca_react_node_modules__pnpm_radash_12_1_1_node_modules_radash_dist_esm_index_mjs.uid)(7),
|
|
54
|
+
src: src ?? f.name,
|
|
55
|
+
url: src ?? f.name
|
|
56
|
+
});
|
|
57
|
+
!same && changed.push(f);
|
|
58
|
+
});
|
|
59
|
+
const after = [...before, ...changed];
|
|
60
|
+
const last = after.at(-1);
|
|
61
|
+
const nextFiles = multiple ? after.slice(0, limit) : last ? [last] : [];
|
|
62
|
+
setFileListState(nextFiles);
|
|
63
|
+
setUploadMessage(message);
|
|
64
|
+
onFilesChange?.(nextFiles, changed, e);
|
|
65
|
+
onChange?.(nextFiles, e);
|
|
66
|
+
handleUpload(changed);
|
|
67
|
+
inputRef.current && (inputRef.current.value = "");
|
|
68
|
+
};
|
|
69
|
+
const handleRemove = (i) => {
|
|
70
|
+
const [ ...files] = fileList;
|
|
71
|
+
const changed = files.splice(i, 1);
|
|
72
|
+
URL.revokeObjectURL(changed[0]?.src || "");
|
|
73
|
+
setFileListState(files);
|
|
74
|
+
onFilesChange?.(files, changed);
|
|
75
|
+
onChange?.(files);
|
|
76
|
+
inputRef.current && (inputRef.current.value = "");
|
|
77
|
+
};
|
|
78
|
+
const handleUpload = async (files) => {
|
|
79
|
+
if (!uploader) return;
|
|
80
|
+
const shouldUploadFiles = files.filter(shouldUpload);
|
|
81
|
+
const result = Promise.all(shouldUploadFiles.map(uploader));
|
|
82
|
+
return onUpload?.(result);
|
|
83
|
+
};
|
|
84
|
+
const handlePreview = (i) => {
|
|
85
|
+
preview({
|
|
86
|
+
items: fileList,
|
|
87
|
+
initial: i
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
const setFileList = (files) => {
|
|
91
|
+
if (!files) return;
|
|
92
|
+
setFileListState(files.map((f) => {
|
|
93
|
+
const file = f;
|
|
94
|
+
return {
|
|
95
|
+
...file,
|
|
96
|
+
id: file.id ?? (0, _Users_iann_codes_ioca_react_node_modules__pnpm_radash_12_1_1_node_modules_radash_dist_esm_index_mjs.uid)(7)
|
|
97
|
+
};
|
|
98
|
+
}));
|
|
99
|
+
};
|
|
100
|
+
const handleSortEnd = (before, after) => {
|
|
101
|
+
const [ ...files] = fileList;
|
|
102
|
+
const nextFiles = require_utils.arrayMove(files, before, after);
|
|
103
|
+
setFileListState(nextFiles);
|
|
104
|
+
onChange?.(nextFiles);
|
|
105
|
+
};
|
|
106
|
+
(0, react.useEffect)(() => {
|
|
107
|
+
setUploadMessage(message);
|
|
108
|
+
}, [status, message]);
|
|
109
|
+
(0, react.useEffect)(() => {
|
|
110
|
+
setFileListState(value?.filter?.((file) => !!file.id) ?? []);
|
|
111
|
+
}, [value]);
|
|
112
|
+
(0, react.useEffect)(() => {
|
|
113
|
+
setFileList(initialFiles);
|
|
114
|
+
}, []);
|
|
115
|
+
(0, react.useImperativeHandle)(ref, () => ({
|
|
116
|
+
getFileList: () => fileList,
|
|
117
|
+
setFileList
|
|
118
|
+
}), [fileList]);
|
|
119
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_container.default, {
|
|
120
|
+
as: "div",
|
|
121
|
+
label,
|
|
122
|
+
labelInline,
|
|
123
|
+
className: (0, classnames.default)("i-input-label-file", className),
|
|
124
|
+
style,
|
|
125
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
126
|
+
className: (0, classnames.default)("i-upload-inner", { [`i-upload-${mode}`]: mode !== "default" }),
|
|
127
|
+
style: { ["--upload-card-size"]: cardSize },
|
|
128
|
+
children: [
|
|
129
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_renderFile.ListContainer, {
|
|
130
|
+
sortable,
|
|
131
|
+
onSortEnd: handleSortEnd,
|
|
132
|
+
children: fileList.map((file, i) => {
|
|
133
|
+
const node = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_renderFile.default, {
|
|
134
|
+
index: i,
|
|
135
|
+
file,
|
|
136
|
+
mode,
|
|
137
|
+
renderItem,
|
|
138
|
+
onRemove: handleRemove,
|
|
139
|
+
onPreview: handlePreview
|
|
140
|
+
}, i);
|
|
141
|
+
if (!sortable) return node;
|
|
142
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_easy_sort.SortableItem, { children: node }, i);
|
|
143
|
+
})
|
|
144
|
+
}),
|
|
145
|
+
uploadMessage && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
146
|
+
className: "i-upload-message",
|
|
147
|
+
children: uploadMessage
|
|
148
|
+
}),
|
|
149
|
+
fileList.length < limit && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
150
|
+
...restProps,
|
|
151
|
+
disabled,
|
|
152
|
+
ref: inputRef,
|
|
153
|
+
type: "file",
|
|
154
|
+
className: "i-input-file-hidden",
|
|
155
|
+
multiple,
|
|
156
|
+
onChange: handleChange
|
|
157
|
+
}), trigger] })
|
|
158
|
+
]
|
|
159
|
+
})
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
//#endregion
|
|
163
|
+
exports.default = Upload;
|
|
164
|
+
|
|
165
|
+
//# sourceMappingURL=upload.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.cjs","names":[],"sources":["../../../../packages/components/upload/upload.tsx"],"sourcesContent":["import { DriveFolderUploadOutlined, PlusSharp } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport {\n\tChangeEvent,\n\tCSSProperties,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { SortableItem } from \"react-easy-sort\";\nimport usePreview from \"../../js/usePreview\";\nimport { TPreviewItem } from \"../../js/usePreview/type\";\nimport { arrayMove } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport InputContainer from \"../input/container\";\nimport \"./index.css\";\nimport FileListItem, { ListContainer } from \"./renderFile\";\nimport { IFile, IUpload } from \"./type\";\n\nconst Upload = (props: IUpload) => {\n\tconst {\n\t\tref,\n\t\tlabel,\n\t\tlabelInline,\n\t\tvalue,\n\t\tfiles = [],\n\t\tinitialFiles,\n\t\tplaceholder,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\tclassName,\n\t\tstyle,\n\t\tchildren,\n\t\tdefaultButtonProps,\n\t\tmode = \"default\",\n\t\tcardSize = \"4em\",\n\t\tdisabled,\n\t\tsortable,\n\t\tlimit = props.multiple ? Infinity : 1,\n\t\tmultiple,\n\t\trenderItem,\n\t\tshouldUpload = () => true,\n\t\tuploader,\n\t\tonChange,\n\t\tonFilesChange,\n\t\tonUpload,\n\t\t...restProps\n\t} = props;\n\n\tconst [fileList, setFileListState] = useState(files);\n\tconst [uploadMessage, setUploadMessage] = useState(message);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst preview = usePreview();\n\tconst defBtnProps = Object.assign(\n\t\t{\n\t\t\tchildren: (\n\t\t\t\t<>\n\t\t\t\t\t<Icon icon={<DriveFolderUploadOutlined />} /> 上传\n\t\t\t\t</>\n\t\t\t),\n\t\t},\n\t\tdefaultButtonProps,\n\t);\n\n\tconst trigger = useMemo(() => {\n\t\tif (children) return children;\n\n\t\tswitch (mode) {\n\t\t\tcase \"card\":\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-upload-card-btn color-5'\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tflat\n\t\t\t\t\t\toutline\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlusSharp />} />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{...defBtnProps}\n\t\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\t\"i-upload-btn\",\n\t\t\t\t\t\t\tdefBtnProps.className,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t}\n\t}, [mode, children]);\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst files = Array.from(e.target.files || []) as IFile[];\n\t\tconst before = fileList;\n\t\tconst changed: IFile[] = [];\n\n\t\tfiles.map((f) => {\n\t\t\tconst { id, name, size, type } = f;\n\t\t\tconst same = before.find((pf) => {\n\t\t\t\tconst { name: n, size: s, type: t } = pf;\n\t\t\t\treturn n === name && s === size && t === type;\n\t\t\t});\n\t\t\tconst src = URL.createObjectURL(f);\n\n\t\t\tObject.assign(f, {\n\t\t\t\tid: id ?? uid(7),\n\t\t\t\tsrc: src ?? f.name,\n\t\t\t\turl: src ?? f.name,\n\t\t\t});\n\t\t\t!same && changed.push(f);\n\t\t});\n\n\t\tconst after = [...before, ...changed];\n\t\tconst last = after.at(-1);\n\t\tconst nextFiles = multiple ? after.slice(0, limit) : last ? [last] : [];\n\n\t\tsetFileListState(nextFiles);\n\t\tsetUploadMessage(message);\n\n\t\tonFilesChange?.(nextFiles, changed, e);\n\t\tonChange?.(nextFiles, e);\n\n\t\thandleUpload(changed);\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleRemove = (i: number) => {\n\t\tconst [...files] = fileList;\n\n\t\tconst changed = files.splice(i, 1);\n\t\tURL.revokeObjectURL(changed[0]?.src || \"\");\n\n\t\tsetFileListState(files);\n\t\tonFilesChange?.(files, changed);\n\t\tonChange?.(files);\n\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleUpload = async (files: IFile[]) => {\n\t\tif (!uploader) return;\n\n\t\tconst shouldUploadFiles = files.filter(shouldUpload);\n\n\t\tconst result = Promise.all(shouldUploadFiles.map(uploader));\n\n\t\treturn onUpload?.(result);\n\t};\n\n\tconst handlePreview = (i: number) => {\n\t\tpreview({ items: fileList as TPreviewItem[], initial: i });\n\t};\n\n\tconst setFileList = (files?: IFile[] | File[]) => {\n\t\tif (!files) return;\n\n\t\tsetFileListState(\n\t\t\tfiles.map((f: IFile | File) => {\n\t\t\t\tconst file = f as IFile;\n\t\t\t\treturn { ...file, id: file.id ?? uid(7) };\n\t\t\t}),\n\t\t);\n\t};\n\n\tconst handleSortEnd = (before: number, after: number) => {\n\t\tconst [...files] = fileList;\n\n\t\tconst nextFiles = arrayMove(files, before, after);\n\t\tsetFileListState(nextFiles);\n\t\tonChange?.(nextFiles);\n\t};\n\n\tuseEffect(() => {\n\t\tsetUploadMessage(message);\n\t}, [status, message]);\n\n\tuseEffect(() => {\n\t\tsetFileListState(value?.filter?.((file: IFile) => !!file.id) ?? []);\n\t}, [value]);\n\n\tuseEffect(() => {\n\t\tsetFileList(initialFiles);\n\t}, []);\n\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\tgetFileList: () => fileList,\n\n\t\t\tsetFileList,\n\t\t}),\n\t\t[fileList],\n\t);\n\n\treturn (\n\t\t<InputContainer\n\t\t\tas='div'\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={classNames(\"i-input-label-file\", className)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-upload-inner\", {\n\t\t\t\t\t[`i-upload-${mode}`]: mode !== \"default\",\n\t\t\t\t})}\n\t\t\t\tstyle={{ [\"--upload-card-size\"]: cardSize } as CSSProperties}\n\t\t\t>\n\t\t\t\t<ListContainer sortable={sortable} onSortEnd={handleSortEnd}>\n\t\t\t\t\t{fileList.map((file: IFile, i: number) => {\n\t\t\t\t\t\tconst node = (\n\t\t\t\t\t\t\t<FileListItem\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\t\tmode={mode}\n\t\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t\t\tonRemove={handleRemove}\n\t\t\t\t\t\t\t\tonPreview={handlePreview}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!sortable) return node;\n\n\t\t\t\t\t\treturn <SortableItem key={i}>{node}</SortableItem>;\n\t\t\t\t\t})}\n\t\t\t\t</ListContainer>\n\n\t\t\t\t{uploadMessage && (\n\t\t\t\t\t<span className='i-upload-message'>{uploadMessage}</span>\n\t\t\t\t)}\n\n\t\t\t\t{fileList.length < limit && (\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\t\ttype='file'\n\t\t\t\t\t\t\tclassName='i-input-file-hidden'\n\t\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{trigger}\n\t\t\t\t\t</label>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n};\n\nexport default Upload;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
let classnames = require("classnames");
|
|
3
|
+
classnames = require_runtime.__toESM(classnames);
|
|
4
|
+
let _ricons_material = require("@ricons/material");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
//#region packages/components/utils/empty/index.tsx
|
|
7
|
+
function Empty(props) {
|
|
8
|
+
const { className, ...restProps } = props;
|
|
9
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.InboxTwotone, {
|
|
10
|
+
className: (0, classnames.default)("i-empty", className),
|
|
11
|
+
...restProps
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
exports.default = Empty;
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../../packages/components/utils/empty/index.tsx"],"sourcesContent":["import { InboxTwotone } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport \"./index.css\";\n\nexport default function Empty(props) {\n\tconst { className, ...restProps } = props;\n\n\treturn (\n\t\t<InboxTwotone\n\t\t\tclassName={classNames(\"i-empty\", className)}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAEA,SAAoB,MAAA,OAAA;;AAGnB,QAAA,iBAAA,GAAA,kBAAA,KAAA,iBAAA,cAAA;EAEA,YAAA,GAAA,WAAA,SAAO,WAAA,UAAA;EACL,GAAA;EACA,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_index = require("../../icon/index.cjs");
|
|
3
|
+
let classnames = require("classnames");
|
|
4
|
+
classnames = require_runtime.__toESM(classnames);
|
|
5
|
+
let _Users_iann_codes_ioca_react_node_modules__pnpm_radash_12_1_1_node_modules_radash_dist_esm_index_mjs = require("/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs");
|
|
6
|
+
let react = require("react");
|
|
7
|
+
let _ricons_material = require("@ricons/material");
|
|
8
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
|
+
//#region packages/components/utils/helpericon/helpericon.tsx
|
|
10
|
+
const Helpericon = (props) => {
|
|
11
|
+
const { as = "a", active, className, icon = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.CloseRound, {}), ...restProps } = props;
|
|
12
|
+
if (!active) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, {});
|
|
13
|
+
return (0, react.createElement)(as, {
|
|
14
|
+
className: (0, classnames.default)("i-helpericon", className),
|
|
15
|
+
...restProps
|
|
16
|
+
}, [(0, react.createElement)(require_index.default, {
|
|
17
|
+
key: (0, _Users_iann_codes_ioca_react_node_modules__pnpm_radash_12_1_1_node_modules_radash_dist_esm_index_mjs.uid)(3),
|
|
18
|
+
icon
|
|
19
|
+
})]);
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
exports.default = Helpericon;
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=helpericon.cjs.map
|