@ioca/react 1.4.77 → 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.map +1 -1
- package/lib/es/components/affix/totop.js +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 -1
- 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 -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/form.js.map +1 -1
- 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 -1
- package/lib/es/components/input/input.js.map +1 -1
- package/lib/es/components/input/number.js +1 -1
- package/lib/es/components/input/number.js.map +1 -1
- package/lib/es/components/input/range.js +1 -1
- 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.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 -1
- 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/index.js.map +1 -1
- package/lib/es/components/picker/dates/index.js +1 -1
- package/lib/es/components/picker/dates/index.js.map +1 -1
- package/lib/es/components/picker/dates/panel.js +1 -1
- package/lib/es/components/picker/time/index.js +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.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 -1
- package/lib/es/components/select/select.js +1 -1
- 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/step.js.map +1 -1
- package/lib/es/components/swiper/swiper.js +1 -1
- 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/text.js.map +1 -1
- package/lib/es/components/tree/item.js +1 -1
- package/lib/es/components/tree/tree.js.map +1 -1
- package/lib/es/components/upload/renderFile.js +1 -1
- package/lib/es/components/upload/upload.js +1 -1
- 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 +1 -1
- package/lib/es/components/utils/helpericon/helpericon.js.map +1 -1
- package/lib/es/components/video/video.js +1 -1
- package/lib/es/components/video/video.js.map +1 -1
- package/lib/es/js/usePreview/content.js +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/useRipple/index.js.map +1 -1
- package/lib/types/components/affix/affix.js +0 -1
- 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 -2
- 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 -1
- package/lib/types/components/editor/editor.js +0 -1
- package/lib/types/components/flex/flex.js +0 -1
- package/lib/types/components/form/form.js +0 -1
- 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 -2
- package/lib/types/components/input/number.js +1 -2
- package/lib/types/components/input/range.js +1 -2
- 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 +0 -1
- 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 -2
- 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 +1 -2
- package/lib/types/components/picker/dates/panel.js +1 -1
- 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 +0 -1
- 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 -1
- package/lib/types/components/select/select.js +1 -3
- 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 -2
- package/lib/types/components/tabs/tabs.js +1 -2
- package/lib/types/components/tag/tag.js +0 -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 +1 -1
- package/lib/types/components/upload/upload.js +1 -2
- package/lib/types/components/utils/empty/index.js +1 -2
- package/lib/types/components/utils/helpericon/helpericon.js +1 -2
- package/lib/types/components/video/video.js +1 -2
- package/lib/types/index.js +0 -1
- package/lib/types/js/usePreview/content.js +1 -1
- 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/package.json +6 -3
|
@@ -6,7 +6,7 @@ import popup_default from "../popup/index.js";
|
|
|
6
6
|
import Item from "./item.js";
|
|
7
7
|
import classNames from "classnames";
|
|
8
8
|
import { Children, useEffect, useImperativeHandle, useRef, useState } from "react";
|
|
9
|
-
import { MoreHorizRound } from "
|
|
9
|
+
import { MoreHorizRound } from "@ricons/material";
|
|
10
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
//#region packages/components/tabs/tabs.tsx
|
|
12
12
|
const Tabs = ((props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","names":[],"sources":["../../../../packages/components/tabs/tabs.tsx"],"sourcesContent":["import { MoreHorizRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport {\n\tCSSProperties,\n\tChildren,\n\tReactNode,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { useIntersectionObserver, useSize } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport TabItem from \"./item\";\nimport { CompositionTabs, ITabItem, ITabs } from \"./type\";\n\nconst Tabs = ((props: ITabs) => {\n\tconst {\n\t\tref,\n\t\tactive,\n\t\ttabs: items,\n\t\ttype = \"default\",\n\t\tprepend,\n\t\tappend,\n\t\tchildren,\n\t\tclassName,\n\t\tvertical,\n\t\ttoggable,\n\t\tnavsJustify = \"start\",\n\t\tbar = true,\n\t\thideMore,\n\t\tbarClass,\n\t\trenderMore = () => (\n\t\t\t<Button flat square size='small'>\n\t\t\t\t<Icon icon={<MoreHorizRound />} />\n\t\t\t</Button>\n\t\t),\n\t\tonTabChange,\n\t\t...rest\n\t} = props;\n\n\tconst navRefs = useRef<HTMLElement[]>([]);\n\tconst barRef = useRef<HTMLSpanElement>(null);\n\tconst navsRef = useRef<HTMLDivElement>(null);\n\tconst contentsRef = useRef<Map<string, ReactNode>>(new Map());\n\tconst [activeKey, setActiveKey] = useState<string | undefined>(active);\n\tconst [prevActiveKey, setPrevActiveKey] = useState<string | undefined>(\n\t\tundefined,\n\t);\n\tconst [barStyle, setBarStyle] = useState<CSSProperties>({});\n\tconst [cachedTabs, setCachedTabs] = useState<string[]>([]);\n\tconst [overflow, setOverflow] = useState(false);\n\tconst [moreTabs, setMoreTabs] = useState<ITabItem[]>([]);\n\tconst [tabs, setTabs] = useState<ITabItem[]>([]);\n\tconst { observe, unobserve } = useIntersectionObserver();\n\tconst size = useSize(navsRef);\n\n\tuseEffect(() => {\n\t\tcontentsRef.current.clear();\n\n\t\tif (!items) {\n\t\t\tif (!children) {\n\t\t\t\tsetTabs([]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetTabs(\n\t\t\t\t(Children.map(children, (node, i) => {\n\t\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\t\tkey?: string;\n\t\t\t\t\t\tprops?: any;\n\t\t\t\t\t};\n\t\t\t\t\tconst {\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tchildren: tabChildren,\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\tkeepDOM,\n\t\t\t\t\t\tclosable,\n\t\t\t\t\t} = nodeProps;\n\t\t\t\t\tconst tabKey = String(key ?? i);\n\t\t\t\t\tcontentsRef.current.set(tabKey, tabChildren ?? content);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: tabKey,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tkeepDOM,\n\t\t\t\t\t\tclosable,\n\t\t\t\t\t};\n\t\t\t\t}) as ITabItem[]) ?? [],\n\t\t\t);\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetTabs(\n\t\t\titems.map((item, i) => {\n\t\t\t\tif ([\"string\", \"number\"].includes(typeof item)) {\n\t\t\t\t\tconst key = String(item);\n\t\t\t\t\treturn { key, title: item };\n\t\t\t\t}\n\t\t\t\tconst key = String(item.key ?? i);\n\t\t\t\tcontentsRef.current.set(key, item.content);\n\t\t\t\tconst { content, ...rest } = item;\n\t\t\t\treturn {\n\t\t\t\t\t...rest,\n\t\t\t\t\tkey,\n\t\t\t\t};\n\t\t\t}),\n\t\t);\n\t}, [children, items]);\n\n\tconst add = (tab: ITabItem) => {\n\t\tconst tkey = String(tab.key ?? tabs.length);\n\t\tconst i = tabs.findIndex((t) => t.key === tkey);\n\n\t\tif (i > -1) {\n\t\t\topen(tabs[i].key ?? `${i}`);\n\t\t\treturn;\n\t\t}\n\n\t\tcontentsRef.current.set(tkey, tab.content);\n\t\tconst { content, ...rest } = tab;\n\t\tsetTabs((ts) => [...ts, { ...rest, key: tkey }]);\n\t\topen(tkey);\n\t};\n\n\tconst close = (key: string) => {\n\t\tconst i = tabs.findIndex((t) => t.key === key);\n\n\t\tif (i < 0) return;\n\n\t\tcontentsRef.current.delete(key);\n\t\tconst nextTabs = [...tabs];\n\t\tnextTabs.splice(i, 1);\n\t\tsetTabs(nextTabs);\n\n\t\tif (activeKey !== key) return;\n\n\t\tconst next = nextTabs[i] || nextTabs[i - 1];\n\t\topen(prevActiveKey ?? next?.key ?? \"\");\n\t};\n\n\tconst open = (key: string) => {\n\t\tif (key === activeKey) {\n\t\t\tif (!toggable) return;\n\n\t\t\tonTabChange?.(undefined, key);\n\t\t\tsetActiveKey(undefined);\n\n\t\t\tsetBarStyle({\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tsetPrevActiveKey(activeKey);\n\t\tonTabChange?.(key, activeKey);\n\t\tsetActiveKey(key);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!size || hideMore || !observe) return;\n\t\tconst { scrollHeight, scrollWidth } = navsRef.current as HTMLElement;\n\t\tconst { width, height } = size;\n\n\t\tconst nextOverflow = scrollHeight > height || scrollWidth > width;\n\t\tsetOverflow(nextOverflow);\n\n\t\tif (!nextOverflow) return;\n\n\t\tnavRefs.current.map((nav, i) => {\n\t\t\tif (!nav) return;\n\t\t\tobserve(nav, (tar: HTMLElement, visible: boolean) => {\n\t\t\t\tsetTabs((ts) => {\n\t\t\t\t\tif (!ts[i]) return ts;\n\t\t\t\t\tconst nextTabs = ts.map((t, idx) =>\n\t\t\t\t\t\tidx === i ? { ...t, intersecting: visible } : t,\n\t\t\t\t\t);\n\t\t\t\t\tsetMoreTabs(nextTabs.filter((tab) => !tab.intersecting));\n\t\t\t\t\treturn nextTabs;\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}, [size, hideMore, tabs.length, observe]);\n\n\tuseEffect(() => {\n\t\tif (!bar || type === \"pane\" || activeKey === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = tabs.findIndex((tab) => tab.key === activeKey);\n\n\t\tsetTimeout(() => {\n\t\t\tconst nav = navRefs.current[index];\n\n\t\t\tif (!nav) return;\n\n\t\t\tif (tabs[index]?.keepDOM && activeKey) {\n\t\t\t\tsetCachedTabs((keys) => {\n\t\t\t\t\tif (keys.includes(activeKey)) return keys;\n\t\t\t\t\treturn [activeKey, ...keys];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst { offsetHeight, offsetLeft, offsetTop, offsetWidth } = nav;\n\t\t\tconst isLine = type === \"line\";\n\n\t\t\tsetBarStyle({\n\t\t\t\theight: !vertical && isLine ? \".25em\" : offsetHeight,\n\t\t\t\twidth: vertical && isLine ? \".25em\" : offsetWidth,\n\t\t\t\ttransform: `translate(${offsetLeft}px, ${offsetTop}px)`,\n\t\t\t});\n\t\t}, 16);\n\t}, [activeKey, bar, size, tabs, type, vertical]);\n\n\tuseEffect(() => {\n\t\tif (active === undefined || activeKey === active) return;\n\n\t\topen(active);\n\t}, [active]);\n\n\tuseEffect(() => {\n\t\tif (hideMore || !unobserve) return;\n\n\t\treturn () => {\n\t\t\tnavRefs.current?.map(unobserve);\n\t\t};\n\t}, [tabs.length, hideMore, unobserve]);\n\n\tuseEffect(() => {\n\t\tif (!navsRef.current || vertical) return;\n\n\t\tconst handleMouseWheel = (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\n\t\t\tif (vertical) return;\n\n\t\t\tnavsRef.current?.scrollBy({\n\t\t\t\tleft: e.deltaY + e.deltaX,\n\t\t\t});\n\t\t};\n\n\t\tnavsRef.current.addEventListener(\"wheel\", handleMouseWheel, {\n\t\t\tpassive: false,\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (!navsRef.current) return;\n\t\t\tnavsRef.current.removeEventListener(\"wheel\", handleMouseWheel);\n\t\t};\n\t}, [navsRef.current]);\n\n\tuseImperativeHandle(ref, () => ({\n\t\topen,\n\t\tclose,\n\t\tadd,\n\t\tnavs: navsRef,\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tabs\",\n\t\t\t\t{ flex: vertical, [`i-tabs-${type}`]: type !== \"default\" },\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-tab-navs-container\", {\n\t\t\t\t\t\"i-tab-navs-vertical\": vertical,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend}\n\n\t\t\t\t<div\n\t\t\t\t\tref={navsRef}\n\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\"i-tab-navs\",\n\t\t\t\t\t\t`justify-${navsJustify}`,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{tabs.map((tab, i) => {\n\t\t\t\t\t\tconst { title, key = `${i}`, closable } = tab;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tref={(ref) => (navRefs.current[i] = ref as any)}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": activeKey === key,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t\t{closable && (\n\t\t\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\t\t\tas='i'\n\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\tclassName='i-tab-nav-close'\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\tclose(key);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t\t{bar && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tref={barRef}\n\t\t\t\t\t\t\tclassName={classNames(\"i-tab-navs-bar\", barClass)}\n\t\t\t\t\t\t\tstyle={barStyle}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{!hideMore && overflow && moreTabs.length > 0 && (\n\t\t\t\t\t<Popup\n\t\t\t\t\t\tarrow={false}\n\t\t\t\t\t\tposition={vertical ? \"right\" : \"bottom\"}\n\t\t\t\t\t\talign='end'\n\t\t\t\t\t\ttouchable\n\t\t\t\t\t\thideDelay={500}\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<div className='i-tabs-morelist pd-4'>\n\t\t\t\t\t\t\t\t{moreTabs.map((tab, i) => {\n\t\t\t\t\t\t\t\t\tconst { key = `${i}`, title } = tab;\n\t\t\t\t\t\t\t\t\tconst isActive = activeKey === key;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderMore(moreTabs)}\n\t\t\t\t\t</Popup>\n\t\t\t\t)}\n\n\t\t\t\t{append}\n\t\t\t</div>\n\n\t\t\t<div className='i-tab-contents'>\n\t\t\t\t{tabs.map((tab, i) => {\n\t\t\t\t\tconst key = tab.key ?? `${i}`;\n\t\t\t\t\tconst content = contentsRef.current.get(key);\n\t\t\t\t\tconst isActive = activeKey === key;\n\t\t\t\t\tconst show =\n\t\t\t\t\t\tisActive ||\n\t\t\t\t\t\t(key !== undefined && cachedTabs.includes(key));\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\tshow && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-content\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}) as CompositionTabs;\n\nTabs.Item = TabItem;\n\nexport default Tabs;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tabs.js","names":[],"sources":["../../../../packages/components/tabs/tabs.tsx"],"sourcesContent":["import { MoreHorizRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport {\n\tCSSProperties,\n\tChildren,\n\tReactNode,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { useIntersectionObserver, useSize } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport TabItem from \"./item\";\nimport { CompositionTabs, ITabItem, ITabs } from \"./type\";\n\nconst Tabs = ((props: ITabs) => {\n\tconst {\n\t\tref,\n\t\tactive,\n\t\ttabs: items,\n\t\ttype = \"default\",\n\t\tprepend,\n\t\tappend,\n\t\tchildren,\n\t\tclassName,\n\t\tvertical,\n\t\ttoggable,\n\t\tnavsJustify = \"start\",\n\t\tbar = true,\n\t\thideMore,\n\t\tbarClass,\n\t\trenderMore = () => (\n\t\t\t<Button flat square size='small'>\n\t\t\t\t<Icon icon={<MoreHorizRound />} />\n\t\t\t</Button>\n\t\t),\n\t\tonTabChange,\n\t\t...rest\n\t} = props;\n\n\tconst navRefs = useRef<HTMLElement[]>([]);\n\tconst barRef = useRef<HTMLSpanElement>(null);\n\tconst navsRef = useRef<HTMLDivElement>(null);\n\tconst contentsRef = useRef<Map<string, ReactNode>>(new Map());\n\tconst [activeKey, setActiveKey] = useState<string | undefined>(active);\n\tconst [prevActiveKey, setPrevActiveKey] = useState<string | undefined>(\n\t\tundefined,\n\t);\n\tconst [barStyle, setBarStyle] = useState<CSSProperties>({});\n\tconst [cachedTabs, setCachedTabs] = useState<string[]>([]);\n\tconst [overflow, setOverflow] = useState(false);\n\tconst [moreTabs, setMoreTabs] = useState<ITabItem[]>([]);\n\tconst [tabs, setTabs] = useState<ITabItem[]>([]);\n\tconst { observe, unobserve } = useIntersectionObserver();\n\tconst size = useSize(navsRef);\n\n\tuseEffect(() => {\n\t\tcontentsRef.current.clear();\n\n\t\tif (!items) {\n\t\t\tif (!children) {\n\t\t\t\tsetTabs([]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetTabs(\n\t\t\t\t(Children.map(children, (node, i) => {\n\t\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\t\tkey?: string;\n\t\t\t\t\t\tprops?: any;\n\t\t\t\t\t};\n\t\t\t\t\tconst {\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tchildren: tabChildren,\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\tkeepDOM,\n\t\t\t\t\t\tclosable,\n\t\t\t\t\t} = nodeProps;\n\t\t\t\t\tconst tabKey = String(key ?? i);\n\t\t\t\t\tcontentsRef.current.set(tabKey, tabChildren ?? content);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: tabKey,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tkeepDOM,\n\t\t\t\t\t\tclosable,\n\t\t\t\t\t};\n\t\t\t\t}) as ITabItem[]) ?? [],\n\t\t\t);\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetTabs(\n\t\t\titems.map((item, i) => {\n\t\t\t\tif ([\"string\", \"number\"].includes(typeof item)) {\n\t\t\t\t\tconst key = String(item);\n\t\t\t\t\treturn { key, title: item };\n\t\t\t\t}\n\t\t\t\tconst key = String(item.key ?? i);\n\t\t\t\tcontentsRef.current.set(key, item.content);\n\t\t\t\tconst { content, ...rest } = item;\n\t\t\t\treturn {\n\t\t\t\t\t...rest,\n\t\t\t\t\tkey,\n\t\t\t\t};\n\t\t\t}),\n\t\t);\n\t}, [children, items]);\n\n\tconst add = (tab: ITabItem) => {\n\t\tconst tkey = String(tab.key ?? tabs.length);\n\t\tconst i = tabs.findIndex((t) => t.key === tkey);\n\n\t\tif (i > -1) {\n\t\t\topen(tabs[i].key ?? `${i}`);\n\t\t\treturn;\n\t\t}\n\n\t\tcontentsRef.current.set(tkey, tab.content);\n\t\tconst { content, ...rest } = tab;\n\t\tsetTabs((ts) => [...ts, { ...rest, key: tkey }]);\n\t\topen(tkey);\n\t};\n\n\tconst close = (key: string) => {\n\t\tconst i = tabs.findIndex((t) => t.key === key);\n\n\t\tif (i < 0) return;\n\n\t\tcontentsRef.current.delete(key);\n\t\tconst nextTabs = [...tabs];\n\t\tnextTabs.splice(i, 1);\n\t\tsetTabs(nextTabs);\n\n\t\tif (activeKey !== key) return;\n\n\t\tconst next = nextTabs[i] || nextTabs[i - 1];\n\t\topen(prevActiveKey ?? next?.key ?? \"\");\n\t};\n\n\tconst open = (key: string) => {\n\t\tif (key === activeKey) {\n\t\t\tif (!toggable) return;\n\n\t\t\tonTabChange?.(undefined, key);\n\t\t\tsetActiveKey(undefined);\n\n\t\t\tsetBarStyle({\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tsetPrevActiveKey(activeKey);\n\t\tonTabChange?.(key, activeKey);\n\t\tsetActiveKey(key);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!size || hideMore || !observe) return;\n\t\tconst { scrollHeight, scrollWidth } = navsRef.current as HTMLElement;\n\t\tconst { width, height } = size;\n\n\t\tconst nextOverflow = scrollHeight > height || scrollWidth > width;\n\t\tsetOverflow(nextOverflow);\n\n\t\tif (!nextOverflow) return;\n\n\t\tnavRefs.current.map((nav, i) => {\n\t\t\tif (!nav) return;\n\t\t\tobserve(nav, (tar: HTMLElement, visible: boolean) => {\n\t\t\t\tsetTabs((ts) => {\n\t\t\t\t\tif (!ts[i]) return ts;\n\t\t\t\t\tconst nextTabs = ts.map((t, idx) =>\n\t\t\t\t\t\tidx === i ? { ...t, intersecting: visible } : t,\n\t\t\t\t\t);\n\t\t\t\t\tsetMoreTabs(nextTabs.filter((tab) => !tab.intersecting));\n\t\t\t\t\treturn nextTabs;\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}, [size, hideMore, tabs.length, observe]);\n\n\tuseEffect(() => {\n\t\tif (!bar || type === \"pane\" || activeKey === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = tabs.findIndex((tab) => tab.key === activeKey);\n\n\t\tsetTimeout(() => {\n\t\t\tconst nav = navRefs.current[index];\n\n\t\t\tif (!nav) return;\n\n\t\t\tif (tabs[index]?.keepDOM && activeKey) {\n\t\t\t\tsetCachedTabs((keys) => {\n\t\t\t\t\tif (keys.includes(activeKey)) return keys;\n\t\t\t\t\treturn [activeKey, ...keys];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst { offsetHeight, offsetLeft, offsetTop, offsetWidth } = nav;\n\t\t\tconst isLine = type === \"line\";\n\n\t\t\tsetBarStyle({\n\t\t\t\theight: !vertical && isLine ? \".25em\" : offsetHeight,\n\t\t\t\twidth: vertical && isLine ? \".25em\" : offsetWidth,\n\t\t\t\ttransform: `translate(${offsetLeft}px, ${offsetTop}px)`,\n\t\t\t});\n\t\t}, 16);\n\t}, [activeKey, bar, size, tabs, type, vertical]);\n\n\tuseEffect(() => {\n\t\tif (active === undefined || activeKey === active) return;\n\n\t\topen(active);\n\t}, [active]);\n\n\tuseEffect(() => {\n\t\tif (hideMore || !unobserve) return;\n\n\t\treturn () => {\n\t\t\tnavRefs.current?.map(unobserve);\n\t\t};\n\t}, [tabs.length, hideMore, unobserve]);\n\n\tuseEffect(() => {\n\t\tif (!navsRef.current || vertical) return;\n\n\t\tconst handleMouseWheel = (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\n\t\t\tif (vertical) return;\n\n\t\t\tnavsRef.current?.scrollBy({\n\t\t\t\tleft: e.deltaY + e.deltaX,\n\t\t\t});\n\t\t};\n\n\t\tnavsRef.current.addEventListener(\"wheel\", handleMouseWheel, {\n\t\t\tpassive: false,\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (!navsRef.current) return;\n\t\t\tnavsRef.current.removeEventListener(\"wheel\", handleMouseWheel);\n\t\t};\n\t}, [navsRef.current]);\n\n\tuseImperativeHandle(ref, () => ({\n\t\topen,\n\t\tclose,\n\t\tadd,\n\t\tnavs: navsRef,\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tabs\",\n\t\t\t\t{ flex: vertical, [`i-tabs-${type}`]: type !== \"default\" },\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-tab-navs-container\", {\n\t\t\t\t\t\"i-tab-navs-vertical\": vertical,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend}\n\n\t\t\t\t<div\n\t\t\t\t\tref={navsRef}\n\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\"i-tab-navs\",\n\t\t\t\t\t\t`justify-${navsJustify}`,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{tabs.map((tab, i) => {\n\t\t\t\t\t\tconst { title, key = `${i}`, closable } = tab;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tref={(ref) => (navRefs.current[i] = ref as any)}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": activeKey === key,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t\t{closable && (\n\t\t\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\t\t\tas='i'\n\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\tclassName='i-tab-nav-close'\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\tclose(key);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t\t{bar && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tref={barRef}\n\t\t\t\t\t\t\tclassName={classNames(\"i-tab-navs-bar\", barClass)}\n\t\t\t\t\t\t\tstyle={barStyle}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{!hideMore && overflow && moreTabs.length > 0 && (\n\t\t\t\t\t<Popup\n\t\t\t\t\t\tarrow={false}\n\t\t\t\t\t\tposition={vertical ? \"right\" : \"bottom\"}\n\t\t\t\t\t\talign='end'\n\t\t\t\t\t\ttouchable\n\t\t\t\t\t\thideDelay={500}\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<div className='i-tabs-morelist pd-4'>\n\t\t\t\t\t\t\t\t{moreTabs.map((tab, i) => {\n\t\t\t\t\t\t\t\t\tconst { key = `${i}`, title } = tab;\n\t\t\t\t\t\t\t\t\tconst isActive = activeKey === key;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderMore(moreTabs)}\n\t\t\t\t\t</Popup>\n\t\t\t\t)}\n\n\t\t\t\t{append}\n\t\t\t</div>\n\n\t\t\t<div className='i-tab-contents'>\n\t\t\t\t{tabs.map((tab, i) => {\n\t\t\t\t\tconst key = tab.key ?? `${i}`;\n\t\t\t\t\tconst content = contentsRef.current.get(key);\n\t\t\t\t\tconst isActive = activeKey === key;\n\t\t\t\t\tconst show =\n\t\t\t\t\t\tisActive ||\n\t\t\t\t\t\t(key !== undefined && cachedTabs.includes(key));\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\tshow && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-content\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}) as CompositionTabs;\n\nTabs.Item = TabItem;\n\nexport default Tabs;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.js","names":[],"sources":["../../../../packages/components/tag/tag.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { ITag } from \"./type\";\n\nconst Tag = (props: ITag) => {\n\tconst {\n\t\tdot,\n\t\tdotClass,\n\t\toutline,\n\t\tround,\n\t\tsize = \"normal\",\n\t\thoverShowClose,\n\t\tclassName,\n\t\tchildren,\n\t\tonClose,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\n\treturn (\n\t\t<span\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tag\",\n\t\t\t\t{\n\t\t\t\t\t\"i-tag-outline\": outline,\n\t\t\t\t\t\"i-tag-clickable\": onClick,\n\t\t\t\t\t[`i-tag-${size}`]: size !== \"normal\",\n\t\t\t\t\tround,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tonClick={onClick}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{dot && <span className={classNames(\"i-tag-dot\", dotClass)}></span>}\n\n\t\t\t{children}\n\n\t\t\t{onClose && (\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive\n\t\t\t\t\tclassName={classNames(\"i-tag-close\", {\n\t\t\t\t\t\t\"i-tag-hover-close\": hoverShowClose,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</span>\n\t);\n};\n\nexport default Tag;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"tag.js","names":[],"sources":["../../../../packages/components/tag/tag.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { ITag } from \"./type\";\n\nconst Tag = (props: ITag) => {\n\tconst {\n\t\tdot,\n\t\tdotClass,\n\t\toutline,\n\t\tround,\n\t\tsize = \"normal\",\n\t\thoverShowClose,\n\t\tclassName,\n\t\tchildren,\n\t\tonClose,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\n\treturn (\n\t\t<span\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tag\",\n\t\t\t\t{\n\t\t\t\t\t\"i-tag-outline\": outline,\n\t\t\t\t\t\"i-tag-clickable\": onClick,\n\t\t\t\t\t[`i-tag-${size}`]: size !== \"normal\",\n\t\t\t\t\tround,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tonClick={onClick}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{dot && <span className={classNames(\"i-tag-dot\", dotClass)}></span>}\n\n\t\t\t{children}\n\n\t\t\t{onClose && (\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive\n\t\t\t\t\tclassName={classNames(\"i-tag-close\", {\n\t\t\t\t\t\t\"i-tag-hover-close\": hoverShowClose,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</span>\n\t);\n};\n\nexport default Tag;\n"],"mappings":";;;;;CAKA,MAAM,EACL,KACC,UACA,SACA,OACA,OAAK,UACL,gBACA,WACA,UACA,SACA,SACA,GAAA,cACG;QAGJ,qBAAA,QAAA;EACE,WAAA,WACA,SACC;GACA,iBAAA;GACC,mBAAiB;IAChB,SAAM,SAAY,SAAO;GAC1B;GACA,EACD,UACA;EACA;EACD,GAAA;YAZF;GAcC,OAAA,oBAAA,QAAA,EAAA,WAAA,WAAA,aAAA,SAAA,EAAA,CAAA;;cAKE,oBAAA,oBAAA;IACC,QAAA;IACA,WAAA,WAAA,eAAA,EACA,qBAAsB,gBACrB,CAAC;IACF,SAAE;IACF,CAAA;GAED"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","names":[],"sources":["../../../../packages/components/text/text.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport HighLight from \"./highlight\";\nimport \"./index.css\";\nimport Number from \"./number\";\nimport Time from \"./time\";\nimport { CompositionText, IText } from \"./type\";\n\nconst Text = (props: IText) => {\n\tconst {\n\t\tas: Tag = \"span\",\n\t\tsize,\n\t\tweight,\n\t\tdecoration,\n\t\tgradient,\n\t\twave,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t} = props;\n\n\tconst gradients = useMemo(() => {\n\t\tif (!gradient || !Array.isArray(gradient)) return {};\n\n\t\treturn {\n\t\t\tbackgroundImage: `-webkit-linear-gradient(${gradient.join(\",\")})`,\n\t\t\tbackgroundClip: \"text\",\n\t\t};\n\t}, [gradient]);\n\n\treturn (\n\t\t<Tag\n\t\t\tstyle={{\n\t\t\t\tfontSize: size,\n\t\t\t\tfontWeight: weight,\n\t\t\t\ttextDecoration: decoration,\n\t\t\t\t...gradients,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tclassName={classNames(className, {\n\t\t\t\t\"i-text-gradient\": gradient,\n\t\t\t\t\"i-text-gradient-wave\": wave,\n\t\t\t})}\n\t\t>\n\t\t\t{children}\n\t\t</Tag>\n\t);\n};\n\nText.Number = Number;\nText.Time = Time;\nText.HighLight = HighLight;\n\nexport default Text as CompositionText;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"text.js","names":[],"sources":["../../../../packages/components/text/text.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport HighLight from \"./highlight\";\nimport \"./index.css\";\nimport Number from \"./number\";\nimport Time from \"./time\";\nimport { CompositionText, IText } from \"./type\";\n\nconst Text = (props: IText) => {\n\tconst {\n\t\tas: Tag = \"span\",\n\t\tsize,\n\t\tweight,\n\t\tdecoration,\n\t\tgradient,\n\t\twave,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t} = props;\n\n\tconst gradients = useMemo(() => {\n\t\tif (!gradient || !Array.isArray(gradient)) return {};\n\n\t\treturn {\n\t\t\tbackgroundImage: `-webkit-linear-gradient(${gradient.join(\",\")})`,\n\t\t\tbackgroundClip: \"text\",\n\t\t};\n\t}, [gradient]);\n\n\treturn (\n\t\t<Tag\n\t\t\tstyle={{\n\t\t\t\tfontSize: size,\n\t\t\t\tfontWeight: weight,\n\t\t\t\ttextDecoration: decoration,\n\t\t\t\t...gradients,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tclassName={classNames(className, {\n\t\t\t\t\"i-text-gradient\": gradient,\n\t\t\t\t\"i-text-gradient-wave\": wave,\n\t\t\t})}\n\t\t>\n\t\t\t{children}\n\t\t</Tag>\n\t);\n};\n\nText.Number = Number;\nText.Time = Time;\nText.HighLight = HighLight;\n\nexport default Text as CompositionText;\n"],"mappings":";;;;;;;;CAQA,MAAM,EACL,IAAK,MAAC,QACL,MACA,QACA,YACA,UACA,MACA,OACA,WACA,aACA;QAYD,oBAAA,KAAA;EACE,OAAA;GACA,UAAO;GACN,YAAU;GACV,gBAAY;GACZ,GAAA,cAAA;AAdH,QAAK,CAAC,YAAY,CAAA,MAAO,QAAO,SAAA,CAAA,QAAA,EAAA;;KAG/B,iBAAO,2BAAA,SAAA,KAAA,IAAA,CAAA;KACN,gBAAgB;KAChB;MACA,CAAA,SAAA,CAAA;GASC,GAAG;GACH;EACD,WAAC,WAAA,WAAA;GACD,mBAAW;GACV,wBAAmB;GACnB,CAAC;EAEH;EACE,CAAA;;;AAKJ,KAAK,OAAO;AACZ,KAAK,YAAW"}
|
|
@@ -2,7 +2,7 @@ import icon_default from "../icon/index.js";
|
|
|
2
2
|
import checkbox_default from "../checkbox/index.js";
|
|
3
3
|
import classNames from "classnames";
|
|
4
4
|
import { useState } from "react";
|
|
5
|
-
import { KeyboardArrowDownRound } from "
|
|
5
|
+
import { KeyboardArrowDownRound } from "@ricons/material";
|
|
6
6
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
//#region packages/components/tree/item.tsx
|
|
8
8
|
function TreeList(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","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":"
|
|
1
|
+
{"version":3,"file":"tree.js","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,kBAAA,SAAA,SAAA;CACT,MAAM,CAAC,aAAa,kBAAkB,SAAS,QAAQ;CACvD,MAAM,CAAC,SAAA,cAAa,SAAmC,EAAA,CAAA;CACvD,MAAM,cAAU,uBAAuB,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,oBAAA,UAAA;EACE;EACA,UAAU;EACV,SAAS;EACA;EACT,WAAS;EACT,aAAW;EACX,cAAa;EACb,GAAA;EACC,CAAA"}
|
|
@@ -4,7 +4,7 @@ import helpericon_default from "../utils/helpericon/index.js";
|
|
|
4
4
|
import { TFileType } from "../../js/usePreview/type.js";
|
|
5
5
|
import image_default from "../image/index.js";
|
|
6
6
|
import { title } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
|
|
7
|
-
import { ListAltRound } from "
|
|
7
|
+
import { ListAltRound } from "@ricons/material";
|
|
8
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import SortableContainer from "react-easy-sort";
|
|
10
10
|
//#region packages/components/upload/renderFile.tsx
|
|
@@ -7,7 +7,7 @@ import FileListItem, { ListContainer } from "./renderFile.js";
|
|
|
7
7
|
import classNames from "classnames";
|
|
8
8
|
import { uid } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
|
|
9
9
|
import { useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
|
|
10
|
-
import { DriveFolderUploadOutlined, PlusSharp } from "
|
|
10
|
+
import { DriveFolderUploadOutlined, PlusSharp } from "@ricons/material";
|
|
11
11
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { SortableItem } from "react-easy-sort";
|
|
13
13
|
//#region packages/components/upload/upload.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","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":"
|
|
1
|
+
{"version":3,"file":"upload.js","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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import classNames from "classnames";
|
|
2
|
-
import { InboxTwotone } from "
|
|
2
|
+
import { InboxTwotone } from "@ricons/material";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
//#region packages/components/utils/empty/index.tsx
|
|
5
5
|
function Empty(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","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":";;;;
|
|
1
|
+
{"version":3,"file":"index.js","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,oBAAA,cAAA;EAEA,WAAO,WAAA,WAAA,UAAA;EACL,GAAA;EACA,CAAA"}
|
|
@@ -2,7 +2,7 @@ import icon_default from "../../icon/index.js";
|
|
|
2
2
|
import classNames from "classnames";
|
|
3
3
|
import { uid } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
|
|
4
4
|
import { createElement } from "react";
|
|
5
|
-
import { CloseRound } from "
|
|
5
|
+
import { CloseRound } from "@ricons/material";
|
|
6
6
|
import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
|
|
7
7
|
//#region packages/components/utils/helpericon/helpericon.tsx
|
|
8
8
|
const Helpericon = (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpericon.js","names":[],"sources":["../../../../../packages/components/utils/helpericon/helpericon.tsx"],"sourcesContent":["import { CloseRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport { createElement } from \"react\";\nimport Icon from \"../../icon\";\nimport \"./index.css\";\nimport { IHelperIcon } from \"./type\";\n\nconst Helpericon = (props: IHelperIcon) => {\n\tconst {\n\t\tas = \"a\",\n\t\tactive,\n\t\tclassName,\n\t\ticon = <CloseRound />,\n\t\t...restProps\n\t} = props;\n\n\tif (!active) return <></>;\n\n\treturn createElement(\n\t\tas,\n\t\t{\n\t\t\tclassName: classNames(\"i-helpericon\", className),\n\t\t\t...restProps,\n\t\t},\n\t\t[\n\t\t\tcreateElement(Icon, {\n\t\t\t\tkey: uid(3),\n\t\t\t\ticon,\n\t\t\t}),\n\t\t]\n\t);\n};\n\nexport default Helpericon;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpericon.js","names":[],"sources":["../../../../../packages/components/utils/helpericon/helpericon.tsx"],"sourcesContent":["import { CloseRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport { createElement } from \"react\";\nimport Icon from \"../../icon\";\nimport \"./index.css\";\nimport { IHelperIcon } from \"./type\";\n\nconst Helpericon = (props: IHelperIcon) => {\n\tconst {\n\t\tas = \"a\",\n\t\tactive,\n\t\tclassName,\n\t\ticon = <CloseRound />,\n\t\t...restProps\n\t} = props;\n\n\tif (!active) return <></>;\n\n\treturn createElement(\n\t\tas,\n\t\t{\n\t\t\tclassName: classNames(\"i-helpericon\", className),\n\t\t\t...restProps,\n\t\t},\n\t\t[\n\t\t\tcreateElement(Icon, {\n\t\t\t\tkey: uid(3),\n\t\t\t\ticon,\n\t\t\t}),\n\t\t]\n\t);\n};\n\nexport default Helpericon;\n"],"mappings":";;;;;;;;CAQA,MAAM,EACL,KAAM,KACL,QACA,WACA,OAAA,oBAAA,YAAA,EAAS,CAAA,EACT,GAAA,cACG;;sBAKJ,IACC;EACA,WAAA,WAAA,gBAAA,UAAA;EACC,GAAA;EACA,EACD,CACA,cAAA,cAAA;EACC,KAAA,IAAA,EAAA;EACC;EACA,CAAA,CACD,CACD"}
|
|
@@ -7,7 +7,7 @@ import progress_default from "../progress/index.js";
|
|
|
7
7
|
import classNames from "classnames";
|
|
8
8
|
import { throttle } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
|
|
9
9
|
import { useEffect, useImperativeHandle, useRef } from "react";
|
|
10
|
-
import { FullscreenExitRound, FullscreenRound, PauseRound, PlayArrowRound, StopRound, VolumeDownRound, VolumeOffRound } from "
|
|
10
|
+
import { FullscreenExitRound, FullscreenRound, PauseRound, PlayArrowRound, StopRound, VolumeDownRound, VolumeOffRound } from "@ricons/material";
|
|
11
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
//#region packages/components/video/video.tsx
|
|
13
13
|
const Video = (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.js","names":[],"sources":["../../../../packages/components/video/video.tsx"],"sourcesContent":["import {\n\tFullscreenExitRound,\n\tFullscreenRound,\n\tPauseRound,\n\tPlayArrowRound,\n\tStopRound,\n\tVolumeDownRound,\n\tVolumeOffRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useEffect, useImperativeHandle, useRef } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport { exitFullScreen, fullScreen } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Progress from \"../progress\";\nimport Text from \"../text\";\nimport \"./index.css\";\nimport { IVideo } from \"./type\";\n\nconst Video = (props: IVideo) => {\n\tconst {\n\t\tref,\n\t\tstyle,\n\t\thideControls,\n\t\tautoplay,\n\t\tmuted,\n\t\tvolume = 50,\n\t\theight,\n\t\twidth,\n\t\tuseOriginControls,\n\t\ttimeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tvolumeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tclassName,\n\t\tonFullScreenChange,\n\t\t...restProps\n\t} = props;\n\tconst state = useReactive({\n\t\tplaying: autoplay,\n\t\tvolume: muted ? 0 : volume,\n\t\tvolumeCache: 0,\n\t\tmuted,\n\t\tcurrent: 0,\n\t\tduration: 0,\n\t\tisFullscreen: false,\n\t\tcontrolHidden: true,\n\t\tdraggingProgress: false,\n\t});\n\tconst videoRef = useRef<HTMLVideoElement>(null);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst timeUpdateListener = (e) => {\n\t\tconst tar = e.target;\n\t\tif (tar.paused || state.draggingProgress) return;\n\n\t\tObject.assign(state, {\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t};\n\n\tconst playChangeListener = (e) => {\n\t\tstate.playing = !e.target.paused;\n\t};\n\n\tconst fsChangeListener = () => {\n\t\tif (typeof document === \"undefined\") return;\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen = document.fullscreenElement === tar;\n\t};\n\n\tconst volumeChangeListener = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tvolume: tar.volume * 100,\n\t\t\tmuted: tar.volume === 0,\n\t\t});\n\t};\n\n\tconst handlePlay = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.paused ? v.play() : v.pause();\n\t};\n\n\tconst handleReady = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tduration: tar.duration,\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t\ttar.volume = state.volume / 100;\n\t};\n\n\tconst handleMuted = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tif (v.volume > 0) {\n\t\t\tstate.volumeCache = v.volume;\n\t\t\tv.volume = 0;\n\t\t\treturn;\n\t\t}\n\t\tv.volume = state.volumeCache === 0 ? 0.5 : state.volumeCache;\n\t};\n\n\tconst handleStop = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = 0;\n\t\tv.pause();\n\t};\n\n\tconst handleFullscreen = () => {\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen ? exitFullScreen() : fullScreen(tar);\n\t\tonFullScreenChange?.(!state.isFullscreen);\n\t};\n\n\tconst handleUpdateTime = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = (state.duration * t) / 100;\n\t};\n\n\tconst handleUpdateVolume = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.volume = t / 100;\n\t};\n\n\tconst showControls = !hideControls && !useOriginControls;\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!showControls || !state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst handleDraggingProgress = (dragging) => {\n\t\tstate.draggingProgress = dragging;\n\t};\n\n\tconst handleMouseMove = throttle({ interval: 900 }, setHiddenFalse);\n\n\tuseImperativeHandle(ref, () => ({\n\t\tplay: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.play();\n\t\t},\n\t\tpause: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.pause();\n\t\t},\n\t\tstop: handleStop,\n\t\tfullscreen: handleFullscreen,\n\t\tgetVideo: () => videoRef.current,\n\t}));\n\n\tuseEffect(() => {\n\t\tif (typeof document === \"undefined\") return;\n\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.addEventListener(\"timeupdate\", timeUpdateListener);\n\t\tv.addEventListener(\"play\", playChangeListener);\n\t\tv.addEventListener(\"pause\", playChangeListener);\n\t\tv.addEventListener(\"volumechange\", volumeChangeListener);\n\t\tdocument.addEventListener(\"fullscreenchange\", fsChangeListener);\n\n\t\treturn () => {\n\t\t\tclearHiddenTO();\n\t\t\tv.removeEventListener(\"timeupdate\", timeUpdateListener);\n\t\t\tv.removeEventListener(\"play\", playChangeListener);\n\t\t\tv.removeEventListener(\"pause\", playChangeListener);\n\t\t\tv.removeEventListener(\"volumechange\", volumeChangeListener);\n\t\t\tdocument.removeEventListener(\"fullscreenchange\", fsChangeListener);\n\t\t};\n\t}, []);\n\n\tconst currentValue = (state.current / state.duration) * 100;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-video\", className)}\n\t\t\tstyle={{ height, width, ...style }}\n\t\t\tonClick={handlePlay}\n\t\t\tonDoubleClick={() => handleFullscreen()}\n\t\t\tonMouseMove={handleMouseMove}\n\t\t>\n\t\t\t<video\n\t\t\t\tref={videoRef}\n\t\t\t\tonCanPlay={handleReady}\n\t\t\t\t{...restProps}\n\t\t\t\tcontrols={useOriginControls}\n\t\t\t/>\n\n\t\t\t{showControls && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-video-controls\", {\n\t\t\t\t\t\t\"i-video-controls-hidden\": state.controlHidden,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<PauseRound />} />}\n\t\t\t\t\t\tactive={state.playing}\n\t\t\t\t\t\tonClick={handlePlay}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlayArrowRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tonClick={handleStop}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<StopRound />} />\n\t\t\t\t\t</Button>\n\t\t\t\t\t<span className='i-video-times font-sm'>\n\t\t\t\t\t\t<Text.Time seconds={state.current} /> /\n\t\t\t\t\t\t<Text.Time seconds={state.duration} />\n\t\t\t\t\t</span>\n\t\t\t\t\t<Progress\n\t\t\t\t\t\t{...timeProgressProps}\n\t\t\t\t\t\tvalue={currentValue}\n\t\t\t\t\t\tonChange={handleUpdateTime}\n\t\t\t\t\t\tonDraggingChange={handleDraggingProgress}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className='i-video-control-volume'>\n\t\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tactive={state.volume <= 0}\n\t\t\t\t\t\t\tafter={\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\ticon={<VolumeOffRound />}\n\t\t\t\t\t\t\t\t\tstyle={{ padding: \".125em\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={handleMuted}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<VolumeDownRound />} />\n\t\t\t\t\t\t</Button.Toggle>\n\n\t\t\t\t\t\t<div className='i-video-volume'>\n\t\t\t\t\t\t\t<Progress\n\t\t\t\t\t\t\t\tstyle={{ height: 100 }}\n\t\t\t\t\t\t\t\tvertical\n\t\t\t\t\t\t\t\t{...volumeProgressProps}\n\t\t\t\t\t\t\t\tvalue={state.volume}\n\t\t\t\t\t\t\t\tonChange={handleUpdateVolume}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<FullscreenExitRound />} />}\n\t\t\t\t\t\tactive={state.isFullscreen}\n\t\t\t\t\t\tonClick={() => handleFullscreen()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<FullscreenRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Video;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"video.js","names":[],"sources":["../../../../packages/components/video/video.tsx"],"sourcesContent":["import {\n\tFullscreenExitRound,\n\tFullscreenRound,\n\tPauseRound,\n\tPlayArrowRound,\n\tStopRound,\n\tVolumeDownRound,\n\tVolumeOffRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useEffect, useImperativeHandle, useRef } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport { exitFullScreen, fullScreen } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Progress from \"../progress\";\nimport Text from \"../text\";\nimport \"./index.css\";\nimport { IVideo } from \"./type\";\n\nconst Video = (props: IVideo) => {\n\tconst {\n\t\tref,\n\t\tstyle,\n\t\thideControls,\n\t\tautoplay,\n\t\tmuted,\n\t\tvolume = 50,\n\t\theight,\n\t\twidth,\n\t\tuseOriginControls,\n\t\ttimeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tvolumeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tclassName,\n\t\tonFullScreenChange,\n\t\t...restProps\n\t} = props;\n\tconst state = useReactive({\n\t\tplaying: autoplay,\n\t\tvolume: muted ? 0 : volume,\n\t\tvolumeCache: 0,\n\t\tmuted,\n\t\tcurrent: 0,\n\t\tduration: 0,\n\t\tisFullscreen: false,\n\t\tcontrolHidden: true,\n\t\tdraggingProgress: false,\n\t});\n\tconst videoRef = useRef<HTMLVideoElement>(null);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst timeUpdateListener = (e) => {\n\t\tconst tar = e.target;\n\t\tif (tar.paused || state.draggingProgress) return;\n\n\t\tObject.assign(state, {\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t};\n\n\tconst playChangeListener = (e) => {\n\t\tstate.playing = !e.target.paused;\n\t};\n\n\tconst fsChangeListener = () => {\n\t\tif (typeof document === \"undefined\") return;\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen = document.fullscreenElement === tar;\n\t};\n\n\tconst volumeChangeListener = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tvolume: tar.volume * 100,\n\t\t\tmuted: tar.volume === 0,\n\t\t});\n\t};\n\n\tconst handlePlay = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.paused ? v.play() : v.pause();\n\t};\n\n\tconst handleReady = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tduration: tar.duration,\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t\ttar.volume = state.volume / 100;\n\t};\n\n\tconst handleMuted = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tif (v.volume > 0) {\n\t\t\tstate.volumeCache = v.volume;\n\t\t\tv.volume = 0;\n\t\t\treturn;\n\t\t}\n\t\tv.volume = state.volumeCache === 0 ? 0.5 : state.volumeCache;\n\t};\n\n\tconst handleStop = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = 0;\n\t\tv.pause();\n\t};\n\n\tconst handleFullscreen = () => {\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen ? exitFullScreen() : fullScreen(tar);\n\t\tonFullScreenChange?.(!state.isFullscreen);\n\t};\n\n\tconst handleUpdateTime = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = (state.duration * t) / 100;\n\t};\n\n\tconst handleUpdateVolume = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.volume = t / 100;\n\t};\n\n\tconst showControls = !hideControls && !useOriginControls;\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!showControls || !state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst handleDraggingProgress = (dragging) => {\n\t\tstate.draggingProgress = dragging;\n\t};\n\n\tconst handleMouseMove = throttle({ interval: 900 }, setHiddenFalse);\n\n\tuseImperativeHandle(ref, () => ({\n\t\tplay: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.play();\n\t\t},\n\t\tpause: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.pause();\n\t\t},\n\t\tstop: handleStop,\n\t\tfullscreen: handleFullscreen,\n\t\tgetVideo: () => videoRef.current,\n\t}));\n\n\tuseEffect(() => {\n\t\tif (typeof document === \"undefined\") return;\n\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.addEventListener(\"timeupdate\", timeUpdateListener);\n\t\tv.addEventListener(\"play\", playChangeListener);\n\t\tv.addEventListener(\"pause\", playChangeListener);\n\t\tv.addEventListener(\"volumechange\", volumeChangeListener);\n\t\tdocument.addEventListener(\"fullscreenchange\", fsChangeListener);\n\n\t\treturn () => {\n\t\t\tclearHiddenTO();\n\t\t\tv.removeEventListener(\"timeupdate\", timeUpdateListener);\n\t\t\tv.removeEventListener(\"play\", playChangeListener);\n\t\t\tv.removeEventListener(\"pause\", playChangeListener);\n\t\t\tv.removeEventListener(\"volumechange\", volumeChangeListener);\n\t\t\tdocument.removeEventListener(\"fullscreenchange\", fsChangeListener);\n\t\t};\n\t}, []);\n\n\tconst currentValue = (state.current / state.duration) * 100;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-video\", className)}\n\t\t\tstyle={{ height, width, ...style }}\n\t\t\tonClick={handlePlay}\n\t\t\tonDoubleClick={() => handleFullscreen()}\n\t\t\tonMouseMove={handleMouseMove}\n\t\t>\n\t\t\t<video\n\t\t\t\tref={videoRef}\n\t\t\t\tonCanPlay={handleReady}\n\t\t\t\t{...restProps}\n\t\t\t\tcontrols={useOriginControls}\n\t\t\t/>\n\n\t\t\t{showControls && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-video-controls\", {\n\t\t\t\t\t\t\"i-video-controls-hidden\": state.controlHidden,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<PauseRound />} />}\n\t\t\t\t\t\tactive={state.playing}\n\t\t\t\t\t\tonClick={handlePlay}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlayArrowRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tonClick={handleStop}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<StopRound />} />\n\t\t\t\t\t</Button>\n\t\t\t\t\t<span className='i-video-times font-sm'>\n\t\t\t\t\t\t<Text.Time seconds={state.current} /> /\n\t\t\t\t\t\t<Text.Time seconds={state.duration} />\n\t\t\t\t\t</span>\n\t\t\t\t\t<Progress\n\t\t\t\t\t\t{...timeProgressProps}\n\t\t\t\t\t\tvalue={currentValue}\n\t\t\t\t\t\tonChange={handleUpdateTime}\n\t\t\t\t\t\tonDraggingChange={handleDraggingProgress}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className='i-video-control-volume'>\n\t\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tactive={state.volume <= 0}\n\t\t\t\t\t\t\tafter={\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\ticon={<VolumeOffRound />}\n\t\t\t\t\t\t\t\t\tstyle={{ padding: \".125em\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={handleMuted}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<VolumeDownRound />} />\n\t\t\t\t\t\t</Button.Toggle>\n\n\t\t\t\t\t\t<div className='i-video-volume'>\n\t\t\t\t\t\t\t<Progress\n\t\t\t\t\t\t\t\tstyle={{ height: 100 }}\n\t\t\t\t\t\t\t\tvertical\n\t\t\t\t\t\t\t\t{...volumeProgressProps}\n\t\t\t\t\t\t\t\tvalue={state.volume}\n\t\t\t\t\t\t\t\tonChange={handleUpdateVolume}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<FullscreenExitRound />} />}\n\t\t\t\t\t\tactive={state.isFullscreen}\n\t\t\t\t\t\tonClick={() => handleFullscreen()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<FullscreenRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Video;\n"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import renderFile from "./renderFile.js";
|
|
|
7
7
|
import classNames from "classnames";
|
|
8
8
|
import { throttle } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
|
|
9
9
|
import { useEffect, useMemo, useRef } from "react";
|
|
10
|
-
import { AspectRatioRound, CloseRound, FileDownloadOutlined, KeyboardArrowLeftRound, KeyboardArrowRightRound, OpenInNewRound, RotateLeftRound, RotateRightRound } from "
|
|
10
|
+
import { AspectRatioRound, CloseRound, FileDownloadOutlined, KeyboardArrowLeftRound, KeyboardArrowRightRound, OpenInNewRound, RotateLeftRound, RotateRightRound } from "@ricons/material";
|
|
11
11
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
//#region packages/js/usePreview/content.tsx
|
|
13
13
|
function Content(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../packages/js/usePreview/index.tsx"],"sourcesContent":["import { useRef } from \"react\";\nimport HookModal from \"../../components/modal/hookModal\";\nimport type { RefHookModal } from \"../../components/modal/type\";\nimport { renderNode } from \"../utils\";\nimport Content from \"./content\";\nimport \"./index.css\";\nimport type { IPreview } from \"./type\";\n\nexport default function usePreview() {\n\tconst ref = useRef<RefHookModal>(null);\n\n\tconst preview = (config: IPreview) => {\n\t\tconst { items, modalProps, onClose, ...restProps } = config;\n\n\t\tconst handleClose = () => {\n\t\t\tonClose?.();\n\t\t\tunMount?.();\n\t\t};\n\n\t\tconst unMount = renderNode(\n\t\t\t<HookModal\n\t\t\t\tref={ref}\n\t\t\t\tvisible\n\t\t\t\tclassName='i-preview'\n\t\t\t\tcustomized\n\t\t\t\thideShadow\n\t\t\t\t{...modalProps}\n\t\t\t\tchildren={\n\t\t\t\t\t<Content\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\titems={items}\n\t\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\t\tref.current?.update({ visible: false });\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tfixed\n\t\t\t\tonClose={handleClose}\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn preview;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../packages/js/usePreview/index.tsx"],"sourcesContent":["import { useRef } from \"react\";\nimport HookModal from \"../../components/modal/hookModal\";\nimport type { RefHookModal } from \"../../components/modal/type\";\nimport { renderNode } from \"../utils\";\nimport Content from \"./content\";\nimport \"./index.css\";\nimport type { IPreview } from \"./type\";\n\nexport default function usePreview() {\n\tconst ref = useRef<RefHookModal>(null);\n\n\tconst preview = (config: IPreview) => {\n\t\tconst { items, modalProps, onClose, ...restProps } = config;\n\n\t\tconst handleClose = () => {\n\t\t\tonClose?.();\n\t\t\tunMount?.();\n\t\t};\n\n\t\tconst unMount = renderNode(\n\t\t\t<HookModal\n\t\t\t\tref={ref}\n\t\t\t\tvisible\n\t\t\t\tclassName='i-preview'\n\t\t\t\tcustomized\n\t\t\t\thideShadow\n\t\t\t\t{...modalProps}\n\t\t\t\tchildren={\n\t\t\t\t\t<Content\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\titems={items}\n\t\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\t\tref.current?.update({ visible: false });\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tfixed\n\t\t\t\tonClose={handleClose}\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn preview;\n}\n"],"mappings":";;;;;;;CAQA,MAAO,MAAA,OAA2B,KAAG;;EAGpC,MAAM,EAAA,OAAU,YAAS,SAAY,GAAC,cAAA;;AAGrC,cAAM;AACL,cAAW;;6BAIZ,oBAAA,WAAA;GACE;GACA,SAAA;GACA,WAAA;GACA,YAAA;GACA,YAAA;GACA,GAAA;GACA,UACA,oBAAA,SAAA;IACE,GAAA;IACI;IACJ,eAAY;AACZ,SAAA,SAAc,OAAC,EAAA,SAAA,OAAA,CAAA;;IAEd,CAAA;GAEH,OAAA;GACA,SAAA;GACA,CAAA,CACD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import icon_default from "../../components/icon/index.js";
|
|
2
2
|
import video_default from "../../components/video/index.js";
|
|
3
3
|
import { TFileType } from "./type.js";
|
|
4
|
-
import { FeedOutlined } from "
|
|
4
|
+
import { FeedOutlined } from "@ricons/material";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region packages/js/usePreview/renderFile.tsx
|
|
7
7
|
function renderFile(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../packages/js/useRipple/index.ts"],"sourcesContent":["import \"./ripple.css\";\n\nconst TIMEOUT = 500;\n\nconst useRipple = () => {\n\tif (!document) return;\n\tif (document.documentElement.dataset[\"iocaRipple\"]) return;\n\tdocument.documentElement.dataset[\"iocaRipple\"] = \"enable\";\n\n\tdocument.addEventListener(\"mousedown\", listener);\n};\n\nfunction listener(e: MouseEvent) {\n\tconst target = e.target as HTMLElement;\n\tconst parent = target.closest(\"[data-ripple]\") as HTMLElement;\n\n\tif (!target || !parent) return;\n\n\ttriggerRipple(parent, e);\n}\n\nfunction triggerRipple(target: HTMLElement, e: MouseEvent) {\n\tif (!document) return;\n\tconst [$box, $ripple] = createRipple();\n\tconst rect = target.getBoundingClientRect();\n\tconst size = Math.max(rect.width, rect.height) * 2;\n\n\t$ripple.style.cssText = `\n left: ${e.pageX - rect.left}px;\n top: ${e.pageY - rect.top}px;\n width: ${size}px;\n height: ${size}px;\n transition: all ${TIMEOUT / 1000}s;\n `;\n\ttarget.insertAdjacentElement(\"afterbegin\", $box);\n\ttarget.offsetHeight;\n\t$ripple.classList.add(\"i-ripple-active\");\n\n\tsetTimeout(() => {\n\t\t$box.remove();\n\t}, TIMEOUT);\n}\n\nfunction createRipple() {\n\tconst $box = document.createElement(\"SPAN\");\n\tconst $ripple = document.createElement(\"SPAN\");\n\n\t$box.className = \"i-ripple-container\";\n\t$ripple.className = \"i-ripple\";\n\n\t$box.append($ripple);\n\n\treturn [$box, $ripple];\n}\n\nexport default useRipple;\n"],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../packages/js/useRipple/index.ts"],"sourcesContent":["import \"./ripple.css\";\n\nconst TIMEOUT = 500;\n\nconst useRipple = () => {\n\tif (!document) return;\n\tif (document.documentElement.dataset[\"iocaRipple\"]) return;\n\tdocument.documentElement.dataset[\"iocaRipple\"] = \"enable\";\n\n\tdocument.addEventListener(\"mousedown\", listener);\n};\n\nfunction listener(e: MouseEvent) {\n\tconst target = e.target as HTMLElement;\n\tconst parent = target.closest(\"[data-ripple]\") as HTMLElement;\n\n\tif (!target || !parent) return;\n\n\ttriggerRipple(parent, e);\n}\n\nfunction triggerRipple(target: HTMLElement, e: MouseEvent) {\n\tif (!document) return;\n\tconst [$box, $ripple] = createRipple();\n\tconst rect = target.getBoundingClientRect();\n\tconst size = Math.max(rect.width, rect.height) * 2;\n\n\t$ripple.style.cssText = `\n left: ${e.pageX - rect.left}px;\n top: ${e.pageY - rect.top}px;\n width: ${size}px;\n height: ${size}px;\n transition: all ${TIMEOUT / 1000}s;\n `;\n\ttarget.insertAdjacentElement(\"afterbegin\", $box);\n\ttarget.offsetHeight;\n\t$ripple.classList.add(\"i-ripple-active\");\n\n\tsetTimeout(() => {\n\t\t$box.remove();\n\t}, TIMEOUT);\n}\n\nfunction createRipple() {\n\tconst $box = document.createElement(\"SPAN\");\n\tconst $ripple = document.createElement(\"SPAN\");\n\n\t$box.className = \"i-ripple-container\";\n\t$ripple.className = \"i-ripple\";\n\n\t$box.append($ripple);\n\n\treturn [$box, $ripple];\n}\n\nexport default useRipple;\n"],"mappings":";AAAA,MAAM,UAAU;AAEhB,MAAM,kBAAa;;AAEnB,KAAK,SAAC,gBAAkB,QAAA,cAAA;AACvB,UAAK,gBAAgB,QAAA,gBAAA;AAErB,UAAS,iBAAgB,aAAS,SAAc;;AAGjD,SAAC,SAAA,GAAA;;CAED,MAAA,SAAS,OAAY,QAAU,gBAAE;AAEhC,KAAA,CAAK,UAAU,CAAA,OAAO;AAEtB,eAAc,QAAQ,EAAE;;AAGzB,SAAA,cAAA,QAAA,GAAA;;CAEA,MAAA,CAAQ,MAAC,WAAc,cAAQ;CAC9B,MAAK,OAAQ,OAAE,uBAAM;CACrB,MAAM,OAAO,KAAC,IAAQ,KAAE,OAAA,KAAc,OAAA,GAAA;AAEtC,SAAM,MAAO,UAAS;;eAER,EAAA,QAAU,KAAA,IAAA;iBACR,KAAC;kBACD,KAAM;0BACC,UAAA,IAAA;;AAEvB,QAAO,sBAAkB,cAAgB,KAAA;AACzC,QAAI;AACJ,SAAO,UAAA,IAAA,kBAAiC;AAExC,kBAAiB;;IAEjB,QAAW;;AAGZ,SAAA,eAAA;;CAEA,MAAA,UAAS,SAAe,cAAA,OAAA;AAEvB,MAAK,YAAW;;AAGhB,MAAC,OAAO,QAAY;AAEpB,QAAK,CAAA,MAAQ,QAAO"}
|
|
@@ -2,7 +2,6 @@ import ToTop from "./totop.js";
|
|
|
2
2
|
import classNames from "classnames";
|
|
3
3
|
import { debounce } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
|
|
4
4
|
import { Children, cloneElement, useEffect, useMemo, useState } from "react";
|
|
5
|
-
import "./index.css";
|
|
6
5
|
import { jsx } from "react/jsx-runtime";
|
|
7
6
|
//#region packages/components/affix/affix.tsx
|
|
8
7
|
const Affix = (props) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import button_default from "../button/index.js";
|
|
2
2
|
import icon_default from "../icon/index.js";
|
|
3
3
|
import classNames from "classnames";
|
|
4
|
-
import { SkipPreviousRound } from "
|
|
4
|
+
import { SkipPreviousRound } from "@ricons/material";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region packages/components/affix/totop.tsx
|
|
7
7
|
function ToTop(props) {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import classNames from "classnames";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import "./index.css";
|
|
4
3
|
//#region packages/components/badge/badge.tsx
|
|
5
4
|
const Badge = (props) => {
|
|
6
5
|
const { content, contentClass, dot, dotSize, round, disabled, style, className, children } = props;
|
|
@@ -6,7 +6,6 @@ import Toggle from "./toggle.js";
|
|
|
6
6
|
import classNames from "classnames";
|
|
7
7
|
import { createElement, useEffect } from "react";
|
|
8
8
|
import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
|
|
9
|
-
import "./index.css";
|
|
10
9
|
//#region packages/components/button/button.tsx
|
|
11
10
|
const formatClass = ({ outline, flat, loading, disabled, size = "normal", block, round, square, secondary, className }) => classNames("i-btn", className, {
|
|
12
11
|
"i-btn-outline": outline,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import classNames from "classnames";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import "./index.css";
|
|
4
3
|
//#region packages/components/card/card.tsx
|
|
5
4
|
const Card = (props) => {
|
|
6
5
|
const { hideShadow, border, className, children, header, footer, ...restProps } = props;
|
|
@@ -3,8 +3,6 @@ import CheckboxItem from "./item.js";
|
|
|
3
3
|
import classNames from "classnames";
|
|
4
4
|
import { useEffect, useMemo, useState } from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
import "../../css/input.css";
|
|
7
|
-
import "./index.css";
|
|
8
6
|
//#region packages/components/checkbox/checkbox.tsx
|
|
9
7
|
function Checkbox(props) {
|
|
10
8
|
const { label, name, options = [], value = "", type = "default", optionInline = true, labelInline, disabled, status = "normal", message, required, className, renderItem, onChange, ...restProps } = props;
|
|
@@ -2,9 +2,8 @@ import helpericon_default from "../utils/helpericon/index.js";
|
|
|
2
2
|
import Item from "./item.js";
|
|
3
3
|
import classNames from "classnames";
|
|
4
4
|
import { Children, useMemo, useState } from "react";
|
|
5
|
-
import { MinusRound, PlusRound } from "
|
|
5
|
+
import { MinusRound, PlusRound } from "@ricons/material";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
import "./index.css";
|
|
8
7
|
//#region packages/components/collapse/collapse.tsx
|
|
9
8
|
const Collapse = (props) => {
|
|
10
9
|
const { active, items, multiple, border, headerClickable, className, children, renderToggle = (active) => active ? /* @__PURE__ */ jsx(MinusRound, {}) : /* @__PURE__ */ jsx(PlusRound, {}), onCollapse, ...restProps } = props;
|
|
@@ -6,7 +6,6 @@ import Row, { Header } from "./row.js";
|
|
|
6
6
|
import classNames from "classnames";
|
|
7
7
|
import { useEffect, useMemo, useRef } from "react";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
-
import "./index.css";
|
|
10
9
|
//#region packages/components/datagrid/datagrid.tsx
|
|
11
10
|
const Datagrid = (props) => {
|
|
12
11
|
const { data = [], columns = [], border, striped, header = true, resizable, cellPadding = ".5em", cellEllipsis, empty = /* @__PURE__ */ jsx(Empty, {}), loading, height = "unset", style, className, renderLoading = () => /* @__PURE__ */ jsx(loading_default, {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import classNames from "classnames";
|
|
2
2
|
import { Fragment } from "react";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
-
import "./index.css";
|
|
5
4
|
//#region packages/components/description/description.tsx
|
|
6
5
|
const Description = (props) => {
|
|
7
6
|
const { data, colon, columns = 1, gap = ".5em", align, labelWidth, labelAlign, vertical, equally, style, className } = props;
|
|
@@ -4,7 +4,6 @@ import classNames from "classnames";
|
|
|
4
4
|
import { useEffect, useRef, useTransition } from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { createPortal } from "react-dom";
|
|
7
|
-
import "./index.css";
|
|
8
7
|
//#region packages/components/drawer/drawer.tsx
|
|
9
8
|
function Drawer(props) {
|
|
10
9
|
const { visible, position = "left", header, footer, backdropClosable = true, hideCloseButton, keepDOM, className, disabledEsc, children, onVisibleChange, onClose, ...restProps } = props;
|
|
@@ -3,7 +3,6 @@ import popup_default from "../popup/index.js";
|
|
|
3
3
|
import Item from "./item.js";
|
|
4
4
|
import { useEffect, useState } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
import "./index.css";
|
|
7
6
|
//#region packages/components/dropdown/dropdown.tsx
|
|
8
7
|
const Dropdown = (props) => {
|
|
9
8
|
const { visible, width, content, children, ...restProps } = props;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import button_default from "../button/index.js";
|
|
2
2
|
import icon_default from "../icon/index.js";
|
|
3
|
-
import { ClearAllRound, FormatBoldRound, FormatItalicRound, FormatUnderlinedRound, RedoRound, StrikethroughSRound, UndoRound } from "
|
|
3
|
+
import { ClearAllRound, FormatBoldRound, FormatItalicRound, FormatUnderlinedRound, RedoRound, StrikethroughSRound, UndoRound } from "@ricons/material";
|
|
4
4
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import xss from "xss";
|
|
6
6
|
//#region packages/components/editor/controls.tsx
|
|
@@ -3,7 +3,6 @@ import classNames from "classnames";
|
|
|
3
3
|
import { useImperativeHandle, useRef } from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import xss from "xss";
|
|
6
|
-
import "./index.css";
|
|
7
6
|
//#region packages/components/editor/editor.tsx
|
|
8
7
|
const Editor = (props) => {
|
|
9
8
|
const { ref, width, height = "10em", placeholder, autosize, border = true, richPaste, controls = "simple", className, style, onInput, onPaste, onKeyDown, ...restProps } = props;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import classNames from "classnames";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
import "./index.css";
|
|
5
4
|
//#region packages/components/flex/flex.tsx
|
|
6
5
|
const Flex = (props) => {
|
|
7
6
|
const { as: Component = "div", align, justify, direction, wrap, gap, columns, className, style, ...restProps } = props;
|
|
@@ -6,7 +6,6 @@ import classNames from "classnames";
|
|
|
6
6
|
import { useEffect, useMemo } from "react";
|
|
7
7
|
import { jsx } from "react/jsx-runtime";
|
|
8
8
|
import PubSub from "/Users/iann/codes/ioca-react/node_modules/.pnpm/pubsub-js@1.9.5/node_modules/pubsub-js/src/pubsub.js";
|
|
9
|
-
import "./index.css";
|
|
10
9
|
//#region packages/components/form/form.tsx
|
|
11
10
|
const Form = (props) => {
|
|
12
11
|
const { form = {}, rules, initialValues, style, className, width, columns, itemMaxWidth, gap = "1em", labelInline, labelWidth, labelRight, children, onKeyDown, onEnter, onChange, ...restProps } = props;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import classNames from "classnames";
|
|
2
2
|
import { cloneElement, isValidElement } from "react";
|
|
3
|
-
import "./index.css";
|
|
4
3
|
//#region packages/components/icon/icon.tsx
|
|
5
4
|
const Icon = (props) => {
|
|
6
5
|
const { ref, icon, size = "1.425em", rotate, style, className, ...restProps } = props;
|