@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,155 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
2
|
+
const require_utils = require("../../js/utils.js");
|
|
3
|
+
const require_index = require("../utils/helpericon/index.js");
|
|
4
|
+
const require_index$1 = require("../popup/index.js");
|
|
5
|
+
const require_options = require("./options.js");
|
|
6
|
+
let classnames = require("classnames");
|
|
7
|
+
classnames = require_runtime.__toESM(classnames);
|
|
8
|
+
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");
|
|
9
|
+
let react = require("react");
|
|
10
|
+
let _ricons_material = require("@ricons/material");
|
|
11
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
|
+
//#region packages/components/select/select.tsx
|
|
13
|
+
const Select = (props) => {
|
|
14
|
+
const { ref, type = "text", name, label, value = "", placeholder, options = [], multiple, prepend, append, labelInline, style, className, message, status = "normal", hideClear, hideArrow, maxDisplay, border, filter, tip, filterPlaceholder = "...", popupProps, onSelect, onChange, ...restProps } = props;
|
|
15
|
+
const [filterValue, setFilterValue] = (0, react.useState)("");
|
|
16
|
+
const [selectedValue, setSelectedValue] = (0, react.useState)(value);
|
|
17
|
+
const [active, setActive] = (0, react.useState)(false);
|
|
18
|
+
const formattedOptions = (0, react.useMemo)(() => require_utils.formatOption(options), [options]);
|
|
19
|
+
const filterOptions = (0, react.useMemo)(() => {
|
|
20
|
+
const fv = filterValue;
|
|
21
|
+
if (!fv || !filter) return formattedOptions;
|
|
22
|
+
const filterFn = typeof filter === "function" ? filter : (opt) => opt.value.includes(fv) || opt.label.includes(fv);
|
|
23
|
+
return formattedOptions.filter(filterFn);
|
|
24
|
+
}, [
|
|
25
|
+
formattedOptions,
|
|
26
|
+
filter,
|
|
27
|
+
filterValue
|
|
28
|
+
]);
|
|
29
|
+
const changeValue = (v) => {
|
|
30
|
+
setSelectedValue(v);
|
|
31
|
+
onChange?.(v);
|
|
32
|
+
};
|
|
33
|
+
const displayLabel = (0, react.useMemo)(() => {
|
|
34
|
+
if (multiple) return "";
|
|
35
|
+
const option = formattedOptions.find((opt) => opt.value === selectedValue);
|
|
36
|
+
return option ? option.label : selectedValue;
|
|
37
|
+
}, [selectedValue, formattedOptions]);
|
|
38
|
+
const handleSelect = (value, option) => {
|
|
39
|
+
onSelect?.(value, option);
|
|
40
|
+
if (multiple) {
|
|
41
|
+
const values = [...selectedValue];
|
|
42
|
+
const i = values.findIndex((v) => v === value);
|
|
43
|
+
i > -1 ? values.splice(i, 1) : values.push(value);
|
|
44
|
+
changeValue(values);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
setActive(false);
|
|
48
|
+
changeValue(value);
|
|
49
|
+
};
|
|
50
|
+
const handleVisibleChange = (visible) => {
|
|
51
|
+
setActive(visible);
|
|
52
|
+
if (!filter) return;
|
|
53
|
+
setFilterValue("");
|
|
54
|
+
};
|
|
55
|
+
const handleHelperClick = (e) => {
|
|
56
|
+
e.stopPropagation();
|
|
57
|
+
setActive(true);
|
|
58
|
+
if (!active) return;
|
|
59
|
+
changeValue(multiple ? [] : "");
|
|
60
|
+
};
|
|
61
|
+
const handleFilterChange = (0, _Users_iann_codes_ioca_react_node_modules__pnpm_radash_12_1_1_node_modules_radash_dist_esm_index_mjs.debounce)({ delay: 400 }, (e) => {
|
|
62
|
+
const v = e.target.value;
|
|
63
|
+
setFilterValue(v);
|
|
64
|
+
});
|
|
65
|
+
const handleInputChange = (e) => {
|
|
66
|
+
setFilterValue(e.target.value);
|
|
67
|
+
};
|
|
68
|
+
(0, react.useEffect)(() => {
|
|
69
|
+
setSelectedValue(value);
|
|
70
|
+
}, [value]);
|
|
71
|
+
const hasValue = multiple ? selectedValue.length > 0 : !!selectedValue;
|
|
72
|
+
const clearable = !hideClear && active && hasValue;
|
|
73
|
+
const text = message ?? tip;
|
|
74
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
75
|
+
className: (0, classnames.default)("i-input-label", className, { "i-input-inline": labelInline }),
|
|
76
|
+
style,
|
|
77
|
+
children: [
|
|
78
|
+
label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
79
|
+
className: "i-input-label-text",
|
|
80
|
+
children: label
|
|
81
|
+
}),
|
|
82
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.default, {
|
|
83
|
+
position: "bottom",
|
|
84
|
+
arrow: false,
|
|
85
|
+
fitSize: true,
|
|
86
|
+
offset: 0,
|
|
87
|
+
...popupProps,
|
|
88
|
+
visible: active,
|
|
89
|
+
trigger: "none",
|
|
90
|
+
onVisibleChange: handleVisibleChange,
|
|
91
|
+
content: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_options.Options, {
|
|
92
|
+
options: filterOptions,
|
|
93
|
+
value: selectedValue,
|
|
94
|
+
multiple,
|
|
95
|
+
filter: !!filter,
|
|
96
|
+
filterPlaceholder,
|
|
97
|
+
onSelect: handleSelect,
|
|
98
|
+
onFilter: handleFilterChange
|
|
99
|
+
}),
|
|
100
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
101
|
+
className: (0, classnames.default)("i-input-item", {
|
|
102
|
+
[`i-input-${status}`]: status !== "normal",
|
|
103
|
+
"i-input-borderless": !border,
|
|
104
|
+
"i-input-focus": active
|
|
105
|
+
}),
|
|
106
|
+
onClick: () => setActive(true),
|
|
107
|
+
children: [
|
|
108
|
+
prepend,
|
|
109
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
110
|
+
ref,
|
|
111
|
+
type: "hidden",
|
|
112
|
+
value: selectedValue,
|
|
113
|
+
...restProps
|
|
114
|
+
}),
|
|
115
|
+
multiple ? hasValue ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
116
|
+
className: (0, classnames.default)("i-input i-select", { "i-select-multiple": multiple }),
|
|
117
|
+
children: require_options.displayValue({
|
|
118
|
+
options: formattedOptions,
|
|
119
|
+
value: selectedValue,
|
|
120
|
+
multiple,
|
|
121
|
+
maxDisplay,
|
|
122
|
+
onSelect: handleSelect
|
|
123
|
+
})
|
|
124
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
125
|
+
className: "i-input i-select",
|
|
126
|
+
placeholder,
|
|
127
|
+
readOnly: true
|
|
128
|
+
}) : null,
|
|
129
|
+
!multiple && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
130
|
+
value: active ? filterValue : displayLabel,
|
|
131
|
+
className: "i-input i-select",
|
|
132
|
+
placeholder: displayLabel || placeholder,
|
|
133
|
+
onChange: handleInputChange,
|
|
134
|
+
readOnly: !filter
|
|
135
|
+
}),
|
|
136
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, {
|
|
137
|
+
active: !hideArrow,
|
|
138
|
+
icon: clearable ? void 0 : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.UnfoldMoreRound, {}),
|
|
139
|
+
onClick: handleHelperClick
|
|
140
|
+
}),
|
|
141
|
+
append
|
|
142
|
+
]
|
|
143
|
+
})
|
|
144
|
+
}),
|
|
145
|
+
text && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
146
|
+
className: "i-input-message",
|
|
147
|
+
children: text
|
|
148
|
+
})
|
|
149
|
+
]
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
//#endregion
|
|
153
|
+
exports.default = Select;
|
|
154
|
+
|
|
155
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","names":[],"sources":["../../../../packages/components/select/select.tsx"],"sourcesContent":["import { UnfoldMoreRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { debounce } from \"radash\";\nimport { ChangeEvent, useEffect, useMemo, useState } from \"react\";\nimport \"../../css/input.css\";\nimport { formatOption } from \"../../js/utils\";\nimport { TOption } from \"../../type\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { Options, displayValue } from \"./options\";\nimport { ISelect } from \"./type\";\n\nconst Select = (props: ISelect) => {\n\tconst {\n\t\tref,\n\t\ttype = \"text\",\n\t\tname,\n\t\tlabel,\n\t\tvalue = \"\",\n\t\tplaceholder,\n\t\toptions = [],\n\t\tmultiple,\n\t\tprepend,\n\t\tappend,\n\t\tlabelInline,\n\t\tstyle,\n\t\tclassName,\n\t\tmessage,\n\t\tstatus = \"normal\",\n\t\thideClear,\n\t\thideArrow,\n\t\tmaxDisplay,\n\t\tborder,\n\t\tfilter,\n\t\ttip,\n\t\tfilterPlaceholder = \"...\",\n\t\tpopupProps,\n\t\tonSelect,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst [filterValue, setFilterValue] = useState(\"\");\n\tconst [selectedValue, setSelectedValue] = useState(value);\n\n\tconst [active, setActive] = useState<boolean>(false);\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst filterOptions = useMemo(() => {\n\t\tconst fv = filterValue;\n\t\tif (!fv || !filter) return formattedOptions;\n\n\t\tconst filterFn =\n\t\t\ttypeof filter === \"function\"\n\t\t\t\t? filter\n\t\t\t\t: (opt) => opt.value.includes(fv) || opt.label.includes(fv);\n\n\t\treturn formattedOptions.filter(filterFn);\n\t}, [formattedOptions, filter, filterValue]);\n\n\tconst changeValue = (v: any) => {\n\t\tsetSelectedValue(v);\n\t\tonChange?.(v);\n\t};\n\n\tconst displayLabel = useMemo(() => {\n\t\tif (multiple) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst option = formattedOptions.find(\n\t\t\t(opt) => opt.value === selectedValue\n\t\t);\n\t\treturn option ? option.label : selectedValue;\n\t}, [selectedValue, formattedOptions]);\n\n\tconst handleSelect = (value: any, option?: TOption) => {\n\t\tonSelect?.(value, option);\n\n\t\tif (multiple) {\n\t\t\tconst values = [...(selectedValue as any[])];\n\t\t\tconst i = values.findIndex((v) => v === value);\n\n\t\t\ti > -1 ? values.splice(i, 1) : values.push(value);\n\t\t\tchangeValue(values as any);\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetActive(false);\n\t\tchangeValue(value);\n\t};\n\n\tconst handleVisibleChange = (visible: boolean) => {\n\t\tsetActive(visible);\n\n\t\tif (!filter) return;\n\n\t\tsetFilterValue(\"\");\n\t};\n\n\tconst handleHelperClick = (e) => {\n\t\te.stopPropagation();\n\t\tsetActive(true);\n\t\tif (!active) return;\n\n\t\tchangeValue(multiple ? [] : \"\");\n\t};\n\n\tconst handleFilterChange = debounce(\n\t\t{ delay: 400 },\n\t\t(e: ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst v = e.target.value;\n\t\t\tsetFilterValue(v);\n\t\t}\n\t);\n\n\tconst handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tsetFilterValue(e.target.value);\n\t};\n\n\tuseEffect(() => {\n\t\tsetSelectedValue(value);\n\t}, [value]);\n\n\tconst hasValue = multiple\n\t\t? (selectedValue as any[]).length > 0\n\t\t: !!selectedValue;\n\tconst clearable = !hideClear && active && hasValue;\n\tconst text = message ?? tip;\n\n\treturn (\n\t\t<label\n\t\t\tclassName={classNames(\"i-input-label\", className, {\n\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t})}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{label && <span className='i-input-label-text'>{label}</span>}\n\n\t\t\t<Popup\n\t\t\t\tposition='bottom'\n\t\t\t\tarrow={false}\n\t\t\t\tfitSize\n\t\t\t\toffset={0}\n\t\t\t\t{...popupProps}\n\t\t\t\tvisible={active}\n\t\t\t\ttrigger='none'\n\t\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\t\tcontent={\n\t\t\t\t\t<Options\n\t\t\t\t\t\toptions={filterOptions}\n\t\t\t\t\t\tvalue={selectedValue}\n\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\tfilter={!!filter}\n\t\t\t\t\t\tfilterPlaceholder={filterPlaceholder}\n\t\t\t\t\t\tonSelect={handleSelect}\n\t\t\t\t\t\tonFilter={handleFilterChange}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-input-item\", {\n\t\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\n\t\t\t\t\t\t\"i-input-borderless\": !border,\n\t\t\t\t\t\t\"i-input-focus\": active,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={() => setActive(true)}\n\t\t\t\t>\n\t\t\t\t\t{prepend}\n\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\ttype='hidden'\n\t\t\t\t\t\tvalue={selectedValue}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{multiple ? (\n\t\t\t\t\t\thasValue ? (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-input i-select\", {\n\t\t\t\t\t\t\t\t\t\"i-select-multiple\": multiple,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{displayValue({\n\t\t\t\t\t\t\t\t\toptions: formattedOptions,\n\t\t\t\t\t\t\t\t\tvalue: selectedValue,\n\t\t\t\t\t\t\t\t\tmultiple,\n\t\t\t\t\t\t\t\t\tmaxDisplay,\n\t\t\t\t\t\t\t\t\tonSelect: handleSelect,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclassName='i-input i-select'\n\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t) : null}\n\n\t\t\t\t\t{!multiple && (\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tvalue={active ? filterValue : displayLabel}\n\t\t\t\t\t\t\tclassName='i-input i-select'\n\t\t\t\t\t\t\tplaceholder={displayLabel || placeholder}\n\t\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\t\treadOnly={!filter}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Helpericon\n\t\t\t\t\t\tactive={!hideArrow}\n\t\t\t\t\t\ticon={clearable ? undefined : <UnfoldMoreRound />}\n\t\t\t\t\t\tonClick={handleHelperClick}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{append}\n\t\t\t\t</div>\n\t\t\t</Popup>\n\n\t\t\t{text && <span className='i-input-message'>{text}</span>}\n\t\t</label>\n\t);\n};\n\nexport default Select;\n"],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
require("../../_virtual/_rolldown/runtime.js");
|
|
2
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
3
|
+
//#region packages/components/step/divider.tsx
|
|
4
|
+
function Divider() {
|
|
5
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("i", { className: "i-step-divider" });
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
exports.default = Divider;
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=divider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divider.js","names":[],"sources":["../../../../packages/components/step/divider.tsx"],"sourcesContent":["import \"./index.css\";\n\nexport default function Divider() {\n\treturn <i className='i-step-divider' />;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Step"],"sources":["../../../../packages/components/step/index.tsx"],"sourcesContent":["import Step from \"./step\";\n\nexport default Step;\n"],"mappings":";AAEA,IAAA,oCAAeA"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
2
|
+
const require_divider = require("./divider.js");
|
|
3
|
+
let classnames = require("classnames");
|
|
4
|
+
classnames = require_runtime.__toESM(classnames);
|
|
5
|
+
let _ricons_material = require("@ricons/material");
|
|
6
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
+
//#region packages/components/step/item.tsx
|
|
8
|
+
const STATUS = [
|
|
9
|
+
"finished",
|
|
10
|
+
"active",
|
|
11
|
+
"pending"
|
|
12
|
+
];
|
|
13
|
+
function defaultRenderIcon(i, status) {
|
|
14
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
15
|
+
className: "i-step-item-index",
|
|
16
|
+
children: status === "finished" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.CheckRound, { style: {
|
|
17
|
+
width: "1em",
|
|
18
|
+
height: "1.5em"
|
|
19
|
+
} }) : i + 1
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function Item(props) {
|
|
23
|
+
const { index = 0, active = 0, renderIcon = defaultRenderIcon, title, vertical, line = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_divider.default, {}), asList, style, className, children, onClick } = props;
|
|
24
|
+
const status = STATUS[index === active ? 1 : index < active ? 0 : 2];
|
|
25
|
+
const handleClick = () => {
|
|
26
|
+
onClick?.(index);
|
|
27
|
+
};
|
|
28
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
29
|
+
style,
|
|
30
|
+
className: (0, classnames.default)("i-step-item", { [`i-step-item-${status}`]: !asList }, className),
|
|
31
|
+
onClick: handleClick,
|
|
32
|
+
children: vertical ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
33
|
+
className: "i-step-item-left",
|
|
34
|
+
children: [renderIcon?.(index, status), line]
|
|
35
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
36
|
+
className: "i-step-item-right",
|
|
37
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
38
|
+
className: "i-step-item-title",
|
|
39
|
+
children: title
|
|
40
|
+
}), children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
41
|
+
className: "i-step-item-content",
|
|
42
|
+
children
|
|
43
|
+
})]
|
|
44
|
+
})] }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
45
|
+
className: "i-step-item-title",
|
|
46
|
+
children: [
|
|
47
|
+
renderIcon?.(index, status),
|
|
48
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: title }),
|
|
49
|
+
line
|
|
50
|
+
]
|
|
51
|
+
}), children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
52
|
+
className: "i-step-item-content",
|
|
53
|
+
children
|
|
54
|
+
})] })
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//#endregion
|
|
58
|
+
exports.default = Item;
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.js","names":["CheckRound","Divider"],"sources":["../../../../packages/components/step/item.tsx"],"sourcesContent":["import { CheckRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport Divider from \"./divider\";\nimport { IStepItem } from \"./type\";\n\nconst STATUS = [\"finished\", \"active\", \"pending\"];\n\nfunction defaultRenderIcon(i: number, status: string) {\n\treturn (\n\t\t<span className='i-step-item-index'>\n\t\t\t{status === \"finished\" ? (\n\t\t\t\t<CheckRound style={{ width: \"1em\", height: \"1.5em\" }} />\n\t\t\t) : (\n\t\t\t\ti + 1\n\t\t\t)}\n\t\t</span>\n\t);\n}\n\nfunction Item(props: IStepItem) {\n\tconst {\n\t\tindex = 0,\n\t\tactive = 0,\n\t\trenderIcon = defaultRenderIcon,\n\t\ttitle,\n\t\tvertical,\n\t\tline = <Divider />,\n\t\tasList,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tonClick,\n\t} = props;\n\tconst status = STATUS[index === active ? 1 : index < active ? 0 : 2];\n\n\tconst handleClick = () => {\n\t\tonClick?.(index);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-step-item\",\n\t\t\t\t{\n\t\t\t\t\t[`i-step-item-${status}`]: !asList,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tonClick={handleClick}\n\t\t>\n\t\t\t{vertical ? (\n\t\t\t\t<>\n\t\t\t\t\t<div className='i-step-item-left'>\n\t\t\t\t\t\t{renderIcon?.(index, status)}\n\t\t\t\t\t\t{line}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className='i-step-item-right'>\n\t\t\t\t\t\t<div className='i-step-item-title'>{title}</div>\n\t\t\t\t\t\t{children && (\n\t\t\t\t\t\t\t<div className='i-step-item-content'>\n\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<div className='i-step-item-title'>\n\t\t\t\t\t\t{renderIcon?.(index, status)}\n\n\t\t\t\t\t\t<span>{title}</span>\n\n\t\t\t\t\t\t{line}\n\t\t\t\t\t</div>\n\t\t\t\t\t{children && (\n\t\t\t\t\t\t<div className='i-step-item-content'>{children}</div>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default Item;\n"],"mappings":";;;;;;;AAKA,MAAM,SAAS;CAAC;CAAY;CAAU;CAAU;AAEhD,SAAS,kBAAkB,GAAW,QAAgB;AACrD,QACC,iBAAA,GAAA,kBAAA,KAAC,QAAD;EAAM,WAAU;YACd,WAAW,aACX,iBAAA,GAAA,kBAAA,KAACA,iBAAAA,YAAD,EAAY,OAAO;GAAE,OAAO;GAAO,QAAQ;GAAS,EAAI,CAAA,GAExD,IAAI;EAEC,CAAA;;AAIT,SAAS,KAAK,OAAkB;CAC/B,MAAM,EACL,QAAQ,GACR,SAAS,GACT,aAAa,mBACb,OACA,UACA,OAAO,iBAAA,GAAA,kBAAA,KAACC,gBAAAA,SAAD,EAAW,CAAA,EAClB,QACA,OACA,WACA,UACA,YACG;CACJ,MAAM,SAAS,OAAO,UAAU,SAAS,IAAI,QAAQ,SAAS,IAAI;CAElE,MAAM,oBAAoB;AACzB,YAAU,MAAM;;AAGjB,QACC,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACQ;EACP,YAAA,GAAA,WAAA,SACC,eACA,GACE,eAAe,WAAW,CAAC,QAC5B,EACD,UACA;EACD,SAAS;YAER,WACA,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA,CACC,iBAAA,GAAA,kBAAA,MAAC,OAAD;GAAK,WAAU;aAAf,CACE,aAAa,OAAO,OAAO,EAC3B,KACI;MACN,iBAAA,GAAA,kBAAA,MAAC,OAAD;GAAK,WAAU;aAAf,CACC,iBAAA,GAAA,kBAAA,KAAC,OAAD;IAAK,WAAU;cAAqB;IAAY,CAAA,EAC/C,YACA,iBAAA,GAAA,kBAAA,KAAC,OAAD;IAAK,WAAU;IACb;IACI,CAAA,CAEF;KACJ,EAAA,CAAA,GAEH,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA,CACC,iBAAA,GAAA,kBAAA,MAAC,OAAD;GAAK,WAAU;aAAf;IACE,aAAa,OAAO,OAAO;IAE5B,iBAAA,GAAA,kBAAA,KAAC,QAAD,EAAA,UAAO,OAAa,CAAA;IAEnB;IACI;MACL,YACA,iBAAA,GAAA,kBAAA,KAAC,OAAD;GAAK,WAAU;GAAuB;GAAe,CAAA,CAEpD,EAAA,CAAA;EAEC,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
2
|
+
const require_item = require("./item.js");
|
|
3
|
+
let classnames = require("classnames");
|
|
4
|
+
classnames = require_runtime.__toESM(classnames);
|
|
5
|
+
let react = require("react");
|
|
6
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
+
//#region packages/components/step/step.tsx
|
|
8
|
+
const Step = (props) => {
|
|
9
|
+
const { active = 0, vertical, renderIcon, line, style, asList, className, children, onClick } = props;
|
|
10
|
+
const steps = (0, react.useMemo)(() => {
|
|
11
|
+
const nodes = [];
|
|
12
|
+
let index = 0;
|
|
13
|
+
react.Children.map(children, (el) => {
|
|
14
|
+
if (!el || el.type !== require_item.default) return;
|
|
15
|
+
const { props: elProps } = el;
|
|
16
|
+
nodes.push({
|
|
17
|
+
...el,
|
|
18
|
+
props: {
|
|
19
|
+
renderIcon,
|
|
20
|
+
line,
|
|
21
|
+
onClick,
|
|
22
|
+
...elProps,
|
|
23
|
+
vertical,
|
|
24
|
+
active,
|
|
25
|
+
asList,
|
|
26
|
+
index: index++
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
return nodes;
|
|
31
|
+
}, [active, children]);
|
|
32
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
33
|
+
className: (0, classnames.default)("i-step", { "i-step-vertical": vertical }, className),
|
|
34
|
+
style,
|
|
35
|
+
children: steps
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
Step.Item = require_item.default;
|
|
39
|
+
//#endregion
|
|
40
|
+
exports.default = Step;
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step.js","names":[],"sources":["../../../../packages/components/step/step.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { Children, ReactNode, useMemo } from \"react\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { IStep } from \"./type\";\n\nconst Step = (props: IStep) => {\n\tconst {\n\t\tactive = 0,\n\t\tvertical,\n\t\trenderIcon,\n\t\tline,\n\t\tstyle,\n\t\tasList,\n\t\tclassName,\n\t\tchildren,\n\t\tonClick,\n\t} = props;\n\n\tconst steps = useMemo(() => {\n\t\tconst nodes: ReactNode[] = [];\n\t\tlet index = 0;\n\n\t\tChildren.map(children, (el: any) => {\n\t\t\tif (!el || el.type !== Item) return;\n\n\t\t\tconst { props: elProps } = el;\n\n\t\t\tnodes.push({\n\t\t\t\t...el,\n\t\t\t\tprops: {\n\t\t\t\t\trenderIcon,\n\t\t\t\t\tline,\n\t\t\t\t\tonClick,\n\t\t\t\t\t...elProps,\n\t\t\t\t\tvertical,\n\t\t\t\t\tactive,\n\t\t\t\t\tasList,\n\t\t\t\t\tindex: index++,\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\treturn nodes;\n\t}, [active, children]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-step\",\n\t\t\t\t{ \"i-step-vertical\": vertical },\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{steps}\n\t\t</div>\n\t);\n};\n\nStep.Item = Item;\n\nexport default Step;\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Swiper"],"sources":["../../../../packages/components/swiper/index.tsx"],"sourcesContent":["import Swiper from \"./swiper\";\n\nexport default Swiper;\n"],"mappings":";AAEA,IAAA,wCAAeA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
2
|
+
let classnames = require("classnames");
|
|
3
|
+
classnames = require_runtime.__toESM(classnames);
|
|
4
|
+
let react = require("react");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
//#region packages/components/swiper/item.tsx
|
|
7
|
+
function Item(props) {
|
|
8
|
+
const { index = 0, itemIndex = 0, active, type, transition, gap = 0, itemHeight, vertical, style, className, children, onItemClick } = props;
|
|
9
|
+
const selfStyle = (0, react.useMemo)(() => {
|
|
10
|
+
if (type === "normal") return {
|
|
11
|
+
[vertical ? "paddingBlock" : "paddingInline"]: gap / 2,
|
|
12
|
+
height: itemHeight
|
|
13
|
+
};
|
|
14
|
+
return {
|
|
15
|
+
transform: `translate(-${index * 100}%, 0)`,
|
|
16
|
+
transition
|
|
17
|
+
};
|
|
18
|
+
}, [
|
|
19
|
+
index,
|
|
20
|
+
gap,
|
|
21
|
+
itemHeight,
|
|
22
|
+
vertical,
|
|
23
|
+
type
|
|
24
|
+
]);
|
|
25
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
26
|
+
style: {
|
|
27
|
+
...style,
|
|
28
|
+
...selfStyle
|
|
29
|
+
},
|
|
30
|
+
className: (0, classnames.default)("i-swiper-item", className, { "i-swiper-active": active }),
|
|
31
|
+
"data-index": itemIndex,
|
|
32
|
+
onClick: (e) => onItemClick?.(itemIndex, e),
|
|
33
|
+
children
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
exports.default = Item;
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.js","names":[],"sources":["../../../../packages/components/swiper/item.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport { ISwiperItem } from \"./type\";\n\nfunction Item(props: ISwiperItem) {\n\tconst {\n\t\tindex = 0,\n\t\titemIndex = 0,\n\t\tactive,\n\t\ttype,\n\t\ttransition,\n\t\tgap = 0,\n\t\titemHeight,\n\t\tvertical,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tonItemClick,\n\t} = props;\n\n\tconst selfStyle = useMemo(() => {\n\t\tif (type === \"normal\") {\n\t\t\treturn {\n\t\t\t\t[vertical ? \"paddingBlock\" : \"paddingInline\"]: gap / 2,\n\t\t\t\theight: itemHeight,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttransform: `translate(-${index * 100}%, 0)`,\n\t\t\ttransition,\n\t\t};\n\t}, [index, gap, itemHeight, vertical, type]);\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ ...style, ...selfStyle }}\n\t\t\tclassName={classNames(\"i-swiper-item\", className, {\n\t\t\t\t\"i-swiper-active\": active,\n\t\t\t})}\n\t\t\tdata-index={itemIndex}\n\t\t\tonClick={(e) => onItemClick?.(itemIndex, e)}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n\nexport default Item;\n"],"mappings":";;;;;;AAIA,SAAS,KAAK,OAAoB;CACjC,MAAM,EACL,QAAQ,GACR,YAAY,GACZ,QACA,MACA,YACA,MAAM,GACN,YACA,UACA,OACA,WACA,UACA,gBACG;CAEJ,MAAM,aAAA,GAAA,MAAA,eAA0B;AAC/B,MAAI,SAAS,SACZ,QAAO;IACL,WAAW,iBAAiB,kBAAkB,MAAM;GACrD,QAAQ;GACR;AAGF,SAAO;GACN,WAAW,cAAc,QAAQ,IAAI;GACrC;GACA;IACC;EAAC;EAAO;EAAK;EAAY;EAAU;EAAK,CAAC;AAE5C,QACC,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACC,OAAO;GAAE,GAAG;GAAO,GAAG;GAAW;EACjC,YAAA,GAAA,WAAA,SAAsB,iBAAiB,WAAW,EACjD,mBAAmB,QACnB,CAAC;EACF,cAAY;EACZ,UAAU,MAAM,cAAc,WAAW,EAAE;EAE1C;EACI,CAAA"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
2
|
+
const require_hooks = require("../../js/hooks.js");
|
|
3
|
+
const require_index = require("../icon/index.js");
|
|
4
|
+
const require_utils = require("../../js/utils.js");
|
|
5
|
+
const require_item = require("./item.js");
|
|
6
|
+
let classnames = require("classnames");
|
|
7
|
+
classnames = require_runtime.__toESM(classnames);
|
|
8
|
+
let react = require("react");
|
|
9
|
+
let _ricons_material = require("@ricons/material");
|
|
10
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
11
|
+
//#region packages/components/swiper/swiper.tsx
|
|
12
|
+
const Swiper = ((props) => {
|
|
13
|
+
const { ref, type = "normal", initial = 0, display = 1, scroll = 1, loop = true, vertical, prev = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, {
|
|
14
|
+
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.KeyboardArrowLeftRound, {}),
|
|
15
|
+
size: "2em"
|
|
16
|
+
}), next = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.default, {
|
|
17
|
+
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ricons_material.KeyboardArrowRightRound, {}),
|
|
18
|
+
size: "2em"
|
|
19
|
+
}), duration = 600, interval = 3e3, autoplay, pauseOnHover, arrow = true, reverse, draggable, dragOffset = 40, gap = 0, itemHeight, indicator, fixedIndicator, style, className, children, renderIndicator, onBeforeSwipe, onAfterSwipe, onItemClick } = props;
|
|
20
|
+
const listRef = (0, react.useRef)(null);
|
|
21
|
+
const timerRef = (0, react.useRef)(null);
|
|
22
|
+
const transition = `all ${duration / 1e3}s`;
|
|
23
|
+
const state = require_hooks.useReactive({
|
|
24
|
+
current: initial,
|
|
25
|
+
swipable: true,
|
|
26
|
+
transition: type === "fade" ? "none" : transition,
|
|
27
|
+
dragStart: 0,
|
|
28
|
+
dragging: false,
|
|
29
|
+
initialized: false
|
|
30
|
+
});
|
|
31
|
+
const items = (0, react.useMemo)(() => {
|
|
32
|
+
return react.Children.map(children, (node) => {
|
|
33
|
+
if (node.type !== require_item.default) return;
|
|
34
|
+
return node;
|
|
35
|
+
});
|
|
36
|
+
}, [children]);
|
|
37
|
+
const [displayItems, extra, size, total, listSize] = (0, react.useMemo)(() => {
|
|
38
|
+
const extra = type === "normal" && loop && items.length > display ? display + 1 : 0;
|
|
39
|
+
let list = [];
|
|
40
|
+
if (extra <= 0) list = [...items];
|
|
41
|
+
else {
|
|
42
|
+
const head = items.slice(0, extra);
|
|
43
|
+
list = [
|
|
44
|
+
...items.slice(-extra),
|
|
45
|
+
...items,
|
|
46
|
+
...head
|
|
47
|
+
];
|
|
48
|
+
}
|
|
49
|
+
const listSize = `${list.length / display * 100}%`;
|
|
50
|
+
return [
|
|
51
|
+
list,
|
|
52
|
+
extra,
|
|
53
|
+
items.length,
|
|
54
|
+
list.length,
|
|
55
|
+
listSize
|
|
56
|
+
];
|
|
57
|
+
}, [
|
|
58
|
+
display,
|
|
59
|
+
loop,
|
|
60
|
+
type,
|
|
61
|
+
items
|
|
62
|
+
]);
|
|
63
|
+
const offsetPercent = (0, react.useMemo)(() => -100 * (state.current + extra) / total, [state.current, total]);
|
|
64
|
+
const position = (0, react.useMemo)(() => {
|
|
65
|
+
if (size <= display || type === "fade") return;
|
|
66
|
+
return `translate3d(${vertical ? `0, ${offsetPercent}%` : `${offsetPercent}%, 0`}, 0)`;
|
|
67
|
+
}, [
|
|
68
|
+
offsetPercent,
|
|
69
|
+
vertical,
|
|
70
|
+
display,
|
|
71
|
+
size,
|
|
72
|
+
type
|
|
73
|
+
]);
|
|
74
|
+
const trackStyle = (0, react.useMemo)(() => {
|
|
75
|
+
if (!vertical || !itemHeight) return;
|
|
76
|
+
return { height: itemHeight * display };
|
|
77
|
+
}, [
|
|
78
|
+
vertical,
|
|
79
|
+
itemHeight,
|
|
80
|
+
display
|
|
81
|
+
]);
|
|
82
|
+
const indicatorsLoop = (0, react.useMemo)(() => {
|
|
83
|
+
return Array.from({ length: Math.ceil((size - display) / scroll) + 1 });
|
|
84
|
+
}, [loop, indicator]);
|
|
85
|
+
const clearTimer = () => {
|
|
86
|
+
clearTimeout(timerRef.current);
|
|
87
|
+
timerRef.current = null;
|
|
88
|
+
};
|
|
89
|
+
const swipeTo = (i) => {
|
|
90
|
+
if (!state.swipable || i === state.current) return;
|
|
91
|
+
state.swipable = false;
|
|
92
|
+
onBeforeSwipe?.(state.current);
|
|
93
|
+
let reset = false;
|
|
94
|
+
let next = i;
|
|
95
|
+
const lastDisplay = size - display;
|
|
96
|
+
if (loop) {
|
|
97
|
+
if (i > lastDisplay) {
|
|
98
|
+
reset = true;
|
|
99
|
+
i = size;
|
|
100
|
+
next = 0;
|
|
101
|
+
} else if (i < 0) {
|
|
102
|
+
reset = true;
|
|
103
|
+
i = -display;
|
|
104
|
+
next = lastDisplay;
|
|
105
|
+
}
|
|
106
|
+
} else {
|
|
107
|
+
next = require_utils.clamp(next, 0, lastDisplay);
|
|
108
|
+
i = next;
|
|
109
|
+
}
|
|
110
|
+
setTimeout(() => {
|
|
111
|
+
state.swipable = true;
|
|
112
|
+
}, duration + 32);
|
|
113
|
+
if (type === "fade") {
|
|
114
|
+
state.current = next;
|
|
115
|
+
onAfterSwipe?.(next);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
state.current = i;
|
|
119
|
+
if (!reset) {
|
|
120
|
+
if (autoplay) timerRef.current = setTimeout(swipeNext, interval);
|
|
121
|
+
setTimeout(() => {
|
|
122
|
+
onAfterSwipe?.(next);
|
|
123
|
+
}, duration + 12);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
setTimeout(() => {
|
|
127
|
+
state.transition = "none";
|
|
128
|
+
state.current = next;
|
|
129
|
+
onAfterSwipe?.(next);
|
|
130
|
+
if (autoplay) timerRef.current = setTimeout(swipeNext, interval);
|
|
131
|
+
setTimeout(() => {
|
|
132
|
+
state.transition = transition;
|
|
133
|
+
}, 60);
|
|
134
|
+
}, duration + 20);
|
|
135
|
+
};
|
|
136
|
+
const swipeNext = () => {
|
|
137
|
+
swipeTo(reverse ? state.current - scroll : state.current + scroll);
|
|
138
|
+
};
|
|
139
|
+
const swipePrev = () => {
|
|
140
|
+
swipeTo(reverse ? state.current + scroll : state.current - scroll);
|
|
141
|
+
};
|
|
142
|
+
const handleMouseDown = (e) => {
|
|
143
|
+
if (!draggable || !state.swipable || type === "fade") return;
|
|
144
|
+
e.stopPropagation();
|
|
145
|
+
e.preventDefault();
|
|
146
|
+
if (e.touches) e = e.touches[0];
|
|
147
|
+
Object.assign(state, {
|
|
148
|
+
dragStart: vertical ? e.clientY : e.clientX,
|
|
149
|
+
dragging: true,
|
|
150
|
+
transition: "none"
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
const handleMouseMove = (e) => {
|
|
154
|
+
if (!state.dragging || !listRef.current) return;
|
|
155
|
+
e.preventDefault();
|
|
156
|
+
if (e.touches) e = e.touches[0];
|
|
157
|
+
const offset = ((vertical ? e.clientY : e.clientX) - state.dragStart) * 61.8 / listRef.current[vertical ? "offsetHeight" : "offsetWidth"] + offsetPercent;
|
|
158
|
+
listRef.current.style.transform = `translate3d(${vertical ? `0, ${offset}%` : `${offset}%, 0`}, 0)`;
|
|
159
|
+
};
|
|
160
|
+
const handleMouseUp = (e) => {
|
|
161
|
+
if (!state.dragging || !listRef.current) return;
|
|
162
|
+
if (e.changedTouches) e = e.changedTouches[0];
|
|
163
|
+
const dragEnd = vertical ? e.clientY : e.clientX;
|
|
164
|
+
const part = listRef.current[vertical ? "offsetHeight" : "offsetWidth"] / total;
|
|
165
|
+
const offset = (dragEnd - state.dragStart) * .618;
|
|
166
|
+
const absOffset = Math.abs(offset);
|
|
167
|
+
if (absOffset > dragOffset) {
|
|
168
|
+
const p = Math.floor(absOffset / part) + (absOffset % part - dragOffset > 0 ? 1 : 0);
|
|
169
|
+
swipeTo(state.current + (offset > 0 ? -p : p));
|
|
170
|
+
}
|
|
171
|
+
listRef.current.style.transform = position || "";
|
|
172
|
+
Object.assign(state, {
|
|
173
|
+
dragging: false,
|
|
174
|
+
transition
|
|
175
|
+
});
|
|
176
|
+
};
|
|
177
|
+
const handleMouseOver = () => {
|
|
178
|
+
if (!pauseOnHover) return;
|
|
179
|
+
clearTimer();
|
|
180
|
+
};
|
|
181
|
+
const handleMouseLeave = () => {
|
|
182
|
+
if (!pauseOnHover) return;
|
|
183
|
+
clearTimer();
|
|
184
|
+
timerRef.current = setTimeout(swipeNext, interval);
|
|
185
|
+
};
|
|
186
|
+
require_hooks.useMouseMove(handleMouseMove);
|
|
187
|
+
require_hooks.useMouseUp(handleMouseUp);
|
|
188
|
+
(0, react.useImperativeHandle)(ref, () => ({
|
|
189
|
+
swipeTo,
|
|
190
|
+
swipeNext,
|
|
191
|
+
swipePrev
|
|
192
|
+
}));
|
|
193
|
+
(0, react.useEffect)(() => {
|
|
194
|
+
if (!autoplay) return;
|
|
195
|
+
timerRef.current = setTimeout(swipeNext, interval);
|
|
196
|
+
return () => {
|
|
197
|
+
clearTimeout(timerRef.current);
|
|
198
|
+
timerRef.current = null;
|
|
199
|
+
};
|
|
200
|
+
}, [autoplay, interval]);
|
|
201
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
202
|
+
style,
|
|
203
|
+
className: (0, classnames.default)("i-swiper", {
|
|
204
|
+
"i-swiper-vertical": vertical,
|
|
205
|
+
"i-swiper-initialized": state.initialized
|
|
206
|
+
}, className),
|
|
207
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
208
|
+
className: "i-swiper-track",
|
|
209
|
+
style: trackStyle,
|
|
210
|
+
onMouseOver: handleMouseOver,
|
|
211
|
+
onMouseLeave: handleMouseLeave,
|
|
212
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
213
|
+
ref: listRef,
|
|
214
|
+
className: (0, classnames.default)("i-swiper-list", { "i-swiper-fade": type === "fade" }),
|
|
215
|
+
style: {
|
|
216
|
+
[vertical ? "height" : "width"]: listSize,
|
|
217
|
+
transform: position,
|
|
218
|
+
transition: state.transition
|
|
219
|
+
},
|
|
220
|
+
onMouseDown: handleMouseDown,
|
|
221
|
+
onTouchStart: handleMouseDown,
|
|
222
|
+
children: displayItems.map((item, i) => {
|
|
223
|
+
const { props: itemProps } = item;
|
|
224
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_item.default, {
|
|
225
|
+
index: i,
|
|
226
|
+
itemIndex: (i - extra + size) % size,
|
|
227
|
+
active: i - extra === state.current,
|
|
228
|
+
type,
|
|
229
|
+
gap,
|
|
230
|
+
transition,
|
|
231
|
+
itemHeight,
|
|
232
|
+
vertical,
|
|
233
|
+
onItemClick,
|
|
234
|
+
...itemProps
|
|
235
|
+
}, i);
|
|
236
|
+
})
|
|
237
|
+
}), arrow && size > 1 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(loop || state.current !== 0) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
|
|
238
|
+
className: "i-swiper-arrow i-swiper-prev",
|
|
239
|
+
onClick: swipePrev,
|
|
240
|
+
children: prev
|
|
241
|
+
}), (loop || state.current < size - display) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
|
|
242
|
+
className: "i-swiper-arrow i-swiper-next",
|
|
243
|
+
onClick: swipeNext,
|
|
244
|
+
children: next
|
|
245
|
+
})] })]
|
|
246
|
+
}), indicator && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
247
|
+
className: (0, classnames.default)("i-swiper-indicators", { "i-swiper-indicators-fixed": fixedIndicator }),
|
|
248
|
+
children: indicatorsLoop.map((_, i) => {
|
|
249
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
|
|
250
|
+
className: (0, classnames.default)("i-swiper-indicator", { "i-indicator-active": i === Math[loop ? "floor" : "ceil"]((state.current + size) % size / scroll) }),
|
|
251
|
+
onClick: () => swipeTo(i * scroll),
|
|
252
|
+
children: renderIndicator?.(i)
|
|
253
|
+
}, i);
|
|
254
|
+
})
|
|
255
|
+
})]
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
Swiper.Item = require_item.default;
|
|
259
|
+
//#endregion
|
|
260
|
+
exports.default = Swiper;
|
|
261
|
+
|
|
262
|
+
//# sourceMappingURL=swiper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swiper.js","names":[],"sources":["../../../../packages/components/swiper/swiper.tsx"],"sourcesContent":["import {\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport {\n\tChildren,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n} from \"react\";\nimport { useMouseMove, useMouseUp, useReactive } from \"../../js/hooks\";\nimport { clamp } from \"../../js/utils\";\nimport Icon from \"../icon\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { CompositionSwiper, ISwiper } from \"./type\";\n\nconst Swiper = ((props: ISwiper) => {\n\tconst {\n\t\tref,\n\t\ttype = \"normal\",\n\t\tinitial = 0,\n\t\tdisplay = 1,\n\t\tscroll = 1,\n\t\tloop = true,\n\t\tvertical,\n\t\tprev = <Icon icon={<KeyboardArrowLeftRound />} size='2em' />,\n\t\tnext = <Icon icon={<KeyboardArrowRightRound />} size='2em' />,\n\t\tduration = 600,\n\t\tinterval = 3000,\n\t\tautoplay,\n\t\tpauseOnHover,\n\t\tarrow = true,\n\t\treverse,\n\t\tdraggable,\n\t\tdragOffset = 40,\n\t\tgap = 0,\n\t\titemHeight,\n\t\tindicator,\n\t\tfixedIndicator,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\trenderIndicator,\n\t\tonBeforeSwipe,\n\t\tonAfterSwipe,\n\t\tonItemClick,\n\t} = props;\n\n\tconst listRef = useRef<HTMLDivElement>(null);\n\tconst timerRef = useRef<any>(null);\n\tconst transition = `all ${duration / 1000}s`;\n\tconst state = useReactive({\n\t\tcurrent: initial,\n\t\tswipable: true,\n\t\ttransition: type === \"fade\" ? \"none\" : transition,\n\t\tdragStart: 0,\n\t\tdragging: false,\n\t\tinitialized: false,\n\t});\n\n\tconst items = useMemo(() => {\n\t\treturn Children.map(children, (node: any) => {\n\t\t\tif (node.type !== Item) return;\n\n\t\t\treturn node;\n\t\t});\n\t}, [children]);\n\n\tconst [displayItems, extra, size, total, listSize] = useMemo(() => {\n\t\tconst extra =\n\t\t\ttype === \"normal\" && loop && items.length > display\n\t\t\t\t? display + 1\n\t\t\t\t: 0;\n\t\tlet list: any = [];\n\n\t\tif (extra <= 0) {\n\t\t\tlist = [...items];\n\t\t} else {\n\t\t\tconst head = items.slice(0, extra);\n\t\t\tconst tail = items.slice(-extra);\n\t\t\tlist = [...tail, ...items, ...head];\n\t\t}\n\n\t\tconst listSize = `${(list.length / display) * 100}%`;\n\n\t\treturn [list, extra, items.length, list.length, listSize];\n\t}, [display, loop, type, items]);\n\n\tconst offsetPercent = useMemo(\n\t\t() => (-100 * (state.current + extra)) / total,\n\t\t[state.current, total]\n\t);\n\n\tconst position = useMemo(() => {\n\t\tif (size <= display || type === \"fade\") return;\n\n\t\tconst offset = vertical\n\t\t\t? `0, ${offsetPercent}%`\n\t\t\t: `${offsetPercent}%, 0`;\n\t\treturn `translate3d(${offset}, 0)`;\n\t}, [offsetPercent, vertical, display, size, type]);\n\n\tconst trackStyle = useMemo(() => {\n\t\tif (!vertical || !itemHeight) return;\n\n\t\treturn {\n\t\t\theight: itemHeight * display,\n\t\t};\n\t}, [vertical, itemHeight, display]);\n\n\tconst indicatorsLoop = useMemo(() => {\n\t\treturn Array.from({\n\t\t\tlength: Math.ceil((size - display) / scroll) + 1,\n\t\t});\n\t}, [loop, indicator]);\n\n\tconst clearTimer = () => {\n\t\tclearTimeout(timerRef.current);\n\t\ttimerRef.current = null;\n\t};\n\n\tconst swipeTo = (i: number) => {\n\t\tif (!state.swipable || i === state.current) return;\n\t\tstate.swipable = false;\n\t\tonBeforeSwipe?.(state.current);\n\n\t\tlet reset = false;\n\t\tlet next = i;\n\t\tconst lastDisplay = size - display;\n\n\t\tif (loop) {\n\t\t\tif (i > lastDisplay) {\n\t\t\t\treset = true;\n\t\t\t\ti = size;\n\t\t\t\tnext = 0;\n\t\t\t} else if (i < 0) {\n\t\t\t\treset = true;\n\t\t\t\ti = -display;\n\t\t\t\tnext = lastDisplay;\n\t\t\t}\n\t\t} else {\n\t\t\tnext = clamp(next, 0, lastDisplay);\n\t\t\ti = next;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tstate.swipable = true;\n\t\t}, duration + 32);\n\n\t\tif (type === \"fade\") {\n\t\t\tstate.current = next;\n\t\t\tonAfterSwipe?.(next);\n\t\t\treturn;\n\t\t}\n\n\t\tstate.current = i;\n\n\t\tif (!reset) {\n\t\t\tif (autoplay) {\n\t\t\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\t\t\t}\n\t\t\tsetTimeout(() => {\n\t\t\t\tonAfterSwipe?.(next);\n\t\t\t}, duration + 12);\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tstate.transition = \"none\";\n\t\t\tstate.current = next;\n\t\t\tonAfterSwipe?.(next);\n\t\t\tif (autoplay) {\n\t\t\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\t\t\t}\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.transition = transition;\n\t\t\t}, 60);\n\t\t}, duration + 20);\n\t};\n\tconst swipeNext = () => {\n\t\tswipeTo(reverse ? state.current - scroll : state.current + scroll);\n\t};\n\n\tconst swipePrev = () => {\n\t\tswipeTo(reverse ? state.current + scroll : state.current - scroll);\n\t};\n\n\tconst handleMouseDown = (e) => {\n\t\tif (!draggable || !state.swipable || type === \"fade\") return;\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\n\t\tif (e.touches) {\n\t\t\te = e.touches[0];\n\t\t}\n\n\t\tObject.assign(state, {\n\t\t\tdragStart: vertical ? e.clientY : e.clientX,\n\t\t\tdragging: true,\n\t\t\ttransition: \"none\",\n\t\t});\n\t};\n\n\tconst handleMouseMove = (e) => {\n\t\tif (!state.dragging || !listRef.current) return;\n\t\te.preventDefault();\n\n\t\tif (e.touches) {\n\t\t\te = e.touches[0];\n\t\t}\n\n\t\tconst dragEnd = vertical ? e.clientY : e.clientX;\n\t\tconst offset =\n\t\t\t((dragEnd - state.dragStart) * 61.8) /\n\t\t\t\tlistRef.current[vertical ? \"offsetHeight\" : \"offsetWidth\"] +\n\t\t\toffsetPercent;\n\n\t\tlistRef.current.style.transform = `translate3d(${\n\t\t\tvertical ? `0, ${offset}%` : `${offset}%, 0`\n\t\t}, 0)`;\n\t};\n\n\tconst handleMouseUp = (e) => {\n\t\tif (!state.dragging || !listRef.current) return;\n\n\t\tif (e.changedTouches) {\n\t\t\te = e.changedTouches[0];\n\t\t}\n\n\t\tconst dragEnd = vertical ? e.clientY : e.clientX;\n\t\tconst part =\n\t\t\tlistRef.current[vertical ? \"offsetHeight\" : \"offsetWidth\"] / total;\n\t\tconst offset = (dragEnd - state.dragStart) * 0.618;\n\t\tconst absOffset = Math.abs(offset);\n\n\t\tif (absOffset > dragOffset) {\n\t\t\tconst base = Math.floor(absOffset / part);\n\t\t\tconst mod = (absOffset % part) - dragOffset > 0 ? 1 : 0;\n\t\t\tconst p = base + mod;\n\n\t\t\tlet to = state.current + (offset > 0 ? -p : p);\n\n\t\t\tswipeTo(to);\n\t\t}\n\n\t\tlistRef.current.style.transform = position || \"\";\n\n\t\tObject.assign(state, {\n\t\t\tdragging: false,\n\t\t\ttransition,\n\t\t});\n\t};\n\n\tconst handleMouseOver = () => {\n\t\tif (!pauseOnHover) return;\n\t\tclearTimer();\n\t};\n\n\tconst handleMouseLeave = () => {\n\t\tif (!pauseOnHover) return;\n\t\tclearTimer();\n\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\t};\n\n\tuseMouseMove(handleMouseMove);\n\tuseMouseUp(handleMouseUp);\n\n\tuseImperativeHandle(ref, () => ({\n\t\tswipeTo,\n\t\tswipeNext,\n\t\tswipePrev,\n\t}));\n\n\tuseEffect(() => {\n\t\tif (!autoplay) return;\n\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\n\t\treturn () => {\n\t\t\tclearTimeout(timerRef.current);\n\t\t\ttimerRef.current = null;\n\t\t};\n\t}, [autoplay, interval]);\n\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-swiper\",\n\t\t\t\t{\n\t\t\t\t\t\"i-swiper-vertical\": vertical,\n\t\t\t\t\t\"i-swiper-initialized\": state.initialized,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName='i-swiper-track'\n\t\t\t\tstyle={trackStyle}\n\t\t\t\tonMouseOver={handleMouseOver}\n\t\t\t\tonMouseLeave={handleMouseLeave}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={listRef}\n\t\t\t\t\tclassName={classNames(\"i-swiper-list\", {\n\t\t\t\t\t\t\"i-swiper-fade\": type === \"fade\",\n\t\t\t\t\t})}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t[vertical ? \"height\" : \"width\"]: listSize,\n\t\t\t\t\t\ttransform: position,\n\t\t\t\t\t\ttransition: state.transition,\n\t\t\t\t\t}}\n\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\tonTouchStart={handleMouseDown}\n\t\t\t\t>\n\t\t\t\t\t{displayItems.map((item, i) => {\n\t\t\t\t\t\tconst { props: itemProps } = item;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Item\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\titemIndex={(i - extra + size) % size}\n\t\t\t\t\t\t\t\tactive={i - extra === state.current}\n\t\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\t\tgap={gap}\n\t\t\t\t\t\t\t\ttransition={transition}\n\t\t\t\t\t\t\t\titemHeight={itemHeight}\n\t\t\t\t\t\t\t\tvertical={vertical}\n\t\t\t\t\t\t\t\tonItemClick={onItemClick}\n\t\t\t\t\t\t\t\t{...itemProps}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\n\t\t\t\t{arrow && size > 1 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{(loop || state.current !== 0) && (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName='i-swiper-arrow i-swiper-prev'\n\t\t\t\t\t\t\t\tonClick={swipePrev}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{prev}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(loop || state.current < size - display) && (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName='i-swiper-arrow i-swiper-next'\n\t\t\t\t\t\t\t\tonClick={swipeNext}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{next}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{indicator && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-swiper-indicators\", {\n\t\t\t\t\t\t\"i-swiper-indicators-fixed\": fixedIndicator,\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{indicatorsLoop.map((_, i) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-swiper-indicator\", {\n\t\t\t\t\t\t\t\t\t\"i-indicator-active\":\n\t\t\t\t\t\t\t\t\t\ti ===\n\t\t\t\t\t\t\t\t\t\tMath[loop ? \"floor\" : \"ceil\"](\n\t\t\t\t\t\t\t\t\t\t\t((state.current + size) % size) /\n\t\t\t\t\t\t\t\t\t\t\t\tscroll\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => swipeTo(i * scroll)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderIndicator?.(i)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}) as CompositionSwiper;\n\nSwiper.Item = Item;\n\nexport default Swiper;\n"],"mappings":""}
|