@ioca/react 1.4.78 → 1.4.80
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.js +23 -0
- package/lib/cjs/components/affix/affix.js +66 -0
- package/lib/cjs/components/affix/affix.js.map +1 -0
- package/lib/cjs/components/affix/index.js +6 -0
- package/lib/cjs/components/affix/index.js.map +1 -0
- package/lib/cjs/components/affix/totop.js +25 -0
- package/lib/cjs/components/affix/totop.js.map +1 -0
- package/lib/cjs/components/badge/badge.js +24 -0
- package/lib/cjs/components/badge/badge.js.map +1 -0
- package/lib/cjs/components/badge/index.js +6 -0
- package/lib/cjs/components/badge/index.js.map +1 -0
- package/lib/cjs/components/button/button.js +64 -0
- package/lib/cjs/components/button/button.js.map +1 -0
- package/lib/cjs/components/button/confirm.js +60 -0
- package/lib/cjs/components/button/confirm.js.map +1 -0
- package/lib/cjs/components/button/group.js +26 -0
- package/lib/cjs/components/button/group.js.map +1 -0
- package/lib/cjs/components/button/index.js +6 -0
- package/lib/cjs/components/button/index.js.map +1 -0
- package/lib/cjs/components/button/toggle.js +46 -0
- package/lib/cjs/components/button/toggle.js.map +1 -0
- package/lib/cjs/components/card/card.js +33 -0
- package/lib/cjs/components/card/card.js.map +1 -0
- package/lib/cjs/components/card/index.js +6 -0
- package/lib/cjs/components/card/index.js.map +1 -0
- package/lib/cjs/components/checkbox/checkbox.js +66 -0
- package/lib/cjs/components/checkbox/checkbox.js.map +1 -0
- package/lib/cjs/components/checkbox/index.js +6 -0
- package/lib/cjs/components/checkbox/index.js.map +1 -0
- package/lib/cjs/components/checkbox/item.js +59 -0
- package/lib/cjs/components/checkbox/item.js.map +1 -0
- package/lib/cjs/components/collapse/collapse.js +84 -0
- package/lib/cjs/components/collapse/collapse.js.map +1 -0
- package/lib/cjs/components/collapse/index.js +6 -0
- package/lib/cjs/components/collapse/index.js.map +1 -0
- package/lib/cjs/components/collapse/item.js +10 -0
- package/lib/cjs/components/collapse/item.js.map +1 -0
- package/lib/cjs/components/datagrid/cell.js +39 -0
- package/lib/cjs/components/datagrid/cell.js.map +1 -0
- package/lib/cjs/components/datagrid/datagrid.js +140 -0
- package/lib/cjs/components/datagrid/datagrid.js.map +1 -0
- package/lib/cjs/components/datagrid/index.js +6 -0
- package/lib/cjs/components/datagrid/index.js.map +1 -0
- package/lib/cjs/components/datagrid/resize.js +42 -0
- package/lib/cjs/components/datagrid/resize.js.map +1 -0
- package/lib/cjs/components/datagrid/row.js +68 -0
- package/lib/cjs/components/datagrid/row.js.map +1 -0
- package/lib/cjs/components/datagrid/sorter.js +28 -0
- package/lib/cjs/components/datagrid/sorter.js.map +1 -0
- package/lib/cjs/components/description/description.js +43 -0
- package/lib/cjs/components/description/description.js.map +1 -0
- package/lib/cjs/components/description/index.js +6 -0
- package/lib/cjs/components/description/index.js.map +1 -0
- package/lib/cjs/components/drawer/drawer.js +84 -0
- package/lib/cjs/components/drawer/drawer.js.map +1 -0
- package/lib/cjs/components/drawer/index.js +6 -0
- package/lib/cjs/components/drawer/index.js.map +1 -0
- package/lib/cjs/components/dropdown/dropdown.js +38 -0
- package/lib/cjs/components/dropdown/dropdown.js.map +1 -0
- package/lib/cjs/components/dropdown/index.js +6 -0
- package/lib/cjs/components/dropdown/index.js.map +1 -0
- package/lib/cjs/components/dropdown/item.js +36 -0
- package/lib/cjs/components/dropdown/item.js.map +1 -0
- package/lib/cjs/components/editor/controls.js +89 -0
- package/lib/cjs/components/editor/controls.js.map +1 -0
- package/lib/cjs/components/editor/editor.js +91 -0
- package/lib/cjs/components/editor/editor.js.map +1 -0
- package/lib/cjs/components/editor/index.js +6 -0
- package/lib/cjs/components/editor/index.js.map +1 -0
- package/lib/cjs/components/flex/flex.js +31 -0
- package/lib/cjs/components/flex/flex.js.map +1 -0
- package/lib/cjs/components/flex/index.js +6 -0
- package/lib/cjs/components/flex/index.js.map +1 -0
- package/lib/cjs/components/form/context.js +7 -0
- package/lib/cjs/components/form/context.js.map +1 -0
- package/lib/cjs/components/form/field.js +71 -0
- package/lib/cjs/components/form/field.js.map +1 -0
- package/lib/cjs/components/form/form.js +64 -0
- package/lib/cjs/components/form/form.js.map +1 -0
- package/lib/cjs/components/form/index.js +6 -0
- package/lib/cjs/components/form/index.js.map +1 -0
- package/lib/cjs/components/form/useConfig.js +45 -0
- package/lib/cjs/components/form/useConfig.js.map +1 -0
- package/lib/cjs/components/form/useForm.js +123 -0
- package/lib/cjs/components/form/useForm.js.map +1 -0
- package/lib/cjs/components/icon/icon.js +24 -0
- package/lib/cjs/components/icon/icon.js.map +1 -0
- package/lib/cjs/components/icon/index.js +6 -0
- package/lib/cjs/components/icon/index.js.map +1 -0
- package/lib/cjs/components/image/image.js +86 -0
- package/lib/cjs/components/image/image.js.map +1 -0
- package/lib/cjs/components/image/index.js +6 -0
- package/lib/cjs/components/image/index.js.map +1 -0
- package/lib/cjs/components/image/list.js +49 -0
- package/lib/cjs/components/image/list.js.map +1 -0
- package/lib/cjs/components/input/container.js +30 -0
- package/lib/cjs/components/input/container.js.map +1 -0
- package/lib/cjs/components/input/index.js +6 -0
- package/lib/cjs/components/input/index.js.map +1 -0
- package/lib/cjs/components/input/input.js +113 -0
- package/lib/cjs/components/input/input.js.map +1 -0
- package/lib/cjs/components/input/number.js +138 -0
- package/lib/cjs/components/input/number.js.map +1 -0
- package/lib/cjs/components/input/range.js +134 -0
- package/lib/cjs/components/input/range.js.map +1 -0
- package/lib/cjs/components/input/textarea.js +61 -0
- package/lib/cjs/components/input/textarea.js.map +1 -0
- package/lib/cjs/components/list/index.js +6 -0
- package/lib/cjs/components/list/index.js.map +1 -0
- package/lib/cjs/components/list/item.js +30 -0
- package/lib/cjs/components/list/item.js.map +1 -0
- package/lib/cjs/components/list/list.js +30 -0
- package/lib/cjs/components/list/list.js.map +1 -0
- package/lib/cjs/components/loading/index.js +6 -0
- package/lib/cjs/components/loading/index.js.map +1 -0
- package/lib/cjs/components/loading/loading.js +39 -0
- package/lib/cjs/components/loading/loading.js.map +1 -0
- package/lib/cjs/components/message/index.js +6 -0
- package/lib/cjs/components/message/index.js.map +1 -0
- package/lib/cjs/components/message/message.js +197 -0
- package/lib/cjs/components/message/message.js.map +1 -0
- package/lib/cjs/components/modal/content.js +57 -0
- package/lib/cjs/components/modal/content.js.map +1 -0
- package/lib/cjs/components/modal/context.js +7 -0
- package/lib/cjs/components/modal/context.js.map +1 -0
- package/lib/cjs/components/modal/hookModal.js +28 -0
- package/lib/cjs/components/modal/hookModal.js.map +1 -0
- package/lib/cjs/components/modal/index.js +6 -0
- package/lib/cjs/components/modal/index.js.map +1 -0
- package/lib/cjs/components/modal/modal.js +117 -0
- package/lib/cjs/components/modal/modal.js.map +1 -0
- package/lib/cjs/components/modal/useModal.js +39 -0
- package/lib/cjs/components/modal/useModal.js.map +1 -0
- package/lib/cjs/components/pagination/index.js +6 -0
- package/lib/cjs/components/pagination/index.js.map +1 -0
- package/lib/cjs/components/pagination/page.js +31 -0
- package/lib/cjs/components/pagination/page.js.map +1 -0
- package/lib/cjs/components/pagination/pagination.js +86 -0
- package/lib/cjs/components/pagination/pagination.js.map +1 -0
- package/lib/cjs/components/picker/colors/footer.js +64 -0
- package/lib/cjs/components/picker/colors/footer.js.map +1 -0
- package/lib/cjs/components/picker/colors/handle.js +25 -0
- package/lib/cjs/components/picker/colors/handle.js.map +1 -0
- package/lib/cjs/components/picker/colors/index.js +81 -0
- package/lib/cjs/components/picker/colors/index.js.map +1 -0
- package/lib/cjs/components/picker/dates/dates.js +68 -0
- package/lib/cjs/components/picker/dates/dates.js.map +1 -0
- package/lib/cjs/components/picker/dates/index.js +97 -0
- package/lib/cjs/components/picker/dates/index.js.map +1 -0
- package/lib/cjs/components/picker/dates/panel.js +151 -0
- package/lib/cjs/components/picker/dates/panel.js.map +1 -0
- package/lib/cjs/components/picker/time/index.js +73 -0
- package/lib/cjs/components/picker/time/index.js.map +1 -0
- package/lib/cjs/components/picker/time/item.js +20 -0
- package/lib/cjs/components/picker/time/item.js.map +1 -0
- package/lib/cjs/components/picker/time/panel.js +144 -0
- package/lib/cjs/components/picker/time/panel.js.map +1 -0
- package/lib/cjs/components/popconfirm/index.js +6 -0
- package/lib/cjs/components/popconfirm/index.js.map +1 -0
- package/lib/cjs/components/popconfirm/popconfirm.js +86 -0
- package/lib/cjs/components/popconfirm/popconfirm.js.map +1 -0
- package/lib/cjs/components/popup/content.js +56 -0
- package/lib/cjs/components/popup/content.js.map +1 -0
- package/lib/cjs/components/popup/index.js +6 -0
- package/lib/cjs/components/popup/index.js.map +1 -0
- package/lib/cjs/components/popup/popup.js +425 -0
- package/lib/cjs/components/popup/popup.js.map +1 -0
- package/lib/cjs/components/progress/circle.js +45 -0
- package/lib/cjs/components/progress/circle.js.map +1 -0
- package/lib/cjs/components/progress/index.js +6 -0
- package/lib/cjs/components/progress/index.js.map +1 -0
- package/lib/cjs/components/progress/line.js +27 -0
- package/lib/cjs/components/progress/line.js.map +1 -0
- package/lib/cjs/components/progress/progress.js +100 -0
- package/lib/cjs/components/progress/progress.js.map +1 -0
- package/lib/cjs/components/radio/index.js +6 -0
- package/lib/cjs/components/radio/index.js.map +1 -0
- package/lib/cjs/components/radio/item.js +34 -0
- package/lib/cjs/components/radio/item.js.map +1 -0
- package/lib/cjs/components/radio/radio.js +62 -0
- package/lib/cjs/components/radio/radio.js.map +1 -0
- package/lib/cjs/components/resizable/index.js +6 -0
- package/lib/cjs/components/resizable/index.js.map +1 -0
- package/lib/cjs/components/resizable/resizable.js +81 -0
- package/lib/cjs/components/resizable/resizable.js.map +1 -0
- package/lib/cjs/components/river/index.js +6 -0
- package/lib/cjs/components/river/index.js.map +1 -0
- package/lib/cjs/components/river/river.js +116 -0
- package/lib/cjs/components/river/river.js.map +1 -0
- package/lib/cjs/components/select/index.js +6 -0
- package/lib/cjs/components/select/index.js.map +1 -0
- package/lib/cjs/components/select/options.js +76 -0
- package/lib/cjs/components/select/options.js.map +1 -0
- package/lib/cjs/components/select/select.js +155 -0
- package/lib/cjs/components/select/select.js.map +1 -0
- package/lib/cjs/components/step/divider.js +10 -0
- package/lib/cjs/components/step/divider.js.map +1 -0
- package/lib/cjs/components/step/index.js +6 -0
- package/lib/cjs/components/step/index.js.map +1 -0
- package/lib/cjs/components/step/item.js +60 -0
- package/lib/cjs/components/step/item.js.map +1 -0
- package/lib/cjs/components/step/step.js +42 -0
- package/lib/cjs/components/step/step.js.map +1 -0
- package/lib/cjs/components/swiper/index.js +6 -0
- package/lib/cjs/components/swiper/index.js.map +1 -0
- package/lib/cjs/components/swiper/item.js +39 -0
- package/lib/cjs/components/swiper/item.js.map +1 -0
- package/lib/cjs/components/swiper/swiper.js +262 -0
- package/lib/cjs/components/swiper/swiper.js.map +1 -0
- package/lib/cjs/components/tabs/index.js +6 -0
- package/lib/cjs/components/tabs/index.js.map +1 -0
- package/lib/cjs/components/tabs/item.js +10 -0
- package/lib/cjs/components/tabs/item.js.map +1 -0
- package/lib/cjs/components/tabs/tabs.js +272 -0
- package/lib/cjs/components/tabs/tabs.js.map +1 -0
- package/lib/cjs/components/tag/index.js +6 -0
- package/lib/cjs/components/tag/index.js.map +1 -0
- package/lib/cjs/components/tag/tag.js +32 -0
- package/lib/cjs/components/tag/tag.js.map +1 -0
- package/lib/cjs/components/text/highlight.js +35 -0
- package/lib/cjs/components/text/highlight.js.map +1 -0
- package/lib/cjs/components/text/index.js +6 -0
- package/lib/cjs/components/text/index.js.map +1 -0
- package/lib/cjs/components/text/number.js +32 -0
- package/lib/cjs/components/text/number.js.map +1 -0
- package/lib/cjs/components/text/text.js +39 -0
- package/lib/cjs/components/text/text.js.map +1 -0
- package/lib/cjs/components/text/time.js +24 -0
- package/lib/cjs/components/text/time.js.map +1 -0
- package/lib/cjs/components/tree/index.js +6 -0
- package/lib/cjs/components/tree/index.js.map +1 -0
- package/lib/cjs/components/tree/item.js +136 -0
- package/lib/cjs/components/tree/item.js.map +1 -0
- package/lib/cjs/components/tree/tree.js +127 -0
- package/lib/cjs/components/tree/tree.js.map +1 -0
- package/lib/cjs/components/upload/index.js +6 -0
- package/lib/cjs/components/upload/index.js.map +1 -0
- package/lib/cjs/components/upload/renderFile.js +99 -0
- package/lib/cjs/components/upload/renderFile.js.map +1 -0
- package/lib/cjs/components/upload/upload.js +165 -0
- package/lib/cjs/components/upload/upload.js.map +1 -0
- package/lib/cjs/components/utils/empty/index.js +17 -0
- package/lib/cjs/components/utils/empty/index.js.map +1 -0
- package/lib/cjs/components/utils/helpericon/helpericon.js +24 -0
- package/lib/cjs/components/utils/helpericon/helpericon.js.map +1 -0
- package/lib/cjs/components/utils/helpericon/index.js +6 -0
- package/lib/cjs/components/utils/helpericon/index.js.map +1 -0
- package/lib/cjs/components/video/index.js +6 -0
- package/lib/cjs/components/video/index.js.map +1 -0
- package/lib/cjs/components/video/video.js +237 -0
- package/lib/cjs/components/video/video.js.map +1 -0
- package/lib/cjs/index.js +83 -0
- package/lib/cjs/js/hooks.js +259 -0
- package/lib/cjs/js/hooks.js.map +1 -0
- package/lib/cjs/js/usePreview/content.js +197 -0
- package/lib/cjs/js/usePreview/content.js.map +1 -0
- package/lib/cjs/js/usePreview/index.js +39 -0
- package/lib/cjs/js/usePreview/index.js.map +1 -0
- package/lib/cjs/js/usePreview/renderFile.js +28 -0
- package/lib/cjs/js/usePreview/renderFile.js.map +1 -0
- package/lib/cjs/js/usePreview/type.js +15 -0
- package/lib/cjs/js/usePreview/type.js.map +1 -0
- package/lib/cjs/js/useRipple/index.js +45 -0
- package/lib/cjs/js/useRipple/index.js.map +1 -0
- package/lib/cjs/js/useTheme/index.js +30 -0
- package/lib/cjs/js/useTheme/index.js.map +1 -0
- package/lib/cjs/js/utils.js +284 -0
- package/lib/cjs/js/utils.js.map +1 -0
- package/lib/es/components/affix/affix.js +1 -1
- package/lib/es/components/affix/affix.js.map +1 -1
- package/lib/es/components/affix/totop.js +1 -1
- package/lib/es/components/affix/totop.js.map +1 -1
- package/lib/es/components/badge/badge.js.map +1 -1
- package/lib/es/components/button/button.js.map +1 -1
- package/lib/es/components/card/card.js.map +1 -1
- package/lib/es/components/checkbox/checkbox.js.map +1 -1
- package/lib/es/components/collapse/collapse.js +1 -2
- package/lib/es/components/collapse/collapse.js.map +1 -1
- package/lib/es/components/datagrid/datagrid.js.map +1 -1
- package/lib/es/components/description/description.js.map +1 -1
- package/lib/es/components/drawer/drawer.js.map +1 -1
- package/lib/es/components/dropdown/dropdown.js.map +1 -1
- package/lib/es/components/editor/controls.js +1 -7
- package/lib/es/components/editor/controls.js.map +1 -1
- package/lib/es/components/editor/editor.js.map +1 -1
- package/lib/es/components/flex/flex.js.map +1 -1
- package/lib/es/components/form/field.js +1 -1
- package/lib/es/components/form/form.js +1 -1
- package/lib/es/components/form/form.js.map +1 -1
- package/lib/es/components/form/useForm.js +2 -2
- package/lib/es/components/icon/icon.js.map +1 -1
- package/lib/es/components/image/image.js.map +1 -1
- package/lib/es/components/input/input.js +1 -2
- package/lib/es/components/input/input.js.map +1 -1
- package/lib/es/components/input/number.js +1 -3
- package/lib/es/components/input/number.js.map +1 -1
- package/lib/es/components/input/range.js +1 -3
- package/lib/es/components/input/range.js.map +1 -1
- package/lib/es/components/input/textarea.js.map +1 -1
- package/lib/es/components/list/list.js.map +1 -1
- package/lib/es/components/loading/loading.js.map +1 -1
- package/lib/es/components/message/message.js +2 -2
- package/lib/es/components/message/message.js.map +1 -1
- package/lib/es/components/modal/content.js.map +1 -1
- package/lib/es/components/modal/modal.js.map +1 -1
- package/lib/es/components/pagination/pagination.js +1 -3
- package/lib/es/components/pagination/pagination.js.map +1 -1
- package/lib/es/components/picker/colors/footer.js +1 -1
- package/lib/es/components/picker/colors/footer.js.map +1 -1
- package/lib/es/components/picker/colors/index.js.map +1 -1
- package/lib/es/components/picker/dates/index.js +2 -2
- package/lib/es/components/picker/dates/index.js.map +1 -1
- package/lib/es/components/picker/dates/panel.js +2 -3
- package/lib/es/components/picker/dates/panel.js.map +1 -1
- package/lib/es/components/picker/time/index.js +1 -1
- package/lib/es/components/picker/time/index.js.map +1 -1
- package/lib/es/components/picker/time/panel.js.map +1 -1
- package/lib/es/components/popconfirm/popconfirm.js +1 -1
- package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
- package/lib/es/components/popup/popup.js +1 -1
- package/lib/es/components/popup/popup.js.map +1 -1
- package/lib/es/components/progress/progress.js.map +1 -1
- package/lib/es/components/radio/radio.js.map +1 -1
- package/lib/es/components/resizable/resizable.js.map +1 -1
- package/lib/es/components/river/river.js.map +1 -1
- package/lib/es/components/select/options.js +1 -2
- package/lib/es/components/select/options.js.map +1 -1
- package/lib/es/components/select/select.js +2 -2
- package/lib/es/components/select/select.js.map +1 -1
- package/lib/es/components/step/divider.js.map +1 -1
- package/lib/es/components/step/item.js +1 -1
- package/lib/es/components/step/item.js.map +1 -1
- package/lib/es/components/step/step.js.map +1 -1
- package/lib/es/components/swiper/swiper.js +1 -2
- package/lib/es/components/swiper/swiper.js.map +1 -1
- package/lib/es/components/tabs/tabs.js +1 -1
- package/lib/es/components/tabs/tabs.js.map +1 -1
- package/lib/es/components/tag/tag.js.map +1 -1
- package/lib/es/components/text/highlight.js +1 -1
- package/lib/es/components/text/text.js.map +1 -1
- package/lib/es/components/tree/item.js +1 -1
- package/lib/es/components/tree/item.js.map +1 -1
- package/lib/es/components/tree/tree.js.map +1 -1
- package/lib/es/components/upload/renderFile.js +2 -2
- package/lib/es/components/upload/renderFile.js.map +1 -1
- package/lib/es/components/upload/upload.js +2 -3
- package/lib/es/components/upload/upload.js.map +1 -1
- package/lib/es/components/utils/empty/index.js +1 -1
- package/lib/es/components/utils/empty/index.js.map +1 -1
- package/lib/es/components/utils/helpericon/helpericon.js +2 -2
- package/lib/es/components/utils/helpericon/helpericon.js.map +1 -1
- package/lib/es/components/video/video.js +2 -8
- package/lib/es/components/video/video.js.map +1 -1
- package/lib/es/js/usePreview/content.js +2 -9
- package/lib/es/js/usePreview/content.js.map +1 -1
- package/lib/es/js/usePreview/index.js.map +1 -1
- package/lib/es/js/usePreview/renderFile.js +1 -1
- package/lib/es/js/usePreview/renderFile.js.map +1 -1
- package/lib/es/js/useRipple/index.js.map +1 -1
- package/lib/es/js/utils.js +1 -1
- package/lib/types/components/affix/affix.js +1 -2
- package/lib/types/components/affix/totop.js +1 -1
- package/lib/types/components/badge/badge.js +0 -1
- package/lib/types/components/button/button.js +0 -1
- package/lib/types/components/card/card.js +0 -1
- package/lib/types/components/checkbox/checkbox.js +0 -2
- package/lib/types/components/collapse/collapse.js +1 -3
- package/lib/types/components/datagrid/datagrid.js +0 -1
- package/lib/types/components/description/description.js +0 -1
- package/lib/types/components/drawer/drawer.js +0 -1
- package/lib/types/components/dropdown/dropdown.js +0 -1
- package/lib/types/components/editor/controls.js +1 -7
- package/lib/types/components/editor/editor.js +0 -1
- package/lib/types/components/flex/flex.js +0 -1
- package/lib/types/components/form/field.js +1 -1
- package/lib/types/components/form/form.js +1 -2
- package/lib/types/components/form/useForm.js +2 -2
- package/lib/types/components/icon/icon.js +0 -1
- package/lib/types/components/image/image.js +0 -1
- package/lib/types/components/input/input.js +1 -3
- package/lib/types/components/input/number.js +1 -4
- package/lib/types/components/input/range.js +1 -4
- package/lib/types/components/input/textarea.js +0 -1
- package/lib/types/components/list/list.js +0 -1
- package/lib/types/components/loading/loading.js +0 -1
- package/lib/types/components/message/message.js +2 -3
- package/lib/types/components/modal/content.js +0 -1
- package/lib/types/components/modal/modal.js +0 -1
- package/lib/types/components/pagination/pagination.js +1 -4
- package/lib/types/components/picker/colors/footer.js +1 -1
- package/lib/types/components/picker/colors/index.js +0 -1
- package/lib/types/components/picker/dates/index.js +2 -3
- package/lib/types/components/picker/dates/panel.js +2 -3
- package/lib/types/components/picker/time/index.js +1 -1
- package/lib/types/components/picker/time/panel.js +0 -1
- package/lib/types/components/popconfirm/popconfirm.js +1 -2
- package/lib/types/components/popup/popup.js +1 -2
- package/lib/types/components/progress/progress.js +0 -2
- package/lib/types/components/radio/radio.js +0 -2
- package/lib/types/components/resizable/resizable.js +0 -1
- package/lib/types/components/river/river.js +0 -1
- package/lib/types/components/select/options.js +1 -2
- package/lib/types/components/select/select.js +2 -4
- package/lib/types/components/step/divider.js +0 -1
- package/lib/types/components/step/item.js +1 -1
- package/lib/types/components/step/step.js +0 -1
- package/lib/types/components/swiper/swiper.js +1 -3
- package/lib/types/components/tabs/tabs.js +1 -2
- package/lib/types/components/tag/tag.js +0 -1
- package/lib/types/components/text/highlight.js +1 -1
- package/lib/types/components/text/text.js +0 -1
- package/lib/types/components/tree/item.js +1 -1
- package/lib/types/components/tree/tree.js +0 -1
- package/lib/types/components/upload/renderFile.js +2 -2
- package/lib/types/components/upload/upload.js +2 -4
- package/lib/types/components/utils/empty/index.js +1 -2
- package/lib/types/components/utils/helpericon/helpericon.js +2 -3
- package/lib/types/components/video/video.js +2 -9
- package/lib/types/index.js +0 -1
- package/lib/types/js/usePreview/content.js +2 -9
- package/lib/types/js/usePreview/index.js +0 -1
- package/lib/types/js/usePreview/renderFile.js +1 -1
- package/lib/types/js/useRipple/index.js +0 -1
- package/lib/types/js/utils.js +1 -1
- package/package.json +8 -3
- package/lib/css/index.css +0 -1
- package/lib/types/components/affix/affix.d.ts +0 -7
- package/lib/types/components/affix/index.d.ts +0 -2
- package/lib/types/components/affix/totop.d.ts +0 -3
- package/lib/types/components/affix/type.d.ts +0 -10
- package/lib/types/components/area/area.d.ts +0 -3
- package/lib/types/components/area/index.d.ts +0 -2
- package/lib/types/components/area/item.d.ts +0 -3
- package/lib/types/components/area/type.d.ts +0 -12
- package/lib/types/components/badge/badge.d.ts +0 -3
- package/lib/types/components/badge/index.d.ts +0 -2
- package/lib/types/components/badge/type.d.ts +0 -12
- package/lib/types/components/button/button.d.ts +0 -3
- package/lib/types/components/button/confirm.d.ts +0 -2
- package/lib/types/components/button/group.d.ts +0 -2
- package/lib/types/components/button/index.d.ts +0 -2
- package/lib/types/components/button/toggle.d.ts +0 -2
- package/lib/types/components/button/type.d.ts +0 -51
- package/lib/types/components/card/card.d.ts +0 -3
- package/lib/types/components/card/index.d.ts +0 -2
- package/lib/types/components/card/type.d.ts +0 -10
- package/lib/types/components/checkbox/checkbox.d.ts +0 -7
- package/lib/types/components/checkbox/index.d.ts +0 -2
- package/lib/types/components/checkbox/item.d.ts +0 -2
- package/lib/types/components/checkbox/type.d.ts +0 -22
- package/lib/types/components/collapse/collapse.d.ts +0 -7
- package/lib/types/components/collapse/index.d.ts +0 -2
- package/lib/types/components/collapse/item.d.ts +0 -2
- package/lib/types/components/collapse/type.d.ts +0 -20
- package/lib/types/components/datagrid/cell.d.ts +0 -13
- package/lib/types/components/datagrid/datagrid.d.ts +0 -3
- package/lib/types/components/datagrid/index.d.ts +0 -2
- package/lib/types/components/datagrid/resize.d.ts +0 -1
- package/lib/types/components/datagrid/row.d.ts +0 -3
- package/lib/types/components/datagrid/sorter.d.ts +0 -1
- package/lib/types/components/datagrid/type.d.ts +0 -61
- package/lib/types/components/description/description.d.ts +0 -3
- package/lib/types/components/description/index.d.ts +0 -2
- package/lib/types/components/description/type.d.ts +0 -23
- package/lib/types/components/drawer/drawer.d.ts +0 -3
- package/lib/types/components/drawer/index.d.ts +0 -2
- package/lib/types/components/drawer/type.d.ts +0 -13
- package/lib/types/components/drawer/useDrawer.d.ts +0 -0
- package/lib/types/components/dropdown/dropdown.d.ts +0 -6
- package/lib/types/components/dropdown/index.d.ts +0 -2
- package/lib/types/components/dropdown/item.d.ts +0 -3
- package/lib/types/components/dropdown/type.d.ts +0 -11
- package/lib/types/components/editor/controls.d.ts +0 -5
- package/lib/types/components/editor/editor.d.ts +0 -3
- package/lib/types/components/editor/index.d.ts +0 -2
- package/lib/types/components/editor/type.d.ts +0 -17
- package/lib/types/components/flex/flex.d.ts +0 -3
- package/lib/types/components/flex/index.d.ts +0 -2
- package/lib/types/components/flex/type.d.ts +0 -10
- package/lib/types/components/form/context.d.ts +0 -3
- package/lib/types/components/form/field.d.ts +0 -3
- package/lib/types/components/form/form.d.ts +0 -11
- package/lib/types/components/form/index.d.ts +0 -2
- package/lib/types/components/form/type.d.ts +0 -40
- package/lib/types/components/form/useConfig.d.ts +0 -5
- package/lib/types/components/form/useForm.d.ts +0 -14
- package/lib/types/components/icon/icon.d.ts +0 -3
- package/lib/types/components/icon/index.d.ts +0 -2
- package/lib/types/components/icon/type.d.ts +0 -9
- package/lib/types/components/image/image.d.ts +0 -3
- package/lib/types/components/image/index.d.ts +0 -2
- package/lib/types/components/image/list.d.ts +0 -2
- package/lib/types/components/image/type.d.ts +0 -30
- package/lib/types/components/input/container.d.ts +0 -2
- package/lib/types/components/input/index.d.ts +0 -2
- package/lib/types/components/input/input.d.ts +0 -3
- package/lib/types/components/input/number.d.ts +0 -3
- package/lib/types/components/input/range.d.ts +0 -3
- package/lib/types/components/input/textarea.d.ts +0 -3
- package/lib/types/components/input/type.d.ts +0 -61
- package/lib/types/components/list/index.d.ts +0 -2
- package/lib/types/components/list/item.d.ts +0 -3
- package/lib/types/components/list/list.d.ts +0 -6
- package/lib/types/components/list/type.d.ts +0 -13
- package/lib/types/components/loading/index.d.ts +0 -2
- package/lib/types/components/loading/loading.d.ts +0 -3
- package/lib/types/components/loading/type.d.ts +0 -7
- package/lib/types/components/message/index.d.ts +0 -2
- package/lib/types/components/message/message.d.ts +0 -27
- package/lib/types/components/message/type.d.ts +0 -29
- package/lib/types/components/modal/content.d.ts +0 -2
- package/lib/types/components/modal/context.d.ts +0 -2
- package/lib/types/components/modal/hookModal.d.ts +0 -6
- package/lib/types/components/modal/index.d.ts +0 -2
- package/lib/types/components/modal/modal.d.ts +0 -3
- package/lib/types/components/modal/type.d.ts +0 -34
- package/lib/types/components/modal/useModal.d.ts +0 -6
- package/lib/types/components/pagination/index.d.ts +0 -2
- package/lib/types/components/pagination/page.d.ts +0 -3
- package/lib/types/components/pagination/pagination.d.ts +0 -3
- package/lib/types/components/pagination/type.d.ts +0 -20
- package/lib/types/components/picker/colors/footer.d.ts +0 -6
- package/lib/types/components/picker/colors/handle.d.ts +0 -2
- package/lib/types/components/picker/colors/index.d.ts +0 -2
- package/lib/types/components/picker/dates/dates.d.ts +0 -5
- package/lib/types/components/picker/dates/index.d.ts +0 -3
- package/lib/types/components/picker/dates/panel.d.ts +0 -3
- package/lib/types/components/picker/index.d.ts +0 -10
- package/lib/types/components/picker/time/index.d.ts +0 -2
- package/lib/types/components/picker/time/item.d.ts +0 -1
- package/lib/types/components/picker/time/panel.d.ts +0 -1
- package/lib/types/components/picker/type.d.ts +0 -38
- package/lib/types/components/popconfirm/index.d.ts +0 -2
- package/lib/types/components/popconfirm/popconfirm.d.ts +0 -3
- package/lib/types/components/popconfirm/type.d.ts +0 -11
- package/lib/types/components/popup/content.d.ts +0 -3
- package/lib/types/components/popup/index.d.ts +0 -2
- package/lib/types/components/popup/popup.d.ts +0 -2
- package/lib/types/components/popup/type.d.ts +0 -25
- package/lib/types/components/progress/circle.d.ts +0 -2
- package/lib/types/components/progress/index.d.ts +0 -2
- package/lib/types/components/progress/line.d.ts +0 -9
- package/lib/types/components/progress/progress.d.ts +0 -3
- package/lib/types/components/progress/type.d.ts +0 -20
- package/lib/types/components/radio/index.d.ts +0 -2
- package/lib/types/components/radio/item.d.ts +0 -2
- package/lib/types/components/radio/radio.d.ts +0 -7
- package/lib/types/components/radio/type.d.ts +0 -18
- package/lib/types/components/resizable/index.d.ts +0 -2
- package/lib/types/components/resizable/resizable.d.ts +0 -3
- package/lib/types/components/resizable/type.d.ts +0 -16
- package/lib/types/components/river/index.d.ts +0 -2
- package/lib/types/components/river/river.d.ts +0 -3
- package/lib/types/components/river/type.d.ts +0 -5
- package/lib/types/components/select/index.d.ts +0 -2
- package/lib/types/components/select/options.d.ts +0 -5
- package/lib/types/components/select/select.d.ts +0 -3
- package/lib/types/components/select/type.d.ts +0 -24
- package/lib/types/components/step/divider.d.ts +0 -1
- package/lib/types/components/step/index.d.ts +0 -2
- package/lib/types/components/step/item.d.ts +0 -3
- package/lib/types/components/step/step.d.ts +0 -7
- package/lib/types/components/step/type.d.ts +0 -16
- package/lib/types/components/swiper/index.d.ts +0 -2
- package/lib/types/components/swiper/item.d.ts +0 -3
- package/lib/types/components/swiper/swiper.d.ts +0 -3
- package/lib/types/components/swiper/type.d.ts +0 -49
- package/lib/types/components/tabs/index.d.ts +0 -2
- package/lib/types/components/tabs/item.d.ts +0 -3
- package/lib/types/components/tabs/tabs.d.ts +0 -3
- package/lib/types/components/tabs/type.d.ts +0 -41
- package/lib/types/components/tag/index.d.ts +0 -2
- package/lib/types/components/tag/tag.d.ts +0 -3
- package/lib/types/components/tag/type.d.ts +0 -11
- package/lib/types/components/text/highlight.d.ts +0 -2
- package/lib/types/components/text/index.d.ts +0 -2
- package/lib/types/components/text/number.d.ts +0 -2
- package/lib/types/components/text/text.d.ts +0 -3
- package/lib/types/components/text/time.d.ts +0 -2
- package/lib/types/components/text/type.d.ts +0 -40
- package/lib/types/components/tree/index.d.ts +0 -2
- package/lib/types/components/tree/item.d.ts +0 -11
- package/lib/types/components/tree/tree.d.ts +0 -3
- package/lib/types/components/tree/type.d.ts +0 -60
- package/lib/types/components/upload/index.d.ts +0 -2
- package/lib/types/components/upload/renderFile.d.ts +0 -7
- package/lib/types/components/upload/type.d.ts +0 -41
- package/lib/types/components/upload/upload.d.ts +0 -3
- package/lib/types/components/utils/empty/index.d.ts +0 -1
- package/lib/types/components/utils/helpericon/helpericon.d.ts +0 -3
- package/lib/types/components/utils/helpericon/index.d.ts +0 -2
- package/lib/types/components/utils/helpericon/type.d.ts +0 -11
- package/lib/types/components/video/index.d.ts +0 -2
- package/lib/types/components/video/type.d.ts +0 -24
- package/lib/types/components/video/video.d.ts +0 -3
- package/lib/types/index.d.ts +0 -40
- package/lib/types/js/hooks.d.ts +0 -36
- package/lib/types/js/usePreview/content.d.ts +0 -2
- package/lib/types/js/usePreview/index.d.ts +0 -2
- package/lib/types/js/usePreview/renderFile.d.ts +0 -2
- package/lib/types/js/usePreview/type.d.ts +0 -36
- package/lib/types/js/useRipple/index.d.ts +0 -2
- package/lib/types/js/useTheme/index.d.ts +0 -6
- package/lib/types/js/useTheme/type.d.ts +0 -9
- package/lib/types/js/utils.d.ts +0 -36
- package/lib/types/type/index.d.ts +0 -34
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Helpericon"],"sources":["../../../../../packages/components/utils/helpericon/index.tsx"],"sourcesContent":["import Helpericon from \"./helpericon\";\n\nexport default Helpericon;\n"],"mappings":";AAEA,IAAA,gDAAeA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Video"],"sources":["../../../../packages/components/video/index.tsx"],"sourcesContent":["import Video from \"./video\";\n\nexport default Video;\n"],"mappings":";AAEA,IAAA,sCAAeA"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
2
|
+
const require_hooks = require("../../js/hooks.js");
|
|
3
|
+
const require_index = require("../button/index.js");
|
|
4
|
+
const require_index$1 = require("../icon/index.js");
|
|
5
|
+
const require_utils = require("../../js/utils.js");
|
|
6
|
+
const require_index$2 = require("../text/index.js");
|
|
7
|
+
const require_index$3 = require("../progress/index.js");
|
|
8
|
+
let classnames = require("classnames");
|
|
9
|
+
classnames = require_runtime.__toESM(classnames);
|
|
10
|
+
let _Users_iann_codes_ioca_react_node_modules__pnpm_radash_12_1_1_node_modules_radash_dist_esm_index_mjs = require("/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs");
|
|
11
|
+
let react = require("react");
|
|
12
|
+
let _ricons_material = require("@ricons/material");
|
|
13
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
14
|
+
//#region packages/components/video/video.tsx
|
|
15
|
+
const Video = (props) => {
|
|
16
|
+
const { ref, style, hideControls, autoplay, muted, volume = 50, height, width, useOriginControls, timeProgressProps = { barClass: "bg-blue" }, volumeProgressProps = { barClass: "bg-blue" }, className, onFullScreenChange, ...restProps } = props;
|
|
17
|
+
const state = require_hooks.useReactive({
|
|
18
|
+
playing: autoplay,
|
|
19
|
+
volume: muted ? 0 : volume,
|
|
20
|
+
volumeCache: 0,
|
|
21
|
+
muted,
|
|
22
|
+
current: 0,
|
|
23
|
+
duration: 0,
|
|
24
|
+
isFullscreen: false,
|
|
25
|
+
controlHidden: true,
|
|
26
|
+
draggingProgress: false
|
|
27
|
+
});
|
|
28
|
+
const videoRef = (0, react.useRef)(null);
|
|
29
|
+
const hiddenTO = (0, react.useRef)(null);
|
|
30
|
+
const timeUpdateListener = (e) => {
|
|
31
|
+
const tar = e.target;
|
|
32
|
+
if (tar.paused || state.draggingProgress) return;
|
|
33
|
+
Object.assign(state, { current: tar.currentTime });
|
|
34
|
+
};
|
|
35
|
+
const playChangeListener = (e) => {
|
|
36
|
+
state.playing = !e.target.paused;
|
|
37
|
+
};
|
|
38
|
+
const fsChangeListener = () => {
|
|
39
|
+
if (typeof document === "undefined") return;
|
|
40
|
+
const tar = videoRef.current?.parentElement;
|
|
41
|
+
if (!tar) return;
|
|
42
|
+
state.isFullscreen = document.fullscreenElement === tar;
|
|
43
|
+
};
|
|
44
|
+
const volumeChangeListener = (e) => {
|
|
45
|
+
const tar = e.target;
|
|
46
|
+
Object.assign(state, {
|
|
47
|
+
volume: tar.volume * 100,
|
|
48
|
+
muted: tar.volume === 0
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
const handlePlay = () => {
|
|
52
|
+
const v = videoRef.current;
|
|
53
|
+
if (!v) return;
|
|
54
|
+
v.paused ? v.play() : v.pause();
|
|
55
|
+
};
|
|
56
|
+
const handleReady = (e) => {
|
|
57
|
+
const tar = e.target;
|
|
58
|
+
Object.assign(state, {
|
|
59
|
+
duration: tar.duration,
|
|
60
|
+
current: tar.currentTime
|
|
61
|
+
});
|
|
62
|
+
tar.volume = state.volume / 100;
|
|
63
|
+
};
|
|
64
|
+
const handleMuted = () => {
|
|
65
|
+
const v = videoRef.current;
|
|
66
|
+
if (!v) return;
|
|
67
|
+
if (v.volume > 0) {
|
|
68
|
+
state.volumeCache = v.volume;
|
|
69
|
+
v.volume = 0;
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
v.volume = state.volumeCache === 0 ? .5 : state.volumeCache;
|
|
73
|
+
};
|
|
74
|
+
const handleStop = () => {
|
|
75
|
+
const v = videoRef.current;
|
|
76
|
+
if (!v) return;
|
|
77
|
+
v.currentTime = 0;
|
|
78
|
+
v.pause();
|
|
79
|
+
};
|
|
80
|
+
const handleFullscreen = () => {
|
|
81
|
+
const tar = videoRef.current?.parentElement;
|
|
82
|
+
if (!tar) return;
|
|
83
|
+
state.isFullscreen ? require_utils.exitFullScreen() : require_utils.fullScreen(tar);
|
|
84
|
+
onFullScreenChange?.(!state.isFullscreen);
|
|
85
|
+
};
|
|
86
|
+
const handleUpdateTime = (t) => {
|
|
87
|
+
const v = videoRef.current;
|
|
88
|
+
if (!v) return;
|
|
89
|
+
v.currentTime = state.duration * t / 100;
|
|
90
|
+
};
|
|
91
|
+
const handleUpdateVolume = (t) => {
|
|
92
|
+
const v = videoRef.current;
|
|
93
|
+
if (!v) return;
|
|
94
|
+
v.volume = t / 100;
|
|
95
|
+
};
|
|
96
|
+
const showControls = !hideControls && !useOriginControls;
|
|
97
|
+
const clearHiddenTO = () => {
|
|
98
|
+
if (!hiddenTO.current) return;
|
|
99
|
+
clearTimeout(hiddenTO.current);
|
|
100
|
+
hiddenTO.current = null;
|
|
101
|
+
};
|
|
102
|
+
const setHiddenFalse = () => {
|
|
103
|
+
if (!showControls || !state.controlHidden) return;
|
|
104
|
+
state.controlHidden = false;
|
|
105
|
+
clearHiddenTO();
|
|
106
|
+
hiddenTO.current = setTimeout(() => {
|
|
107
|
+
state.controlHidden = true;
|
|
108
|
+
}, 1e3);
|
|
109
|
+
};
|
|
110
|
+
const handleDraggingProgress = (dragging) => {
|
|
111
|
+
state.draggingProgress = dragging;
|
|
112
|
+
};
|
|
113
|
+
const handleMouseMove = (0, _Users_iann_codes_ioca_react_node_modules__pnpm_radash_12_1_1_node_modules_radash_dist_esm_index_mjs.throttle)({ interval: 900 }, setHiddenFalse);
|
|
114
|
+
(0, react.useImperativeHandle)(ref, () => ({
|
|
115
|
+
play: () => {
|
|
116
|
+
const v = videoRef.current;
|
|
117
|
+
if (!v) return;
|
|
118
|
+
v.play();
|
|
119
|
+
},
|
|
120
|
+
pause: () => {
|
|
121
|
+
const v = videoRef.current;
|
|
122
|
+
if (!v) return;
|
|
123
|
+
v.pause();
|
|
124
|
+
},
|
|
125
|
+
stop: handleStop,
|
|
126
|
+
fullscreen: handleFullscreen,
|
|
127
|
+
getVideo: () => videoRef.current
|
|
128
|
+
}));
|
|
129
|
+
(0, react.useEffect)(() => {
|
|
130
|
+
if (typeof document === "undefined") return;
|
|
131
|
+
const v = videoRef.current;
|
|
132
|
+
if (!v) return;
|
|
133
|
+
v.addEventListener("timeupdate", timeUpdateListener);
|
|
134
|
+
v.addEventListener("play", playChangeListener);
|
|
135
|
+
v.addEventListener("pause", playChangeListener);
|
|
136
|
+
v.addEventListener("volumechange", volumeChangeListener);
|
|
137
|
+
document.addEventListener("fullscreenchange", fsChangeListener);
|
|
138
|
+
return () => {
|
|
139
|
+
clearHiddenTO();
|
|
140
|
+
v.removeEventListener("timeupdate", timeUpdateListener);
|
|
141
|
+
v.removeEventListener("play", playChangeListener);
|
|
142
|
+
v.removeEventListener("pause", playChangeListener);
|
|
143
|
+
v.removeEventListener("volumechange", volumeChangeListener);
|
|
144
|
+
document.removeEventListener("fullscreenchange", fsChangeListener);
|
|
145
|
+
};
|
|
146
|
+
}, []);
|
|
147
|
+
const currentValue = state.current / state.duration * 100;
|
|
148
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
149
|
+
className: (0, classnames.default)("i-video", className),
|
|
150
|
+
style: {
|
|
151
|
+
height,
|
|
152
|
+
width,
|
|
153
|
+
...style
|
|
154
|
+
},
|
|
155
|
+
onClick: handlePlay,
|
|
156
|
+
onDoubleClick: () => handleFullscreen(),
|
|
157
|
+
onMouseMove: handleMouseMove,
|
|
158
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("video", {
|
|
159
|
+
ref: videoRef,
|
|
160
|
+
onCanPlay: handleReady,
|
|
161
|
+
...restProps,
|
|
162
|
+
controls: useOriginControls
|
|
163
|
+
}), showControls && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
164
|
+
className: (0, classnames.default)("i-video-controls", { "i-video-controls-hidden": state.controlHidden }),
|
|
165
|
+
onClick: (e) => e.stopPropagation(),
|
|
166
|
+
children: [
|
|
167
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default.Toggle, {
|
|
168
|
+
className: "i-video-btn",
|
|
169
|
+
flat: true,
|
|
170
|
+
square: true,
|
|
171
|
+
after: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.PauseRound, {}) }),
|
|
172
|
+
active: state.playing,
|
|
173
|
+
onClick: handlePlay,
|
|
174
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.PlayArrowRound, {}) })
|
|
175
|
+
}),
|
|
176
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, {
|
|
177
|
+
className: "i-video-btn",
|
|
178
|
+
flat: true,
|
|
179
|
+
square: true,
|
|
180
|
+
onClick: handleStop,
|
|
181
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.StopRound, {}) })
|
|
182
|
+
}),
|
|
183
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
184
|
+
className: "i-video-times font-sm",
|
|
185
|
+
children: [
|
|
186
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$2.default.Time, { seconds: state.current }),
|
|
187
|
+
" /",
|
|
188
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$2.default.Time, { seconds: state.duration })
|
|
189
|
+
]
|
|
190
|
+
}),
|
|
191
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$3.default, {
|
|
192
|
+
...timeProgressProps,
|
|
193
|
+
value: currentValue,
|
|
194
|
+
onChange: handleUpdateTime,
|
|
195
|
+
onDraggingChange: handleDraggingProgress
|
|
196
|
+
}),
|
|
197
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
198
|
+
className: "i-video-control-volume",
|
|
199
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default.Toggle, {
|
|
200
|
+
className: "i-video-btn",
|
|
201
|
+
flat: true,
|
|
202
|
+
square: true,
|
|
203
|
+
active: state.volume <= 0,
|
|
204
|
+
after: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, {
|
|
205
|
+
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.VolumeOffRound, {}),
|
|
206
|
+
style: { padding: ".125em" }
|
|
207
|
+
}),
|
|
208
|
+
onClick: handleMuted,
|
|
209
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.VolumeDownRound, {}) })
|
|
210
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
211
|
+
className: "i-video-volume",
|
|
212
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$3.default, {
|
|
213
|
+
style: { height: 100 },
|
|
214
|
+
vertical: true,
|
|
215
|
+
...volumeProgressProps,
|
|
216
|
+
value: state.volume,
|
|
217
|
+
onChange: handleUpdateVolume
|
|
218
|
+
})
|
|
219
|
+
})]
|
|
220
|
+
}),
|
|
221
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default.Toggle, {
|
|
222
|
+
className: "i-video-btn",
|
|
223
|
+
flat: true,
|
|
224
|
+
square: true,
|
|
225
|
+
after: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.FullscreenExitRound, {}) }),
|
|
226
|
+
active: state.isFullscreen,
|
|
227
|
+
onClick: () => handleFullscreen(),
|
|
228
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, { icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.FullscreenRound, {}) })
|
|
229
|
+
})
|
|
230
|
+
]
|
|
231
|
+
})]
|
|
232
|
+
});
|
|
233
|
+
};
|
|
234
|
+
//#endregion
|
|
235
|
+
exports.default = Video;
|
|
236
|
+
|
|
237
|
+
//# sourceMappingURL=video.js.map
|
|
@@ -0,0 +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":""}
|
package/lib/cjs/index.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_index = require("./components/loading/index.js");
|
|
3
|
+
const require_index$1 = require("./components/button/index.js");
|
|
4
|
+
const require_index$2 = require("./components/icon/index.js");
|
|
5
|
+
const require_index$3 = require("./components/affix/index.js");
|
|
6
|
+
const require_index$4 = require("./components/badge/index.js");
|
|
7
|
+
const require_index$5 = require("./components/card/index.js");
|
|
8
|
+
const require_index$6 = require("./components/checkbox/index.js");
|
|
9
|
+
const require_index$7 = require("./components/collapse/index.js");
|
|
10
|
+
const require_index$8 = require("./components/datagrid/index.js");
|
|
11
|
+
const require_index$9 = require("./components/description/index.js");
|
|
12
|
+
const require_index$10 = require("./components/drawer/index.js");
|
|
13
|
+
const require_index$11 = require("./components/list/index.js");
|
|
14
|
+
const require_index$12 = require("./components/popup/index.js");
|
|
15
|
+
const require_index$13 = require("./components/dropdown/index.js");
|
|
16
|
+
const require_index$14 = require("./components/editor/index.js");
|
|
17
|
+
const require_index$15 = require("./components/flex/index.js");
|
|
18
|
+
const require_index$16 = require("./components/form/index.js");
|
|
19
|
+
const require_index$17 = require("./components/text/index.js");
|
|
20
|
+
const require_index$18 = require("./components/progress/index.js");
|
|
21
|
+
const require_index$19 = require("./components/video/index.js");
|
|
22
|
+
const require_index$20 = require("./js/usePreview/index.js");
|
|
23
|
+
const require_index$21 = require("./components/image/index.js");
|
|
24
|
+
const require_index$22 = require("./components/input/index.js");
|
|
25
|
+
const require_index$23 = require("./components/message/index.js");
|
|
26
|
+
const require_index$24 = require("./components/modal/index.js");
|
|
27
|
+
const require_index$25 = require("./components/pagination/index.js");
|
|
28
|
+
const require_index$26 = require("./components/tag/index.js");
|
|
29
|
+
const require_index$27 = require("./components/select/index.js");
|
|
30
|
+
const require_index$28 = require("./components/picker/colors/index.js");
|
|
31
|
+
const require_index$29 = require("./components/picker/dates/index.js");
|
|
32
|
+
const require_index$30 = require("./components/picker/time/index.js");
|
|
33
|
+
const require_index$31 = require("./components/popconfirm/index.js");
|
|
34
|
+
const require_index$32 = require("./components/radio/index.js");
|
|
35
|
+
const require_index$33 = require("./components/resizable/index.js");
|
|
36
|
+
const require_index$34 = require("./components/river/index.js");
|
|
37
|
+
const require_index$35 = require("./components/step/index.js");
|
|
38
|
+
const require_index$36 = require("./components/swiper/index.js");
|
|
39
|
+
const require_index$37 = require("./components/tabs/index.js");
|
|
40
|
+
const require_index$38 = require("./components/tree/index.js");
|
|
41
|
+
const require_index$39 = require("./components/upload/index.js");
|
|
42
|
+
const require_index$40 = require("./js/useTheme/index.js");
|
|
43
|
+
exports.Affix = require_index$3.default;
|
|
44
|
+
exports.Badge = require_index$4.default;
|
|
45
|
+
exports.Button = require_index$1.default;
|
|
46
|
+
exports.Card = require_index$5.default;
|
|
47
|
+
exports.Checkbox = require_index$6.default;
|
|
48
|
+
exports.Collapse = require_index$7.default;
|
|
49
|
+
exports.ColorPicker = require_index$28.default;
|
|
50
|
+
exports.Datagrid = require_index$8.default;
|
|
51
|
+
exports.DatePicker = require_index$29.default;
|
|
52
|
+
exports.Description = require_index$9.default;
|
|
53
|
+
exports.Drawer = require_index$10.default;
|
|
54
|
+
exports.Dropdown = require_index$13.default;
|
|
55
|
+
exports.Editor = require_index$14.default;
|
|
56
|
+
exports.Flex = require_index$15.default;
|
|
57
|
+
exports.Form = require_index$16.default;
|
|
58
|
+
exports.Icon = require_index$2.default;
|
|
59
|
+
exports.Image = require_index$21.default;
|
|
60
|
+
exports.Input = require_index$22.default;
|
|
61
|
+
exports.List = require_index$11.default;
|
|
62
|
+
exports.Loading = require_index.default;
|
|
63
|
+
exports.Message = require_index$23.default;
|
|
64
|
+
exports.Modal = require_index$24.default;
|
|
65
|
+
exports.Pagination = require_index$25.default;
|
|
66
|
+
exports.Popconfirm = require_index$31.default;
|
|
67
|
+
exports.Popup = require_index$12.default;
|
|
68
|
+
exports.Progress = require_index$18.default;
|
|
69
|
+
exports.Radio = require_index$32.default;
|
|
70
|
+
exports.Resizable = require_index$33.default;
|
|
71
|
+
exports.River = require_index$34.default;
|
|
72
|
+
exports.Select = require_index$27.default;
|
|
73
|
+
exports.Step = require_index$35.default;
|
|
74
|
+
exports.Swiper = require_index$36.default;
|
|
75
|
+
exports.Tabs = require_index$37.default;
|
|
76
|
+
exports.Tag = require_index$26.default;
|
|
77
|
+
exports.Text = require_index$17.default;
|
|
78
|
+
exports.TimePicker = require_index$30.default;
|
|
79
|
+
exports.Tree = require_index$38.default;
|
|
80
|
+
exports.Upload = require_index$39.default;
|
|
81
|
+
exports.Video = require_index$19.default;
|
|
82
|
+
exports.usePreview = require_index$20.default;
|
|
83
|
+
exports.useTheme = require_index$40.default;
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
require("../_virtual/_rolldown/runtime.js");
|
|
2
|
+
let react = require("react");
|
|
3
|
+
//#region packages/js/hooks.ts
|
|
4
|
+
const MouseMoveEvents = /* @__PURE__ */ new Set();
|
|
5
|
+
const MouseUpEvents = /* @__PURE__ */ new Set();
|
|
6
|
+
const KeydownEvents = /* @__PURE__ */ new Set();
|
|
7
|
+
let initialized = false;
|
|
8
|
+
const initEvents = () => {
|
|
9
|
+
if (typeof document === "undefined" || initialized) return;
|
|
10
|
+
initialized = true;
|
|
11
|
+
const touchable = "ontouchend" in document;
|
|
12
|
+
const EVENTS = {
|
|
13
|
+
MOVE: touchable ? "touchmove" : "mousemove",
|
|
14
|
+
UP: touchable ? "touchend" : "mouseup",
|
|
15
|
+
KEYDOWN: "keydown"
|
|
16
|
+
};
|
|
17
|
+
document.addEventListener(EVENTS.MOVE, (e) => {
|
|
18
|
+
for (const listener of MouseMoveEvents.values()) listener(e);
|
|
19
|
+
}, { passive: false });
|
|
20
|
+
document.addEventListener(EVENTS.UP, (e) => {
|
|
21
|
+
for (const listener of MouseUpEvents.values()) listener(e);
|
|
22
|
+
});
|
|
23
|
+
document.addEventListener(EVENTS.KEYDOWN, (e) => {
|
|
24
|
+
for (const listener of KeydownEvents.values()) listener(e);
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
function initEventsOnce() {
|
|
28
|
+
(0, react.useEffect)(initEvents, []);
|
|
29
|
+
}
|
|
30
|
+
function useMouseMove(listener, options) {
|
|
31
|
+
initEventsOnce();
|
|
32
|
+
(0, react.useEffect)(() => {
|
|
33
|
+
if (options?.disabled) return;
|
|
34
|
+
MouseMoveEvents.add(listener);
|
|
35
|
+
return () => {
|
|
36
|
+
MouseMoveEvents.delete(listener);
|
|
37
|
+
};
|
|
38
|
+
}, []);
|
|
39
|
+
}
|
|
40
|
+
function useMouseUp(listener, options) {
|
|
41
|
+
initEventsOnce();
|
|
42
|
+
(0, react.useEffect)(() => {
|
|
43
|
+
if (options?.disabled) return;
|
|
44
|
+
MouseUpEvents.add(listener);
|
|
45
|
+
return () => {
|
|
46
|
+
MouseUpEvents.delete(listener);
|
|
47
|
+
};
|
|
48
|
+
}, []);
|
|
49
|
+
}
|
|
50
|
+
function useKeydown(listener, options) {
|
|
51
|
+
initEventsOnce();
|
|
52
|
+
(0, react.useEffect)(() => {
|
|
53
|
+
if (options?.disabled) return;
|
|
54
|
+
KeydownEvents.add(listener);
|
|
55
|
+
return () => {
|
|
56
|
+
KeydownEvents.delete(listener);
|
|
57
|
+
};
|
|
58
|
+
}, []);
|
|
59
|
+
}
|
|
60
|
+
function useReactive(initialState) {
|
|
61
|
+
const [, setFlag] = (0, react.useState)(0);
|
|
62
|
+
const scheduledRef = (0, react.useRef)(false);
|
|
63
|
+
const proxyCacheRef = (0, react.useRef)(/* @__PURE__ */ new WeakMap());
|
|
64
|
+
const rootRef = (0, react.useRef)(null);
|
|
65
|
+
const proxyRef = (0, react.useRef)(null);
|
|
66
|
+
const notify = () => {
|
|
67
|
+
if (scheduledRef.current) return;
|
|
68
|
+
scheduledRef.current = true;
|
|
69
|
+
const flush = () => {
|
|
70
|
+
scheduledRef.current = false;
|
|
71
|
+
setFlag((n) => n + 1);
|
|
72
|
+
};
|
|
73
|
+
if (typeof queueMicrotask !== "undefined") {
|
|
74
|
+
queueMicrotask(flush);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
Promise.resolve().then(flush);
|
|
78
|
+
};
|
|
79
|
+
const createProxy = (target) => {
|
|
80
|
+
if (!target || typeof target !== "object") return target;
|
|
81
|
+
if (!Array.isArray(target)) {
|
|
82
|
+
const proto = Object.getPrototypeOf(target);
|
|
83
|
+
if (!(proto === Object.prototype || proto === null)) return target;
|
|
84
|
+
}
|
|
85
|
+
const cached = proxyCacheRef.current.get(target);
|
|
86
|
+
if (cached) return cached;
|
|
87
|
+
const proxy = new Proxy(target, {
|
|
88
|
+
get(t, p, r) {
|
|
89
|
+
return createProxy(Reflect.get(t, p, r));
|
|
90
|
+
},
|
|
91
|
+
set(t, p, v, r) {
|
|
92
|
+
const prev = Reflect.get(t, p, r);
|
|
93
|
+
const ok = Reflect.set(t, p, v, r);
|
|
94
|
+
if (prev !== v) notify();
|
|
95
|
+
return ok;
|
|
96
|
+
},
|
|
97
|
+
deleteProperty(t, p) {
|
|
98
|
+
const had = Object.prototype.hasOwnProperty.call(t, p);
|
|
99
|
+
const ok = Reflect.deleteProperty(t, p);
|
|
100
|
+
if (had) notify();
|
|
101
|
+
return ok;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
proxyCacheRef.current.set(target, proxy);
|
|
105
|
+
return proxy;
|
|
106
|
+
};
|
|
107
|
+
if (!proxyRef.current) {
|
|
108
|
+
rootRef.current = initialState;
|
|
109
|
+
proxyRef.current = createProxy(rootRef.current);
|
|
110
|
+
}
|
|
111
|
+
return proxyRef.current;
|
|
112
|
+
}
|
|
113
|
+
function useLocalStorageState(key, options) {
|
|
114
|
+
const { defaultValue, listenStorageChange } = options ?? {};
|
|
115
|
+
const getDefault = () => {
|
|
116
|
+
return typeof defaultValue === "function" ? defaultValue() : defaultValue;
|
|
117
|
+
};
|
|
118
|
+
const read = () => {
|
|
119
|
+
if (typeof window === "undefined") return getDefault();
|
|
120
|
+
const raw = window.localStorage.getItem(key);
|
|
121
|
+
if (raw === null) return getDefault();
|
|
122
|
+
try {
|
|
123
|
+
return JSON.parse(raw);
|
|
124
|
+
} catch (e) {
|
|
125
|
+
return raw;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
const [state, setState] = (0, react.useState)(() => read());
|
|
129
|
+
const set = (value) => {
|
|
130
|
+
setState((prev) => {
|
|
131
|
+
const next = typeof value === "function" ? value(prev) : value;
|
|
132
|
+
if (typeof window !== "undefined") if (next === void 0) window.localStorage.removeItem(key);
|
|
133
|
+
else window.localStorage.setItem(key, JSON.stringify(next));
|
|
134
|
+
return next;
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
(0, react.useEffect)(() => {
|
|
138
|
+
if (!listenStorageChange) return;
|
|
139
|
+
if (typeof window === "undefined") return;
|
|
140
|
+
const onStorage = (e) => {
|
|
141
|
+
if (e.key !== key) return;
|
|
142
|
+
if (e.newValue === null) {
|
|
143
|
+
setState(getDefault());
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
try {
|
|
147
|
+
setState(JSON.parse(e.newValue));
|
|
148
|
+
} catch (err) {
|
|
149
|
+
setState(e.newValue);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
window.addEventListener("storage", onStorage);
|
|
153
|
+
return () => {
|
|
154
|
+
window.removeEventListener("storage", onStorage);
|
|
155
|
+
};
|
|
156
|
+
}, [key, listenStorageChange]);
|
|
157
|
+
return [state, set];
|
|
158
|
+
}
|
|
159
|
+
function useSize(target) {
|
|
160
|
+
const [size, setSize] = (0, react.useState)();
|
|
161
|
+
(0, react.useEffect)(() => {
|
|
162
|
+
if (typeof window === "undefined") return;
|
|
163
|
+
const resolveTarget = () => {
|
|
164
|
+
if (!target) return null;
|
|
165
|
+
if (typeof target === "function") return target();
|
|
166
|
+
if (typeof target === "object" && "current" in target) return target.current;
|
|
167
|
+
return target;
|
|
168
|
+
};
|
|
169
|
+
const el = resolveTarget();
|
|
170
|
+
if (!el) return;
|
|
171
|
+
const update = () => {
|
|
172
|
+
const rect = el.getBoundingClientRect();
|
|
173
|
+
setSize({
|
|
174
|
+
width: rect.width,
|
|
175
|
+
height: rect.height
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
update();
|
|
179
|
+
let ro;
|
|
180
|
+
if (typeof ResizeObserver !== "undefined") {
|
|
181
|
+
ro = new ResizeObserver(update);
|
|
182
|
+
ro.observe(el);
|
|
183
|
+
}
|
|
184
|
+
window.addEventListener("resize", update);
|
|
185
|
+
return () => {
|
|
186
|
+
window.removeEventListener("resize", update);
|
|
187
|
+
ro?.disconnect();
|
|
188
|
+
};
|
|
189
|
+
}, [target]);
|
|
190
|
+
return size;
|
|
191
|
+
}
|
|
192
|
+
const defaultObserver = {
|
|
193
|
+
observe: void 0,
|
|
194
|
+
unobserve: void 0,
|
|
195
|
+
disconnect: void 0
|
|
196
|
+
};
|
|
197
|
+
function useIntersectionObserver(configs) {
|
|
198
|
+
if (typeof window === "undefined") return { ...defaultObserver };
|
|
199
|
+
const WM = /* @__PURE__ */ new WeakMap();
|
|
200
|
+
const IO = new IntersectionObserver((entries) => {
|
|
201
|
+
entries.map((entry) => {
|
|
202
|
+
WM.get(entry.target)?.(entry.target, entry.isIntersecting);
|
|
203
|
+
});
|
|
204
|
+
}, configs);
|
|
205
|
+
function observe(target, callback) {
|
|
206
|
+
if (WM.get(target)) return;
|
|
207
|
+
WM.set(target, callback);
|
|
208
|
+
target && IO.observe(target);
|
|
209
|
+
}
|
|
210
|
+
function unobserve(target) {
|
|
211
|
+
target && IO.unobserve(target);
|
|
212
|
+
WM.delete(target);
|
|
213
|
+
}
|
|
214
|
+
function disconnect() {
|
|
215
|
+
IO.disconnect();
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
observe,
|
|
219
|
+
unobserve,
|
|
220
|
+
disconnect
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
function useResizeObserver() {
|
|
224
|
+
if (typeof window === "undefined") return { ...defaultObserver };
|
|
225
|
+
const WM = /* @__PURE__ */ new WeakMap();
|
|
226
|
+
const IO = new ResizeObserver((entries) => {
|
|
227
|
+
entries.map((entry) => {
|
|
228
|
+
WM.get(entry.target)?.(entry.target);
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
function observe(target, callback) {
|
|
232
|
+
if (WM.get(target)) return;
|
|
233
|
+
target && IO.observe(target);
|
|
234
|
+
WM.set(target, callback);
|
|
235
|
+
}
|
|
236
|
+
function unobserve(target) {
|
|
237
|
+
target && IO.unobserve(target);
|
|
238
|
+
WM.delete(target);
|
|
239
|
+
}
|
|
240
|
+
function disconnect() {
|
|
241
|
+
IO.disconnect();
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
observe,
|
|
245
|
+
unobserve,
|
|
246
|
+
disconnect
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
//#endregion
|
|
250
|
+
exports.useIntersectionObserver = useIntersectionObserver;
|
|
251
|
+
exports.useKeydown = useKeydown;
|
|
252
|
+
exports.useLocalStorageState = useLocalStorageState;
|
|
253
|
+
exports.useMouseMove = useMouseMove;
|
|
254
|
+
exports.useMouseUp = useMouseUp;
|
|
255
|
+
exports.useReactive = useReactive;
|
|
256
|
+
exports.useResizeObserver = useResizeObserver;
|
|
257
|
+
exports.useSize = useSize;
|
|
258
|
+
|
|
259
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","names":[],"sources":["../../../packages/js/hooks.ts"],"sourcesContent":["import { DependencyList, useEffect, useMemo, useRef, useState } from \"react\";\n\ntype TMouseEvent = (e: MouseEvent) => void;\ntype TKeyboardEvent = (e: KeyboardEvent) => void;\ntype TEventOption = {\n\tdisabled?: boolean;\n};\n\nconst MouseMoveEvents = new Set<TMouseEvent>();\nconst MouseUpEvents = new Set<TMouseEvent>();\nconst KeydownEvents = new Set<TKeyboardEvent>();\n\nlet initialized = false;\n\nconst initEvents = () => {\n\tif (typeof document === \"undefined\" || initialized) return;\n\tinitialized = true;\n\n\tconst touchable = \"ontouchend\" in document;\n\tconst EVENTS: Record<string, any> = {\n\t\tMOVE: touchable ? \"touchmove\" : \"mousemove\",\n\t\tUP: touchable ? \"touchend\" : \"mouseup\",\n\t\tKEYDOWN: \"keydown\",\n\t};\n\n\tdocument.addEventListener(\n\t\tEVENTS.MOVE,\n\t\t(e) => {\n\t\t\tfor (const listener of MouseMoveEvents.values()) {\n\t\t\t\tlistener(e);\n\t\t\t}\n\t\t},\n\t\t{ passive: false },\n\t);\n\n\tdocument.addEventListener(EVENTS.UP, (e) => {\n\t\tfor (const listener of MouseUpEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n\n\tdocument.addEventListener(EVENTS.KEYDOWN, (e) => {\n\t\tfor (const listener of KeydownEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n};\n\nfunction initEventsOnce() {\n\tuseEffect(initEvents, []);\n}\n\nexport function useMouseMove(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseMoveEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseMoveEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useMouseUp(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseUpEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseUpEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useKeydown(listener: TKeyboardEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tKeydownEvents.add(listener);\n\t\treturn () => {\n\t\t\tKeydownEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useCreation<T>(factory: () => T, deps: DependencyList) {\n\treturn useMemo(factory, deps);\n}\n\nexport function useReactive<T extends object>(initialState: T): T {\n\tconst [, setFlag] = useState(0);\n\tconst scheduledRef = useRef(false);\n\tconst proxyCacheRef = useRef(new WeakMap<object, any>());\n\tconst rootRef = useRef<T | null>(null);\n\tconst proxyRef = useRef<T | null>(null);\n\n\tconst notify = () => {\n\t\tif (scheduledRef.current) return;\n\t\tscheduledRef.current = true;\n\n\t\tconst flush = () => {\n\t\t\tscheduledRef.current = false;\n\t\t\tsetFlag((n) => n + 1);\n\t\t};\n\n\t\tif (typeof queueMicrotask !== \"undefined\") {\n\t\t\tqueueMicrotask(flush);\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.resolve().then(flush);\n\t};\n\n\tconst createProxy = (target: any): any => {\n\t\tif (!target || typeof target !== \"object\") return target;\n\n\t\tif (!Array.isArray(target)) {\n\t\t\tconst proto = Object.getPrototypeOf(target);\n\t\t\tconst isPlainObject = proto === Object.prototype || proto === null;\n\t\t\tif (!isPlainObject) return target;\n\t\t}\n\n\t\tconst cached = proxyCacheRef.current.get(target);\n\t\tif (cached) return cached;\n\n\t\tconst proxy = new Proxy(target, {\n\t\t\tget(t, p, r) {\n\t\t\t\treturn createProxy(Reflect.get(t, p, r));\n\t\t\t},\n\t\t\tset(t, p, v, r) {\n\t\t\t\tconst prev = Reflect.get(t, p, r);\n\t\t\t\tconst ok = Reflect.set(t, p, v, r);\n\t\t\t\tif (prev !== v) notify();\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t\tdeleteProperty(t, p) {\n\t\t\t\tconst had = Object.prototype.hasOwnProperty.call(t, p);\n\t\t\t\tconst ok = Reflect.deleteProperty(t, p);\n\t\t\t\tif (had) notify();\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t});\n\n\t\tproxyCacheRef.current.set(target, proxy);\n\t\treturn proxy;\n\t};\n\n\tif (!proxyRef.current) {\n\t\trootRef.current = initialState;\n\t\tproxyRef.current = createProxy(rootRef.current);\n\t}\n\n\treturn proxyRef.current as T;\n}\n\ntype TSetState<T> = (\n\tvalue: T | undefined | ((prev: T | undefined) => T),\n) => void;\n\ntype TLocalStorageOptions<T> = {\n\tdefaultValue?: T | (() => T);\n\tlistenStorageChange?: boolean;\n};\n\nexport function useLocalStorageState<T>(\n\tkey: string,\n\toptions?: TLocalStorageOptions<T>,\n): [T | undefined, TSetState<T>] {\n\tconst { defaultValue, listenStorageChange } = options ?? {};\n\n\tconst getDefault = () => {\n\t\treturn typeof defaultValue === \"function\"\n\t\t\t? (defaultValue as () => T)()\n\t\t\t: defaultValue;\n\t};\n\n\tconst read = (): T | undefined => {\n\t\tif (typeof window === \"undefined\") return getDefault();\n\n\t\tconst raw = window.localStorage.getItem(key);\n\t\tif (raw === null) return getDefault();\n\n\t\ttry {\n\t\t\treturn JSON.parse(raw) as T;\n\t\t} catch (e) {\n\t\t\treturn raw as unknown as T;\n\t\t}\n\t};\n\n\tconst [state, setState] = useState<T | undefined>(() => read());\n\n\tconst set: TSetState<T> = (value) => {\n\t\tsetState((prev) => {\n\t\t\tconst next =\n\t\t\t\ttypeof value === \"function\"\n\t\t\t\t\t? (value as (prev: T | undefined) => T)(prev)\n\t\t\t\t\t: value;\n\n\t\t\tif (typeof window !== \"undefined\") {\n\t\t\t\tif (next === undefined) {\n\t\t\t\t\twindow.localStorage.removeItem(key);\n\t\t\t\t} else {\n\t\t\t\t\twindow.localStorage.setItem(key, JSON.stringify(next));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn next;\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (!listenStorageChange) return;\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onStorage = (e: StorageEvent) => {\n\t\t\tif (e.key !== key) return;\n\n\t\t\tif (e.newValue === null) {\n\t\t\t\tsetState(getDefault());\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tsetState(JSON.parse(e.newValue) as T);\n\t\t\t} catch (err) {\n\t\t\t\tsetState(e.newValue as unknown as T);\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"storage\", onStorage);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"storage\", onStorage);\n\t\t};\n\t}, [key, listenStorageChange]);\n\n\treturn [state, set];\n}\n\ntype TResponsiveConfig = Record<string, number>;\n\nlet responsiveConfig: TResponsiveConfig = {};\n\nexport function configResponsive(config: TResponsiveConfig) {\n\tresponsiveConfig = config;\n}\n\nexport function useResponsive() {\n\tconst compute = () => {\n\t\tif (typeof window === \"undefined\") return {};\n\t\tconst w = window.innerWidth;\n\t\tconst result: Record<string, boolean> = {};\n\n\t\tfor (const key in responsiveConfig) {\n\t\t\tresult[key] = w >= responsiveConfig[key];\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tconst [state, setState] = useState<Record<string, boolean>>(() =>\n\t\tcompute(),\n\t);\n\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onResize = () => {\n\t\t\tconst next = compute();\n\t\t\tsetState((prev) => {\n\t\t\t\tconst prevKeys = Object.keys(prev);\n\t\t\t\tconst nextKeys = Object.keys(next);\n\t\t\t\tif (prevKeys.length !== nextKeys.length) return next;\n\n\t\t\t\tfor (const k of nextKeys) {\n\t\t\t\t\tif (prev[k] !== next[k]) return next;\n\t\t\t\t}\n\n\t\t\t\treturn prev;\n\t\t\t});\n\t\t};\n\n\t\tonResize();\n\t\twindow.addEventListener(\"resize\", onResize);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", onResize);\n\t\t};\n\t}, []);\n\n\treturn state;\n}\n\ntype TSize = { width: number; height: number };\n\nexport function useSize(target: any): TSize | undefined {\n\tconst [size, setSize] = useState<TSize>();\n\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst resolveTarget = () => {\n\t\t\tif (!target) return null;\n\t\t\tif (typeof target === \"function\") return target();\n\t\t\tif (typeof target === \"object\" && \"current\" in target) {\n\t\t\t\treturn target.current;\n\t\t\t}\n\t\t\treturn target;\n\t\t};\n\n\t\tconst el = resolveTarget() as HTMLElement | null;\n\t\tif (!el) return;\n\n\t\tconst update = () => {\n\t\t\tconst rect = el.getBoundingClientRect();\n\t\t\tsetSize({ width: rect.width, height: rect.height });\n\t\t};\n\n\t\tupdate();\n\n\t\tlet ro: ResizeObserver | undefined;\n\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\tro = new ResizeObserver(update);\n\t\t\tro.observe(el);\n\t\t}\n\n\t\twindow.addEventListener(\"resize\", update);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", update);\n\t\t\tro?.disconnect();\n\t\t};\n\t}, [target]);\n\n\treturn size;\n}\n\nconst defaultObserver = {\n\tobserve: undefined,\n\tunobserve: undefined,\n\tdisconnect: undefined,\n};\n\nexport function useIntersectionObserver(configs?: IntersectionObserverInit) {\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\tconst WM = new WeakMap();\n\tconst IO = new IntersectionObserver((entries) => {\n\t\tentries.map((entry) => {\n\t\t\tconst callback = WM.get(entry.target);\n\t\t\tcallback?.(entry.target, entry.isIntersecting);\n\t\t});\n\t}, configs);\n\n\tfunction observe(target: HTMLElement, callback: Function) {\n\t\tif (WM.get(target)) return;\n\t\tWM.set(target, callback);\n\t\ttarget && IO.observe(target);\n\t}\n\n\tfunction unobserve(target: HTMLElement) {\n\t\ttarget && IO.unobserve(target);\n\t\tWM.delete(target);\n\t}\n\n\tfunction disconnect() {\n\t\tIO.disconnect();\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n\nexport function useResizeObserver() {\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\tconst WM = new WeakMap();\n\tconst IO = new ResizeObserver((entries) => {\n\t\tentries.map((entry) => {\n\t\t\tconst callback = WM.get(entry.target);\n\t\t\tcallback?.(entry.target);\n\t\t});\n\t});\n\n\tfunction observe(target: HTMLElement, callback: Function) {\n\t\tif (WM.get(target)) return;\n\t\ttarget && IO.observe(target);\n\t\tWM.set(target, callback);\n\t}\n\n\tfunction unobserve(target: HTMLElement) {\n\t\ttarget && IO.unobserve(target);\n\t\tWM.delete(target);\n\t}\n\n\tfunction disconnect() {\n\t\tIO.disconnect();\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n"],"mappings":"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"}
|