@ioca/react 1.3.3 → 1.3.5
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/components/affix/affix.js +63 -0
- package/lib/cjs/components/affix/affix.js.map +1 -0
- package/lib/cjs/components/affix/index.js +10 -0
- package/lib/cjs/components/affix/index.js.map +1 -0
- package/lib/cjs/components/affix/totop.js +18 -0
- package/lib/cjs/components/affix/totop.js.map +1 -0
- package/lib/cjs/components/badge/badge.js +17 -0
- package/lib/cjs/components/badge/badge.js.map +1 -0
- package/lib/cjs/components/badge/index.js +10 -0
- package/lib/cjs/components/badge/index.js.map +1 -0
- package/lib/cjs/components/button/button.js +62 -0
- package/lib/cjs/components/button/button.js.map +1 -0
- package/lib/cjs/components/button/group.js +25 -0
- package/lib/cjs/components/button/group.js.map +1 -0
- package/lib/cjs/components/button/index.js +13 -0
- package/lib/cjs/components/button/index.js.map +1 -0
- package/lib/cjs/components/button/toggle.js +50 -0
- package/lib/cjs/components/button/toggle.js.map +1 -0
- package/lib/cjs/components/card/card.js +17 -0
- package/lib/cjs/components/card/card.js.map +1 -0
- package/lib/cjs/components/card/index.js +10 -0
- package/lib/cjs/components/card/index.js.map +1 -0
- package/lib/cjs/components/checkbox/checkbox.js +46 -0
- package/lib/cjs/components/checkbox/checkbox.js.map +1 -0
- package/lib/cjs/components/checkbox/index.js +10 -0
- package/lib/cjs/components/checkbox/index.js.map +1 -0
- package/lib/cjs/components/checkbox/item.js +40 -0
- package/lib/cjs/components/checkbox/item.js.map +1 -0
- package/lib/cjs/components/collapse/collapse.js +78 -0
- package/lib/cjs/components/collapse/collapse.js.map +1 -0
- package/lib/cjs/components/collapse/index.js +10 -0
- package/lib/cjs/components/collapse/index.js.map +1 -0
- package/lib/cjs/components/collapse/item.js +12 -0
- package/lib/cjs/components/collapse/item.js.map +1 -0
- package/lib/cjs/components/datagrid/cell.js +27 -0
- package/lib/cjs/components/datagrid/cell.js.map +1 -0
- package/lib/cjs/components/datagrid/datagrid.js +117 -0
- package/lib/cjs/components/datagrid/datagrid.js.map +1 -0
- package/lib/cjs/components/datagrid/index.js +10 -0
- package/lib/cjs/components/datagrid/index.js.map +1 -0
- package/lib/cjs/components/datagrid/resize.js +45 -0
- package/lib/cjs/components/datagrid/resize.js.map +1 -0
- package/lib/cjs/components/datagrid/row.js +37 -0
- package/lib/cjs/components/datagrid/row.js.map +1 -0
- package/lib/cjs/components/datagrid/sorter.js +17 -0
- package/lib/cjs/components/datagrid/sorter.js.map +1 -0
- package/lib/cjs/components/description/description.js +32 -0
- package/lib/cjs/components/description/description.js.map +1 -0
- package/lib/cjs/components/description/index.js +10 -0
- package/lib/cjs/components/description/index.js.map +1 -0
- package/lib/cjs/components/drawer/drawer.js +66 -0
- package/lib/cjs/components/drawer/drawer.js.map +1 -0
- package/lib/cjs/components/drawer/index.js +10 -0
- package/lib/cjs/components/drawer/index.js.map +1 -0
- package/lib/cjs/components/dropdown/dropdown.js +17 -0
- package/lib/cjs/components/dropdown/dropdown.js.map +1 -0
- package/lib/cjs/components/dropdown/index.js +10 -0
- package/lib/cjs/components/dropdown/index.js.map +1 -0
- package/lib/cjs/components/dropdown/item.js +22 -0
- package/lib/cjs/components/dropdown/item.js.map +1 -0
- package/lib/cjs/components/editor/controls.js +87 -0
- package/lib/cjs/components/editor/controls.js.map +1 -0
- package/lib/cjs/components/editor/editor.js +83 -0
- package/lib/cjs/components/editor/editor.js.map +1 -0
- package/lib/cjs/components/editor/index.js +10 -0
- package/lib/cjs/components/editor/index.js.map +1 -0
- package/lib/cjs/components/flex/flex.js +32 -0
- package/lib/cjs/components/flex/flex.js.map +1 -0
- package/lib/cjs/components/flex/index.js +10 -0
- package/lib/cjs/components/flex/index.js.map +1 -0
- package/lib/cjs/components/form/context.js +10 -0
- package/lib/cjs/components/form/context.js.map +1 -0
- package/lib/cjs/components/form/field.js +77 -0
- package/lib/cjs/components/form/field.js.map +1 -0
- package/lib/cjs/components/form/form.js +57 -0
- package/lib/cjs/components/form/form.js.map +1 -0
- package/lib/cjs/components/form/index.js +10 -0
- package/lib/cjs/components/form/index.js.map +1 -0
- package/lib/cjs/components/form/useForm.js +130 -0
- package/lib/cjs/components/form/useForm.js.map +1 -0
- package/lib/cjs/components/icon/icon.js +27 -0
- package/lib/cjs/components/icon/icon.js.map +1 -0
- package/lib/cjs/components/icon/index.js +10 -0
- package/lib/cjs/components/icon/index.js.map +1 -0
- package/lib/cjs/components/image/image.js +76 -0
- package/lib/cjs/components/image/image.js.map +1 -0
- package/lib/cjs/components/image/index.js +11 -0
- package/lib/cjs/components/image/index.js.map +1 -0
- package/lib/cjs/components/image/list.js +47 -0
- package/lib/cjs/components/image/list.js.map +1 -0
- package/lib/cjs/components/input/container.js +18 -0
- package/lib/cjs/components/input/container.js.map +1 -0
- package/lib/cjs/components/input/index.js +15 -0
- package/lib/cjs/components/input/index.js.map +1 -0
- package/lib/cjs/components/input/input.js +67 -0
- package/lib/cjs/components/input/input.js.map +1 -0
- package/lib/cjs/components/input/number.js +58 -0
- package/lib/cjs/components/input/number.js.map +1 -0
- package/lib/cjs/components/input/range.js +71 -0
- package/lib/cjs/components/input/range.js.map +1 -0
- package/lib/cjs/components/input/textarea.js +51 -0
- package/lib/cjs/components/input/textarea.js.map +1 -0
- package/lib/cjs/components/list/index.js +10 -0
- package/lib/cjs/components/list/index.js.map +1 -0
- package/lib/cjs/components/list/item.js +18 -0
- package/lib/cjs/components/list/item.js.map +1 -0
- package/lib/cjs/components/list/list.js +28 -0
- package/lib/cjs/components/list/list.js.map +1 -0
- package/lib/cjs/components/loading/index.js +10 -0
- package/lib/cjs/components/loading/index.js.map +1 -0
- package/lib/cjs/components/loading/loading.js +21 -0
- package/lib/cjs/components/loading/loading.js.map +1 -0
- package/lib/cjs/components/message/index.js +10 -0
- package/lib/cjs/components/message/index.js.map +1 -0
- package/lib/cjs/components/message/message.js +178 -0
- package/lib/cjs/components/message/message.js.map +1 -0
- package/lib/cjs/components/modal/hookModal.js +31 -0
- package/lib/cjs/components/modal/hookModal.js.map +1 -0
- package/lib/cjs/components/modal/index.js +11 -0
- package/lib/cjs/components/modal/index.js.map +1 -0
- package/lib/cjs/components/modal/modal.js +108 -0
- package/lib/cjs/components/modal/modal.js.map +1 -0
- package/lib/cjs/components/modal/useModal.js +38 -0
- package/lib/cjs/components/modal/useModal.js.map +1 -0
- package/lib/cjs/components/pagination/index.js +10 -0
- package/lib/cjs/components/pagination/index.js.map +1 -0
- package/lib/cjs/components/pagination/page.js +28 -0
- package/lib/cjs/components/pagination/page.js.map +1 -0
- package/lib/cjs/components/pagination/pagination.js +48 -0
- package/lib/cjs/components/pagination/pagination.js.map +1 -0
- package/lib/cjs/components/picker/colors/footer.js +44 -0
- package/lib/cjs/components/picker/colors/footer.js.map +1 -0
- package/lib/cjs/components/picker/colors/handle.js +14 -0
- package/lib/cjs/components/picker/colors/handle.js.map +1 -0
- package/lib/cjs/components/picker/colors/index.js +61 -0
- package/lib/cjs/components/picker/colors/index.js.map +1 -0
- package/lib/cjs/components/picker/dates/dates.js +50 -0
- package/lib/cjs/components/picker/dates/dates.js.map +1 -0
- package/lib/cjs/components/picker/dates/index.js +66 -0
- package/lib/cjs/components/picker/dates/index.js.map +1 -0
- package/lib/cjs/components/picker/dates/panel.js +81 -0
- package/lib/cjs/components/picker/dates/panel.js.map +1 -0
- package/lib/cjs/components/picker/time/index.js +50 -0
- package/lib/cjs/components/picker/time/index.js.map +1 -0
- package/lib/cjs/components/picker/time/item.js +19 -0
- package/lib/cjs/components/picker/time/item.js.map +1 -0
- package/lib/cjs/components/picker/time/panel.js +87 -0
- package/lib/cjs/components/picker/time/panel.js.map +1 -0
- package/lib/cjs/components/popconfirm/index.js +10 -0
- package/lib/cjs/components/popconfirm/index.js.map +1 -0
- package/lib/cjs/components/popconfirm/popconfirm.js +58 -0
- package/lib/cjs/components/popconfirm/popconfirm.js.map +1 -0
- package/lib/cjs/components/popup/content.js +44 -0
- package/lib/cjs/components/popup/content.js.map +1 -0
- package/lib/cjs/components/popup/index.js +10 -0
- package/lib/cjs/components/popup/index.js.map +1 -0
- package/lib/cjs/components/popup/popup.js +223 -0
- package/lib/cjs/components/popup/popup.js.map +1 -0
- package/lib/cjs/components/progress/circle.js +17 -0
- package/lib/cjs/components/progress/circle.js.map +1 -0
- package/lib/cjs/components/progress/index.js +10 -0
- package/lib/cjs/components/progress/index.js.map +1 -0
- package/lib/cjs/components/progress/line.js +18 -0
- package/lib/cjs/components/progress/line.js.map +1 -0
- package/lib/cjs/components/progress/progress.js +87 -0
- package/lib/cjs/components/progress/progress.js.map +1 -0
- package/lib/cjs/components/radio/index.js +10 -0
- package/lib/cjs/components/radio/index.js.map +1 -0
- package/lib/cjs/components/radio/item.js +21 -0
- package/lib/cjs/components/radio/item.js.map +1 -0
- package/lib/cjs/components/radio/radio.js +39 -0
- package/lib/cjs/components/radio/radio.js.map +1 -0
- package/lib/cjs/components/resizable/index.js +10 -0
- package/lib/cjs/components/resizable/index.js.map +1 -0
- package/lib/cjs/components/resizable/resizable.js +65 -0
- package/lib/cjs/components/resizable/resizable.js.map +1 -0
- package/lib/cjs/components/select/index.js +10 -0
- package/lib/cjs/components/select/index.js.map +1 -0
- package/lib/cjs/components/select/options.js +51 -0
- package/lib/cjs/components/select/options.js.map +1 -0
- package/lib/cjs/components/select/select.js +97 -0
- package/lib/cjs/components/select/select.js.map +1 -0
- package/lib/cjs/components/step/divider.js +12 -0
- package/lib/cjs/components/step/divider.js.map +1 -0
- package/lib/cjs/components/step/index.js +10 -0
- package/lib/cjs/components/step/index.js.map +1 -0
- package/lib/cjs/components/step/item.js +26 -0
- package/lib/cjs/components/step/item.js.map +1 -0
- package/lib/cjs/components/step/step.js +40 -0
- package/lib/cjs/components/step/step.js.map +1 -0
- package/lib/cjs/components/swiper/index.js +10 -0
- package/lib/cjs/components/swiper/index.js.map +1 -0
- package/lib/cjs/components/swiper/item.js +29 -0
- package/lib/cjs/components/swiper/item.js.map +1 -0
- package/lib/cjs/components/swiper/swiper.js +238 -0
- package/lib/cjs/components/swiper/swiper.js.map +1 -0
- package/lib/cjs/components/tabs/index.js +10 -0
- package/lib/cjs/components/tabs/index.js.map +1 -0
- package/lib/cjs/components/tabs/item.js +12 -0
- package/lib/cjs/components/tabs/item.js.map +1 -0
- package/lib/cjs/components/tabs/tabs.js +215 -0
- package/lib/cjs/components/tabs/tabs.js.map +1 -0
- package/lib/cjs/components/tag/index.js +10 -0
- package/lib/cjs/components/tag/index.js.map +1 -0
- package/lib/cjs/components/tag/tag.js +22 -0
- package/lib/cjs/components/tag/tag.js.map +1 -0
- package/lib/cjs/components/text/highlight.js +32 -0
- package/lib/cjs/components/text/highlight.js.map +1 -0
- package/lib/cjs/components/text/index.js +15 -0
- package/lib/cjs/components/text/index.js.map +1 -0
- package/lib/cjs/components/text/number.js +31 -0
- package/lib/cjs/components/text/number.js.map +1 -0
- package/lib/cjs/components/text/text.js +32 -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 +10 -0
- package/lib/cjs/components/tree/index.js.map +1 -0
- package/lib/cjs/components/tree/item.js +76 -0
- package/lib/cjs/components/tree/item.js.map +1 -0
- package/lib/cjs/components/tree/tree.js +136 -0
- package/lib/cjs/components/tree/tree.js.map +1 -0
- package/lib/cjs/components/upload/index.js +10 -0
- package/lib/cjs/components/upload/index.js.map +1 -0
- package/lib/cjs/components/upload/renderFile.js +66 -0
- package/lib/cjs/components/upload/renderFile.js.map +1 -0
- package/lib/cjs/components/upload/upload.js +127 -0
- package/lib/cjs/components/upload/upload.js.map +1 -0
- package/lib/cjs/components/utils/empty/index.js +15 -0
- package/lib/cjs/components/utils/empty/index.js.map +1 -0
- package/lib/cjs/components/utils/helpericon/helpericon.js +28 -0
- package/lib/cjs/components/utils/helpericon/helpericon.js.map +1 -0
- package/lib/cjs/components/utils/helpericon/index.js +10 -0
- package/lib/cjs/components/utils/helpericon/index.js.map +1 -0
- package/lib/cjs/components/video/index.js +10 -0
- package/lib/cjs/components/video/index.js.map +1 -0
- package/lib/cjs/components/video/video.js +175 -0
- package/lib/cjs/components/video/video.js.map +1 -0
- package/lib/cjs/index.js +89 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/js/hooks.js +115 -0
- package/lib/cjs/js/hooks.js.map +1 -0
- package/lib/cjs/js/usePreview/content.js +148 -0
- package/lib/cjs/js/usePreview/content.js.map +1 -0
- package/lib/cjs/js/usePreview/index.js +27 -0
- package/lib/cjs/js/usePreview/index.js.map +1 -0
- package/lib/cjs/js/usePreview/renderFile.js +24 -0
- package/lib/cjs/js/usePreview/renderFile.js.map +1 -0
- package/lib/cjs/js/usePreview/type.js +13 -0
- package/lib/cjs/js/usePreview/type.js.map +1 -0
- package/lib/cjs/js/useRipple/index.js +47 -0
- package/lib/cjs/js/useRipple/index.js.map +1 -0
- package/lib/cjs/js/utils.js +281 -0
- package/lib/cjs/js/utils.js.map +1 -0
- package/lib/css/index.css +1 -1
- package/lib/css/index.css.map +1 -1
- package/lib/es/components/affix/affix.js +59 -0
- package/lib/es/components/affix/affix.js.map +1 -0
- package/lib/es/components/affix/index.js +6 -0
- package/lib/{components/badge → es/components/affix}/index.js.map +1 -1
- package/lib/es/components/affix/totop.js +14 -0
- package/lib/es/components/affix/totop.js.map +1 -0
- package/lib/es/components/badge/badge.js +13 -0
- package/lib/es/components/badge/badge.js.map +1 -0
- package/lib/es/components/badge/index.js +6 -0
- package/lib/{components/checkbox → es/components/badge}/index.js.map +1 -1
- package/lib/es/components/button/button.js +58 -0
- package/lib/es/components/button/button.js.map +1 -0
- package/lib/es/components/button/group.js +21 -0
- package/lib/es/components/button/group.js.map +1 -0
- package/lib/es/components/button/index.js +9 -0
- package/lib/es/components/button/index.js.map +1 -0
- package/lib/es/components/button/toggle.js +46 -0
- package/lib/es/components/button/toggle.js.map +1 -0
- package/lib/es/components/card/card.js +13 -0
- package/lib/es/components/card/card.js.map +1 -0
- package/lib/es/components/card/index.js +6 -0
- package/lib/{components → es/components}/card/index.js.map +1 -1
- package/lib/es/components/checkbox/checkbox.js +42 -0
- package/lib/es/components/checkbox/checkbox.js.map +1 -0
- package/lib/es/components/checkbox/index.js +6 -0
- package/lib/{components/affix → es/components/checkbox}/index.js.map +1 -1
- package/lib/es/components/checkbox/item.js +36 -0
- package/lib/es/components/checkbox/item.js.map +1 -0
- package/lib/es/components/collapse/collapse.js +74 -0
- package/lib/es/components/collapse/collapse.js.map +1 -0
- package/lib/es/components/collapse/index.js +6 -0
- package/lib/es/components/collapse/index.js.map +1 -0
- package/lib/es/components/collapse/item.js +8 -0
- package/lib/es/components/collapse/item.js.map +1 -0
- package/lib/es/components/datagrid/cell.js +24 -0
- package/lib/es/components/datagrid/cell.js.map +1 -0
- package/lib/es/components/datagrid/datagrid.js +113 -0
- package/lib/es/components/datagrid/datagrid.js.map +1 -0
- package/lib/es/components/datagrid/index.js +6 -0
- package/lib/es/components/datagrid/index.js.map +1 -0
- package/lib/es/components/datagrid/resize.js +41 -0
- package/lib/es/components/datagrid/resize.js.map +1 -0
- package/lib/es/components/datagrid/row.js +32 -0
- package/lib/es/components/datagrid/row.js.map +1 -0
- package/lib/es/components/datagrid/sorter.js +13 -0
- package/lib/es/components/datagrid/sorter.js.map +1 -0
- package/lib/es/components/description/description.js +28 -0
- package/lib/es/components/description/description.js.map +1 -0
- package/lib/es/components/description/index.js +6 -0
- package/lib/es/components/description/index.js.map +1 -0
- package/lib/es/components/drawer/drawer.js +62 -0
- package/lib/es/components/drawer/drawer.js.map +1 -0
- package/lib/es/components/drawer/index.js +6 -0
- package/lib/es/components/drawer/index.js.map +1 -0
- package/lib/es/components/dropdown/dropdown.js +13 -0
- package/lib/es/components/dropdown/dropdown.js.map +1 -0
- package/lib/es/components/dropdown/index.js +6 -0
- package/lib/es/components/dropdown/index.js.map +1 -0
- package/lib/es/components/dropdown/item.js +18 -0
- package/lib/es/components/dropdown/item.js.map +1 -0
- package/lib/es/components/editor/controls.js +81 -0
- package/lib/es/components/editor/controls.js.map +1 -0
- package/lib/es/components/editor/editor.js +79 -0
- package/lib/es/components/editor/editor.js.map +1 -0
- package/lib/es/components/editor/index.js +6 -0
- package/lib/es/components/editor/index.js.map +1 -0
- package/lib/es/components/flex/flex.js +28 -0
- package/lib/es/components/flex/flex.js.map +1 -0
- package/lib/es/components/flex/index.js +6 -0
- package/lib/es/components/flex/index.js.map +1 -0
- package/lib/es/components/form/context.js +6 -0
- package/lib/es/components/form/context.js.map +1 -0
- package/lib/es/components/form/field.js +73 -0
- package/lib/es/components/form/field.js.map +1 -0
- package/lib/es/components/form/form.js +53 -0
- package/lib/es/components/form/form.js.map +1 -0
- package/lib/es/components/form/index.js +6 -0
- package/lib/es/components/form/index.js.map +1 -0
- package/lib/es/components/form/useForm.js +125 -0
- package/lib/es/components/form/useForm.js.map +1 -0
- package/lib/es/components/icon/icon.js +23 -0
- package/lib/es/components/icon/icon.js.map +1 -0
- package/lib/es/components/icon/index.js +6 -0
- package/lib/es/components/icon/index.js.map +1 -0
- package/lib/es/components/image/image.js +72 -0
- package/lib/es/components/image/image.js.map +1 -0
- package/lib/es/components/image/index.js +7 -0
- package/lib/es/components/image/index.js.map +1 -0
- package/lib/es/components/image/list.js +43 -0
- package/lib/es/components/image/list.js.map +1 -0
- package/lib/es/components/input/container.js +14 -0
- package/lib/es/components/input/container.js.map +1 -0
- package/lib/es/components/input/index.js +11 -0
- package/lib/es/components/input/index.js.map +1 -0
- package/lib/es/components/input/input.js +63 -0
- package/lib/es/components/input/input.js.map +1 -0
- package/lib/es/components/input/number.js +54 -0
- package/lib/es/components/input/number.js.map +1 -0
- package/lib/es/components/input/range.js +67 -0
- package/lib/es/components/input/range.js.map +1 -0
- package/lib/es/components/input/textarea.js +47 -0
- package/lib/es/components/input/textarea.js.map +1 -0
- package/lib/es/components/list/index.js +6 -0
- package/lib/es/components/list/index.js.map +1 -0
- package/lib/es/components/list/item.js +14 -0
- package/lib/es/components/list/item.js.map +1 -0
- package/lib/es/components/list/list.js +24 -0
- package/lib/es/components/list/list.js.map +1 -0
- package/lib/es/components/loading/index.js +6 -0
- package/lib/es/components/loading/index.js.map +1 -0
- package/lib/es/components/loading/loading.js +17 -0
- package/lib/es/components/loading/loading.js.map +1 -0
- package/lib/es/components/message/index.js +6 -0
- package/lib/es/components/message/index.js.map +1 -0
- package/lib/es/components/message/message.js +174 -0
- package/lib/es/components/message/message.js.map +1 -0
- package/lib/es/components/modal/hookModal.js +27 -0
- package/lib/es/components/modal/hookModal.js.map +1 -0
- package/lib/es/components/modal/index.js +7 -0
- package/lib/es/components/modal/index.js.map +1 -0
- package/lib/es/components/modal/modal.js +104 -0
- package/lib/es/components/modal/modal.js.map +1 -0
- package/lib/es/components/modal/useModal.js +34 -0
- package/lib/es/components/modal/useModal.js.map +1 -0
- package/lib/es/components/pagination/index.js +6 -0
- package/lib/es/components/pagination/index.js.map +1 -0
- package/lib/es/components/pagination/page.js +24 -0
- package/lib/es/components/pagination/page.js.map +1 -0
- package/lib/es/components/pagination/pagination.js +44 -0
- package/lib/es/components/pagination/pagination.js.map +1 -0
- package/lib/es/components/picker/colors/footer.js +39 -0
- package/lib/es/components/picker/colors/footer.js.map +1 -0
- package/lib/es/components/picker/colors/handle.js +10 -0
- package/lib/es/components/picker/colors/handle.js.map +1 -0
- package/lib/es/components/picker/colors/index.js +57 -0
- package/lib/es/components/picker/colors/index.js.map +1 -0
- package/lib/es/components/picker/dates/dates.js +46 -0
- package/lib/es/components/picker/dates/dates.js.map +1 -0
- package/lib/es/components/picker/dates/index.js +62 -0
- package/lib/es/components/picker/dates/index.js.map +1 -0
- package/lib/es/components/picker/dates/panel.js +77 -0
- package/lib/es/components/picker/dates/panel.js.map +1 -0
- package/lib/es/components/picker/time/index.js +46 -0
- package/lib/es/components/picker/time/index.js.map +1 -0
- package/lib/es/components/picker/time/item.js +15 -0
- package/lib/es/components/picker/time/item.js.map +1 -0
- package/lib/es/components/picker/time/panel.js +83 -0
- package/lib/es/components/picker/time/panel.js.map +1 -0
- package/lib/es/components/popconfirm/index.js +6 -0
- package/lib/es/components/popconfirm/index.js.map +1 -0
- package/lib/es/components/popconfirm/popconfirm.js +54 -0
- package/lib/es/components/popconfirm/popconfirm.js.map +1 -0
- package/lib/es/components/popup/content.js +40 -0
- package/lib/es/components/popup/content.js.map +1 -0
- package/lib/es/components/popup/index.js +6 -0
- package/lib/es/components/popup/index.js.map +1 -0
- package/lib/es/components/popup/popup.js +219 -0
- package/lib/es/components/popup/popup.js.map +1 -0
- package/lib/es/components/progress/circle.js +13 -0
- package/lib/es/components/progress/circle.js.map +1 -0
- package/lib/es/components/progress/index.js +6 -0
- package/lib/es/components/progress/index.js.map +1 -0
- package/lib/es/components/progress/line.js +14 -0
- package/lib/es/components/progress/line.js.map +1 -0
- package/lib/es/components/progress/progress.js +83 -0
- package/lib/es/components/progress/progress.js.map +1 -0
- package/lib/es/components/radio/index.js +6 -0
- package/lib/es/components/radio/index.js.map +1 -0
- package/lib/es/components/radio/item.js +17 -0
- package/lib/es/components/radio/item.js.map +1 -0
- package/lib/es/components/radio/radio.js +35 -0
- package/lib/es/components/radio/radio.js.map +1 -0
- package/lib/es/components/resizable/index.js +6 -0
- package/lib/es/components/resizable/index.js.map +1 -0
- package/lib/es/components/resizable/resizable.js +61 -0
- package/lib/es/components/resizable/resizable.js.map +1 -0
- package/lib/es/components/select/index.js +6 -0
- package/lib/es/components/select/index.js.map +1 -0
- package/lib/es/components/select/options.js +47 -0
- package/lib/es/components/select/options.js.map +1 -0
- package/lib/es/components/select/select.js +93 -0
- package/lib/es/components/select/select.js.map +1 -0
- package/lib/es/components/step/divider.js +8 -0
- package/lib/es/components/step/divider.js.map +1 -0
- package/lib/es/components/step/index.js +6 -0
- package/lib/es/components/step/index.js.map +1 -0
- package/lib/es/components/step/item.js +22 -0
- package/lib/es/components/step/item.js.map +1 -0
- package/lib/es/components/step/step.js +36 -0
- package/lib/es/components/step/step.js.map +1 -0
- package/lib/es/components/swiper/index.js +6 -0
- package/lib/es/components/swiper/index.js.map +1 -0
- package/lib/es/components/swiper/item.js +25 -0
- package/lib/es/components/swiper/item.js.map +1 -0
- package/lib/es/components/swiper/swiper.js +234 -0
- package/lib/es/components/swiper/swiper.js.map +1 -0
- package/lib/es/components/tabs/index.js +6 -0
- package/lib/es/components/tabs/index.js.map +1 -0
- package/lib/es/components/tabs/item.js +8 -0
- package/lib/es/components/tabs/item.js.map +1 -0
- package/lib/es/components/tabs/tabs.js +211 -0
- package/lib/es/components/tabs/tabs.js.map +1 -0
- package/lib/es/components/tag/index.js +6 -0
- package/lib/es/components/tag/index.js.map +1 -0
- package/lib/es/components/tag/tag.js +18 -0
- package/lib/es/components/tag/tag.js.map +1 -0
- package/lib/es/components/text/highlight.js +28 -0
- package/lib/es/components/text/highlight.js.map +1 -0
- package/lib/es/components/text/index.js +11 -0
- package/lib/es/components/text/index.js.map +1 -0
- package/lib/es/components/text/number.js +27 -0
- package/lib/es/components/text/number.js.map +1 -0
- package/lib/es/components/text/text.js +28 -0
- package/lib/es/components/text/text.js.map +1 -0
- package/lib/es/components/text/time.js +20 -0
- package/lib/es/components/text/time.js.map +1 -0
- package/lib/es/components/tree/index.js +6 -0
- package/lib/es/components/tree/index.js.map +1 -0
- package/lib/es/components/tree/item.js +73 -0
- package/lib/es/components/tree/item.js.map +1 -0
- package/lib/es/components/tree/tree.js +132 -0
- package/lib/es/components/tree/tree.js.map +1 -0
- package/lib/es/components/upload/index.js +6 -0
- package/lib/es/components/upload/index.js.map +1 -0
- package/lib/es/components/upload/renderFile.js +61 -0
- package/lib/es/components/upload/renderFile.js.map +1 -0
- package/lib/es/components/upload/upload.js +123 -0
- package/lib/es/components/upload/upload.js.map +1 -0
- package/lib/es/components/utils/empty/index.js +11 -0
- package/lib/es/components/utils/empty/index.js.map +1 -0
- package/lib/es/components/utils/helpericon/helpericon.js +24 -0
- package/lib/es/components/utils/helpericon/helpericon.js.map +1 -0
- package/lib/es/components/utils/helpericon/index.js +6 -0
- package/lib/es/components/utils/helpericon/index.js.map +1 -0
- package/lib/es/components/video/index.js +6 -0
- package/lib/es/components/video/index.js.map +1 -0
- package/lib/es/components/video/video.js +171 -0
- package/lib/es/components/video/video.js.map +1 -0
- package/lib/es/index.js +45 -0
- package/lib/es/index.js.map +1 -0
- package/lib/es/js/hooks.js +109 -0
- package/lib/es/js/hooks.js.map +1 -0
- package/lib/es/js/usePreview/content.js +144 -0
- package/lib/es/js/usePreview/content.js.map +1 -0
- package/lib/es/js/usePreview/index.js +23 -0
- package/lib/es/js/usePreview/index.js.map +1 -0
- package/lib/es/js/usePreview/renderFile.js +20 -0
- package/lib/es/js/usePreview/renderFile.js.map +1 -0
- package/lib/es/js/usePreview/type.js +13 -0
- package/lib/es/js/usePreview/type.js.map +1 -0
- package/lib/es/js/useRipple/index.js +43 -0
- package/lib/es/js/useRipple/index.js.map +1 -0
- package/lib/es/js/utils.js +265 -0
- package/lib/es/js/utils.js.map +1 -0
- package/lib/index.js +4317 -2
- package/lib/types/components/picker/type.d.ts +2 -2
- package/lib/types/js/usePreview/type.d.ts +2 -11
- package/package.json +20 -11
- package/lib/components/affix/affix.js +0 -2
- package/lib/components/affix/affix.js.map +0 -1
- package/lib/components/affix/index.js +0 -2
- package/lib/components/affix/totop.js +0 -2
- package/lib/components/affix/totop.js.map +0 -1
- package/lib/components/badge/badge.js +0 -2
- package/lib/components/badge/badge.js.map +0 -1
- package/lib/components/badge/index.js +0 -2
- package/lib/components/button/button.js +0 -2
- package/lib/components/button/button.js.map +0 -1
- package/lib/components/button/group.js +0 -2
- package/lib/components/button/group.js.map +0 -1
- package/lib/components/button/index.js +0 -2
- package/lib/components/button/index.js.map +0 -1
- package/lib/components/button/toggle.js +0 -2
- package/lib/components/button/toggle.js.map +0 -1
- package/lib/components/card/card.js +0 -2
- package/lib/components/card/card.js.map +0 -1
- package/lib/components/card/index.js +0 -2
- package/lib/components/checkbox/checkbox.js +0 -2
- package/lib/components/checkbox/checkbox.js.map +0 -1
- package/lib/components/checkbox/index.js +0 -2
- package/lib/components/checkbox/item.js +0 -2
- package/lib/components/checkbox/item.js.map +0 -1
- package/lib/components/collapse/collapse.js +0 -2
- package/lib/components/collapse/collapse.js.map +0 -1
- package/lib/components/collapse/index.js +0 -2
- package/lib/components/collapse/index.js.map +0 -1
- package/lib/components/collapse/item.js +0 -2
- package/lib/components/collapse/item.js.map +0 -1
- package/lib/components/datagrid/cell.js +0 -2
- package/lib/components/datagrid/cell.js.map +0 -1
- package/lib/components/datagrid/datagrid.js +0 -2
- package/lib/components/datagrid/datagrid.js.map +0 -1
- package/lib/components/datagrid/index.js +0 -2
- package/lib/components/datagrid/index.js.map +0 -1
- package/lib/components/datagrid/resize.js +0 -2
- package/lib/components/datagrid/resize.js.map +0 -1
- package/lib/components/datagrid/row.js +0 -2
- package/lib/components/datagrid/row.js.map +0 -1
- package/lib/components/datagrid/sorter.js +0 -2
- package/lib/components/datagrid/sorter.js.map +0 -1
- package/lib/components/description/description.js +0 -2
- package/lib/components/description/description.js.map +0 -1
- package/lib/components/description/index.js +0 -2
- package/lib/components/description/index.js.map +0 -1
- package/lib/components/drawer/drawer.js +0 -2
- package/lib/components/drawer/drawer.js.map +0 -1
- package/lib/components/drawer/index.js +0 -2
- package/lib/components/drawer/index.js.map +0 -1
- package/lib/components/dropdown/dropdown.js +0 -2
- package/lib/components/dropdown/dropdown.js.map +0 -1
- package/lib/components/dropdown/index.js +0 -2
- package/lib/components/dropdown/index.js.map +0 -1
- package/lib/components/dropdown/item.js +0 -2
- package/lib/components/dropdown/item.js.map +0 -1
- package/lib/components/editor/controls.js +0 -2
- package/lib/components/editor/controls.js.map +0 -1
- package/lib/components/editor/editor.js +0 -2
- package/lib/components/editor/editor.js.map +0 -1
- package/lib/components/editor/index.js +0 -2
- package/lib/components/editor/index.js.map +0 -1
- package/lib/components/flex/flex.js +0 -2
- package/lib/components/flex/flex.js.map +0 -1
- package/lib/components/flex/index.js +0 -2
- package/lib/components/flex/index.js.map +0 -1
- package/lib/components/form/context.js +0 -2
- package/lib/components/form/context.js.map +0 -1
- package/lib/components/form/field.js +0 -2
- package/lib/components/form/field.js.map +0 -1
- package/lib/components/form/form.js +0 -2
- package/lib/components/form/form.js.map +0 -1
- package/lib/components/form/index.js +0 -2
- package/lib/components/form/index.js.map +0 -1
- package/lib/components/form/useForm.js +0 -2
- package/lib/components/form/useForm.js.map +0 -1
- package/lib/components/icon/icon.js +0 -2
- package/lib/components/icon/icon.js.map +0 -1
- package/lib/components/icon/index.js +0 -2
- package/lib/components/icon/index.js.map +0 -1
- package/lib/components/image/image.js +0 -2
- package/lib/components/image/image.js.map +0 -1
- package/lib/components/image/index.js +0 -2
- package/lib/components/image/index.js.map +0 -1
- package/lib/components/image/list.js +0 -2
- package/lib/components/image/list.js.map +0 -1
- package/lib/components/input/container.js +0 -2
- package/lib/components/input/container.js.map +0 -1
- package/lib/components/input/index.js +0 -2
- package/lib/components/input/index.js.map +0 -1
- package/lib/components/input/input.js +0 -2
- package/lib/components/input/input.js.map +0 -1
- package/lib/components/input/number.js +0 -2
- package/lib/components/input/number.js.map +0 -1
- package/lib/components/input/range.js +0 -2
- package/lib/components/input/range.js.map +0 -1
- package/lib/components/input/textarea.js +0 -2
- package/lib/components/input/textarea.js.map +0 -1
- package/lib/components/list/index.js +0 -2
- package/lib/components/list/index.js.map +0 -1
- package/lib/components/list/item.js +0 -2
- package/lib/components/list/item.js.map +0 -1
- package/lib/components/list/list.js +0 -2
- package/lib/components/list/list.js.map +0 -1
- package/lib/components/loading/index.js +0 -2
- package/lib/components/loading/index.js.map +0 -1
- package/lib/components/loading/loading.js +0 -2
- package/lib/components/loading/loading.js.map +0 -1
- package/lib/components/message/index.js +0 -2
- package/lib/components/message/index.js.map +0 -1
- package/lib/components/message/message.js +0 -2
- package/lib/components/message/message.js.map +0 -1
- package/lib/components/modal/hookModal.js +0 -2
- package/lib/components/modal/hookModal.js.map +0 -1
- package/lib/components/modal/index.js +0 -2
- package/lib/components/modal/index.js.map +0 -1
- package/lib/components/modal/modal.js +0 -2
- package/lib/components/modal/modal.js.map +0 -1
- package/lib/components/modal/useModal.js +0 -2
- package/lib/components/modal/useModal.js.map +0 -1
- package/lib/components/pagination/index.js +0 -2
- package/lib/components/pagination/index.js.map +0 -1
- package/lib/components/pagination/page.js +0 -2
- package/lib/components/pagination/page.js.map +0 -1
- package/lib/components/pagination/pagination.js +0 -2
- package/lib/components/pagination/pagination.js.map +0 -1
- package/lib/components/picker/colors/footer.js +0 -2
- package/lib/components/picker/colors/footer.js.map +0 -1
- package/lib/components/picker/colors/handle.js +0 -2
- package/lib/components/picker/colors/handle.js.map +0 -1
- package/lib/components/picker/colors/index.js +0 -2
- package/lib/components/picker/colors/index.js.map +0 -1
- package/lib/components/picker/dates/dates.js +0 -2
- package/lib/components/picker/dates/dates.js.map +0 -1
- package/lib/components/picker/dates/index.js +0 -2
- package/lib/components/picker/dates/index.js.map +0 -1
- package/lib/components/picker/dates/panel.js +0 -2
- package/lib/components/picker/dates/panel.js.map +0 -1
- package/lib/components/picker/time/index.js +0 -2
- package/lib/components/picker/time/index.js.map +0 -1
- package/lib/components/picker/time/item.js +0 -2
- package/lib/components/picker/time/item.js.map +0 -1
- package/lib/components/picker/time/panel.js +0 -2
- package/lib/components/picker/time/panel.js.map +0 -1
- package/lib/components/popconfirm/index.js +0 -2
- package/lib/components/popconfirm/index.js.map +0 -1
- package/lib/components/popconfirm/popconfirm.js +0 -2
- package/lib/components/popconfirm/popconfirm.js.map +0 -1
- package/lib/components/popup/content.js +0 -2
- package/lib/components/popup/content.js.map +0 -1
- package/lib/components/popup/index.js +0 -2
- package/lib/components/popup/index.js.map +0 -1
- package/lib/components/popup/popup.js +0 -2
- package/lib/components/popup/popup.js.map +0 -1
- package/lib/components/progress/circle.js +0 -2
- package/lib/components/progress/circle.js.map +0 -1
- package/lib/components/progress/index.js +0 -2
- package/lib/components/progress/index.js.map +0 -1
- package/lib/components/progress/line.js +0 -2
- package/lib/components/progress/line.js.map +0 -1
- package/lib/components/progress/progress.js +0 -2
- package/lib/components/progress/progress.js.map +0 -1
- package/lib/components/radio/index.js +0 -2
- package/lib/components/radio/index.js.map +0 -1
- package/lib/components/radio/item.js +0 -2
- package/lib/components/radio/item.js.map +0 -1
- package/lib/components/radio/radio.js +0 -2
- package/lib/components/radio/radio.js.map +0 -1
- package/lib/components/resizable/index.js +0 -2
- package/lib/components/resizable/index.js.map +0 -1
- package/lib/components/resizable/resizable.js +0 -2
- package/lib/components/resizable/resizable.js.map +0 -1
- package/lib/components/select/index.js +0 -2
- package/lib/components/select/index.js.map +0 -1
- package/lib/components/select/options.js +0 -2
- package/lib/components/select/options.js.map +0 -1
- package/lib/components/select/select.js +0 -2
- package/lib/components/select/select.js.map +0 -1
- package/lib/components/step/divider.js +0 -2
- package/lib/components/step/divider.js.map +0 -1
- package/lib/components/step/index.js +0 -2
- package/lib/components/step/index.js.map +0 -1
- package/lib/components/step/item.js +0 -2
- package/lib/components/step/item.js.map +0 -1
- package/lib/components/step/step.js +0 -2
- package/lib/components/step/step.js.map +0 -1
- package/lib/components/swiper/index.js +0 -2
- package/lib/components/swiper/index.js.map +0 -1
- package/lib/components/swiper/item.js +0 -2
- package/lib/components/swiper/item.js.map +0 -1
- package/lib/components/swiper/swiper.js +0 -2
- package/lib/components/swiper/swiper.js.map +0 -1
- package/lib/components/tabs/index.js +0 -2
- package/lib/components/tabs/index.js.map +0 -1
- package/lib/components/tabs/item.js +0 -2
- package/lib/components/tabs/item.js.map +0 -1
- package/lib/components/tabs/tabs.js +0 -2
- package/lib/components/tabs/tabs.js.map +0 -1
- package/lib/components/tag/index.js +0 -2
- package/lib/components/tag/index.js.map +0 -1
- package/lib/components/tag/tag.js +0 -2
- package/lib/components/tag/tag.js.map +0 -1
- package/lib/components/text/highlight.js +0 -2
- package/lib/components/text/highlight.js.map +0 -1
- package/lib/components/text/index.js +0 -2
- package/lib/components/text/index.js.map +0 -1
- package/lib/components/text/number.js +0 -2
- package/lib/components/text/number.js.map +0 -1
- package/lib/components/text/text.js +0 -2
- package/lib/components/text/text.js.map +0 -1
- package/lib/components/text/time.js +0 -2
- package/lib/components/text/time.js.map +0 -1
- package/lib/components/tree/index.js +0 -2
- package/lib/components/tree/index.js.map +0 -1
- package/lib/components/tree/item.js +0 -2
- package/lib/components/tree/item.js.map +0 -1
- package/lib/components/tree/tree.js +0 -2
- package/lib/components/tree/tree.js.map +0 -1
- package/lib/components/upload/index.js +0 -2
- package/lib/components/upload/index.js.map +0 -1
- package/lib/components/upload/renderFile.js +0 -2
- package/lib/components/upload/renderFile.js.map +0 -1
- package/lib/components/upload/upload.js +0 -2
- package/lib/components/upload/upload.js.map +0 -1
- package/lib/components/utils/empty/index.js +0 -2
- package/lib/components/utils/empty/index.js.map +0 -1
- package/lib/components/utils/helpericon/helpericon.js +0 -2
- package/lib/components/utils/helpericon/helpericon.js.map +0 -1
- package/lib/components/utils/helpericon/index.js +0 -2
- package/lib/components/utils/helpericon/index.js.map +0 -1
- package/lib/components/video/index.js +0 -2
- package/lib/components/video/index.js.map +0 -1
- package/lib/components/video/video.js +0 -2
- package/lib/components/video/video.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/js/hooks.js +0 -2
- package/lib/js/hooks.js.map +0 -1
- package/lib/js/usePreview/content.js +0 -2
- package/lib/js/usePreview/content.js.map +0 -1
- package/lib/js/usePreview/index.js +0 -2
- package/lib/js/usePreview/index.js.map +0 -1
- package/lib/js/usePreview/renderFile.js +0 -2
- package/lib/js/usePreview/renderFile.js.map +0 -1
- package/lib/js/usePreview/type.js +0 -2
- package/lib/js/usePreview/type.js.map +0 -1
- package/lib/js/useRipple/index.js +0 -2
- package/lib/js/useRipple/index.js.map +0 -1
- package/lib/js/utils.js +0 -2
- package/lib/js/utils.js.map +0 -1
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import '../../components/button/index.js';
|
|
3
|
+
import Icon from '../../components/icon/icon.js';
|
|
4
|
+
import { CloseRound, AspectRatioRound, OpenInNewRound, FileDownloadOutlined, RotateRightRound, RotateLeftRound, KeyboardArrowLeftRound, KeyboardArrowRightRound } from '@ricons/material';
|
|
5
|
+
import { useReactive } from 'ahooks';
|
|
6
|
+
import classNames from 'classnames';
|
|
7
|
+
import { throttle } from 'radash';
|
|
8
|
+
import { useRef, useMemo } from 'react';
|
|
9
|
+
import { useMouseMove, useMouseUp } from '../hooks.js';
|
|
10
|
+
import { getSuffixByUrl, getFileType } from '../utils.js';
|
|
11
|
+
import renderFile from './renderFile.js';
|
|
12
|
+
import { TFileType } from './type.js';
|
|
13
|
+
import Button from '../../components/button/button.js';
|
|
14
|
+
|
|
15
|
+
function Content(props) {
|
|
16
|
+
const { items = [], initial = 0, renderFile: renderFile$1 = renderFile, onRotate, onChange, onClose, onZoom, } = props;
|
|
17
|
+
const state = useReactive({
|
|
18
|
+
current: initial,
|
|
19
|
+
rotate: 0,
|
|
20
|
+
scale: 1,
|
|
21
|
+
translate: [0, 0],
|
|
22
|
+
start: [0, 0],
|
|
23
|
+
dragging: false,
|
|
24
|
+
controlHidden: true,
|
|
25
|
+
});
|
|
26
|
+
const box = useRef(null);
|
|
27
|
+
const translate = useRef([0, 0]);
|
|
28
|
+
const hiddenTO = useRef(null);
|
|
29
|
+
const files = useMemo(() => {
|
|
30
|
+
return items.map((item) => {
|
|
31
|
+
const o = {
|
|
32
|
+
src: "",
|
|
33
|
+
};
|
|
34
|
+
if (typeof item === "string") {
|
|
35
|
+
o.src = item;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
Object.assign(o, item);
|
|
39
|
+
}
|
|
40
|
+
o.suffix = getSuffixByUrl(o.src) || "";
|
|
41
|
+
o.type = getFileType(o.suffix, item["type"]);
|
|
42
|
+
return o;
|
|
43
|
+
});
|
|
44
|
+
}, [items]);
|
|
45
|
+
const { file, content } = useMemo(() => {
|
|
46
|
+
const file = files[state.current];
|
|
47
|
+
const content = renderFile$1(file);
|
|
48
|
+
return {
|
|
49
|
+
file,
|
|
50
|
+
content,
|
|
51
|
+
};
|
|
52
|
+
}, [state.current, items]);
|
|
53
|
+
const isImage = file.type === TFileType.IMAGE;
|
|
54
|
+
const handleSwitch = (next) => {
|
|
55
|
+
const l = files.length;
|
|
56
|
+
const { current: before } = state;
|
|
57
|
+
if (next >= l) {
|
|
58
|
+
state.current = 0;
|
|
59
|
+
}
|
|
60
|
+
else if (next < 0) {
|
|
61
|
+
state.current = l - 1;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
state.current = next;
|
|
65
|
+
}
|
|
66
|
+
onChange?.(state.current, before);
|
|
67
|
+
state.rotate = files[state.current].rotate || 0;
|
|
68
|
+
if (state.scale !== 1) {
|
|
69
|
+
state.scale = 1;
|
|
70
|
+
onZoom?.(1);
|
|
71
|
+
}
|
|
72
|
+
onRotate?.(state.rotate);
|
|
73
|
+
state.translate = translate.current = [0, 0];
|
|
74
|
+
};
|
|
75
|
+
const handleRotate = (deg) => {
|
|
76
|
+
state.rotate += deg;
|
|
77
|
+
onRotate?.(state.rotate);
|
|
78
|
+
};
|
|
79
|
+
const handleMouseWheel = throttle({ interval: 60 }, (e) => {
|
|
80
|
+
if (!isImage)
|
|
81
|
+
return;
|
|
82
|
+
let after = state.scale + (e.deltaY < 0 ? 0.05 : -0.05);
|
|
83
|
+
if (after > 2)
|
|
84
|
+
after = 2;
|
|
85
|
+
if (after < 0.25)
|
|
86
|
+
after = 0.25;
|
|
87
|
+
onZoom?.(after);
|
|
88
|
+
state.scale = after;
|
|
89
|
+
});
|
|
90
|
+
const handleMouseDown = (e) => {
|
|
91
|
+
if (!isImage)
|
|
92
|
+
return;
|
|
93
|
+
e.preventDefault();
|
|
94
|
+
state.dragging = true;
|
|
95
|
+
state.start = [e.pageX, e.pageY];
|
|
96
|
+
};
|
|
97
|
+
const clearHiddenTO = () => {
|
|
98
|
+
if (!hiddenTO.current || state.controlHidden)
|
|
99
|
+
return;
|
|
100
|
+
clearTimeout(hiddenTO.current);
|
|
101
|
+
hiddenTO.current = null;
|
|
102
|
+
};
|
|
103
|
+
const setHiddenFalse = () => {
|
|
104
|
+
if (!state.controlHidden)
|
|
105
|
+
return;
|
|
106
|
+
state.controlHidden = false;
|
|
107
|
+
clearHiddenTO();
|
|
108
|
+
hiddenTO.current = setTimeout(() => {
|
|
109
|
+
state.controlHidden = true;
|
|
110
|
+
}, 1000);
|
|
111
|
+
};
|
|
112
|
+
const throttleMouseMove = throttle({ interval: 300 }, setHiddenFalse);
|
|
113
|
+
const handleMouseMove = (e) => {
|
|
114
|
+
throttleMouseMove();
|
|
115
|
+
if (!state.dragging)
|
|
116
|
+
return;
|
|
117
|
+
e.preventDefault();
|
|
118
|
+
const [x, y] = translate.current;
|
|
119
|
+
const [ox, oy] = state.start;
|
|
120
|
+
const offsetX = e.pageX - ox;
|
|
121
|
+
const offsetY = e.pageY - oy;
|
|
122
|
+
state.translate = [x + offsetX, y + offsetY];
|
|
123
|
+
};
|
|
124
|
+
const handleMouseUp = () => {
|
|
125
|
+
if (!state.dragging)
|
|
126
|
+
return;
|
|
127
|
+
state.dragging = false;
|
|
128
|
+
translate.current = state.translate;
|
|
129
|
+
};
|
|
130
|
+
useMouseMove(handleMouseMove);
|
|
131
|
+
useMouseUp(handleMouseUp);
|
|
132
|
+
return (jsxs(Fragment, { children: [jsx("div", { ref: box, className: classNames("i-preview-content", {
|
|
133
|
+
"no-transition": state.dragging,
|
|
134
|
+
}), style: {
|
|
135
|
+
transform: `translate(${state.translate
|
|
136
|
+
.map((n) => `${n}px`)
|
|
137
|
+
.join(",")}) rotate(${state.rotate}deg) scale(${state.scale})`,
|
|
138
|
+
}, onWheel: handleMouseWheel, onMouseDown: handleMouseDown, onClick: (e) => e.stopPropagation(), children: content }), jsxs("div", { className: classNames("i-preview-controls", {
|
|
139
|
+
"i-preview-controls-hidden": state.controlHidden,
|
|
140
|
+
}), children: [jsx(Button, { square: true, flat: true, onClick: onClose, children: jsx(Icon, { icon: jsx(CloseRound, {}) }) }), files.length > 1 && (jsxs("span", { className: 'px-8', children: [state.current + 1, " / ", files.length] })), state.scale !== 1 && (jsxs(Button, { flat: true, onClick: () => (state.scale = 1), children: [jsx(Icon, { icon: jsx(AspectRatioRound, {}) }), jsxs("span", { className: 'mt-2', children: [(state.scale * 100).toFixed(0), "%"] })] })), jsx(Button, { square: true, flat: true, href: file.src, target: '_blank', children: jsx(Icon, { icon: jsx(OpenInNewRound, {}) }) }), jsx(Button, { square: true, flat: true, href: file.src, download: true, target: '_blank', children: jsx(Icon, { icon: jsx(FileDownloadOutlined, {}) }) }), jsx(Button, { square: true, flat: true, onClick: () => handleRotate(90), children: jsx(Icon, { icon: jsx(RotateRightRound, {}) }) }), jsx(Button, { square: true, flat: true, onClick: () => handleRotate(-90), children: jsx(Icon, { icon: jsx(RotateLeftRound, {}) }) }), files.length > 1 && (jsxs(Fragment, { children: [jsx(Button, { square: true, flat: true, onClick: () => handleSwitch(state.current - 1), children: jsx(Icon, { icon: jsx(KeyboardArrowLeftRound, {}) }) }), jsx(Button, { square: true, flat: true, onClick: () => handleSwitch(state.current + 1), children: jsx(Icon, { icon: jsx(KeyboardArrowRightRound, {}) }) })] }))] })] }));
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export { Content as default };
|
|
144
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sources":["../../../../packages/js/usePreview/content.tsx"],"sourcesContent":["import Button from \"@p/components/button\";\nimport Icon from \"@p/components/icon\";\nimport {\n\tAspectRatioRound,\n\tCloseRound,\n\tFileDownloadOutlined,\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n\tOpenInNewRound,\n\tRotateLeftRound,\n\tRotateRightRound,\n} from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useMemo, useRef } from \"react\";\nimport { useMouseMove, useMouseUp } from \"../hooks\";\nimport { getFileType, getSuffixByUrl } from \"../utils\";\nimport DefaultRenderFile from \"./renderFile\";\nimport { IPreview, TFileType, TPreviewItem } from \"./type\";\n\nexport default function Content(props: IPreview) {\n\tconst {\n\t\titems = [],\n\t\tinitial = 0,\n\t\trenderFile = DefaultRenderFile,\n\t\tonRotate,\n\t\tonChange,\n\t\tonClose,\n\t\tonZoom,\n\t} = props;\n\tconst state = useReactive({\n\t\tcurrent: initial,\n\t\trotate: 0,\n\t\tscale: 1,\n\t\ttranslate: [0, 0],\n\t\tstart: [0, 0],\n\t\tdragging: false,\n\t\tcontrolHidden: true,\n\t});\n\tconst box = useRef<HTMLDivElement>(null);\n\tconst translate = useRef<number[]>([0, 0]);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst files = useMemo(() => {\n\t\treturn items.map((item) => {\n\t\t\tconst o: TPreviewItem = {\n\t\t\t\tsrc: \"\",\n\t\t\t};\n\t\t\tif (typeof item === \"string\") {\n\t\t\t\to.src = item;\n\t\t\t} else {\n\t\t\t\tObject.assign(o, item);\n\t\t\t}\n\n\t\t\to.suffix = getSuffixByUrl(o.src) || \"\";\n\t\t\to.type = getFileType(o.suffix, item[\"type\"]);\n\n\t\t\treturn o;\n\t\t});\n\t}, [items]);\n\n\tconst { file, content } = useMemo(() => {\n\t\tconst file = files[state.current];\n\t\tconst content = renderFile(file);\n\n\t\treturn {\n\t\t\tfile,\n\t\t\tcontent,\n\t\t};\n\t}, [state.current, items]);\n\n\tconst isImage = file.type === TFileType.IMAGE;\n\n\tconst handleSwitch = (next: number) => {\n\t\tconst l = files.length;\n\t\tconst { current: before } = state;\n\t\tif (next >= l) {\n\t\t\tstate.current = 0;\n\t\t} else if (next < 0) {\n\t\t\tstate.current = l - 1;\n\t\t} else {\n\t\t\tstate.current = next;\n\t\t}\n\t\tonChange?.(state.current, before);\n\n\t\tstate.rotate = files[state.current].rotate || 0;\n\n\t\tif (state.scale !== 1) {\n\t\t\tstate.scale = 1;\n\t\t\tonZoom?.(1);\n\t\t}\n\t\tonRotate?.(state.rotate);\n\t\tstate.translate = translate.current = [0, 0];\n\t};\n\n\tconst handleRotate = (deg: number) => {\n\t\tstate.rotate += deg;\n\n\t\tonRotate?.(state.rotate);\n\t};\n\n\tconst handleMouseWheel = throttle({ interval: 60 }, (e) => {\n\t\tif (!isImage) return;\n\t\tlet after = state.scale + (e.deltaY < 0 ? 0.05 : -0.05);\n\t\tif (after > 2) after = 2;\n\t\tif (after < 0.25) after = 0.25;\n\n\t\tonZoom?.(after);\n\t\tstate.scale = after;\n\t});\n\n\tconst handleMouseDown = (e) => {\n\t\tif (!isImage) return;\n\t\te.preventDefault();\n\t\tstate.dragging = true;\n\t\tstate.start = [e.pageX, e.pageY];\n\t};\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current || state.controlHidden) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!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 throttleMouseMove = throttle({ interval: 300 }, setHiddenFalse);\n\n\tconst handleMouseMove = (e) => {\n\t\tthrottleMouseMove();\n\t\tif (!state.dragging) return;\n\t\te.preventDefault();\n\n\t\tconst [x, y] = translate.current;\n\t\tconst [ox, oy] = state.start;\n\t\tconst offsetX = e.pageX - ox;\n\t\tconst offsetY = e.pageY - oy;\n\n\t\tstate.translate = [x + offsetX, y + offsetY];\n\t};\n\n\tconst handleMouseUp = () => {\n\t\tif (!state.dragging) return;\n\t\tstate.dragging = false;\n\t\ttranslate.current = state.translate;\n\t};\n\n\tuseMouseMove(handleMouseMove);\n\tuseMouseUp(handleMouseUp);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={box}\n\t\t\t\tclassName={classNames(\"i-preview-content\", {\n\t\t\t\t\t\"no-transition\": state.dragging,\n\t\t\t\t})}\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: `translate(${state.translate\n\t\t\t\t\t\t.map((n) => `${n}px`)\n\t\t\t\t\t\t.join(\",\")}) rotate(${state.rotate}deg) scale(${\n\t\t\t\t\t\tstate.scale\n\t\t\t\t\t})`,\n\t\t\t\t}}\n\t\t\t\tonWheel={handleMouseWheel}\n\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-preview-controls\", {\n\t\t\t\t\t\"i-preview-controls-hidden\": state.controlHidden,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<Button square flat onClick={onClose}>\n\t\t\t\t\t<Icon icon={<CloseRound />} />\n\t\t\t\t</Button>\n\t\t\t\t{files.length > 1 && (\n\t\t\t\t\t<span className='px-8'>\n\t\t\t\t\t\t{state.current + 1} / {files.length}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t\t{state.scale !== 1 && (\n\t\t\t\t\t<Button flat onClick={() => (state.scale = 1)}>\n\t\t\t\t\t\t<Icon icon={<AspectRatioRound />} />\n\t\t\t\t\t\t<span className='mt-2'>\n\t\t\t\t\t\t\t{(state.scale * 100).toFixed(0)}%\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t\t<Button square flat href={file.src} target='_blank'>\n\t\t\t\t\t<Icon icon={<OpenInNewRound />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat href={file.src} download target='_blank'>\n\t\t\t\t\t<Icon icon={<FileDownloadOutlined />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat onClick={() => handleRotate(90)}>\n\t\t\t\t\t<Icon icon={<RotateRightRound />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat onClick={() => handleRotate(-90)}>\n\t\t\t\t\t<Icon icon={<RotateLeftRound />} />\n\t\t\t\t</Button>\n\n\t\t\t\t{files.length > 1 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current - 1)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowLeftRound />} />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current + 1)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowRightRound />} />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"names":["renderFile","DefaultRenderFile","_jsxs","_Fragment","_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useRef } from 'react';
|
|
3
|
+
import HookModal from '../../components/modal/hookModal.js';
|
|
4
|
+
import { renderNode } from '../utils.js';
|
|
5
|
+
import Content from './content.js';
|
|
6
|
+
|
|
7
|
+
function usePreview() {
|
|
8
|
+
const ref = useRef(null);
|
|
9
|
+
const preview = (config) => {
|
|
10
|
+
const { items, modalProps, onClose, ...restProps } = config;
|
|
11
|
+
const handleClose = () => {
|
|
12
|
+
onClose?.();
|
|
13
|
+
unMount?.();
|
|
14
|
+
};
|
|
15
|
+
const unMount = renderNode(jsx(HookModal, { ref: ref, visible: true, className: 'i-preview', customized: true, hideShadow: true, ...modalProps, children: jsx(Content, { ...restProps, items: items, onClose: () => {
|
|
16
|
+
ref.current?.update({ visible: false });
|
|
17
|
+
} }), fixed: true, onClose: handleClose }));
|
|
18
|
+
};
|
|
19
|
+
return preview;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { usePreview as default };
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","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"],"names":["_jsx"],"mappings":";;;;;;AAQc,SAAU,UAAU,GAAA;AACjC,IAAA,MAAM,GAAG,GAAG,MAAM,CAAe,IAAI,CAAC;AAEtC,IAAA,MAAM,OAAO,GAAG,CAAC,MAAgB,KAAI;AACpC,QAAA,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM;QAE3D,MAAM,WAAW,GAAG,MAAK;YACxB,OAAO,IAAI;YACX,OAAO,IAAI;AACZ,SAAC;AAED,QAAA,MAAM,OAAO,GAAG,UAAU,CACzBA,GAAA,CAAC,SAAS,EACT,EAAA,GAAG,EAAE,GAAG,EACR,OAAO,EAAA,IAAA,EACP,SAAS,EAAC,WAAW,EACrB,UAAU,EACV,IAAA,EAAA,UAAU,WACN,UAAU,EACd,QAAQ,EACPA,IAAC,OAAO,EAAA,EAAA,GACH,SAAS,EACb,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAK;oBACb,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;iBACvC,EAAA,CACA,EAEH,KAAK,EAAA,IAAA,EACL,OAAO,EAAE,WAAW,EACnB,CAAA,CACF;AACF,KAAC;AAED,IAAA,OAAO,OAAO;AACf;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import Icon from '../../components/icon/icon.js';
|
|
3
|
+
import Video from '../../components/video/video.js';
|
|
4
|
+
import { FeedOutlined } from '@ricons/material';
|
|
5
|
+
import { TFileType } from './type.js';
|
|
6
|
+
|
|
7
|
+
function renderFile(props) {
|
|
8
|
+
const { name, suffix, type } = props;
|
|
9
|
+
switch (type) {
|
|
10
|
+
case TFileType.IMAGE:
|
|
11
|
+
return jsx("img", { src: props.src });
|
|
12
|
+
case TFileType.VIDEO:
|
|
13
|
+
return jsx(Video, { ...props });
|
|
14
|
+
default:
|
|
15
|
+
return (jsxs("div", { className: 'i-preview-unknown', children: [jsx(Icon, { icon: jsx(FeedOutlined, {}), size: '3em' }), jsx("h5", { className: 'mt-4', children: name || suffix || "?" })] }));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { renderFile as default };
|
|
20
|
+
//# sourceMappingURL=renderFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderFile.js","sources":["../../../../packages/js/usePreview/renderFile.tsx"],"sourcesContent":["import Icon from \"@p/components/icon\";\nimport Video from \"@p/components/video\";\nimport { FeedOutlined } from \"@ricons/material\";\nimport { TFileType, TPreviewItem } from \"./type\";\n\nexport default function renderFile(props: TPreviewItem) {\n\tconst { name, suffix, type } = props;\n\n\tswitch (type) {\n\t\tcase TFileType.IMAGE:\n\t\t\treturn <img src={props.src} />;\n\t\tcase TFileType.VIDEO:\n\t\t\treturn <Video {...props} />;\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t<div className='i-preview-unknown'>\n\t\t\t\t\t<Icon icon={<FeedOutlined />} size='3em' />\n\t\t\t\t\t<h5 className='mt-4'>{name || suffix || \"?\"}</h5>\n\t\t\t\t</div>\n\t\t\t);\n\t}\n}\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;AAKwB,SAAA,UAAU,CAAC,KAAmB,EAAA;IACrD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK;IAEpC,QAAQ,IAAI;QACX,KAAK,SAAS,CAAC,KAAK;AACnB,YAAA,OAAOA,aAAK,GAAG,EAAE,KAAK,CAAC,GAAG,GAAI;QAC/B,KAAK,SAAS,CAAC,KAAK;AACnB,YAAA,OAAOA,GAAC,CAAA,KAAK,EAAK,EAAA,GAAA,KAAK,GAAI;AAC5B,QAAA;AACC,YAAA,QACCC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,EACjC,QAAA,EAAA,CAAAD,GAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAEA,GAAC,CAAA,YAAY,KAAG,EAAE,IAAI,EAAC,KAAK,EAAG,CAAA,EAC3CA,GAAI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,MAAM,EAAA,QAAA,EAAE,IAAI,IAAI,MAAM,IAAI,GAAG,EAAM,CAAA,CAAA,EAAA,CAC5C;;AAGV;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var TFileType;
|
|
2
|
+
(function (TFileType) {
|
|
3
|
+
TFileType["IMAGE"] = "IMAGE";
|
|
4
|
+
TFileType["VIDEO"] = "VIDEO";
|
|
5
|
+
TFileType["AUDIO"] = "AUDIO";
|
|
6
|
+
TFileType["PDF"] = "PDF";
|
|
7
|
+
TFileType["EXCEL"] = "EXCEL";
|
|
8
|
+
TFileType["TXT"] = "TXT";
|
|
9
|
+
TFileType["UNKNOWN"] = "UNKNOWN";
|
|
10
|
+
})(TFileType || (TFileType = {}));
|
|
11
|
+
|
|
12
|
+
export { TFileType };
|
|
13
|
+
//# sourceMappingURL=type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sources":["../../../../packages/js/usePreview/type.ts"],"sourcesContent":["import { CSSProperties, ReactNode } from \"react\";\nimport type { IModal } from \"../../components/modal/type\";\n\nexport type TPreviewItem = {\n\tsrc: string;\n\tname?: ReactNode;\n\tthumb?: string;\n\trotate?: number;\n\tzoom?: number;\n\tstyle?: CSSProperties;\n\ttype?: string;\n\tsuffix?: string;\n};\n\nexport enum TFileType {\n\tIMAGE = \"IMAGE\",\n\tVIDEO = \"VIDEO\",\n\tAUDIO = \"AUDIO\",\n\tPDF = \"PDF\",\n\tEXCEL = \"EXCEL\",\n\tTXT = \"TXT\",\n\tUNKNOWN = \"UNKNOWN\",\n}\n\nexport interface IPreview {\n\titems: (TPreviewItem | string)[];\n\tinitial?: number;\n\tcontrols?: boolean;\n\tloop?: boolean;\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tmodalProps?: IModal;\n\trenderImage?: (file: TPreviewItem) => ReactNode;\n\trenderFile?: (file: TPreviewItem) => ReactNode;\n\tonClose?: () => void;\n\tonChange?: (after: number, before?: number) => void;\n\tonZoom?: (scale: number) => void;\n\tonRotate?: (deg: number) => void;\n}\n"],"names":[],"mappings":"IAcY;AAAZ,CAAA,UAAY,SAAS,EAAA;AACpB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACpB,CAAC,EARW,SAAS,KAAT,SAAS,GAQpB,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const TIMEOUT = 500;
|
|
2
|
+
const useRipple = () => {
|
|
3
|
+
if (document.documentElement.dataset["useripple"])
|
|
4
|
+
return;
|
|
5
|
+
document.documentElement.dataset["useripple"] = "enable";
|
|
6
|
+
document.addEventListener("mousedown", listener);
|
|
7
|
+
};
|
|
8
|
+
function listener(e) {
|
|
9
|
+
const target = e.target;
|
|
10
|
+
const parent = target.closest("[data-ripple]");
|
|
11
|
+
if (!target || !parent)
|
|
12
|
+
return;
|
|
13
|
+
triggerRipple(parent, e);
|
|
14
|
+
}
|
|
15
|
+
function triggerRipple(target, e) {
|
|
16
|
+
const [$box, $ripple] = createRipple();
|
|
17
|
+
const rect = target.getBoundingClientRect();
|
|
18
|
+
const size = Math.max(rect.width, rect.height) * 2;
|
|
19
|
+
$ripple.style.cssText = `
|
|
20
|
+
left: ${e.pageX - rect.left}px;
|
|
21
|
+
top: ${e.pageY - rect.top}px;
|
|
22
|
+
width: ${size}px;
|
|
23
|
+
height: ${size}px;
|
|
24
|
+
transition: all ${TIMEOUT / 1000}s;
|
|
25
|
+
`;
|
|
26
|
+
target.insertAdjacentElement("afterbegin", $box);
|
|
27
|
+
target.offsetHeight;
|
|
28
|
+
$ripple.classList.add("i-ripple-active");
|
|
29
|
+
setTimeout(() => {
|
|
30
|
+
$box.remove();
|
|
31
|
+
}, TIMEOUT);
|
|
32
|
+
}
|
|
33
|
+
function createRipple() {
|
|
34
|
+
const $box = document.createElement("SPAN");
|
|
35
|
+
const $ripple = document.createElement("SPAN");
|
|
36
|
+
$box.className = "i-ripple-container";
|
|
37
|
+
$ripple.className = "i-ripple";
|
|
38
|
+
$box.append($ripple);
|
|
39
|
+
return [$box, $ripple];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export { useRipple as default };
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../packages/js/useRipple/index.ts"],"sourcesContent":["import \"./ripple.css\";\n\nconst TIMEOUT = 500;\n\nconst useRipple = () => {\n\tif (document.documentElement.dataset[\"useripple\"]) return;\n\tdocument.documentElement.dataset[\"useripple\"] = \"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\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"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,GAAG;AAEb,MAAA,SAAS,GAAG,MAAK;AACtB,IAAA,IAAI,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC;QAAE;IACnD,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,QAAQ;AAExD,IAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC;AACjD;AAEA,SAAS,QAAQ,CAAC,CAAa,EAAA;AAC9B,IAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAgB;AAE7D,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;QAAE;AAExB,IAAA,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;AACzB;AAEA,SAAS,aAAa,CAAC,MAAmB,EAAE,CAAa,EAAA;IACxD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,YAAY,EAAE;AACtC,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE;AAC3C,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAElD,IAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG;AACT,cAAA,EAAA,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAA;AACpB,aAAA,EAAA,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;iBAChB,IAAI,CAAA;kBACH,IAAI,CAAA;AACI,wBAAA,EAAA,OAAO,GAAG,IAAI,CAAA;KACnC;AACJ,IAAA,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC;IAChD,MAAM,CAAC,YAAY;AACnB,IAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAExC,UAAU,CAAC,MAAK;QACf,IAAI,CAAC,MAAM,EAAE;KACb,EAAE,OAAO,CAAC;AACZ;AAEA,SAAS,YAAY,GAAA;IACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;IAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAE9C,IAAA,IAAI,CAAC,SAAS,GAAG,oBAAoB;AACrC,IAAA,OAAO,CAAC,SAAS,GAAG,UAAU;AAE9B,IAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAEpB,IAAA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;AACvB;;;;"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { createRoot } from 'react-dom/client';
|
|
2
|
+
|
|
3
|
+
function getPosition($source, $popup, options = {}) {
|
|
4
|
+
const { refWindow, gap = 0, offset = 0, position = "top", align } = options;
|
|
5
|
+
if (!$source || !$popup)
|
|
6
|
+
return [
|
|
7
|
+
0,
|
|
8
|
+
0,
|
|
9
|
+
{
|
|
10
|
+
arrowX: 0,
|
|
11
|
+
arrowY: 0,
|
|
12
|
+
arrowPos: "bottom",
|
|
13
|
+
},
|
|
14
|
+
];
|
|
15
|
+
const rectT = $source.getBoundingClientRect();
|
|
16
|
+
const rectC = $popup.getBoundingClientRect();
|
|
17
|
+
let w = window.innerWidth;
|
|
18
|
+
let h = window.innerHeight;
|
|
19
|
+
let { left: tl, top: tt, right: tr, bottom: tb, width: tw, height: th, } = rectT;
|
|
20
|
+
const { height: ch, width: cw } = rectC;
|
|
21
|
+
if (!refWindow) {
|
|
22
|
+
const rectPa = $source.offsetParent?.getBoundingClientRect();
|
|
23
|
+
w = rectPa?.width || w;
|
|
24
|
+
h = rectPa?.height || h;
|
|
25
|
+
tl = $source.offsetLeft;
|
|
26
|
+
tt = $source.offsetTop;
|
|
27
|
+
tr = tl + rectT.width;
|
|
28
|
+
tb = tt + rectT.height;
|
|
29
|
+
}
|
|
30
|
+
let y = 0;
|
|
31
|
+
let x = 0;
|
|
32
|
+
let arrowX = 0;
|
|
33
|
+
let arrowY = 0;
|
|
34
|
+
let arrowPos = "bottom";
|
|
35
|
+
switch (position) {
|
|
36
|
+
case "left":
|
|
37
|
+
case "right":
|
|
38
|
+
y =
|
|
39
|
+
th !== ch
|
|
40
|
+
? computePosition({
|
|
41
|
+
containerSize: h,
|
|
42
|
+
targetSize: th,
|
|
43
|
+
targetOffset: tt,
|
|
44
|
+
contentSize: ch,
|
|
45
|
+
gap,
|
|
46
|
+
align,
|
|
47
|
+
})
|
|
48
|
+
: tt;
|
|
49
|
+
arrowY = y < tt ? tt - y + th / 2 : th / 2;
|
|
50
|
+
const xl = tl - offset - cw;
|
|
51
|
+
const xr = tr + offset + cw;
|
|
52
|
+
if (position === "left") {
|
|
53
|
+
const R = xl < 0 && xr <= w;
|
|
54
|
+
x = R ? tr + offset : xl;
|
|
55
|
+
arrowX = R ? 0 : cw;
|
|
56
|
+
arrowPos = R ? "left" : "right";
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const R = w > xr || xl < 0;
|
|
60
|
+
x = R ? tr + offset : xl;
|
|
61
|
+
arrowX = R ? 0 : cw;
|
|
62
|
+
arrowPos = R ? "left" : "right";
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
case "top":
|
|
66
|
+
case "bottom":
|
|
67
|
+
x =
|
|
68
|
+
tw !== cw
|
|
69
|
+
? computePosition({
|
|
70
|
+
containerSize: w,
|
|
71
|
+
targetOffset: tl,
|
|
72
|
+
targetSize: tw,
|
|
73
|
+
contentSize: cw,
|
|
74
|
+
gap,
|
|
75
|
+
align,
|
|
76
|
+
})
|
|
77
|
+
: tl;
|
|
78
|
+
arrowX = x > tl ? cw / 2 : tl - x + tw / 2;
|
|
79
|
+
const yt = tt - offset - ch;
|
|
80
|
+
const yb = tb + offset + ch;
|
|
81
|
+
if (position === "top") {
|
|
82
|
+
const T = yt < 0 && yb <= h;
|
|
83
|
+
y = T ? tb + offset : yt;
|
|
84
|
+
arrowY = T ? 0 : ch;
|
|
85
|
+
arrowPos = T ? "top" : "bottom";
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const B = h > yb || yt < 0;
|
|
89
|
+
y = B ? tb + offset : yt;
|
|
90
|
+
arrowY = B ? 0 : ch;
|
|
91
|
+
arrowPos = B ? "top" : "bottom";
|
|
92
|
+
}
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
return [
|
|
96
|
+
x,
|
|
97
|
+
y,
|
|
98
|
+
{
|
|
99
|
+
arrowX,
|
|
100
|
+
arrowY,
|
|
101
|
+
arrowPos,
|
|
102
|
+
},
|
|
103
|
+
];
|
|
104
|
+
}
|
|
105
|
+
function getPointPosition(e, content) {
|
|
106
|
+
const { width: w, height: h } = content.getBoundingClientRect();
|
|
107
|
+
const parent = content.offsetParent;
|
|
108
|
+
let pw, ph, pl = 0, pt = 0;
|
|
109
|
+
if (parent) {
|
|
110
|
+
const { width: ow, height: oh, left: ol, top: ot, } = parent.getBoundingClientRect();
|
|
111
|
+
const st = parent.scrollTop ?? 0;
|
|
112
|
+
pw = ow;
|
|
113
|
+
ph = oh;
|
|
114
|
+
pt = ot - st;
|
|
115
|
+
pl = ol;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
pw = window.innerWidth;
|
|
119
|
+
ph = window.innerHeight;
|
|
120
|
+
}
|
|
121
|
+
const x = e.pageX - pl;
|
|
122
|
+
const y = e.pageY - pt;
|
|
123
|
+
const left = x + w >= pw ? (x - w > 0 ? x - w : x) : x;
|
|
124
|
+
const top = y + h >= ph ? (y - h > 0 ? y - h : y) : y;
|
|
125
|
+
return [left, top];
|
|
126
|
+
}
|
|
127
|
+
function computePosition({ containerSize, targetSize, targetOffset, contentSize, gap, align = "center", }) {
|
|
128
|
+
const centerPoint = targetOffset + targetSize / 2;
|
|
129
|
+
switch (align) {
|
|
130
|
+
case "start":
|
|
131
|
+
return targetOffset + contentSize > containerSize
|
|
132
|
+
? containerSize - contentSize - gap
|
|
133
|
+
: targetOffset;
|
|
134
|
+
case "center":
|
|
135
|
+
if (targetSize >= contentSize) {
|
|
136
|
+
return centerPoint - contentSize / 2;
|
|
137
|
+
}
|
|
138
|
+
if (centerPoint + contentSize / 2 + gap > containerSize) {
|
|
139
|
+
return targetOffset + targetSize - contentSize;
|
|
140
|
+
}
|
|
141
|
+
if (centerPoint - contentSize / 2 - gap < 0) {
|
|
142
|
+
return gap;
|
|
143
|
+
}
|
|
144
|
+
return centerPoint - contentSize / 2;
|
|
145
|
+
case "end":
|
|
146
|
+
const result = targetOffset + targetSize - contentSize;
|
|
147
|
+
return result > 0 ? result : gap;
|
|
148
|
+
default:
|
|
149
|
+
return centerPoint - contentSize / 2;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function formatOption(options) {
|
|
153
|
+
return options.map((option) => ["string", "number"].includes(typeof option)
|
|
154
|
+
? { label: option, value: option }
|
|
155
|
+
: option);
|
|
156
|
+
}
|
|
157
|
+
function animate(from, to, duration = 1000, callback, easing = (t) => 1 - Math.pow(1 - t, 4)) {
|
|
158
|
+
const start = performance.now();
|
|
159
|
+
const diff = to - from;
|
|
160
|
+
let raf = requestAnimationFrame(loop);
|
|
161
|
+
function loop() {
|
|
162
|
+
raf = requestAnimationFrame(loop);
|
|
163
|
+
const past = performance.now() - start;
|
|
164
|
+
let percent = past / duration;
|
|
165
|
+
if (percent >= 1) {
|
|
166
|
+
percent = 1;
|
|
167
|
+
cancelAnimationFrame(raf);
|
|
168
|
+
}
|
|
169
|
+
const pass = diff * easing(percent);
|
|
170
|
+
callback?.(pass);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function formatNumber(value, options = {}) {
|
|
174
|
+
const { precision, thousand } = options;
|
|
175
|
+
const result = value.toFixed(precision);
|
|
176
|
+
if (!thousand)
|
|
177
|
+
return result;
|
|
178
|
+
const points = result.split(".");
|
|
179
|
+
const integer = points[0].replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, `$&${thousand}`);
|
|
180
|
+
if (points.length === 1)
|
|
181
|
+
return integer;
|
|
182
|
+
return `${integer}.${points[1]}`;
|
|
183
|
+
}
|
|
184
|
+
function renderNode(node, container = document.body) {
|
|
185
|
+
const div = document.createElement("div");
|
|
186
|
+
container.append(div);
|
|
187
|
+
const root = createRoot(div);
|
|
188
|
+
const sto = setTimeout(() => {
|
|
189
|
+
root?.render(node);
|
|
190
|
+
}, 0);
|
|
191
|
+
return () => {
|
|
192
|
+
div?.remove();
|
|
193
|
+
root?.unmount();
|
|
194
|
+
sto && clearTimeout(sto);
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
function getSuffixByUrl(url) {
|
|
198
|
+
return url.match(/\.([^\./\?]+)($|\?)/)?.[1];
|
|
199
|
+
}
|
|
200
|
+
function getFileType(suffix, type) {
|
|
201
|
+
switch (true) {
|
|
202
|
+
case ["jpg", "jpeg", "png", "webp", "svg"].includes(suffix) ||
|
|
203
|
+
type?.startsWith("image/"):
|
|
204
|
+
return "IMAGE";
|
|
205
|
+
case ["mp4", "avi"].includes(suffix) || type?.startsWith("video/"):
|
|
206
|
+
return "VIDEO";
|
|
207
|
+
default:
|
|
208
|
+
return "UNKNOWN";
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
function fullScreen(el) {
|
|
212
|
+
el.requestFullscreen?.();
|
|
213
|
+
}
|
|
214
|
+
function exitFullScreen() {
|
|
215
|
+
document.exitFullscreen?.();
|
|
216
|
+
}
|
|
217
|
+
function formatTime(time, options) {
|
|
218
|
+
const result = [];
|
|
219
|
+
const { zero = true, units = ["", ":", ":"] } = options;
|
|
220
|
+
const l = units.length;
|
|
221
|
+
let i = 0;
|
|
222
|
+
while (i < l) {
|
|
223
|
+
if (time <= 0 && i > 1)
|
|
224
|
+
break;
|
|
225
|
+
const n = Math.round(time % 60);
|
|
226
|
+
time = Math.floor(time / 60);
|
|
227
|
+
result.unshift((zero && n < 10 ? `0${n}` : n) + units[i++]);
|
|
228
|
+
}
|
|
229
|
+
return result.join("");
|
|
230
|
+
}
|
|
231
|
+
function getNextSorter(prevSortBy, prevSortType, sortBy) {
|
|
232
|
+
const types = ["desc", "asc"];
|
|
233
|
+
if (prevSortBy === sortBy) {
|
|
234
|
+
const i = types.findIndex((t) => t === prevSortType) + 1;
|
|
235
|
+
const type = types[i] || "";
|
|
236
|
+
const by = type === "" ? "" : sortBy;
|
|
237
|
+
return [by, type];
|
|
238
|
+
}
|
|
239
|
+
return [sortBy, "desc"];
|
|
240
|
+
}
|
|
241
|
+
function formatBytes(bytes, decimals = 2) {
|
|
242
|
+
if (!+bytes)
|
|
243
|
+
return "0 Bytes";
|
|
244
|
+
const k = 1024;
|
|
245
|
+
const dm = decimals < 0 ? 0 : decimals;
|
|
246
|
+
const sizes = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
|
|
247
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
248
|
+
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;
|
|
249
|
+
}
|
|
250
|
+
function clamp(value, min, max) {
|
|
251
|
+
return value < min ? min : value > max ? max : value;
|
|
252
|
+
}
|
|
253
|
+
const arrayMove = (array, fromIndex, toIndex) => {
|
|
254
|
+
if (toIndex >= array.length) {
|
|
255
|
+
let k = toIndex - array.length + 1;
|
|
256
|
+
while (k--) {
|
|
257
|
+
array.push(undefined);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
array.splice(toIndex, 0, array.splice(fromIndex, 1)[0]);
|
|
261
|
+
return array;
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
export { animate, arrayMove, clamp, exitFullScreen, formatBytes, formatNumber, formatOption, formatTime, fullScreen, getFileType, getNextSorter, getPointPosition, getPosition, getSuffixByUrl, renderNode };
|
|
265
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../packages/js/utils.ts"],"sourcesContent":["import type { MouseEvent } from \"react\";\nimport { ReactNode } from \"react\";\nimport { Root, createRoot } from \"react-dom/client\";\nimport type { TOption, TOptions, TRelativeOptions } from \"../type\";\n\ntype TComputePosition = {\n\tcontainerSize: number;\n\ttargetSize: number;\n\ttargetOffset: number;\n\tcontentSize: number;\n\tgap: number;\n\talign?: \"start\" | \"center\" | \"end\";\n};\n\nexport function getPosition(\n\t$source?: HTMLElement | null,\n\t$popup?: HTMLElement | null,\n\toptions: TRelativeOptions = {}\n): [\n\tx: number,\n\ty: number,\n\tz: {\n\t\tarrowX: number;\n\t\tarrowY: number;\n\t\tarrowPos: string;\n\t}\n] {\n\tconst { refWindow, gap = 0, offset = 0, position = \"top\", align } = options;\n\n\tif (!$source || !$popup)\n\t\treturn [\n\t\t\t0,\n\t\t\t0,\n\t\t\t{\n\t\t\t\tarrowX: 0,\n\t\t\t\tarrowY: 0,\n\t\t\t\tarrowPos: \"bottom\",\n\t\t\t},\n\t\t];\n\n\tconst rectT = $source.getBoundingClientRect();\n\tconst rectC = $popup.getBoundingClientRect();\n\n\tlet w = window.innerWidth;\n\tlet h = window.innerHeight;\n\tlet {\n\t\tleft: tl,\n\t\ttop: tt,\n\t\tright: tr,\n\t\tbottom: tb,\n\t\twidth: tw,\n\t\theight: th,\n\t} = rectT;\n\tconst { height: ch, width: cw } = rectC;\n\n\tif (!refWindow) {\n\t\tconst rectPa = $source.offsetParent?.getBoundingClientRect();\n\n\t\tw = rectPa?.width || w;\n\t\th = rectPa?.height || h;\n\t\ttl = $source.offsetLeft;\n\t\ttt = $source.offsetTop;\n\t\ttr = tl + rectT.width;\n\t\ttb = tt + rectT.height;\n\t}\n\n\tlet y = 0;\n\tlet x = 0;\n\tlet arrowX = 0;\n\tlet arrowY = 0;\n\tlet arrowPos = \"bottom\";\n\n\tswitch (position) {\n\t\tcase \"left\":\n\t\tcase \"right\":\n\t\t\ty =\n\t\t\t\tth !== ch\n\t\t\t\t\t? computePosition({\n\t\t\t\t\t\t\tcontainerSize: h,\n\t\t\t\t\t\t\ttargetSize: th,\n\t\t\t\t\t\t\ttargetOffset: tt,\n\t\t\t\t\t\t\tcontentSize: ch,\n\t\t\t\t\t\t\tgap,\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t })\n\t\t\t\t\t: tt;\n\t\t\tarrowY = y < tt ? tt - y + th / 2 : th / 2;\n\n\t\t\tconst xl = tl - offset - cw;\n\t\t\tconst xr = tr + offset + cw;\n\n\t\t\tif (position === \"left\") {\n\t\t\t\tconst R = xl < 0 && xr <= w;\n\t\t\t\tx = R ? tr + offset : xl;\n\t\t\t\tarrowX = R ? 0 : cw;\n\t\t\t\tarrowPos = R ? \"left\" : \"right\";\n\t\t\t} else {\n\t\t\t\tconst R = w > xr || xl < 0;\n\t\t\t\tx = R ? tr + offset : xl;\n\t\t\t\tarrowX = R ? 0 : cw;\n\t\t\t\tarrowPos = R ? \"left\" : \"right\";\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase \"top\":\n\t\tcase \"bottom\":\n\t\t\tx =\n\t\t\t\ttw !== cw\n\t\t\t\t\t? computePosition({\n\t\t\t\t\t\t\tcontainerSize: w,\n\t\t\t\t\t\t\ttargetOffset: tl,\n\t\t\t\t\t\t\ttargetSize: tw,\n\t\t\t\t\t\t\tcontentSize: cw,\n\t\t\t\t\t\t\tgap,\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t })\n\t\t\t\t\t: tl;\n\t\t\tarrowX = x > tl ? cw / 2 : tl - x + tw / 2;\n\n\t\t\tconst yt = tt - offset - ch;\n\t\t\tconst yb = tb + offset + ch;\n\t\t\tif (position === \"top\") {\n\t\t\t\tconst T = yt < 0 && yb <= h;\n\t\t\t\ty = T ? tb + offset : yt;\n\t\t\t\tarrowY = T ? 0 : ch;\n\t\t\t\tarrowPos = T ? \"top\" : \"bottom\";\n\t\t\t} else {\n\t\t\t\tconst B = h > yb || yt < 0;\n\t\t\t\ty = B ? tb + offset : yt;\n\t\t\t\tarrowY = B ? 0 : ch;\n\t\t\t\tarrowPos = B ? \"top\" : \"bottom\";\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\n\treturn [\n\t\tx,\n\t\ty,\n\t\t{\n\t\t\tarrowX,\n\t\t\tarrowY,\n\t\t\tarrowPos,\n\t\t},\n\t];\n}\n\nexport function getPointPosition(e: MouseEvent, content: HTMLElement) {\n\tconst { width: w, height: h } = content.getBoundingClientRect();\n\tconst parent = content.offsetParent;\n\tlet pw,\n\t\tph,\n\t\tpl = 0,\n\t\tpt = 0;\n\n\tif (parent) {\n\t\tconst {\n\t\t\twidth: ow,\n\t\t\theight: oh,\n\t\t\tleft: ol,\n\t\t\ttop: ot,\n\t\t} = parent.getBoundingClientRect();\n\t\tconst st = parent.scrollTop ?? 0;\n\n\t\tpw = ow;\n\t\tph = oh;\n\t\tpt = ot - st;\n\t\tpl = ol;\n\t} else {\n\t\tpw = window.innerWidth;\n\t\tph = window.innerHeight;\n\t}\n\tconst x = e.pageX - pl;\n\tconst y = e.pageY - pt;\n\n\tconst left = x + w >= pw ? (x - w > 0 ? x - w : x) : x;\n\tconst top = y + h >= ph ? (y - h > 0 ? y - h : y) : y;\n\n\treturn [left, top];\n}\n\nfunction computePosition({\n\tcontainerSize,\n\ttargetSize,\n\ttargetOffset,\n\tcontentSize,\n\tgap,\n\talign = \"center\",\n}: TComputePosition) {\n\tconst centerPoint = targetOffset + targetSize / 2;\n\n\tswitch (align) {\n\t\tcase \"start\":\n\t\t\treturn targetOffset + contentSize > containerSize\n\t\t\t\t? containerSize - contentSize - gap\n\t\t\t\t: targetOffset;\n\t\tcase \"center\":\n\t\t\tif (targetSize >= contentSize) {\n\t\t\t\treturn centerPoint - contentSize / 2;\n\t\t\t}\n\n\t\t\tif (centerPoint + contentSize / 2 + gap > containerSize) {\n\t\t\t\treturn targetOffset + targetSize - contentSize;\n\t\t\t}\n\n\t\t\tif (centerPoint - contentSize / 2 - gap < 0) {\n\t\t\t\treturn gap;\n\t\t\t}\n\n\t\t\treturn centerPoint - contentSize / 2;\n\t\tcase \"end\":\n\t\t\tconst result = targetOffset + targetSize - contentSize;\n\t\t\treturn result > 0 ? result : gap;\n\t\tdefault:\n\t\t\treturn centerPoint - contentSize / 2;\n\t}\n}\n\nexport function formatOption(options: TOptions): TOption[] {\n\treturn options.map((option) =>\n\t\t[\"string\", \"number\"].includes(typeof option)\n\t\t\t? { label: option, value: option }\n\t\t\t: option\n\t) as TOption[];\n}\n\nexport function animate(\n\tfrom: number,\n\tto: number,\n\tduration: number = 1000,\n\tcallback?: (v: number) => void,\n\teasing: (t: number) => number = (t) => 1 - Math.pow(1 - t, 4)\n) {\n\tconst start = performance.now();\n\tconst diff = to - from;\n\tlet raf = requestAnimationFrame(loop);\n\n\tfunction loop() {\n\t\traf = requestAnimationFrame(loop);\n\n\t\tconst past = performance.now() - start;\n\t\tlet percent = past / duration;\n\n\t\tif (percent >= 1) {\n\t\t\tpercent = 1;\n\t\t\tcancelAnimationFrame(raf);\n\t\t}\n\n\t\tconst pass = diff * easing(percent);\n\t\tcallback?.(pass);\n\t}\n}\n\nexport function formatNumber(\n\tvalue: number,\n\toptions: {\n\t\tprecision?: number;\n\t\tthousand?: string;\n\t} = {}\n) {\n\tconst { precision, thousand } = options;\n\n\tconst result = value.toFixed(precision);\n\n\tif (!thousand) return result;\n\n\tconst points = result.split(\".\");\n\tconst integer = points[0].replace(\n\t\t/\\d{1,3}(?=(\\d{3})+(\\.\\d*)?$)/g,\n\t\t`$&${thousand}`\n\t);\n\n\tif (points.length === 1) return integer;\n\n\treturn `${integer}.${points[1]}`;\n}\n\nexport function renderNode(node: ReactNode, container = document.body) {\n\tconst div: HTMLDivElement | null = document.createElement(\"div\");\n\tcontainer.append(div);\n\n\tconst root: Root | null = createRoot(div);\n\tconst sto = setTimeout(() => {\n\t\troot?.render(node);\n\t}, 0);\n\n\treturn () => {\n\t\tdiv?.remove();\n\t\troot?.unmount();\n\t\tsto && clearTimeout(sto);\n\t};\n}\n\nexport function getSuffixByUrl(url: string) {\n\treturn url.match(/\\.([^\\./\\?]+)($|\\?)/)?.[1];\n}\n\nexport function getFileType(suffix: string, type?: string) {\n\tswitch (true) {\n\t\tcase [\"jpg\", \"jpeg\", \"png\", \"webp\", \"svg\"].includes(suffix) ||\n\t\t\ttype?.startsWith(\"image/\"):\n\t\t\treturn \"IMAGE\";\n\t\tcase [\"mp4\", \"avi\"].includes(suffix) || type?.startsWith(\"video/\"):\n\t\t\treturn \"VIDEO\";\n\t\tdefault:\n\t\t\treturn \"UNKNOWN\";\n\t}\n}\n\nexport function fullScreen(el: HTMLElement) {\n\tel.requestFullscreen?.();\n}\n\nexport function exitFullScreen() {\n\tdocument.exitFullscreen?.();\n}\n\nexport function formatTime(\n\ttime: number,\n\toptions?: {\n\t\tzero?: boolean;\n\t\tunits?: string[];\n\t}\n) {\n\tconst result: string[] = [];\n\tconst { zero = true, units = [\"\", \":\", \":\"] } = options || {};\n\n\tconst l = units.length;\n\tlet i = 0;\n\n\twhile (i < l) {\n\t\tif (time <= 0 && i > 1) break;\n\n\t\tconst n = Math.round(time % 60);\n\n\t\ttime = Math.floor(time / 60);\n\n\t\tresult.unshift((zero && n < 10 ? `0${n}` : n) + units[i++]);\n\t}\n\n\treturn result.join(\"\");\n}\n\nexport function getNextSorter(\n\tprevSortBy: string,\n\tprevSortType: string,\n\tsortBy: string\n): [sortBy: string, sortType: string] {\n\tconst types = [\"desc\", \"asc\"];\n\n\tif (prevSortBy === sortBy) {\n\t\tconst i = types.findIndex((t) => t === prevSortType) + 1;\n\t\tconst type = types[i] || \"\";\n\t\tconst by = type === \"\" ? \"\" : sortBy;\n\n\t\treturn [by, type];\n\t}\n\n\treturn [sortBy, \"desc\"];\n}\n\nexport function formatBytes(bytes: number, decimals = 2) {\n\tif (!+bytes) return \"0 Bytes\";\n\n\tconst k = 1024;\n\tconst dm = decimals < 0 ? 0 : decimals;\n\tconst sizes = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\n\treturn `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n}\n\nexport function clamp(value: number, min: number, max: number) {\n\treturn value < min ? min : value > max ? max : value;\n}\n\nexport const arrayMove = (array, fromIndex: number, toIndex: number) => {\n\tif (toIndex >= array.length) {\n\t\tlet k = toIndex - array.length + 1;\n\t\twhile (k--) {\n\t\t\tarray.push(undefined);\n\t\t}\n\t}\n\tarray.splice(toIndex, 0, array.splice(fromIndex, 1)[0]);\n\treturn array;\n};\n"],"names":[],"mappings":"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"}
|