@ioca/react 1.4.78 → 1.4.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/_virtual/_rolldown/runtime.cjs +23 -0
- package/lib/cjs/components/affix/affix.cjs +66 -0
- package/lib/cjs/components/affix/affix.cjs.map +1 -0
- package/lib/cjs/components/affix/index.cjs +6 -0
- package/lib/cjs/components/affix/index.cjs.map +1 -0
- package/lib/cjs/components/affix/totop.cjs +25 -0
- package/lib/cjs/components/affix/totop.cjs.map +1 -0
- package/lib/cjs/components/badge/badge.cjs +24 -0
- package/lib/cjs/components/badge/badge.cjs.map +1 -0
- package/lib/cjs/components/badge/index.cjs +6 -0
- package/lib/cjs/components/badge/index.cjs.map +1 -0
- package/lib/cjs/components/button/button.cjs +64 -0
- package/lib/cjs/components/button/button.cjs.map +1 -0
- package/lib/cjs/components/button/confirm.cjs +60 -0
- package/lib/cjs/components/button/confirm.cjs.map +1 -0
- package/lib/cjs/components/button/group.cjs +26 -0
- package/lib/cjs/components/button/group.cjs.map +1 -0
- package/lib/cjs/components/button/index.cjs +6 -0
- package/lib/cjs/components/button/index.cjs.map +1 -0
- package/lib/cjs/components/button/toggle.cjs +46 -0
- package/lib/cjs/components/button/toggle.cjs.map +1 -0
- package/lib/cjs/components/card/card.cjs +33 -0
- package/lib/cjs/components/card/card.cjs.map +1 -0
- package/lib/cjs/components/card/index.cjs +6 -0
- package/lib/cjs/components/card/index.cjs.map +1 -0
- package/lib/cjs/components/checkbox/checkbox.cjs +66 -0
- package/lib/cjs/components/checkbox/checkbox.cjs.map +1 -0
- package/lib/cjs/components/checkbox/index.cjs +6 -0
- package/lib/cjs/components/checkbox/index.cjs.map +1 -0
- package/lib/cjs/components/checkbox/item.cjs +59 -0
- package/lib/cjs/components/checkbox/item.cjs.map +1 -0
- package/lib/cjs/components/collapse/collapse.cjs +84 -0
- package/lib/cjs/components/collapse/collapse.cjs.map +1 -0
- package/lib/cjs/components/collapse/index.cjs +6 -0
- package/lib/cjs/components/collapse/index.cjs.map +1 -0
- package/lib/cjs/components/collapse/item.cjs +10 -0
- package/lib/cjs/components/collapse/item.cjs.map +1 -0
- package/lib/cjs/components/datagrid/cell.cjs +39 -0
- package/lib/cjs/components/datagrid/cell.cjs.map +1 -0
- package/lib/cjs/components/datagrid/datagrid.cjs +140 -0
- package/lib/cjs/components/datagrid/datagrid.cjs.map +1 -0
- package/lib/cjs/components/datagrid/index.cjs +6 -0
- package/lib/cjs/components/datagrid/index.cjs.map +1 -0
- package/lib/cjs/components/datagrid/resize.cjs +42 -0
- package/lib/cjs/components/datagrid/resize.cjs.map +1 -0
- package/lib/cjs/components/datagrid/row.cjs +68 -0
- package/lib/cjs/components/datagrid/row.cjs.map +1 -0
- package/lib/cjs/components/datagrid/sorter.cjs +28 -0
- package/lib/cjs/components/datagrid/sorter.cjs.map +1 -0
- package/lib/cjs/components/description/description.cjs +43 -0
- package/lib/cjs/components/description/description.cjs.map +1 -0
- package/lib/cjs/components/description/index.cjs +6 -0
- package/lib/cjs/components/description/index.cjs.map +1 -0
- package/lib/cjs/components/drawer/drawer.cjs +84 -0
- package/lib/cjs/components/drawer/drawer.cjs.map +1 -0
- package/lib/cjs/components/drawer/index.cjs +6 -0
- package/lib/cjs/components/drawer/index.cjs.map +1 -0
- package/lib/cjs/components/dropdown/dropdown.cjs +38 -0
- package/lib/cjs/components/dropdown/dropdown.cjs.map +1 -0
- package/lib/cjs/components/dropdown/index.cjs +6 -0
- package/lib/cjs/components/dropdown/index.cjs.map +1 -0
- package/lib/cjs/components/dropdown/item.cjs +36 -0
- package/lib/cjs/components/dropdown/item.cjs.map +1 -0
- package/lib/cjs/components/editor/controls.cjs +89 -0
- package/lib/cjs/components/editor/controls.cjs.map +1 -0
- package/lib/cjs/components/editor/editor.cjs +91 -0
- package/lib/cjs/components/editor/editor.cjs.map +1 -0
- package/lib/cjs/components/editor/index.cjs +6 -0
- package/lib/cjs/components/editor/index.cjs.map +1 -0
- package/lib/cjs/components/flex/flex.cjs +31 -0
- package/lib/cjs/components/flex/flex.cjs.map +1 -0
- package/lib/cjs/components/flex/index.cjs +6 -0
- package/lib/cjs/components/flex/index.cjs.map +1 -0
- package/lib/cjs/components/form/context.cjs +7 -0
- package/lib/cjs/components/form/context.cjs.map +1 -0
- package/lib/cjs/components/form/field.cjs +71 -0
- package/lib/cjs/components/form/field.cjs.map +1 -0
- package/lib/cjs/components/form/form.cjs +64 -0
- package/lib/cjs/components/form/form.cjs.map +1 -0
- package/lib/cjs/components/form/index.cjs +6 -0
- package/lib/cjs/components/form/index.cjs.map +1 -0
- package/lib/cjs/components/form/useConfig.cjs +45 -0
- package/lib/cjs/components/form/useConfig.cjs.map +1 -0
- package/lib/cjs/components/form/useForm.cjs +123 -0
- package/lib/cjs/components/form/useForm.cjs.map +1 -0
- package/lib/cjs/components/icon/icon.cjs +24 -0
- package/lib/cjs/components/icon/icon.cjs.map +1 -0
- package/lib/cjs/components/icon/index.cjs +6 -0
- package/lib/cjs/components/icon/index.cjs.map +1 -0
- package/lib/cjs/components/image/image.cjs +86 -0
- package/lib/cjs/components/image/image.cjs.map +1 -0
- package/lib/cjs/components/image/index.cjs +6 -0
- package/lib/cjs/components/image/index.cjs.map +1 -0
- package/lib/cjs/components/image/list.cjs +49 -0
- package/lib/cjs/components/image/list.cjs.map +1 -0
- package/lib/cjs/components/input/container.cjs +30 -0
- package/lib/cjs/components/input/container.cjs.map +1 -0
- package/lib/cjs/components/input/index.cjs +6 -0
- package/lib/cjs/components/input/index.cjs.map +1 -0
- package/lib/cjs/components/input/input.cjs +113 -0
- package/lib/cjs/components/input/input.cjs.map +1 -0
- package/lib/cjs/components/input/number.cjs +138 -0
- package/lib/cjs/components/input/number.cjs.map +1 -0
- package/lib/cjs/components/input/range.cjs +134 -0
- package/lib/cjs/components/input/range.cjs.map +1 -0
- package/lib/cjs/components/input/textarea.cjs +61 -0
- package/lib/cjs/components/input/textarea.cjs.map +1 -0
- package/lib/cjs/components/list/index.cjs +6 -0
- package/lib/cjs/components/list/index.cjs.map +1 -0
- package/lib/cjs/components/list/item.cjs +30 -0
- package/lib/cjs/components/list/item.cjs.map +1 -0
- package/lib/cjs/components/list/list.cjs +30 -0
- package/lib/cjs/components/list/list.cjs.map +1 -0
- package/lib/cjs/components/loading/index.cjs +6 -0
- package/lib/cjs/components/loading/index.cjs.map +1 -0
- package/lib/cjs/components/loading/loading.cjs +39 -0
- package/lib/cjs/components/loading/loading.cjs.map +1 -0
- package/lib/cjs/components/message/index.cjs +6 -0
- package/lib/cjs/components/message/index.cjs.map +1 -0
- package/lib/cjs/components/message/message.cjs +197 -0
- package/lib/cjs/components/message/message.cjs.map +1 -0
- package/lib/cjs/components/modal/content.cjs +57 -0
- package/lib/cjs/components/modal/content.cjs.map +1 -0
- package/lib/cjs/components/modal/context.cjs +7 -0
- package/lib/cjs/components/modal/context.cjs.map +1 -0
- package/lib/cjs/components/modal/hookModal.cjs +28 -0
- package/lib/cjs/components/modal/hookModal.cjs.map +1 -0
- package/lib/cjs/components/modal/index.cjs +6 -0
- package/lib/cjs/components/modal/index.cjs.map +1 -0
- package/lib/cjs/components/modal/modal.cjs +117 -0
- package/lib/cjs/components/modal/modal.cjs.map +1 -0
- package/lib/cjs/components/modal/useModal.cjs +39 -0
- package/lib/cjs/components/modal/useModal.cjs.map +1 -0
- package/lib/cjs/components/pagination/index.cjs +6 -0
- package/lib/cjs/components/pagination/index.cjs.map +1 -0
- package/lib/cjs/components/pagination/page.cjs +31 -0
- package/lib/cjs/components/pagination/page.cjs.map +1 -0
- package/lib/cjs/components/pagination/pagination.cjs +86 -0
- package/lib/cjs/components/pagination/pagination.cjs.map +1 -0
- package/lib/cjs/components/picker/colors/footer.cjs +64 -0
- package/lib/cjs/components/picker/colors/footer.cjs.map +1 -0
- package/lib/cjs/components/picker/colors/handle.cjs +25 -0
- package/lib/cjs/components/picker/colors/handle.cjs.map +1 -0
- package/lib/cjs/components/picker/colors/index.cjs +81 -0
- package/lib/cjs/components/picker/colors/index.cjs.map +1 -0
- package/lib/cjs/components/picker/dates/dates.cjs +68 -0
- package/lib/cjs/components/picker/dates/dates.cjs.map +1 -0
- package/lib/cjs/components/picker/dates/index.cjs +97 -0
- package/lib/cjs/components/picker/dates/index.cjs.map +1 -0
- package/lib/cjs/components/picker/dates/panel.cjs +151 -0
- package/lib/cjs/components/picker/dates/panel.cjs.map +1 -0
- package/lib/cjs/components/picker/time/index.cjs +73 -0
- package/lib/cjs/components/picker/time/index.cjs.map +1 -0
- package/lib/cjs/components/picker/time/item.cjs +20 -0
- package/lib/cjs/components/picker/time/item.cjs.map +1 -0
- package/lib/cjs/components/picker/time/panel.cjs +144 -0
- package/lib/cjs/components/picker/time/panel.cjs.map +1 -0
- package/lib/cjs/components/popconfirm/index.cjs +6 -0
- package/lib/cjs/components/popconfirm/index.cjs.map +1 -0
- package/lib/cjs/components/popconfirm/popconfirm.cjs +86 -0
- package/lib/cjs/components/popconfirm/popconfirm.cjs.map +1 -0
- package/lib/cjs/components/popup/content.cjs +56 -0
- package/lib/cjs/components/popup/content.cjs.map +1 -0
- package/lib/cjs/components/popup/index.cjs +6 -0
- package/lib/cjs/components/popup/index.cjs.map +1 -0
- package/lib/cjs/components/popup/popup.cjs +425 -0
- package/lib/cjs/components/popup/popup.cjs.map +1 -0
- package/lib/cjs/components/progress/circle.cjs +45 -0
- package/lib/cjs/components/progress/circle.cjs.map +1 -0
- package/lib/cjs/components/progress/index.cjs +6 -0
- package/lib/cjs/components/progress/index.cjs.map +1 -0
- package/lib/cjs/components/progress/line.cjs +27 -0
- package/lib/cjs/components/progress/line.cjs.map +1 -0
- package/lib/cjs/components/progress/progress.cjs +100 -0
- package/lib/cjs/components/progress/progress.cjs.map +1 -0
- package/lib/cjs/components/radio/index.cjs +6 -0
- package/lib/cjs/components/radio/index.cjs.map +1 -0
- package/lib/cjs/components/radio/item.cjs +34 -0
- package/lib/cjs/components/radio/item.cjs.map +1 -0
- package/lib/cjs/components/radio/radio.cjs +62 -0
- package/lib/cjs/components/radio/radio.cjs.map +1 -0
- package/lib/cjs/components/resizable/index.cjs +6 -0
- package/lib/cjs/components/resizable/index.cjs.map +1 -0
- package/lib/cjs/components/resizable/resizable.cjs +81 -0
- package/lib/cjs/components/resizable/resizable.cjs.map +1 -0
- package/lib/cjs/components/river/index.cjs +6 -0
- package/lib/cjs/components/river/index.cjs.map +1 -0
- package/lib/cjs/components/river/river.cjs +116 -0
- package/lib/cjs/components/river/river.cjs.map +1 -0
- package/lib/cjs/components/select/index.cjs +6 -0
- package/lib/cjs/components/select/index.cjs.map +1 -0
- package/lib/cjs/components/select/options.cjs +76 -0
- package/lib/cjs/components/select/options.cjs.map +1 -0
- package/lib/cjs/components/select/select.cjs +155 -0
- package/lib/cjs/components/select/select.cjs.map +1 -0
- package/lib/cjs/components/step/divider.cjs +10 -0
- package/lib/cjs/components/step/divider.cjs.map +1 -0
- package/lib/cjs/components/step/index.cjs +6 -0
- package/lib/cjs/components/step/index.cjs.map +1 -0
- package/lib/cjs/components/step/item.cjs +60 -0
- package/lib/cjs/components/step/item.cjs.map +1 -0
- package/lib/cjs/components/step/step.cjs +42 -0
- package/lib/cjs/components/step/step.cjs.map +1 -0
- package/lib/cjs/components/swiper/index.cjs +6 -0
- package/lib/cjs/components/swiper/index.cjs.map +1 -0
- package/lib/cjs/components/swiper/item.cjs +39 -0
- package/lib/cjs/components/swiper/item.cjs.map +1 -0
- package/lib/cjs/components/swiper/swiper.cjs +262 -0
- package/lib/cjs/components/swiper/swiper.cjs.map +1 -0
- package/lib/cjs/components/tabs/index.cjs +6 -0
- package/lib/cjs/components/tabs/index.cjs.map +1 -0
- package/lib/cjs/components/tabs/item.cjs +10 -0
- package/lib/cjs/components/tabs/item.cjs.map +1 -0
- package/lib/cjs/components/tabs/tabs.cjs +272 -0
- package/lib/cjs/components/tabs/tabs.cjs.map +1 -0
- package/lib/cjs/components/tag/index.cjs +6 -0
- package/lib/cjs/components/tag/index.cjs.map +1 -0
- package/lib/cjs/components/tag/tag.cjs +32 -0
- package/lib/cjs/components/tag/tag.cjs.map +1 -0
- package/lib/cjs/components/text/highlight.cjs +35 -0
- package/lib/cjs/components/text/highlight.cjs.map +1 -0
- package/lib/cjs/components/text/index.cjs +6 -0
- package/lib/cjs/components/text/index.cjs.map +1 -0
- package/lib/cjs/components/text/number.cjs +32 -0
- package/lib/cjs/components/text/number.cjs.map +1 -0
- package/lib/cjs/components/text/text.cjs +39 -0
- package/lib/cjs/components/text/text.cjs.map +1 -0
- package/lib/cjs/components/text/time.cjs +24 -0
- package/lib/cjs/components/text/time.cjs.map +1 -0
- package/lib/cjs/components/tree/index.cjs +6 -0
- package/lib/cjs/components/tree/index.cjs.map +1 -0
- package/lib/cjs/components/tree/item.cjs +136 -0
- package/lib/cjs/components/tree/item.cjs.map +1 -0
- package/lib/cjs/components/tree/tree.cjs +127 -0
- package/lib/cjs/components/tree/tree.cjs.map +1 -0
- package/lib/cjs/components/upload/index.cjs +6 -0
- package/lib/cjs/components/upload/index.cjs.map +1 -0
- package/lib/cjs/components/upload/renderFile.cjs +99 -0
- package/lib/cjs/components/upload/renderFile.cjs.map +1 -0
- package/lib/cjs/components/upload/upload.cjs +165 -0
- package/lib/cjs/components/upload/upload.cjs.map +1 -0
- package/lib/cjs/components/utils/empty/index.cjs +17 -0
- package/lib/cjs/components/utils/empty/index.cjs.map +1 -0
- package/lib/cjs/components/utils/helpericon/helpericon.cjs +24 -0
- package/lib/cjs/components/utils/helpericon/helpericon.cjs.map +1 -0
- package/lib/cjs/components/utils/helpericon/index.cjs +6 -0
- package/lib/cjs/components/utils/helpericon/index.cjs.map +1 -0
- package/lib/cjs/components/video/index.cjs +6 -0
- package/lib/cjs/components/video/index.cjs.map +1 -0
- package/lib/cjs/components/video/video.cjs +237 -0
- package/lib/cjs/components/video/video.cjs.map +1 -0
- package/lib/cjs/index.cjs +83 -0
- package/lib/cjs/js/hooks.cjs +259 -0
- package/lib/cjs/js/hooks.cjs.map +1 -0
- package/lib/cjs/js/usePreview/content.cjs +197 -0
- package/lib/cjs/js/usePreview/content.cjs.map +1 -0
- package/lib/cjs/js/usePreview/index.cjs +39 -0
- package/lib/cjs/js/usePreview/index.cjs.map +1 -0
- package/lib/cjs/js/usePreview/renderFile.cjs +28 -0
- package/lib/cjs/js/usePreview/renderFile.cjs.map +1 -0
- package/lib/cjs/js/usePreview/type.cjs +15 -0
- package/lib/cjs/js/usePreview/type.cjs.map +1 -0
- package/lib/cjs/js/useRipple/index.cjs +45 -0
- package/lib/cjs/js/useRipple/index.cjs.map +1 -0
- package/lib/cjs/js/useTheme/index.cjs +30 -0
- package/lib/cjs/js/useTheme/index.cjs.map +1 -0
- package/lib/cjs/js/utils.cjs +284 -0
- package/lib/cjs/js/utils.cjs.map +1 -0
- package/lib/es/components/affix/affix.js +1 -1
- package/lib/es/components/affix/affix.js.map +1 -1
- package/lib/es/components/affix/totop.js +1 -1
- package/lib/es/components/affix/totop.js.map +1 -1
- package/lib/es/components/badge/badge.js.map +1 -1
- package/lib/es/components/button/button.js.map +1 -1
- package/lib/es/components/card/card.js.map +1 -1
- package/lib/es/components/checkbox/checkbox.js.map +1 -1
- package/lib/es/components/collapse/collapse.js +1 -2
- package/lib/es/components/collapse/collapse.js.map +1 -1
- package/lib/es/components/datagrid/datagrid.js.map +1 -1
- package/lib/es/components/description/description.js.map +1 -1
- package/lib/es/components/drawer/drawer.js.map +1 -1
- package/lib/es/components/dropdown/dropdown.js.map +1 -1
- package/lib/es/components/editor/controls.js +1 -7
- package/lib/es/components/editor/controls.js.map +1 -1
- package/lib/es/components/editor/editor.js.map +1 -1
- package/lib/es/components/flex/flex.js.map +1 -1
- package/lib/es/components/form/field.js +1 -1
- package/lib/es/components/form/form.js +1 -1
- package/lib/es/components/form/form.js.map +1 -1
- package/lib/es/components/form/useForm.js +2 -2
- package/lib/es/components/icon/icon.js.map +1 -1
- package/lib/es/components/image/image.js.map +1 -1
- package/lib/es/components/input/input.js +1 -2
- package/lib/es/components/input/input.js.map +1 -1
- package/lib/es/components/input/number.js +1 -3
- package/lib/es/components/input/number.js.map +1 -1
- package/lib/es/components/input/range.js +1 -3
- package/lib/es/components/input/range.js.map +1 -1
- package/lib/es/components/input/textarea.js.map +1 -1
- package/lib/es/components/list/list.js.map +1 -1
- package/lib/es/components/loading/loading.js.map +1 -1
- package/lib/es/components/message/message.js +2 -2
- package/lib/es/components/message/message.js.map +1 -1
- package/lib/es/components/modal/content.js.map +1 -1
- package/lib/es/components/modal/modal.js.map +1 -1
- package/lib/es/components/pagination/pagination.js +1 -3
- package/lib/es/components/pagination/pagination.js.map +1 -1
- package/lib/es/components/picker/colors/footer.js +1 -1
- package/lib/es/components/picker/colors/footer.js.map +1 -1
- package/lib/es/components/picker/colors/index.js.map +1 -1
- package/lib/es/components/picker/dates/index.js +2 -2
- package/lib/es/components/picker/dates/index.js.map +1 -1
- package/lib/es/components/picker/dates/panel.js +2 -3
- package/lib/es/components/picker/dates/panel.js.map +1 -1
- package/lib/es/components/picker/time/index.js +1 -1
- package/lib/es/components/picker/time/index.js.map +1 -1
- package/lib/es/components/picker/time/panel.js.map +1 -1
- package/lib/es/components/popconfirm/popconfirm.js +1 -1
- package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
- package/lib/es/components/popup/popup.js +1 -1
- package/lib/es/components/popup/popup.js.map +1 -1
- package/lib/es/components/progress/progress.js.map +1 -1
- package/lib/es/components/radio/radio.js.map +1 -1
- package/lib/es/components/resizable/resizable.js.map +1 -1
- package/lib/es/components/river/river.js.map +1 -1
- package/lib/es/components/select/options.js +1 -2
- package/lib/es/components/select/options.js.map +1 -1
- package/lib/es/components/select/select.js +2 -2
- package/lib/es/components/select/select.js.map +1 -1
- package/lib/es/components/step/divider.js.map +1 -1
- package/lib/es/components/step/item.js +1 -1
- package/lib/es/components/step/item.js.map +1 -1
- package/lib/es/components/step/step.js.map +1 -1
- package/lib/es/components/swiper/swiper.js +1 -2
- package/lib/es/components/swiper/swiper.js.map +1 -1
- package/lib/es/components/tabs/tabs.js +1 -1
- package/lib/es/components/tabs/tabs.js.map +1 -1
- package/lib/es/components/tag/tag.js.map +1 -1
- package/lib/es/components/text/highlight.js +1 -1
- package/lib/es/components/text/text.js.map +1 -1
- package/lib/es/components/tree/item.js +1 -1
- package/lib/es/components/tree/item.js.map +1 -1
- package/lib/es/components/tree/tree.js.map +1 -1
- package/lib/es/components/upload/renderFile.js +2 -2
- package/lib/es/components/upload/renderFile.js.map +1 -1
- package/lib/es/components/upload/upload.js +2 -3
- package/lib/es/components/upload/upload.js.map +1 -1
- package/lib/es/components/utils/empty/index.js +1 -1
- package/lib/es/components/utils/empty/index.js.map +1 -1
- package/lib/es/components/utils/helpericon/helpericon.js +2 -2
- package/lib/es/components/utils/helpericon/helpericon.js.map +1 -1
- package/lib/es/components/video/video.js +2 -8
- package/lib/es/components/video/video.js.map +1 -1
- package/lib/es/js/usePreview/content.js +2 -9
- package/lib/es/js/usePreview/content.js.map +1 -1
- package/lib/es/js/usePreview/index.js.map +1 -1
- package/lib/es/js/usePreview/renderFile.js +1 -1
- package/lib/es/js/usePreview/renderFile.js.map +1 -1
- package/lib/es/js/useRipple/index.js.map +1 -1
- package/lib/es/js/utils.js +1 -1
- package/lib/types/components/affix/affix.js +1 -2
- package/lib/types/components/affix/totop.js +1 -1
- package/lib/types/components/badge/badge.js +0 -1
- package/lib/types/components/button/button.js +0 -1
- package/lib/types/components/card/card.js +0 -1
- package/lib/types/components/checkbox/checkbox.js +0 -2
- package/lib/types/components/collapse/collapse.js +1 -3
- package/lib/types/components/datagrid/datagrid.js +0 -1
- package/lib/types/components/description/description.js +0 -1
- package/lib/types/components/drawer/drawer.js +0 -1
- package/lib/types/components/dropdown/dropdown.js +0 -1
- package/lib/types/components/editor/controls.js +1 -7
- package/lib/types/components/editor/editor.js +0 -1
- package/lib/types/components/flex/flex.js +0 -1
- package/lib/types/components/form/field.js +1 -1
- package/lib/types/components/form/form.js +1 -2
- package/lib/types/components/form/useForm.js +2 -2
- package/lib/types/components/icon/icon.js +0 -1
- package/lib/types/components/image/image.js +0 -1
- package/lib/types/components/input/input.js +1 -3
- package/lib/types/components/input/number.js +1 -4
- package/lib/types/components/input/range.js +1 -4
- package/lib/types/components/input/textarea.js +0 -1
- package/lib/types/components/list/list.js +0 -1
- package/lib/types/components/loading/loading.js +0 -1
- package/lib/types/components/message/message.js +2 -3
- package/lib/types/components/modal/content.js +0 -1
- package/lib/types/components/modal/modal.js +0 -1
- package/lib/types/components/pagination/pagination.js +1 -4
- package/lib/types/components/picker/colors/footer.js +1 -1
- package/lib/types/components/picker/colors/index.js +0 -1
- package/lib/types/components/picker/dates/index.js +2 -3
- package/lib/types/components/picker/dates/panel.js +2 -3
- package/lib/types/components/picker/time/index.js +1 -1
- package/lib/types/components/picker/time/panel.js +0 -1
- package/lib/types/components/popconfirm/popconfirm.js +1 -2
- package/lib/types/components/popup/popup.js +1 -2
- package/lib/types/components/progress/progress.js +0 -2
- package/lib/types/components/radio/radio.js +0 -2
- package/lib/types/components/resizable/resizable.js +0 -1
- package/lib/types/components/river/river.js +0 -1
- package/lib/types/components/select/options.js +1 -2
- package/lib/types/components/select/select.js +2 -4
- package/lib/types/components/step/divider.js +0 -1
- package/lib/types/components/step/item.js +1 -1
- package/lib/types/components/step/step.js +0 -1
- package/lib/types/components/swiper/swiper.js +1 -3
- package/lib/types/components/tabs/tabs.js +1 -2
- package/lib/types/components/tag/tag.js +0 -1
- package/lib/types/components/text/highlight.js +1 -1
- package/lib/types/components/text/text.js +0 -1
- package/lib/types/components/tree/item.js +1 -1
- package/lib/types/components/tree/tree.js +0 -1
- package/lib/types/components/upload/renderFile.js +2 -2
- package/lib/types/components/upload/upload.js +2 -4
- package/lib/types/components/utils/empty/index.js +1 -2
- package/lib/types/components/utils/helpericon/helpericon.js +2 -3
- package/lib/types/components/video/video.js +2 -9
- package/lib/types/index.js +0 -1
- package/lib/types/js/usePreview/content.js +2 -9
- package/lib/types/js/usePreview/index.js +0 -1
- package/lib/types/js/usePreview/renderFile.js +1 -1
- package/lib/types/js/useRipple/index.js +0 -1
- package/lib/types/js/utils.js +1 -1
- package/package.json +6 -3
|
@@ -2,10 +2,8 @@ import icon_default from "../icon/index.js";
|
|
|
2
2
|
import Page from "./page.js";
|
|
3
3
|
import classNames from "classnames";
|
|
4
4
|
import { useEffect, useMemo, useState } from "react";
|
|
5
|
+
import { KeyboardArrowLeftRound, KeyboardArrowRightRound, MoreHorizRound } from "@ricons/material";
|
|
5
6
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
import KeyboardArrowLeftRound from "@ricons/material/es/KeyboardArrowLeftRound.js";
|
|
7
|
-
import KeyboardArrowRightRound from "@ricons/material/es/KeyboardArrowRightRound.js";
|
|
8
|
-
import MoreHorizRound from "@ricons/material/es/MoreHorizRound.js";
|
|
9
7
|
//#region packages/components/pagination/pagination.tsx
|
|
10
8
|
const Pagination = (props) => {
|
|
11
9
|
const { page: defaultPage = 1, size = 10, total = 0, sibling = 2, prev = /* @__PURE__ */ jsx(icon_default, { icon: /* @__PURE__ */ jsx(KeyboardArrowLeftRound, {}) }), next = /* @__PURE__ */ jsx(icon_default, { icon: /* @__PURE__ */ jsx(KeyboardArrowRightRound, {}) }), simple, jumper, className, renderEllipsis = () => /* @__PURE__ */ jsx(icon_default, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","names":[],"sources":["../../../../packages/components/pagination/pagination.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"pagination.js","names":[],"sources":["../../../../packages/components/pagination/pagination.tsx"],"sourcesContent":["import {\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n\tMoreHorizRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport Icon from \"../icon\";\nimport \"./index.css\";\nimport Page from \"./page\";\nimport { IPagination } from \"./type\";\n\nconst Pagination = (props: IPagination) => {\n\tconst {\n\t\tpage: defaultPage = 1,\n\t\tsize = 10,\n\t\ttotal = 0,\n\t\tsibling = 2,\n\t\tprev = <Icon icon={<KeyboardArrowLeftRound />} />,\n\t\tnext = <Icon icon={<KeyboardArrowRightRound />} />,\n\t\tsimple,\n\t\tjumper,\n\t\tclassName,\n\t\trenderEllipsis = () => (\n\t\t\t<Icon icon={<MoreHorizRound />} className='color-7' />\n\t\t),\n\t\trenderPage = (i) => i,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst [page, setPage] = useState(defaultPage);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst totalPage = useMemo(() => Math.ceil(total / size), [size, total]);\n\n\tconst [start, end, loop] = useMemo(() => {\n\t\tconst start = Math.max(1, page - sibling);\n\t\tconst end = Math.min(totalPage, page + sibling);\n\n\t\treturn [\n\t\t\tstart,\n\t\t\tend,\n\t\t\tArray.from({ length: end - start + 1 }).map((n, i) => start + i),\n\t\t];\n\t}, [page, totalPage, sibling]);\n\n\tconst handlePageChange = async (p?: number) => {\n\t\tif (!onChange || loading) return;\n\t\tsetLoading(true);\n\n\t\treturn new Promise<void>(async (resolve) => {\n\t\t\tif (p === undefined) return;\n\t\t\tawait onChange(p);\n\t\t\tsetPage(p);\n\t\t\tsetLoading(false);\n\t\t\tresolve();\n\t\t});\n\t};\n\n\tuseEffect(() => setPage(defaultPage), [defaultPage]);\n\n\tif (totalPage <= page && page === 1) return <></>;\n\n\treturn (\n\t\t<div className={classNames(\"i-pagination\", className)} {...restProps}>\n\t\t\t{prev && (\n\t\t\t\t<Page\n\t\t\t\t\tpage={page - 1 || 1}\n\t\t\t\t\tdisabled={page === 1}\n\t\t\t\t\tonChange={handlePageChange}\n\t\t\t\t>\n\t\t\t\t\t{prev}\n\t\t\t\t</Page>\n\t\t\t)}\n\n\t\t\t{start > 1 && (\n\t\t\t\t<Page page={1} onChange={handlePageChange}>\n\t\t\t\t\t{renderPage(1)}\n\t\t\t\t</Page>\n\t\t\t)}\n\n\t\t\t{start > 2 && renderEllipsis()}\n\n\t\t\t{loop.map((p) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Page\n\t\t\t\t\t\tkey={p}\n\t\t\t\t\t\tpage={p}\n\t\t\t\t\t\tactive={p === page}\n\t\t\t\t\t\tonChange={handlePageChange}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderPage(p)}\n\t\t\t\t\t</Page>\n\t\t\t\t);\n\t\t\t})}\n\n\t\t\t{end < totalPage - 1 && renderEllipsis()}\n\n\t\t\t{end < totalPage && (\n\t\t\t\t<Page page={totalPage} onChange={handlePageChange}>\n\t\t\t\t\t{renderPage(totalPage)}\n\t\t\t\t</Page>\n\t\t\t)}\n\n\t\t\t{next && (\n\t\t\t\t<Page\n\t\t\t\t\tpage={page + 1}\n\t\t\t\t\tdisabled={page === totalPage}\n\t\t\t\t\tonChange={handlePageChange}\n\t\t\t\t>\n\t\t\t\t\t{next}\n\t\t\t\t</Page>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Pagination;\n"],"mappings":";;;;;;;;CAYA,MAAM,EACL,MAAM,cAAA,GACL,OAAM,IACN,QAAO,GACP,UAAS,GACT,OAAO,oBAAC,cAAD,EAAI,MAAA,oBAAA,wBAAA,EAAA,CAAA,EAAA,CAAA,EACX,OAAO,oBAAC,cAAD,EAAM,MAAM,oBAAC,yBAAD,EAA2B,CAAA,EAAG,CAAA,EACjD,QACA,QACA,WACA,uBACA,oBAAA,cAAA;EAAA,MAAA,oBAAc,gBAAd,EAAuB,CAAA;EAAA,WAAA;EAAA,CAAA,EAEvB,cAAC,MAAA,GACD,UACA,GAAA,cACG;;CAGJ,MAAM,CAAC,SAAM,cAAW,SAAS,MAAY;;;EAK7C,MAAO,QAAO,KAAK,IAAK,GAAG,OAAO,QAAO;EACxC,MAAM,MAAM,KAAE,IAAK,WAAa,OAAC,QAAQ;;GAGzC;GACC;GACA,MAAG,KAAA,EAAA,QAAA,MAAA,QAAA,GAAA,CAAA,CAAA,KAAA,GAAA,MAAA,QAAA,EAAA;GACH;IACA;EAAA;EAAA;EAAA;EAAA,CAAA;;AAGF,MAAK,CAAC,YAAA,QAAmB;AACxB,aAAK,KAAW;;AAGhB,OAAA,MAAW,KAAA,EAAQ;AAClB,SAAM,SAAI,EAAA;AACV,WAAM,EAAA;AACN,cAAU,MAAA;AACV,YAAA;IACA;;;;QAQF,qBAAA,OAAA;EAAM,WAAC,WAAA,gBAAA,UAAA;EAAA,GAAA;YAAP;GACE,QACC,oBAAA,MAAA;IACC,MAAA,OAAA,KAAA;IACA,UAAU,SAAS;IACnB,UAAU;cAEX;IACM,CAAA;gBAIN,oBAAA,MAAA;IAAM,MAAM;IAAC,UAAA;cACZ,WAAY,EAAE;IACb,CAAA;;;AAMF,WACA,oBAAA,MAAA;KAEE,MAAM;KACN,QAAO,MAAA;KACP,UAAU;eAEX,WAAA,EAAA;KACE,EAND,EAMC;KAEF;;sBAKD,oBAAA,MAAA;IAAM,MAAA;IAAa,UAAA;cAClB,WAAW,UAAW;IACrB,CAAA;WAIF,oBAAA,MAAA;IACC,MAAA,OAAA;IACA,UAAU,SAAI;IACd,UAAU;cAEX;IACM,CAAA;GAEN"}
|
|
@@ -3,8 +3,8 @@ import icon_default from "../../icon/index.js";
|
|
|
3
3
|
import input_default from "../../input/index.js";
|
|
4
4
|
import select_default from "../../select/index.js";
|
|
5
5
|
import { useEffect, useState } from "react";
|
|
6
|
+
import { CheckRound } from "@ricons/material";
|
|
6
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
import CheckRound from "@ricons/material/es/CheckRound.js";
|
|
8
8
|
//#region packages/components/picker/colors/footer.tsx
|
|
9
9
|
const ColorMethods = {
|
|
10
10
|
HEX: "toHexString",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer.js","names":["Select","Input","Button","Icon"],"sources":["../../../../../packages/components/picker/colors/footer.tsx"],"sourcesContent":["import CheckRound from \"@ricons/material
|
|
1
|
+
{"version":3,"file":"footer.js","names":["Select","Input","Button","Icon"],"sources":["../../../../../packages/components/picker/colors/footer.tsx"],"sourcesContent":["import { CheckRound } from \"@ricons/material\";\nimport { useEffect, useState } from \"react\";\nimport Button from \"../../button\";\nimport Icon from \"../../icon\";\nimport Input from \"../../input\";\nimport Select from \"../../select\";\n\nexport const ColorMethods = {\n\tHEX: \"toHexString\",\n\tRGB: \"toRgbString\",\n\tHSB: \"toHsbString\",\n};\n\nexport default function Footer(props) {\n\tconst { value, type, onTypeChange, onChange, onOk } = props;\n\tconst [inputValue, setInputValue] = useState(value);\n\tconst [colorType, setColorType] = useState(type);\n\n\tconst handleChange = (v) => {\n\t\tsetInputValue(v);\n\t\tonChange(v);\n\t};\n\n\tconst handleTypeChange = (t) => {\n\t\tsetColorType(t);\n\t\tonTypeChange(t);\n\t};\n\n\tuseEffect(() => {\n\t\tsetInputValue(value);\n\t\tsetColorType(type);\n\t}, [value, type]);\n\n\treturn (\n\t\t<div className='i-colorpicker-footer'>\n\t\t\t<Select\n\t\t\t\treadOnly\n\t\t\t\thideClear\n\t\t\t\thideArrow\n\t\t\t\tstyle={{ width: \"5.6em\" }}\n\t\t\t\toptions={[\"RGB\", \"HEX\", \"HSB\"]}\n\t\t\t\tvalue={colorType}\n\t\t\t\tonChange={handleTypeChange}\n\t\t\t/>\n\t\t\t<Input\n\t\t\t\tplaceholder='color'\n\t\t\t\tvalue={inputValue}\n\t\t\t\tonChange={handleChange}\n\t\t\t/>\n\t\t\t<Button square onClick={onOk}>\n\t\t\t\t<Icon icon={<CheckRound />} />\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;AAOA,MAAa,eAAe;CAC3B,KAAK;CACL,KAAK;CACL,KAAK;CACL;AAED,SAAwB,OAAO,OAAO;CACrC,MAAM,EAAE,OAAO,MAAM,cAAc,UAAU,SAAS;CACtD,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM;CACnD,MAAM,CAAC,WAAW,gBAAgB,SAAS,KAAK;CAEhD,MAAM,gBAAgB,MAAM;AAC3B,gBAAc,EAAE;AAChB,WAAS,EAAE;;CAGZ,MAAM,oBAAoB,MAAM;AAC/B,eAAa,EAAE;AACf,eAAa,EAAE;;AAGhB,iBAAgB;AACf,gBAAc,MAAM;AACpB,eAAa,KAAK;IAChB,CAAC,OAAO,KAAK,CAAC;AAEjB,QACC,qBAAC,OAAD;EAAK,WAAU;YAAf;GACC,oBAACA,gBAAD;IACC,UAAA;IACA,WAAA;IACA,WAAA;IACA,OAAO,EAAE,OAAO,SAAS;IACzB,SAAS;KAAC;KAAO;KAAO;KAAM;IAC9B,OAAO;IACP,UAAU;IACT,CAAA;GACF,oBAACC,eAAD;IACC,aAAY;IACZ,OAAO;IACP,UAAU;IACT,CAAA;GACF,oBAACC,gBAAD;IAAQ,QAAA;IAAO,SAAS;cACvB,oBAACC,cAAD,EAAM,MAAM,oBAAC,YAAD,EAAc,CAAA,EAAI,CAAA;IACtB,CAAA;GACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../packages/components/picker/colors/index.tsx"],"sourcesContent":["import ColorsPanel from \"@rc-component/color-picker\";\nimport { useEffect, useState } from \"react\";\nimport Popup from \"../../popup\";\nimport { IColorPicker } from \"../type\";\nimport Footer, { ColorMethods } from \"./footer\";\nimport Handle from \"./handle\";\nimport \"./index.css\";\n\nexport default function ColorPicker(props: IColorPicker) {\n\tconst {\n\t\tvalue,\n\t\ttype = \"HEX\",\n\t\tdisabledAlpha,\n\t\tchildren,\n\t\tusePanel,\n\t\thandle = \"both\",\n\t\tplaceholder = \"Colors\",\n\t\tpopupProps,\n\t\tonChange,\n\t} = props;\n\n\tconst [colorType, setColorType] = useState(type);\n\tconst [colorValue, setColorValue] = useState(value);\n\tconst [syncValue, setSyncValue] = useState(value);\n\tconst [visible, setVisible] = useState<boolean | undefined>(popupProps?.visible);\n\n\tconst handleChange = (target) => {\n\t\tsetSyncValue(target);\n\t};\n\n\tconst handleComplete = (target) => {\n\t\tconst method = ColorMethods[colorType];\n\n\t\tif (target.a !== 1) {\n\t\t\ttarget.a = parseFloat(target.a.toFixed(3));\n\t\t}\n\n\t\tsetColorValue(target[method]?.());\n\t};\n\n\tconst handleVisibleChange = (v: boolean) => {\n\t\tsetVisible(v);\n\t\tpopupProps?.onVisibleChange?.(v);\n\t};\n\n\tconst handleTypeChange = (t) => {\n\t\tconst method = ColorMethods[t];\n\n\t\tsetColorType(t);\n\t\tsetColorValue(syncValue?.[method]?.());\n\t};\n\n\tconst handleValueChange = (v) => {\n\t\tsetColorValue(v);\n\t\tsetSyncValue(v);\n\t};\n\n\tconst handleOk = () => {\n\t\tonChange?.(colorValue);\n\t\tsetVisible(false);\n\t};\n\n\tuseEffect(() => {\n\t\tsetSyncValue(value);\n\t\tsetColorValue(value);\n\t}, [value]);\n\n\tuseEffect(() => {\n\t\tif (popupProps?.visible !== undefined) {\n\t\t\tsetVisible(popupProps.visible);\n\t\t}\n\t}, [popupProps?.visible]);\n\n\tif (usePanel) {\n\t\treturn <ColorsPanel {...props} />;\n\t}\n\n\treturn (\n\t\t<Popup\n\t\t\ttrigger='click'\n\t\t\ttouchable\n\t\t\tposition='bottom'\n\t\t\t{...popupProps}\n\t\t\tvisible={visible}\n\t\t\tcontent={\n\t\t\t\t<ColorsPanel\n\t\t\t\t\tvalue={syncValue}\n\t\t\t\t\tdisabledAlpha={disabledAlpha}\n\t\t\t\t\tpanelRender={(panel) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{panel}\n\t\t\t\t\t\t\t\t<Footer\n\t\t\t\t\t\t\t\t\tvalue={colorValue}\n\t\t\t\t\t\t\t\t\ttype={colorType}\n\t\t\t\t\t\t\t\t\tonTypeChange={handleTypeChange}\n\t\t\t\t\t\t\t\t\tonChange={handleValueChange}\n\t\t\t\t\t\t\t\t\tonOk={handleOk}\n\t\t\t\t\t\t\t\t/>\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\tonChange={handleChange}\n\t\t\t\t\tonChangeComplete={handleComplete}\n\t\t\t\t/>\n\t\t\t}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t>\n\t\t\t{children ?? (\n\t\t\t\t<Handle\n\t\t\t\t\tcolor={value}\n\t\t\t\t\thandle={handle}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Popup>\n\t);\n}\n"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../packages/components/picker/colors/index.tsx"],"sourcesContent":["import ColorsPanel from \"@rc-component/color-picker\";\nimport { useEffect, useState } from \"react\";\nimport Popup from \"../../popup\";\nimport { IColorPicker } from \"../type\";\nimport Footer, { ColorMethods } from \"./footer\";\nimport Handle from \"./handle\";\nimport \"./index.css\";\n\nexport default function ColorPicker(props: IColorPicker) {\n\tconst {\n\t\tvalue,\n\t\ttype = \"HEX\",\n\t\tdisabledAlpha,\n\t\tchildren,\n\t\tusePanel,\n\t\thandle = \"both\",\n\t\tplaceholder = \"Colors\",\n\t\tpopupProps,\n\t\tonChange,\n\t} = props;\n\n\tconst [colorType, setColorType] = useState(type);\n\tconst [colorValue, setColorValue] = useState(value);\n\tconst [syncValue, setSyncValue] = useState(value);\n\tconst [visible, setVisible] = useState<boolean | undefined>(popupProps?.visible);\n\n\tconst handleChange = (target) => {\n\t\tsetSyncValue(target);\n\t};\n\n\tconst handleComplete = (target) => {\n\t\tconst method = ColorMethods[colorType];\n\n\t\tif (target.a !== 1) {\n\t\t\ttarget.a = parseFloat(target.a.toFixed(3));\n\t\t}\n\n\t\tsetColorValue(target[method]?.());\n\t};\n\n\tconst handleVisibleChange = (v: boolean) => {\n\t\tsetVisible(v);\n\t\tpopupProps?.onVisibleChange?.(v);\n\t};\n\n\tconst handleTypeChange = (t) => {\n\t\tconst method = ColorMethods[t];\n\n\t\tsetColorType(t);\n\t\tsetColorValue(syncValue?.[method]?.());\n\t};\n\n\tconst handleValueChange = (v) => {\n\t\tsetColorValue(v);\n\t\tsetSyncValue(v);\n\t};\n\n\tconst handleOk = () => {\n\t\tonChange?.(colorValue);\n\t\tsetVisible(false);\n\t};\n\n\tuseEffect(() => {\n\t\tsetSyncValue(value);\n\t\tsetColorValue(value);\n\t}, [value]);\n\n\tuseEffect(() => {\n\t\tif (popupProps?.visible !== undefined) {\n\t\t\tsetVisible(popupProps.visible);\n\t\t}\n\t}, [popupProps?.visible]);\n\n\tif (usePanel) {\n\t\treturn <ColorsPanel {...props} />;\n\t}\n\n\treturn (\n\t\t<Popup\n\t\t\ttrigger='click'\n\t\t\ttouchable\n\t\t\tposition='bottom'\n\t\t\t{...popupProps}\n\t\t\tvisible={visible}\n\t\t\tcontent={\n\t\t\t\t<ColorsPanel\n\t\t\t\t\tvalue={syncValue}\n\t\t\t\t\tdisabledAlpha={disabledAlpha}\n\t\t\t\t\tpanelRender={(panel) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{panel}\n\t\t\t\t\t\t\t\t<Footer\n\t\t\t\t\t\t\t\t\tvalue={colorValue}\n\t\t\t\t\t\t\t\t\ttype={colorType}\n\t\t\t\t\t\t\t\t\tonTypeChange={handleTypeChange}\n\t\t\t\t\t\t\t\t\tonChange={handleValueChange}\n\t\t\t\t\t\t\t\t\tonOk={handleOk}\n\t\t\t\t\t\t\t\t/>\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\tonChange={handleChange}\n\t\t\t\t\tonChangeComplete={handleComplete}\n\t\t\t\t/>\n\t\t\t}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t>\n\t\t\t{children ?? (\n\t\t\t\t<Handle\n\t\t\t\t\tcolor={value}\n\t\t\t\t\thandle={handle}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Popup>\n\t);\n}\n"],"mappings":";;;;;;;AAMA,SAAoB,YAAA,OAAA;SAEpB,OACC,OAAM,OACL,eACA,UACA,UACA,SAAQ,QACR,cAAQ,UACR,YACA,aACA;CAED,MAAI,CAAA,WAAK,gBAAA,SAAA,KAAA;;CAET,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAK;CAChD,MAAM,CAAC,SAAA,cAAY,SAAgC,YAAA,QAAA;CAEnD,MAAM,gBAAU,WAAc;;;CAI9B,MAAC,kBAAA,WAAA;;AAGA,MAAA,OAAM,MAAS,EAAA,QAAA,IAAA,WAAA,OAAA,EAAA,QAAA,EAAA,CAAA;AAIf,gBAAA,OAAA,WAAA,CAAA;;CAGD,MAAC,uBAAA,MAAA;;AAED,cAAM,kBAAyB,EAAC;;CAGhC,MAAC,oBAAA,MAAA;;AAGA,eAAa,EAAE;;;CAIhB,MAAC,qBAAA,MAAA;;AAED,eAAM,EAAA;;CAGN,MAAC,iBAAA;;AAED,aAAM,MAAY;;AAGlB,iBAAC;;AAED,gBAAe,MAAC;IACf,CAAA,MAAA,CAAA;AAED,iBAAW;qCAEX,YAAa,WAAG,QAAA;IAEd,CAAA,YAAW,QAAW,CAAA;AAExB,KAAI,SAAA,QAAA,oBAAA,aAAA,EAAA,GAAA,OAAA,CAAA;AAIJ,QAAA,oBAAA,eAAA;EAEA,SAAO;EACL,WAAA;EACA,UAAS;EACT,GAAA;EACS;EACT,SACA,oBAAA,aAAA;GACA,OAAQ;GACN;GACA,cAAO,UAAS;AAChB,WACA,qBAAA,YAAA,EAAA,UAAA,CACC,OACE,oBAAA,QAAA;KACC,OAAK;KACL,MAAA;KACA,cAAO;KACP,UAAM;KACN,MAAA;KACA,CAAA,CACA,EAAA,CAAA;;GAGJ,UAAE;GACF,kBAAC;GACD,CAAA;EAEF,iBAAE;YAEF,YACD,oBAAA,QAAA;GACE,OAAQ;GACP;GACY;GACZ,CAAA;EAEA,CAAA"}
|
|
@@ -4,10 +4,10 @@ import input_default from "../../input/index.js";
|
|
|
4
4
|
import Panel from "./panel.js";
|
|
5
5
|
import classNames from "classnames";
|
|
6
6
|
import { useEffect, useMemo, useState } from "react";
|
|
7
|
+
import { CalendarMonthTwotone } from "@ricons/material";
|
|
7
8
|
import { jsx } from "react/jsx-runtime";
|
|
8
|
-
import CalendarMonthTwotone from "@ricons/material/es/CalendarMonthTwotone.js";
|
|
9
9
|
import dayjs from "dayjs";
|
|
10
|
-
import customParseFormat from "dayjs/plugin/customParseFormat.js";
|
|
10
|
+
import customParseFormat from "/Users/iann/codes/ioca-react/node_modules/.pnpm/dayjs@1.11.20/node_modules/dayjs/plugin/customParseFormat.js";
|
|
11
11
|
//#region packages/components/picker/dates/index.tsx
|
|
12
12
|
dayjs.extend(customParseFormat);
|
|
13
13
|
const FORMATTYPES = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../packages/components/picker/dates/index.tsx"],"sourcesContent":["import CalendarMonthTwotone from \"@ricons/material
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../packages/components/picker/dates/index.tsx"],"sourcesContent":["import { CalendarMonthTwotone } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport Icon from \"../../icon\";\nimport Input from \"../../input\";\nimport Popup from \"../../popup\";\nimport { IDatePicker } from \"../type\";\nimport \"./index.css\";\nimport Panel from \"./panel\";\n\ndayjs.extend(customParseFormat);\n\nconst FORMATTYPES = [\"YYYY-MM-DD\", \"YYYY-M-D\", \"YYYY/MM/DD\", \"YYYY/M/D\"];\nconst FORMAT = \"YYYY-MM-DD\";\n\nconst Datepicker = (props: IDatePicker) => {\n\tconst {\n\t\tname,\n\t\tvalue,\n\t\tweeks,\n\t\tformat = FORMAT,\n\t\tplaceholder = props.format ?? FORMAT,\n\t\tclassName,\n\t\trenderDate,\n\t\trenderMonth,\n\t\trenderYear,\n\t\tpopupProps,\n\t\tdisabledDate,\n\t\tonDateClick,\n\t\tonChange,\n\t\tonBlur,\n\t\t...restProps\n\t} = props;\n\n\tconst [inputValue, setInputValue] = useState(value);\n\n\tconst [active, setActive] = useState<boolean>(false);\n\n\tconst dayJsValue = useMemo(() => {\n\t\tif (!inputValue) return null;\n\n\t\tconst date = dayjs(inputValue as string, format, true);\n\n\t\tif (date.isValid()) return date;\n\n\t\treturn null;\n\t}, [inputValue, format]);\n\n\tconst handleDateClick = (date: Dayjs) => {\n\t\thandleChange(date.format(format));\n\t};\n\n\tconst handleChange = (v) => {\n\t\tsetInputValue(v);\n\t\tonChange?.(v);\n\t};\n\n\tconst handleSetDate = () => {\n\t\tif (!inputValue) return;\n\n\t\tconst date = dayjs(inputValue as string, FORMATTYPES, true);\n\n\t\tif (date.isValid()) {\n\t\t\thandleChange(date.format(format));\n\t\t\treturn;\n\t\t}\n\n\t\thandleChange(\"\");\n\t};\n\n\tconst handleBlur = (e) => {\n\t\tonBlur?.(e);\n\t\thandleSetDate();\n\t};\n\n\tconst handleVisibleChange = (v) => {\n\t\tpopupProps?.onVisibleChange?.(v);\n\t\tsetActive(v);\n\t};\n\n\tuseEffect(() => {\n\t\tsetInputValue(value);\n\t}, [value]);\n\n\treturn (\n\t\t<Popup\n\t\t\tvisible={active}\n\t\t\ttrigger='click'\n\t\t\tposition='bottom'\n\t\t\tarrow={false}\n\t\t\talign='start'\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\tcontent={\n\t\t\t\t<Panel\n\t\t\t\t\tvalue={dayJsValue}\n\t\t\t\t\tweeks={weeks}\n\t\t\t\t\trenderDate={renderDate}\n\t\t\t\t\trenderMonth={renderMonth}\n\t\t\t\t\trenderYear={renderYear}\n\t\t\t\t\tdisabledDate={disabledDate}\n\t\t\t\t\tonDateClick={handleDateClick}\n\t\t\t\t/>\n\t\t\t}\n\t\t\t{...popupProps}\n\t\t>\n\t\t\t<Input\n\t\t\t\tvalue={inputValue}\n\t\t\t\tappend={\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<CalendarMonthTwotone />}\n\t\t\t\t\t\tclassName='i-datepicker-icon'\n\t\t\t\t\t\tsize='1em'\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tonBlur={handleBlur}\n\t\t\t\tonEnter={handleSetDate}\n\t\t\t\tclassName={classNames(\"i-datepicker-label\", className)}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t</Popup>\n\t);\n};\n\nexport default Datepicker;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAcA,MAAM,SAAA;;CAGN,MAAM,EACL,MACC,OACA,OACA,SAAK,QACL,cAAS,MAAM,UAAA,QACf,WACA,YACA,aACA,YACA,YACA,cACA,aACA,UACA,QACA,GAAA,cACG;;;;AAOJ,MAAK,CAAC,WAAY,QAAC;;;;IAOlB,CAAA,YAAW,OAAA,CAAA;;AAGZ,eAAM,KAAA,OAAmB,OAAM,CAAA;;;AAI/B,gBAAM,EAAA;AACL,aAAA,EAAa;;;AAId,MAAK,CAAC,WAAA;;;AAKL,gBAAS,KAAU,OAAC,OAAA,CAAA;AACnB;;;;;AAOF,WAAM,EAAA;AACL,iBAAW;;;AAIZ,cAAM,kBAAyB,EAAE;AAChC,YAAU,EAAE;;;AAIb,gBAAe,MAAC;IACf,CAAA,MAAA,CAAA;QAGD,oBAAA,eAAA;EACE,SAAA;EACA,SAAQ;EACR,UAAS;EACT,OAAA;EACA,OAAM;EACN,iBAAY;EACZ,SACA,oBAAA,OAAA;GACE,OAAA;GACO;GACK;GACA;GACA;GACA;GACZ,aAAa;GACb,CAAA;EAEF,GAAA;YAED,oBAAA,eAAA;GACE,OAAA;GACA,QACA,oBAAA,cAAA;IACE,MAAA,oBAAA,sBAAA,EAAA,CAAA;IACA,WAAO;IACP,MAAA;IACA,CAAA;GAEF;GACA,UAAA;GACA,QAAQ;GACR,SAAQ;GACR,WAAS,WAAa,sBAAA,UAAA;GACtB,GAAA;GACC,CAAA;EACD,CAAA"}
|
|
@@ -2,11 +2,10 @@ import icon_default from "../../icon/index.js";
|
|
|
2
2
|
import helpericon_default from "../../utils/helpericon/index.js";
|
|
3
3
|
import Dates from "./dates.js";
|
|
4
4
|
import classNames from "classnames";
|
|
5
|
-
import { throttle } from "radash";
|
|
5
|
+
import { throttle } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
|
|
6
6
|
import { useEffect, useRef, useState } from "react";
|
|
7
|
+
import { KeyboardArrowLeftRound, KeyboardArrowRightRound } from "@ricons/material";
|
|
7
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
-
import KeyboardArrowLeftRound from "@ricons/material/es/KeyboardArrowLeftRound.js";
|
|
9
|
-
import KeyboardArrowRightRound from "@ricons/material/es/KeyboardArrowRightRound.js";
|
|
10
9
|
import dayjs from "dayjs";
|
|
11
10
|
//#region packages/components/picker/dates/panel.tsx
|
|
12
11
|
const MONTHS = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.js","names":["Icon","Helpericon"],"sources":["../../../../../packages/components/picker/dates/panel.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"panel.js","names":["Icon","Helpericon"],"sources":["../../../../../packages/components/picker/dates/panel.tsx"],"sourcesContent":["import {\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport { throttle } from \"radash\";\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\nimport Icon from \"../../icon\";\nimport Helpericon from \"../../utils/helpericon\";\nimport { IBaseDates } from \"../type\";\nimport Dates from \"./dates\";\n\nconst MONTHS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n\nconst YearMonth = (\n\tprops: IBaseDates & {\n\t\tonClick?: () => void;\n\t}\n) => {\n\tconst {\n\t\tvalue,\n\t\tunitMonth = \"月\",\n\t\tunitYear = \"年\",\n\t\trenderYear,\n\t\trenderMonth,\n\t\tonClick,\n\t} = props;\n\n\treturn (\n\t\t<a className='i-datepicker-action' data-ripple onClick={onClick}>\n\t\t\t<span>{renderYear?.(value.year())}</span>\n\t\t\t{unitYear}\n\t\t\t<span>{renderMonth?.(value.month() + 1)}</span>\n\t\t\t{unitMonth}\n\t\t</a>\n\t);\n};\n\nconst Panel = (props: IBaseDates) => {\n\tconst {\n\t\tvalue,\n\t\tunitYear,\n\t\tunitMonth,\n\t\trenderDate,\n\t\trenderMonth = (m: ReactNode) => m,\n\t\trenderYear = (y: ReactNode) => y,\n\t\tdisabledDate,\n\t\tonDateClick,\n\t} = props;\n\n\tconst [today, setToday] = useState(value);\n\tconst [month, setMonth] = useState(value || dayjs());\n\tconst [selectedYear, setSelectedYear] = useState(dayjs());\n\tconst [years, setYears] = useState<number[]>([]);\n\tconst [selectable, setSelectable] = useState(false);\n\n\tconst $years = useRef<HTMLDivElement>(null);\n\n\tconst handleOperateMonth = (next: boolean) => {\n\t\tsetMonth((m) => m[next ? \"add\" : \"subtract\"](1, \"month\"));\n\t};\n\n\tconst handleChangeDate = (date: Dayjs) => {\n\t\tif (date.isSame(today, \"day\")) return;\n\n\t\tif (!date.isSame(month, \"month\")) {\n\t\t\tsetMonth(date);\n\t\t}\n\n\t\tsetToday(date);\n\t\tonDateClick?.(date);\n\t};\n\n\tconst handleChangeMonth = (month: number) => {\n\t\tsetMonth((m) => m.year(selectedYear.year()).month(month - 1));\n\t\tsetSelectable(false);\n\t};\n\n\tconst getMoreYears = throttle({ interval: 100 }, (e) => {\n\t\tconst isUp = e.deltaY < 0;\n\n\t\tsetYears((ys) => ys.map((y) => y + (isUp ? -1 : 1)));\n\t});\n\n\tuseEffect(() => {\n\t\tif (!selectable) return;\n\n\t\tsetSelectedYear(month);\n\t\tconst y = month.year();\n\t\tconst nextYears = Array.from({ length: 7 }).map((_, i) => y - 3 + i);\n\n\t\tsetYears([...nextYears]);\n\t}, [selectable, month]);\n\n\tuseEffect(() => {\n\t\tsetToday(value);\n\t\tsetMonth(value || dayjs());\n\t}, [value]);\n\n\treturn (\n\t\t<div className='i-datepicker'>\n\t\t\t<div className='i-datepicker-units'>\n\t\t\t\t<YearMonth\n\t\t\t\t\tvalue={month}\n\t\t\t\t\tunitYear={unitYear}\n\t\t\t\t\tunitMonth={unitMonth}\n\t\t\t\t\trenderMonth={renderMonth}\n\t\t\t\t\trenderYear={renderYear}\n\t\t\t\t\tonClick={() => setSelectable(true)}\n\t\t\t\t/>\n\t\t\t\t<a\n\t\t\t\t\tclassName='ml-auto i-datepicker-action'\n\t\t\t\t\tdata-ripple\n\t\t\t\t\tonClick={() => handleOperateMonth(false)}\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={<KeyboardArrowLeftRound />} />\n\t\t\t\t</a>\n\t\t\t\t<a\n\t\t\t\t\tclassName='i-datepicker-action'\n\t\t\t\t\tdata-ripple\n\t\t\t\t\tonClick={() => handleOperateMonth(true)}\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={<KeyboardArrowRightRound />} />\n\t\t\t\t</a>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-datepicker-ym\", {\n\t\t\t\t\t\"i-datepicker-active\": selectable,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive\n\t\t\t\t\tclassName='i-datepicker-close'\n\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tsetSelectable(false);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\t\t\t\t<div\n\t\t\t\t\tref={$years}\n\t\t\t\t\tclassName='i-datepicker-years'\n\t\t\t\t\tonWheel={getMoreYears}\n\t\t\t\t>\n\t\t\t\t\t{years.map((y) => (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tkey={y}\n\t\t\t\t\t\t\tclassName={classNames(\"i-datepicker-year\", {\n\t\t\t\t\t\t\t\t\"i-datepicker-active\":\n\t\t\t\t\t\t\t\t\ty === selectedYear.year(),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tonClick={() => setSelectedYear((sy) => sy.year(y))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderYear(y)}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t<div className='i-datepicker-months'>\n\t\t\t\t\t{MONTHS.map((m) => {\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={m}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-datepicker-month\", {\n\t\t\t\t\t\t\t\t\t\"i-datepicker-active\":\n\t\t\t\t\t\t\t\t\t\tm === month.month() + 1,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => handleChangeMonth(m)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderMonth(m)}\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</div>\n\n\t\t\t<Dates\n\t\t\t\tvalue={today}\n\t\t\t\tmonth={month}\n\t\t\t\tdisabledDate={disabledDate}\n\t\t\t\tonDateClick={handleChangeDate}\n\t\t\t\trenderDate={renderDate}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Panel;\n"],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@ import input_default from "../../input/index.js";
|
|
|
4
4
|
import Panel from "./panel.js";
|
|
5
5
|
import classNames from "classnames";
|
|
6
6
|
import { useEffect, useState } from "react";
|
|
7
|
+
import { AccessTimeRound } from "@ricons/material";
|
|
7
8
|
import { jsx } from "react/jsx-runtime";
|
|
8
|
-
import AccessTimeRound from "@ricons/material/es/AccessTimeRound.js";
|
|
9
9
|
//#region packages/components/picker/time/index.tsx
|
|
10
10
|
const FORMAT = "hh:mm:ss";
|
|
11
11
|
function TimePicker(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Popup","Input","Icon"],"sources":["../../../../../packages/components/picker/time/index.tsx"],"sourcesContent":["import AccessTimeRound from \"@ricons/material
|
|
1
|
+
{"version":3,"file":"index.js","names":["Popup","Input","Icon"],"sources":["../../../../../packages/components/picker/time/index.tsx"],"sourcesContent":["import { AccessTimeRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { useEffect, useState } from \"react\";\nimport Icon from \"../../icon\";\nimport Input from \"../../input\";\nimport Popup from \"../../popup\";\nimport { ITimePicker } from \"../type\";\nimport Panel from \"./panel\";\n\nconst FORMAT = \"hh:mm:ss\";\n\nexport default function TimePicker(props: ITimePicker) {\n\tconst {\n\t\tname,\n\t\tvalue,\n\t\tformat = FORMAT,\n\t\tperiods,\n\t\tplaceholder = props.format ?? FORMAT,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t\tonBlur,\n\t\tpopupProps,\n\t\t...restProps\n\t} = props;\n\tconst [timeValue, setTimeValue] = useState(value);\n\tconst [safeValue, setSafeValue] = useState(undefined);\n\tconst [active, setActive] = useState<boolean>(false);\n\n\tconst handleChange = (v) => {\n\t\tsetTimeValue(v);\n\t};\n\n\tconst handleFallback = (v) => {\n\t\tsetSafeValue(v);\n\t};\n\n\tconst handleValidTime = () => {\n\t\tif (!timeValue) return;\n\n\t\tsetTimeValue(safeValue);\n\t};\n\n\tconst handleBlur = (e) => {\n\t\tonBlur?.(e);\n\t\thandleValidTime();\n\t};\n\n\tconst handleVisibleChange = (v) => {\n\t\tpopupProps?.onVisibleChange?.(v);\n\t\tsetActive(v);\n\t};\n\n\tuseEffect(() => {\n\t\tsetTimeValue(value);\n\t}, [value]);\n\n\treturn (\n\t\t<Popup\n\t\t\tvisible={active}\n\t\t\ttrigger='click'\n\t\t\tposition='bottom'\n\t\t\tarrow={false}\n\t\t\talign='start'\n\t\t\t{...popupProps}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\tcontent={\n\t\t\t\t<Panel\n\t\t\t\t\tvalue={timeValue}\n\t\t\t\t\tformat={format}\n\t\t\t\t\tperiods={periods}\n\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tonFallback={handleFallback}\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<Input\n\t\t\t\tvalue={timeValue}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tappend={\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<AccessTimeRound />}\n\t\t\t\t\t\tclassName='i-timepicker-icon'\n\t\t\t\t\t\tsize='1em'\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tonBlur={handleBlur}\n\t\t\t\tclassName={classNames(\"i-timepicker-label\", className)}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t</Popup>\n\t);\n}\n"],"mappings":";;;;;;;;;AASA,MAAM,SAAS;AAEf,SAAwB,WAAW,OAAoB;CACtD,MAAM,EACL,MACA,OACA,SAAS,QACT,SACA,cAAc,MAAM,UAAU,QAC9B,WACA,YACA,UACA,QACA,YACA,GAAG,cACA;CACJ,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;CACjD,MAAM,CAAC,WAAW,gBAAgB,SAAS,KAAA,EAAU;CACrD,MAAM,CAAC,QAAQ,aAAa,SAAkB,MAAM;CAEpD,MAAM,gBAAgB,MAAM;AAC3B,eAAa,EAAE;;CAGhB,MAAM,kBAAkB,MAAM;AAC7B,eAAa,EAAE;;CAGhB,MAAM,wBAAwB;AAC7B,MAAI,CAAC,UAAW;AAEhB,eAAa,UAAU;;CAGxB,MAAM,cAAc,MAAM;AACzB,WAAS,EAAE;AACX,mBAAiB;;CAGlB,MAAM,uBAAuB,MAAM;AAClC,cAAY,kBAAkB,EAAE;AAChC,YAAU,EAAE;;AAGb,iBAAgB;AACf,eAAa,MAAM;IACjB,CAAC,MAAM,CAAC;AAEX,QACC,oBAACA,eAAD;EACC,SAAS;EACT,SAAQ;EACR,UAAS;EACT,OAAO;EACP,OAAM;EACN,GAAI;EACJ,iBAAiB;EACjB,SACC,oBAAC,OAAD;GACC,OAAO;GACC;GACC;GACG;GACZ,UAAU;GACV,YAAY;GACX,CAAA;YAGH,oBAACC,eAAD;GACC,OAAO;GACM;GACb,QACC,oBAACC,cAAD;IACC,MAAM,oBAAC,iBAAD,EAAmB,CAAA;IACzB,WAAU;IACV,MAAK;IACJ,CAAA;GAEH,UAAU;GACV,QAAQ;GACR,WAAW,WAAW,sBAAsB,UAAU;GACtD,GAAI;GACH,CAAA;EACK,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.js","names":[],"sources":["../../../../../packages/components/picker/time/panel.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport \"./index.css\";\nimport Items from \"./item\";\n\nconst UnitMaps = {\n\th: \"hour\",\n\thh: \"hour\",\n\tm: \"minute\",\n\tmm: \"minute\",\n\ts: \"second\",\n\tss: \"second\",\n};\n\nexport default function Panel(props) {\n\tconst {\n\t\tvalue,\n\t\tstepH = 1,\n\t\tstepM = 1,\n\t\tstepS = 1,\n\t\tformat,\n\t\tperiods,\n\t\trenderItem,\n\t\tonChange,\n\t\tonFallback,\n\t} = props;\n\tconst [period, setPeriod] = useState<any>(undefined);\n\tconst [hour, setHour] = useState<any>(undefined);\n\tconst [minute, setMinute] = useState<any>(undefined);\n\tconst [second, setSecond] = useState<any>(undefined);\n\n\tconst [hours, minutes, seconds] = useMemo(() => {\n\t\tconst hasH = format.includes(\"h\");\n\t\tconst hasM = format.includes(\"m\");\n\t\tconst hasS = format.includes(\"s\");\n\t\tconst hours = hasH\n\t\t\t? Array.from(\n\t\t\t\t\t{ length: (periods ? 12 : 24) / stepH },\n\t\t\t\t\t(_, i) => i * stepH\n\t\t\t )\n\t\t\t: [];\n\t\tconst minutes = hasM\n\t\t\t? Array.from({ length: 60 / stepM }, (_, i) => i * stepM)\n\t\t\t: [];\n\t\tconst seconds = hasS\n\t\t\t? Array.from({ length: 60 / stepS }, (_, i) => i * stepS)\n\t\t\t: [];\n\n\t\treturn [hours, minutes, seconds];\n\t}, [stepH, stepM, stepS, format, periods]);\n\n\tconst updateValue = (next?: {\n\t\tperiod?: any;\n\t\thour?: any;\n\t\tminute?: any;\n\t\tsecond?: any;\n\t}) => {\n\t\tconst nextPeriod = next?.period ?? period;\n\t\tconst nextHour = next?.hour ?? hour;\n\t\tconst nextMinute = next?.minute ?? minute;\n\t\tconst nextSecond = next?.second ?? second;\n\n\t\tconst reg = /(hh|h){1}|(mm|m){1}|(ss|s){1}/gi;\n\t\tlet result = format.replace(reg, (pattern) => {\n\t\t\tconst p = pattern.toLowerCase();\n\t\t\tconst u = UnitMaps[p];\n\t\t\tconst n =\n\t\t\t\tu === \"hour\"\n\t\t\t\t\t? (nextHour ?? 0)\n\t\t\t\t\t: u === \"minute\"\n\t\t\t\t\t\t? (nextMinute ?? 0)\n\t\t\t\t\t\t: (nextSecond ?? 0);\n\n\t\t\treturn p.length > 1 && n < 10 ? `0${n ?? 0}` : n ?? 0;\n\t\t});\n\n\t\tif (periods && hours.length > 0) {\n\t\t\tresult = `${nextPeriod ?? periods[0]} ${result}`;\n\t\t}\n\n\t\tonChange(result);\n\t};\n\n\tconst handleSetTime = (v, unit) => {\n\t\tconst next = { period, hour, minute, second, [unit]: v };\n\n\t\tif (unit === \"period\") setPeriod(v);\n\t\tif (unit === \"hour\") setHour(v);\n\t\tif (unit === \"minute\") setMinute(v);\n\t\tif (unit === \"second\") setSecond(v);\n\n\t\tupdateValue(next);\n\t};\n\n\tuseEffect(() => {\n\t\tlet time = value ?? \"\";\n\n\t\tif (periods && hours.length > 0 && value) {\n\t\t\tconst [p, t] = value.split(\" \");\n\t\t\ttime = t ?? \"\";\n\t\t\tsetPeriod(periods.includes(p) ? p : undefined);\n\t\t}\n\n\t\tconst nums = time.match(/\\d+/g) ?? [];\n\n\t\tif (!nums.length) {\n\t\t\tonFallback(\"\");\n\t\t\treturn;\n\t\t}\n\n\t\tlet i = 0;\n\t\tconst parsed = {\n\t\t\thour: undefined,\n\t\t\tminute: undefined,\n\t\t\tsecond: undefined,\n\t\t};\n\t\tconst r = format.replace(/(hh|h)+|(mm|m)+|(ss|s)+/gi, (p) => {\n\t\t\tconst n = nums[i++] ?? 0;\n\t\t\tconst o = Math.min(59, n);\n\t\t\tparsed[UnitMaps[p]] = o;\n\t\t\treturn p.length > 1 && o < 10 ? `0${o}` : o;\n\t\t});\n\n\t\tsetHour(parsed.hour);\n\t\tsetMinute(parsed.minute);\n\t\tsetSecond(parsed.second);\n\t\tonFallback(r);\n\t}, [value, format, hours.length, periods]);\n\n\treturn (\n\t\t<div className='i-timepicker'>\n\t\t\t{hours.length > 0 && (\n\t\t\t\t<>\n\t\t\t\t\t{periods && (\n\t\t\t\t\t\t<div className='i-timepicker-list'>\n\t\t\t\t\t\t\t<Items\n\t\t\t\t\t\t\t\titems={periods}\n\t\t\t\t\t\t\t\tactive={period}\n\t\t\t\t\t\t\t\tonClick={(p) => handleSetTime(p, \"period\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div className='i-timepicker-list'>\n\t\t\t\t\t\t<Items\n\t\t\t\t\t\t\titems={hours}\n\t\t\t\t\t\t\tactive={hour}\n\t\t\t\t\t\t\tunit='hour'\n\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t\tonClick={(h) => handleSetTime(h, \"hour\")}\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{minutes.length > 0 && (\n\t\t\t\t<div className='i-timepicker-list'>\n\t\t\t\t\t<Items\n\t\t\t\t\t\titems={minutes}\n\t\t\t\t\t\tactive={minute}\n\t\t\t\t\t\tunit='minute'\n\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\tonClick={(m) => handleSetTime(m, \"minute\")}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{seconds.length > 0 && (\n\t\t\t\t<div className='i-timepicker-list'>\n\t\t\t\t\t<Items\n\t\t\t\t\t\titems={seconds}\n\t\t\t\t\t\tactive={second}\n\t\t\t\t\t\tunit='second'\n\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\tonClick={(s) => handleSetTime(s, \"second\")}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"panel.js","names":[],"sources":["../../../../../packages/components/picker/time/panel.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport \"./index.css\";\nimport Items from \"./item\";\n\nconst UnitMaps = {\n\th: \"hour\",\n\thh: \"hour\",\n\tm: \"minute\",\n\tmm: \"minute\",\n\ts: \"second\",\n\tss: \"second\",\n};\n\nexport default function Panel(props) {\n\tconst {\n\t\tvalue,\n\t\tstepH = 1,\n\t\tstepM = 1,\n\t\tstepS = 1,\n\t\tformat,\n\t\tperiods,\n\t\trenderItem,\n\t\tonChange,\n\t\tonFallback,\n\t} = props;\n\tconst [period, setPeriod] = useState<any>(undefined);\n\tconst [hour, setHour] = useState<any>(undefined);\n\tconst [minute, setMinute] = useState<any>(undefined);\n\tconst [second, setSecond] = useState<any>(undefined);\n\n\tconst [hours, minutes, seconds] = useMemo(() => {\n\t\tconst hasH = format.includes(\"h\");\n\t\tconst hasM = format.includes(\"m\");\n\t\tconst hasS = format.includes(\"s\");\n\t\tconst hours = hasH\n\t\t\t? Array.from(\n\t\t\t\t\t{ length: (periods ? 12 : 24) / stepH },\n\t\t\t\t\t(_, i) => i * stepH\n\t\t\t )\n\t\t\t: [];\n\t\tconst minutes = hasM\n\t\t\t? Array.from({ length: 60 / stepM }, (_, i) => i * stepM)\n\t\t\t: [];\n\t\tconst seconds = hasS\n\t\t\t? Array.from({ length: 60 / stepS }, (_, i) => i * stepS)\n\t\t\t: [];\n\n\t\treturn [hours, minutes, seconds];\n\t}, [stepH, stepM, stepS, format, periods]);\n\n\tconst updateValue = (next?: {\n\t\tperiod?: any;\n\t\thour?: any;\n\t\tminute?: any;\n\t\tsecond?: any;\n\t}) => {\n\t\tconst nextPeriod = next?.period ?? period;\n\t\tconst nextHour = next?.hour ?? hour;\n\t\tconst nextMinute = next?.minute ?? minute;\n\t\tconst nextSecond = next?.second ?? second;\n\n\t\tconst reg = /(hh|h){1}|(mm|m){1}|(ss|s){1}/gi;\n\t\tlet result = format.replace(reg, (pattern) => {\n\t\t\tconst p = pattern.toLowerCase();\n\t\t\tconst u = UnitMaps[p];\n\t\t\tconst n =\n\t\t\t\tu === \"hour\"\n\t\t\t\t\t? (nextHour ?? 0)\n\t\t\t\t\t: u === \"minute\"\n\t\t\t\t\t\t? (nextMinute ?? 0)\n\t\t\t\t\t\t: (nextSecond ?? 0);\n\n\t\t\treturn p.length > 1 && n < 10 ? `0${n ?? 0}` : n ?? 0;\n\t\t});\n\n\t\tif (periods && hours.length > 0) {\n\t\t\tresult = `${nextPeriod ?? periods[0]} ${result}`;\n\t\t}\n\n\t\tonChange(result);\n\t};\n\n\tconst handleSetTime = (v, unit) => {\n\t\tconst next = { period, hour, minute, second, [unit]: v };\n\n\t\tif (unit === \"period\") setPeriod(v);\n\t\tif (unit === \"hour\") setHour(v);\n\t\tif (unit === \"minute\") setMinute(v);\n\t\tif (unit === \"second\") setSecond(v);\n\n\t\tupdateValue(next);\n\t};\n\n\tuseEffect(() => {\n\t\tlet time = value ?? \"\";\n\n\t\tif (periods && hours.length > 0 && value) {\n\t\t\tconst [p, t] = value.split(\" \");\n\t\t\ttime = t ?? \"\";\n\t\t\tsetPeriod(periods.includes(p) ? p : undefined);\n\t\t}\n\n\t\tconst nums = time.match(/\\d+/g) ?? [];\n\n\t\tif (!nums.length) {\n\t\t\tonFallback(\"\");\n\t\t\treturn;\n\t\t}\n\n\t\tlet i = 0;\n\t\tconst parsed = {\n\t\t\thour: undefined,\n\t\t\tminute: undefined,\n\t\t\tsecond: undefined,\n\t\t};\n\t\tconst r = format.replace(/(hh|h)+|(mm|m)+|(ss|s)+/gi, (p) => {\n\t\t\tconst n = nums[i++] ?? 0;\n\t\t\tconst o = Math.min(59, n);\n\t\t\tparsed[UnitMaps[p]] = o;\n\t\t\treturn p.length > 1 && o < 10 ? `0${o}` : o;\n\t\t});\n\n\t\tsetHour(parsed.hour);\n\t\tsetMinute(parsed.minute);\n\t\tsetSecond(parsed.second);\n\t\tonFallback(r);\n\t}, [value, format, hours.length, periods]);\n\n\treturn (\n\t\t<div className='i-timepicker'>\n\t\t\t{hours.length > 0 && (\n\t\t\t\t<>\n\t\t\t\t\t{periods && (\n\t\t\t\t\t\t<div className='i-timepicker-list'>\n\t\t\t\t\t\t\t<Items\n\t\t\t\t\t\t\t\titems={periods}\n\t\t\t\t\t\t\t\tactive={period}\n\t\t\t\t\t\t\t\tonClick={(p) => handleSetTime(p, \"period\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div className='i-timepicker-list'>\n\t\t\t\t\t\t<Items\n\t\t\t\t\t\t\titems={hours}\n\t\t\t\t\t\t\tactive={hour}\n\t\t\t\t\t\t\tunit='hour'\n\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t\tonClick={(h) => handleSetTime(h, \"hour\")}\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{minutes.length > 0 && (\n\t\t\t\t<div className='i-timepicker-list'>\n\t\t\t\t\t<Items\n\t\t\t\t\t\titems={minutes}\n\t\t\t\t\t\tactive={minute}\n\t\t\t\t\t\tunit='minute'\n\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\tonClick={(m) => handleSetTime(m, \"minute\")}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{seconds.length > 0 && (\n\t\t\t\t<div className='i-timepicker-list'>\n\t\t\t\t\t<Items\n\t\t\t\t\t\titems={seconds}\n\t\t\t\t\t\tactive={second}\n\t\t\t\t\t\tunit='second'\n\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\tonClick={(s) => handleSetTime(s, \"second\")}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import button_default from "../button/index.js";
|
|
|
3
3
|
import icon_default from "../icon/index.js";
|
|
4
4
|
import popup_default from "../popup/index.js";
|
|
5
5
|
import flex_default from "../flex/index.js";
|
|
6
|
+
import { InfoOutlined } from "@ricons/material";
|
|
6
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
import InfoOutlined from "@ricons/material/es/InfoOutlined.js";
|
|
8
8
|
//#region packages/components/popconfirm/popconfirm.tsx
|
|
9
9
|
const defaultOk = { children: "确定" };
|
|
10
10
|
const defaultCancel = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popconfirm.js","names":[],"sources":["../../../../packages/components/popconfirm/popconfirm.tsx"],"sourcesContent":["import InfoOutlined from \"@ricons/material
|
|
1
|
+
{"version":3,"file":"popconfirm.js","names":[],"sources":["../../../../packages/components/popconfirm/popconfirm.tsx"],"sourcesContent":["import { InfoOutlined } from \"@ricons/material\";\nimport { MouseEvent } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport { IButton } from \"../button/type\";\nimport Flex from \"../flex\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport \"./index.css\";\nimport { IPopconfirm } from \"./type\";\n\nconst defaultOk = {\n\tchildren: \"确定\",\n};\n\nconst defaultCancel = {\n\tchildren: \"取消\",\n\tsecondary: true,\n};\n\nconst Popconfirm = (props: IPopconfirm) => {\n\tconst {\n\t\ttrigger = \"click\",\n\t\tvisible,\n\t\ticon = <Icon icon={<InfoOutlined />} className='error' size='1.2em' />,\n\t\tcontent,\n\t\tokButtonProps,\n\t\tcancelButtonProps,\n\t\tchildren,\n\t\talign,\n\t\tposition = \"top\",\n\t\toffset = 12,\n\t\textra,\n\t\tonOk,\n\t\tonClose,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tloading: false,\n\t\tvisible,\n\t});\n\n\tconst ok: IButton = okButtonProps\n\t\t? Object.assign({}, defaultOk, okButtonProps)\n\t\t: defaultOk;\n\tconst cancel: IButton = cancelButtonProps\n\t\t? Object.assign({}, defaultCancel, cancelButtonProps)\n\t\t: defaultCancel;\n\n\tconst handleVisibleChange = (v: boolean) => {\n\t\tstate.visible = v;\n\t\trestProps.onVisibleChange?.(v);\n\t};\n\n\tconst handleOk = async (e: MouseEvent<HTMLElement>) => {\n\t\tstate.loading = true;\n\t\tok.onClick?.(e);\n\t\ttry {\n\t\t\tawait onOk?.();\n\t\t\tstate.visible = false;\n\t\t} finally {\n\t\t\tstate.loading = false;\n\t\t}\n\t};\n\n\tconst handleCancel = async (e: MouseEvent<HTMLElement>) => {\n\t\tcancel.onClick?.(e);\n\t\tawait onClose?.();\n\t\tstate.visible = false;\n\t};\n\n\tconst popconfirmContent = (\n\t\t<div className='i-popconfirm'>\n\t\t\t<Flex gap='.5em'>\n\t\t\t\t{icon}\n\t\t\t\t<div className='i-popconfirm-content'>{content}</div>\n\t\t\t</Flex>\n\n\t\t\t<Flex gap={12} justify='flex-end' className='i-popconfirm-footer'>\n\t\t\t\t{cancelButtonProps !== null && (\n\t\t\t\t\t<Button {...cancel} onClick={handleCancel} />\n\t\t\t\t)}\n\t\t\t\t{extra}\n\t\t\t\t{okButtonProps !== null && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t{...ok}\n\t\t\t\t\t\tonClick={handleOk}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Flex>\n\t\t</div>\n\t);\n\n\treturn (\n\t\t<Popup\n\t\t\tcontent={popconfirmContent}\n\t\t\t{...restProps}\n\t\t\ttrigger={trigger}\n\t\t\tvisible={state.visible}\n\t\t\talign={align}\n\t\t\toffset={offset}\n\t\t\tposition={position}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t>\n\t\t\t{children}\n\t\t</Popup>\n\t);\n};\n\nexport default Popconfirm;\n"],"mappings":";;;;;;;;oBAWA,UAAM,MACL;;CAGD,UAAM;CACL,WAAW;CACX;;CAGD,MAAM,EACL,UAAM,SACL,SACA,OAAO,oBAAA,cAAA;EAAA,MAAA,oBAAA,cAAA,EAAA,CAAA;EAAA,WAAA;EAAA,MAAA;EAAA,CAAA,EACP,SACA,eACA,mBACA,UACA,OACA,WAAK,OACL,SAAS,IACT,OACA,MACA,SACA,GAAA,cACG;;EAGJ,SAAM;EACL;EACA,CAAA;4BAGD,OAAU,OAAO,EAAE,EAAC,WAAA,cAAA,GACjB;CACH,MAAG,SAAS,oBACZ,OAAM,OAAQ,EAAA,EAAO,eAAG,kBAAA,GACrB;;AAGH,QAAM,UAAA;AACL,YAAM,kBAAW,EAAA;;;AAIlB,QAAM,UAAW;AAChB,KAAA,UAAa,EAAE;AACf,MAAG;AACH,SAAI,QAAA;AACH,SAAM,UAAQ;YACR;AACN,SAAC,UAAQ;;;;AAKX,SAAM,UAAY,EAAE;AACnB,QAAM,WAAW;AACjB,QAAM,UAAU;;QA2BjB,oBAAA,eAAA;EACE,SAxBF,qBAAA,OAAA;GAAM,WAAA;aAAN,CACE,qBAAA,cAAA;IAAI,KAAA;cAAJ,CACC,MACA,oBAAC,OAAD;KAAK,WAAA;eAAA;KAAA,CAAA,CACA;;;;;;KAGL,sBAAuB,QACtB,oBAAA,gBAAA;MAAA,GAAA;MAAoB,SAAS;MAAC,CAAA;KAE9B;KACA,kBAAK,QACL,oBAAA,gBAAA;MACC,SAAA,MAAA;MACA,GAAA;MACA,SAAM;MACN,CAAA;KAED;MACA;;EAMF,GAAA;EACI;EACJ,SAAS,MAAA;EACF;EACA;EACC;EACR,iBAAU;EAEX;EACE,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useMouseUp, useResizeObserver } from "../../js/hooks.js";
|
|
2
2
|
import { getPointPosition, getPosition } from "../../js/utils.js";
|
|
3
3
|
import Content from "./content.js";
|
|
4
|
-
import { debounce } from "radash";
|
|
4
|
+
import { debounce } from "/Users/iann/codes/ioca-react/node_modules/.pnpm/radash@12.1.1/node_modules/radash/dist/esm/index.mjs";
|
|
5
5
|
import { Children, cloneElement, isValidElement, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
6
6
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
//#region packages/components/popup/popup.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popup.js","names":[],"sources":["../../../../packages/components/popup/popup.tsx"],"sourcesContent":["import { debounce } from \"radash\";\nimport {\n\tChildren,\n\tMouseEvent,\n\tRef,\n\tcloneElement,\n\tisValidElement,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { useMouseUp, useResizeObserver } from \"../../js/hooks\";\nimport { getPointPosition, getPosition } from \"../../js/utils\";\nimport Content from \"./content\";\nimport \"./index.css\";\nimport { IPopup } from \"./type\";\n\nexport default function Popup(props: IPopup) {\n\tconst {\n\t\tvisible = false,\n\t\tcontent,\n\t\ttrigger = \"hover\",\n\t\tgap = 12,\n\t\toffset = 8,\n\t\tposition = \"top\",\n\t\tshowDelay = 16,\n\t\thideDelay = 12,\n\t\ttouchable,\n\t\tarrow = true,\n\t\talign = \"center\",\n\t\tfitSize,\n\t\tdisabled,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tonVisibleChange,\n\t} = props;\n\n\tconst triggerRef = useRef<HTMLElement>(null);\n\tconst contentRef = useRef<HTMLDivElement>(null);\n\tconst timerRef = useRef<any>(null);\n\tconst afterHideTimerRef = useRef<any>(null);\n\tconst rafRef = useRef<number | null>(null);\n\n\tconst [show, setShow] = useState(false);\n\tconst showRef = useRef(false);\n\tshowRef.current = show;\n\n\tconst latestRef = useRef({\n\t\tdisabled,\n\t\ttrigger,\n\t\ttouchable,\n\t\tshowDelay,\n\t\thideDelay,\n\t\tposition,\n\t\tgap,\n\t\toffset,\n\t\talign,\n\t\tfitSize,\n\t\tonVisibleChange,\n\t});\n\tlatestRef.current = {\n\t\tdisabled,\n\t\ttrigger,\n\t\ttouchable,\n\t\tshowDelay,\n\t\thideDelay,\n\t\tposition,\n\t\tgap,\n\t\toffset,\n\t\talign,\n\t\tfitSize,\n\t\tonVisibleChange,\n\t};\n\n\tconst phaseRef = useRef<\"\" | \"showing\" | \"hiding\">(\"\");\n\tconst lastPosRef = useRef<{ left: number; top: number } | null>(null);\n\tconst lastArrowRef = useRef<{\n\t\tleft: number;\n\t\ttop: number;\n\t\ttransform: string;\n\t} | null>(null);\n\tconst arrowElRef = useRef<HTMLElement | null>(null);\n\tconst pointRef = useRef<{ pageX: number; pageY: number } | null>(null);\n\n\tconst clearTimer = () => {\n\t\tif (!timerRef.current) return;\n\t\tclearTimeout(timerRef.current);\n\t\ttimerRef.current = null;\n\t\tphaseRef.current = \"\";\n\t};\n\n\tconst clearAllTimers = () => {\n\t\tclearTimer();\n\t\tif (afterHideTimerRef.current) {\n\t\t\tclearTimeout(afterHideTimerRef.current);\n\t\t\tafterHideTimerRef.current = null;\n\t\t}\n\t\tif (rafRef.current !== null) {\n\t\t\tcancelAnimationFrame(rafRef.current);\n\t\t\trafRef.current = null;\n\t\t}\n\t};\n\n\tconst setContentVisible = (visible: boolean) => {\n\t\tconst el = contentRef.current;\n\t\tif (!el) return;\n\t\tel.style.opacity = visible ? \"1\" : \"0\";\n\t\tel.style.transform = visible ? \"none\" : \"translate(0, 2px)\";\n\t};\n\n\tconst ensureBaseStyle = () => {\n\t\tconst el = contentRef.current;\n\t\tif (!el) return;\n\t\tconst pos = \"fixed\";\n\t\tif (el.style.position !== pos) el.style.position = pos;\n\t};\n\n\tconst applyFitSize = () => {\n\t\tconst o = latestRef.current;\n\t\tconst triggerEl = triggerRef.current;\n\t\tconst contentEl = contentRef.current;\n\t\tif (!triggerEl || !contentEl) return;\n\n\t\tconst vertical = [\"top\", \"bottom\"].includes(o.position);\n\t\tconst key = vertical ? \"width\" : \"height\";\n\t\tif (!o.fitSize) {\n\t\t\t(contentEl.style as any)[key] = \"\";\n\t\t\treturn;\n\t\t}\n\n\t\tconst size = triggerEl[vertical ? \"offsetWidth\" : \"offsetHeight\"];\n\t\t(contentEl.style as any)[key] =\n\t\t\ttypeof size === \"number\" ? `${size}px` : \"\";\n\t};\n\n\tconst applyArrow = (arrowX: number, arrowY: number, arrowPos: string) => {\n\t\tconst contentEl = contentRef.current;\n\t\tif (!contentEl) return;\n\n\t\tconst arrowEl =\n\t\t\tarrowElRef.current ??\n\t\t\t(contentEl.querySelector(\".i-popup-arrow\") as HTMLElement | null);\n\t\tarrowElRef.current = arrowEl;\n\t\tif (!arrowEl) return;\n\n\t\tlet left = arrowX ?? 0;\n\t\tlet top = arrowY ?? 0;\n\t\tlet transform = \"\";\n\n\t\tswitch (arrowPos) {\n\t\t\tcase \"left\":\n\t\t\t\tleft += 2;\n\t\t\t\ttransform = `translate(-100%, -50%) rotate(180deg)`;\n\t\t\t\tbreak;\n\t\t\tcase \"right\":\n\t\t\t\tleft -= 2;\n\t\t\t\ttransform = `translate(0, -50%)`;\n\t\t\t\tbreak;\n\t\t\tcase \"top\":\n\t\t\t\ttop -= 2;\n\t\t\t\ttransform = `translate(-50%, -50%) rotate(-90deg)`;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\ttop += 2;\n\t\t\t\ttransform = `translate(-50%, -50%) rotate(90deg)`;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst prev = lastArrowRef.current;\n\t\tif (\n\t\t\tprev &&\n\t\t\tprev.left === left &&\n\t\t\tprev.top === top &&\n\t\t\tprev.transform === transform\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tlastArrowRef.current = { left, top, transform };\n\t\tarrowEl.style.left = `${left}px`;\n\t\tarrowEl.style.top = `${top}px`;\n\t\tarrowEl.style.transform = transform;\n\t};\n\n\tconst applyLeftTop = (left: number, top: number) => {\n\t\tconst contentEl = contentRef.current;\n\t\tif (!contentEl) return;\n\n\t\tconst prev = lastPosRef.current;\n\t\tif (prev && prev.left === left && prev.top === top) return;\n\n\t\tlastPosRef.current = { left, top };\n\t\tcontentEl.style.left = `${left}px`;\n\t\tcontentEl.style.top = `${top}px`;\n\t};\n\n\tconst computeRelativePosition = () => {\n\t\tconst triggerEl = triggerRef.current;\n\t\tconst contentEl = contentRef.current;\n\t\tif (!triggerEl || !contentEl) return;\n\n\t\tconst o = latestRef.current;\n\t\tapplyFitSize();\n\n\t\tconst [left, top, { arrowX, arrowY, arrowPos }] = getPosition(\n\t\t\ttriggerEl,\n\t\t\tcontentEl,\n\t\t\t{\n\t\t\t\tposition: o.position,\n\t\t\t\tgap: o.gap,\n\t\t\t\toffset: o.offset,\n\t\t\t\talign: o.align,\n\t\t\t\trefWindow: true,\n\t\t\t},\n\t\t);\n\n\t\tapplyLeftTop(left, top);\n\t\tapplyArrow(arrowX, arrowY, arrowPos);\n\t};\n\n\tconst computePointPosition = () => {\n\t\tconst contentEl = contentRef.current as HTMLElement | null;\n\t\tif (!contentEl) return;\n\t\tconst point = pointRef.current;\n\t\tif (!point) return;\n\n\t\tconst [left, top] = getPointPosition(point as any, contentEl);\n\t\tapplyLeftTop(left, top);\n\t};\n\n\tconst scheduleComputePosition = () => {\n\t\tif (!showRef.current) return;\n\t\tif (rafRef.current !== null) return;\n\t\trafRef.current = requestAnimationFrame(() => {\n\t\t\trafRef.current = null;\n\t\t\tif (!showRef.current) return;\n\t\t\tensureBaseStyle();\n\n\t\t\tif (latestRef.current.trigger === \"contextmenu\") {\n\t\t\t\tcomputePointPosition();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcomputeRelativePosition();\n\t\t});\n\t};\n\n\tconst handleShow = () => {\n\t\tconst opts = latestRef.current;\n\t\tif (opts.disabled) return;\n\t\tclearAllTimers();\n\t\tif (\n\t\t\tshowRef.current &&\n\t\t\t(opts.trigger !== \"hover\" ||\n\t\t\t\t(opts.trigger === \"hover\" && !opts.touchable))\n\t\t) {\n\t\t\tensureBaseStyle();\n\t\t\tcomputeRelativePosition();\n\t\t\tsetContentVisible(true);\n\t\t\treturn;\n\t\t}\n\n\t\tphaseRef.current = \"showing\";\n\t\tif (!showRef.current) {\n\t\t\tlastPosRef.current = null;\n\t\t\tlastArrowRef.current = null;\n\t\t\tarrowElRef.current = null;\n\t\t\tsetShow(true);\n\t\t}\n\n\t\ttimerRef.current = setTimeout(() => {\n\t\t\tif (phaseRef.current !== \"showing\") return;\n\n\t\t\trafRef.current = requestAnimationFrame(() => {\n\t\t\t\trafRef.current = null;\n\t\t\t\tif (phaseRef.current !== \"showing\") return;\n\t\t\t\tif (!contentRef.current) return;\n\n\t\t\t\tensureBaseStyle();\n\t\t\t\tif (opts.trigger === \"contextmenu\") {\n\t\t\t\t\tcomputePointPosition();\n\t\t\t\t} else {\n\t\t\t\t\tcomputeRelativePosition();\n\t\t\t\t}\n\t\t\t\tsetContentVisible(true);\n\t\t\t\topts.onVisibleChange?.(true);\n\t\t\t\tclearTimer();\n\t\t\t\tphaseRef.current = \"\";\n\t\t\t});\n\t\t}, opts.showDelay);\n\t};\n\n\tconst handleHide = () => {\n\t\tif (!showRef.current) return;\n\n\t\tclearAllTimers();\n\t\tphaseRef.current = \"hiding\";\n\t\ttimerRef.current = setTimeout(() => {\n\t\t\tif (phaseRef.current !== \"hiding\") {\n\t\t\t\tclearTimer();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetContentVisible(false);\n\n\t\t\tafterHideTimerRef.current = setTimeout(() => {\n\t\t\t\tafterHideTimerRef.current = null;\n\t\t\t\tsetShow(false);\n\t\t\t\tclearAllTimers();\n\t\t\t\tlatestRef.current.onVisibleChange?.(false);\n\t\t\t\tphaseRef.current = \"\";\n\t\t\t}, 160);\n\t\t}, latestRef.current.hideDelay);\n\t};\n\n\tconst handleToggle = (action?: boolean) => {\n\t\tif (action !== undefined) {\n\t\t\taction ? handleShow() : handleHide();\n\t\t\treturn;\n\t\t}\n\t\tshowRef.current ? handleHide() : handleShow();\n\t};\n\n\tconst hideRef = useRef(handleHide);\n\tconst toggleRef = useRef(handleToggle);\n\thideRef.current = handleHide;\n\ttoggleRef.current = handleToggle;\n\n\tconst doHide = useMemo(() => () => hideRef.current(), []);\n\tconst doToggle = useMemo(\n\t\t() => (action?: boolean) => toggleRef.current(action),\n\t\t[],\n\t);\n\n\tconst eventMaps = useMemo(() => {\n\t\treturn {\n\t\t\tclick: {\n\t\t\t\tonClick: () => doToggle(true),\n\t\t\t},\n\t\t\thover: {\n\t\t\t\tonMouseEnter: () => doToggle(true),\n\t\t\t\tonMouseLeave: () => doToggle(false),\n\t\t\t},\n\t\t\tfocus: {\n\t\t\t\tonFocus: () => doToggle(true),\n\t\t\t\tonBlur: () => doToggle(false),\n\t\t\t},\n\t\t\tcontextmenu: {\n\t\t\t\tonContextMenu: (e: MouseEvent) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\tpointRef.current = {\n\t\t\t\t\t\tpageX: (e as any).pageX,\n\t\t\t\t\t\tpageY: (e as any).pageY,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (showRef.current) {\n\t\t\t\t\t\tensureBaseStyle();\n\t\t\t\t\t\tcomputePointPosition();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tclearAllTimers();\n\t\t\t\t\tphaseRef.current = \"showing\";\n\t\t\t\t\tlastPosRef.current = null;\n\t\t\t\t\tlastArrowRef.current = null;\n\t\t\t\t\tarrowElRef.current = null;\n\t\t\t\t\tsetShow(true);\n\n\t\t\t\t\ttimerRef.current = setTimeout(() => {\n\t\t\t\t\t\tif (phaseRef.current !== \"showing\") return;\n\t\t\t\t\t\tif (!contentRef.current) return;\n\n\t\t\t\t\t\tensureBaseStyle();\n\t\t\t\t\t\tcomputePointPosition();\n\t\t\t\t\t\tsetContentVisible(true);\n\t\t\t\t\t\tclearTimer();\n\t\t\t\t\t\tlatestRef.current.onVisibleChange?.(true);\n\t\t\t\t\t\tphaseRef.current = \"\";\n\t\t\t\t\t}, latestRef.current.showDelay);\n\t\t\t\t},\n\t\t\t},\n\t\t\tnone: {},\n\t\t};\n\t}, [doToggle]);\n\n\tconst contentTouch = useMemo(() => {\n\t\tif (!touchable) return {};\n\t\tconst events: { [key: string]: () => void } = {};\n\n\t\tif (trigger === \"hover\") {\n\t\t\tevents[\"onMouseEnter\"] = () => {\n\t\t\t\tclearTimer();\n\t\t\t};\n\t\t\tevents[\"onMouseLeave\"] = () => handleToggle(false);\n\t\t}\n\n\t\treturn events;\n\t}, [touchable, trigger]);\n\n\tconst { observe, unobserve, disconnect } = useResizeObserver();\n\tuseEffect(() => {\n\t\tif (!observe) return;\n\t\tconst triggerEl = triggerRef.current;\n\t\tconst contentEl = contentRef.current;\n\t\tif (triggerEl) observe(triggerEl, scheduleComputePosition);\n\t\tif (contentEl) observe(contentEl, scheduleComputePosition);\n\t\treturn () => {\n\t\t\tif (contentEl) unobserve(contentEl);\n\t\t\tif (triggerEl) unobserve(triggerEl);\n\t\t\tdisconnect();\n\t\t};\n\t}, [trigger, observe, unobserve, disconnect, show]);\n\n\tuseLayoutEffect(() => {\n\t\tif (!show) return;\n\t\tensureBaseStyle();\n\t\tif (latestRef.current.trigger === \"contextmenu\") {\n\t\t\tcomputePointPosition();\n\t\t} else {\n\t\t\tcomputeRelativePosition();\n\t\t}\n\t}, [show]);\n\n\tuseLayoutEffect(() => {\n\t\tdoToggle(visible);\n\t}, [visible]);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tclearAllTimers();\n\t\t};\n\t}, []);\n\n\tconst mouseUpHandlerRef = useRef<(e: any) => void>(() => {});\n\tmouseUpHandlerRef.current = (e) => {\n\t\tif (!showRef.current) return;\n\t\tconst triggerEl = triggerRef.current;\n\t\tconst contentEl = contentRef.current;\n\t\tif (!triggerEl || !contentEl) return;\n\t\tconst tar = e.target as HTMLElement;\n\t\tif (triggerEl.contains(tar) || contentEl.contains(tar)) return;\n\t\tdoHide();\n\t};\n\tconst onGlobalMouseUp = useMemo(\n\t\t() => (e: any) => mouseUpHandlerRef.current(e),\n\t\t[],\n\t);\n\tuseMouseUp(onGlobalMouseUp);\n\n\tuseEffect(() => {\n\t\tif (!show) return;\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onScrollOrResize = debounce({ delay: 160 }, () => {\n\t\t\tscheduleComputePosition();\n\t\t});\n\n\t\twindow.addEventListener(\"scroll\", onScrollOrResize, {\n\t\t\tpassive: true,\n\t\t\tcapture: true,\n\t\t});\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"scroll\", onScrollOrResize, true);\n\t\t};\n\t}, [show]);\n\n\tconst mergeRefs = (...refs: Array<Ref<HTMLElement> | undefined>) => {\n\t\treturn (node: HTMLElement | null) => {\n\t\t\tfor (const ref of refs) {\n\t\t\t\tif (!ref) continue;\n\t\t\t\tif (typeof ref === \"function\") {\n\t\t\t\t\tref(node);\n\t\t\t\t} else {\n\t\t\t\t\t(ref as any).current = node;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{(() => {\n\t\t\t\tconst events = eventMaps[trigger] as any;\n\t\t\t\tconst items = Children.toArray(children);\n\t\t\t\tconst canAttachRef = (el: any) => {\n\t\t\t\t\tif (!isValidElement(el)) return false;\n\t\t\t\t\tconst t: any = el.type;\n\t\t\t\t\tif (typeof t === \"string\") return true;\n\t\t\t\t\tif (t?.prototype?.isReactComponent) return true;\n\t\t\t\t\tif (t?.$$typeof === Symbol.for(\"react.forward_ref\"))\n\t\t\t\t\t\treturn true;\n\t\t\t\t\treturn false;\n\t\t\t\t};\n\n\t\t\t\tif (items.length !== 1) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={triggerRef as any}\n\t\t\t\t\t\t\t{...events}\n\t\t\t\t\t\t\tclassName='i-popup-trigger'\n\t\t\t\t\t\t\tstyle={{ display: \"inline-block\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst only = items[0] as any;\n\t\t\t\tif (!isValidElement(only) || !canAttachRef(only)) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={triggerRef as any}\n\t\t\t\t\t\t\t{...events}\n\t\t\t\t\t\t\tclassName='i-popup-trigger'\n\t\t\t\t\t\t\tstyle={{ display: \"inline-block\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{only}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst { className: childClassName, ...restProps } =\n\t\t\t\t\tonly.props as any;\n\t\t\t\tconst nextProps: Record<string, any> = { ...restProps };\n\t\t\t\tfor (const evt of Object.keys(events)) {\n\t\t\t\t\tconst theirs = restProps[evt];\n\t\t\t\t\tconst ours = events[evt];\n\t\t\t\t\tnextProps[evt] =\n\t\t\t\t\t\ttypeof theirs === \"function\"\n\t\t\t\t\t\t\t? (e: any) => {\n\t\t\t\t\t\t\t\t\tours(e);\n\t\t\t\t\t\t\t\t\ttheirs(e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: ours;\n\t\t\t\t}\n\t\t\t\treturn cloneElement(only as any, {\n\t\t\t\t\tref: mergeRefs((only as any).ref, triggerRef as any),\n\t\t\t\t\tclassName: childClassName,\n\t\t\t\t\t...nextProps,\n\t\t\t\t});\n\t\t\t})()}\n\n\t\t\t{show && (\n\t\t\t\t<Content\n\t\t\t\t\tref={contentRef}\n\t\t\t\t\tarrow={arrow && trigger !== \"contextmenu\"}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t...style,\n\t\t\t\t\t\tposition: \"fixed\",\n\t\t\t\t\t}}\n\t\t\t\t\tclassName={className}\n\t\t\t\t\t{...contentTouch}\n\t\t\t\t\ttrigger={triggerRef.current as HTMLElement}\n\t\t\t\t>\n\t\t\t\t\t{content}\n\t\t\t\t</Content>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"popup.js","names":[],"sources":["../../../../packages/components/popup/popup.tsx"],"sourcesContent":["import { debounce } from \"radash\";\nimport {\n\tChildren,\n\tMouseEvent,\n\tRef,\n\tcloneElement,\n\tisValidElement,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { useMouseUp, useResizeObserver } from \"../../js/hooks\";\nimport { getPointPosition, getPosition } from \"../../js/utils\";\nimport Content from \"./content\";\nimport \"./index.css\";\nimport { IPopup } from \"./type\";\n\nexport default function Popup(props: IPopup) {\n\tconst {\n\t\tvisible = false,\n\t\tcontent,\n\t\ttrigger = \"hover\",\n\t\tgap = 12,\n\t\toffset = 8,\n\t\tposition = \"top\",\n\t\tshowDelay = 16,\n\t\thideDelay = 12,\n\t\ttouchable,\n\t\tarrow = true,\n\t\talign = \"center\",\n\t\tfitSize,\n\t\tdisabled,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tonVisibleChange,\n\t} = props;\n\n\tconst triggerRef = useRef<HTMLElement>(null);\n\tconst contentRef = useRef<HTMLDivElement>(null);\n\tconst timerRef = useRef<any>(null);\n\tconst afterHideTimerRef = useRef<any>(null);\n\tconst rafRef = useRef<number | null>(null);\n\n\tconst [show, setShow] = useState(false);\n\tconst showRef = useRef(false);\n\tshowRef.current = show;\n\n\tconst latestRef = useRef({\n\t\tdisabled,\n\t\ttrigger,\n\t\ttouchable,\n\t\tshowDelay,\n\t\thideDelay,\n\t\tposition,\n\t\tgap,\n\t\toffset,\n\t\talign,\n\t\tfitSize,\n\t\tonVisibleChange,\n\t});\n\tlatestRef.current = {\n\t\tdisabled,\n\t\ttrigger,\n\t\ttouchable,\n\t\tshowDelay,\n\t\thideDelay,\n\t\tposition,\n\t\tgap,\n\t\toffset,\n\t\talign,\n\t\tfitSize,\n\t\tonVisibleChange,\n\t};\n\n\tconst phaseRef = useRef<\"\" | \"showing\" | \"hiding\">(\"\");\n\tconst lastPosRef = useRef<{ left: number; top: number } | null>(null);\n\tconst lastArrowRef = useRef<{\n\t\tleft: number;\n\t\ttop: number;\n\t\ttransform: string;\n\t} | null>(null);\n\tconst arrowElRef = useRef<HTMLElement | null>(null);\n\tconst pointRef = useRef<{ pageX: number; pageY: number } | null>(null);\n\n\tconst clearTimer = () => {\n\t\tif (!timerRef.current) return;\n\t\tclearTimeout(timerRef.current);\n\t\ttimerRef.current = null;\n\t\tphaseRef.current = \"\";\n\t};\n\n\tconst clearAllTimers = () => {\n\t\tclearTimer();\n\t\tif (afterHideTimerRef.current) {\n\t\t\tclearTimeout(afterHideTimerRef.current);\n\t\t\tafterHideTimerRef.current = null;\n\t\t}\n\t\tif (rafRef.current !== null) {\n\t\t\tcancelAnimationFrame(rafRef.current);\n\t\t\trafRef.current = null;\n\t\t}\n\t};\n\n\tconst setContentVisible = (visible: boolean) => {\n\t\tconst el = contentRef.current;\n\t\tif (!el) return;\n\t\tel.style.opacity = visible ? \"1\" : \"0\";\n\t\tel.style.transform = visible ? \"none\" : \"translate(0, 2px)\";\n\t};\n\n\tconst ensureBaseStyle = () => {\n\t\tconst el = contentRef.current;\n\t\tif (!el) return;\n\t\tconst pos = \"fixed\";\n\t\tif (el.style.position !== pos) el.style.position = pos;\n\t};\n\n\tconst applyFitSize = () => {\n\t\tconst o = latestRef.current;\n\t\tconst triggerEl = triggerRef.current;\n\t\tconst contentEl = contentRef.current;\n\t\tif (!triggerEl || !contentEl) return;\n\n\t\tconst vertical = [\"top\", \"bottom\"].includes(o.position);\n\t\tconst key = vertical ? \"width\" : \"height\";\n\t\tif (!o.fitSize) {\n\t\t\t(contentEl.style as any)[key] = \"\";\n\t\t\treturn;\n\t\t}\n\n\t\tconst size = triggerEl[vertical ? \"offsetWidth\" : \"offsetHeight\"];\n\t\t(contentEl.style as any)[key] =\n\t\t\ttypeof size === \"number\" ? `${size}px` : \"\";\n\t};\n\n\tconst applyArrow = (arrowX: number, arrowY: number, arrowPos: string) => {\n\t\tconst contentEl = contentRef.current;\n\t\tif (!contentEl) return;\n\n\t\tconst arrowEl =\n\t\t\tarrowElRef.current ??\n\t\t\t(contentEl.querySelector(\".i-popup-arrow\") as HTMLElement | null);\n\t\tarrowElRef.current = arrowEl;\n\t\tif (!arrowEl) return;\n\n\t\tlet left = arrowX ?? 0;\n\t\tlet top = arrowY ?? 0;\n\t\tlet transform = \"\";\n\n\t\tswitch (arrowPos) {\n\t\t\tcase \"left\":\n\t\t\t\tleft += 2;\n\t\t\t\ttransform = `translate(-100%, -50%) rotate(180deg)`;\n\t\t\t\tbreak;\n\t\t\tcase \"right\":\n\t\t\t\tleft -= 2;\n\t\t\t\ttransform = `translate(0, -50%)`;\n\t\t\t\tbreak;\n\t\t\tcase \"top\":\n\t\t\t\ttop -= 2;\n\t\t\t\ttransform = `translate(-50%, -50%) rotate(-90deg)`;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\ttop += 2;\n\t\t\t\ttransform = `translate(-50%, -50%) rotate(90deg)`;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst prev = lastArrowRef.current;\n\t\tif (\n\t\t\tprev &&\n\t\t\tprev.left === left &&\n\t\t\tprev.top === top &&\n\t\t\tprev.transform === transform\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tlastArrowRef.current = { left, top, transform };\n\t\tarrowEl.style.left = `${left}px`;\n\t\tarrowEl.style.top = `${top}px`;\n\t\tarrowEl.style.transform = transform;\n\t};\n\n\tconst applyLeftTop = (left: number, top: number) => {\n\t\tconst contentEl = contentRef.current;\n\t\tif (!contentEl) return;\n\n\t\tconst prev = lastPosRef.current;\n\t\tif (prev && prev.left === left && prev.top === top) return;\n\n\t\tlastPosRef.current = { left, top };\n\t\tcontentEl.style.left = `${left}px`;\n\t\tcontentEl.style.top = `${top}px`;\n\t};\n\n\tconst computeRelativePosition = () => {\n\t\tconst triggerEl = triggerRef.current;\n\t\tconst contentEl = contentRef.current;\n\t\tif (!triggerEl || !contentEl) return;\n\n\t\tconst o = latestRef.current;\n\t\tapplyFitSize();\n\n\t\tconst [left, top, { arrowX, arrowY, arrowPos }] = getPosition(\n\t\t\ttriggerEl,\n\t\t\tcontentEl,\n\t\t\t{\n\t\t\t\tposition: o.position,\n\t\t\t\tgap: o.gap,\n\t\t\t\toffset: o.offset,\n\t\t\t\talign: o.align,\n\t\t\t\trefWindow: true,\n\t\t\t},\n\t\t);\n\n\t\tapplyLeftTop(left, top);\n\t\tapplyArrow(arrowX, arrowY, arrowPos);\n\t};\n\n\tconst computePointPosition = () => {\n\t\tconst contentEl = contentRef.current as HTMLElement | null;\n\t\tif (!contentEl) return;\n\t\tconst point = pointRef.current;\n\t\tif (!point) return;\n\n\t\tconst [left, top] = getPointPosition(point as any, contentEl);\n\t\tapplyLeftTop(left, top);\n\t};\n\n\tconst scheduleComputePosition = () => {\n\t\tif (!showRef.current) return;\n\t\tif (rafRef.current !== null) return;\n\t\trafRef.current = requestAnimationFrame(() => {\n\t\t\trafRef.current = null;\n\t\t\tif (!showRef.current) return;\n\t\t\tensureBaseStyle();\n\n\t\t\tif (latestRef.current.trigger === \"contextmenu\") {\n\t\t\t\tcomputePointPosition();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcomputeRelativePosition();\n\t\t});\n\t};\n\n\tconst handleShow = () => {\n\t\tconst opts = latestRef.current;\n\t\tif (opts.disabled) return;\n\t\tclearAllTimers();\n\t\tif (\n\t\t\tshowRef.current &&\n\t\t\t(opts.trigger !== \"hover\" ||\n\t\t\t\t(opts.trigger === \"hover\" && !opts.touchable))\n\t\t) {\n\t\t\tensureBaseStyle();\n\t\t\tcomputeRelativePosition();\n\t\t\tsetContentVisible(true);\n\t\t\treturn;\n\t\t}\n\n\t\tphaseRef.current = \"showing\";\n\t\tif (!showRef.current) {\n\t\t\tlastPosRef.current = null;\n\t\t\tlastArrowRef.current = null;\n\t\t\tarrowElRef.current = null;\n\t\t\tsetShow(true);\n\t\t}\n\n\t\ttimerRef.current = setTimeout(() => {\n\t\t\tif (phaseRef.current !== \"showing\") return;\n\n\t\t\trafRef.current = requestAnimationFrame(() => {\n\t\t\t\trafRef.current = null;\n\t\t\t\tif (phaseRef.current !== \"showing\") return;\n\t\t\t\tif (!contentRef.current) return;\n\n\t\t\t\tensureBaseStyle();\n\t\t\t\tif (opts.trigger === \"contextmenu\") {\n\t\t\t\t\tcomputePointPosition();\n\t\t\t\t} else {\n\t\t\t\t\tcomputeRelativePosition();\n\t\t\t\t}\n\t\t\t\tsetContentVisible(true);\n\t\t\t\topts.onVisibleChange?.(true);\n\t\t\t\tclearTimer();\n\t\t\t\tphaseRef.current = \"\";\n\t\t\t});\n\t\t}, opts.showDelay);\n\t};\n\n\tconst handleHide = () => {\n\t\tif (!showRef.current) return;\n\n\t\tclearAllTimers();\n\t\tphaseRef.current = \"hiding\";\n\t\ttimerRef.current = setTimeout(() => {\n\t\t\tif (phaseRef.current !== \"hiding\") {\n\t\t\t\tclearTimer();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetContentVisible(false);\n\n\t\t\tafterHideTimerRef.current = setTimeout(() => {\n\t\t\t\tafterHideTimerRef.current = null;\n\t\t\t\tsetShow(false);\n\t\t\t\tclearAllTimers();\n\t\t\t\tlatestRef.current.onVisibleChange?.(false);\n\t\t\t\tphaseRef.current = \"\";\n\t\t\t}, 160);\n\t\t}, latestRef.current.hideDelay);\n\t};\n\n\tconst handleToggle = (action?: boolean) => {\n\t\tif (action !== undefined) {\n\t\t\taction ? handleShow() : handleHide();\n\t\t\treturn;\n\t\t}\n\t\tshowRef.current ? handleHide() : handleShow();\n\t};\n\n\tconst hideRef = useRef(handleHide);\n\tconst toggleRef = useRef(handleToggle);\n\thideRef.current = handleHide;\n\ttoggleRef.current = handleToggle;\n\n\tconst doHide = useMemo(() => () => hideRef.current(), []);\n\tconst doToggle = useMemo(\n\t\t() => (action?: boolean) => toggleRef.current(action),\n\t\t[],\n\t);\n\n\tconst eventMaps = useMemo(() => {\n\t\treturn {\n\t\t\tclick: {\n\t\t\t\tonClick: () => doToggle(true),\n\t\t\t},\n\t\t\thover: {\n\t\t\t\tonMouseEnter: () => doToggle(true),\n\t\t\t\tonMouseLeave: () => doToggle(false),\n\t\t\t},\n\t\t\tfocus: {\n\t\t\t\tonFocus: () => doToggle(true),\n\t\t\t\tonBlur: () => doToggle(false),\n\t\t\t},\n\t\t\tcontextmenu: {\n\t\t\t\tonContextMenu: (e: MouseEvent) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\tpointRef.current = {\n\t\t\t\t\t\tpageX: (e as any).pageX,\n\t\t\t\t\t\tpageY: (e as any).pageY,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (showRef.current) {\n\t\t\t\t\t\tensureBaseStyle();\n\t\t\t\t\t\tcomputePointPosition();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tclearAllTimers();\n\t\t\t\t\tphaseRef.current = \"showing\";\n\t\t\t\t\tlastPosRef.current = null;\n\t\t\t\t\tlastArrowRef.current = null;\n\t\t\t\t\tarrowElRef.current = null;\n\t\t\t\t\tsetShow(true);\n\n\t\t\t\t\ttimerRef.current = setTimeout(() => {\n\t\t\t\t\t\tif (phaseRef.current !== \"showing\") return;\n\t\t\t\t\t\tif (!contentRef.current) return;\n\n\t\t\t\t\t\tensureBaseStyle();\n\t\t\t\t\t\tcomputePointPosition();\n\t\t\t\t\t\tsetContentVisible(true);\n\t\t\t\t\t\tclearTimer();\n\t\t\t\t\t\tlatestRef.current.onVisibleChange?.(true);\n\t\t\t\t\t\tphaseRef.current = \"\";\n\t\t\t\t\t}, latestRef.current.showDelay);\n\t\t\t\t},\n\t\t\t},\n\t\t\tnone: {},\n\t\t};\n\t}, [doToggle]);\n\n\tconst contentTouch = useMemo(() => {\n\t\tif (!touchable) return {};\n\t\tconst events: { [key: string]: () => void } = {};\n\n\t\tif (trigger === \"hover\") {\n\t\t\tevents[\"onMouseEnter\"] = () => {\n\t\t\t\tclearTimer();\n\t\t\t};\n\t\t\tevents[\"onMouseLeave\"] = () => handleToggle(false);\n\t\t}\n\n\t\treturn events;\n\t}, [touchable, trigger]);\n\n\tconst { observe, unobserve, disconnect } = useResizeObserver();\n\tuseEffect(() => {\n\t\tif (!observe) return;\n\t\tconst triggerEl = triggerRef.current;\n\t\tconst contentEl = contentRef.current;\n\t\tif (triggerEl) observe(triggerEl, scheduleComputePosition);\n\t\tif (contentEl) observe(contentEl, scheduleComputePosition);\n\t\treturn () => {\n\t\t\tif (contentEl) unobserve(contentEl);\n\t\t\tif (triggerEl) unobserve(triggerEl);\n\t\t\tdisconnect();\n\t\t};\n\t}, [trigger, observe, unobserve, disconnect, show]);\n\n\tuseLayoutEffect(() => {\n\t\tif (!show) return;\n\t\tensureBaseStyle();\n\t\tif (latestRef.current.trigger === \"contextmenu\") {\n\t\t\tcomputePointPosition();\n\t\t} else {\n\t\t\tcomputeRelativePosition();\n\t\t}\n\t}, [show]);\n\n\tuseLayoutEffect(() => {\n\t\tdoToggle(visible);\n\t}, [visible]);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tclearAllTimers();\n\t\t};\n\t}, []);\n\n\tconst mouseUpHandlerRef = useRef<(e: any) => void>(() => {});\n\tmouseUpHandlerRef.current = (e) => {\n\t\tif (!showRef.current) return;\n\t\tconst triggerEl = triggerRef.current;\n\t\tconst contentEl = contentRef.current;\n\t\tif (!triggerEl || !contentEl) return;\n\t\tconst tar = e.target as HTMLElement;\n\t\tif (triggerEl.contains(tar) || contentEl.contains(tar)) return;\n\t\tdoHide();\n\t};\n\tconst onGlobalMouseUp = useMemo(\n\t\t() => (e: any) => mouseUpHandlerRef.current(e),\n\t\t[],\n\t);\n\tuseMouseUp(onGlobalMouseUp);\n\n\tuseEffect(() => {\n\t\tif (!show) return;\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onScrollOrResize = debounce({ delay: 160 }, () => {\n\t\t\tscheduleComputePosition();\n\t\t});\n\n\t\twindow.addEventListener(\"scroll\", onScrollOrResize, {\n\t\t\tpassive: true,\n\t\t\tcapture: true,\n\t\t});\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"scroll\", onScrollOrResize, true);\n\t\t};\n\t}, [show]);\n\n\tconst mergeRefs = (...refs: Array<Ref<HTMLElement> | undefined>) => {\n\t\treturn (node: HTMLElement | null) => {\n\t\t\tfor (const ref of refs) {\n\t\t\t\tif (!ref) continue;\n\t\t\t\tif (typeof ref === \"function\") {\n\t\t\t\t\tref(node);\n\t\t\t\t} else {\n\t\t\t\t\t(ref as any).current = node;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{(() => {\n\t\t\t\tconst events = eventMaps[trigger] as any;\n\t\t\t\tconst items = Children.toArray(children);\n\t\t\t\tconst canAttachRef = (el: any) => {\n\t\t\t\t\tif (!isValidElement(el)) return false;\n\t\t\t\t\tconst t: any = el.type;\n\t\t\t\t\tif (typeof t === \"string\") return true;\n\t\t\t\t\tif (t?.prototype?.isReactComponent) return true;\n\t\t\t\t\tif (t?.$$typeof === Symbol.for(\"react.forward_ref\"))\n\t\t\t\t\t\treturn true;\n\t\t\t\t\treturn false;\n\t\t\t\t};\n\n\t\t\t\tif (items.length !== 1) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={triggerRef as any}\n\t\t\t\t\t\t\t{...events}\n\t\t\t\t\t\t\tclassName='i-popup-trigger'\n\t\t\t\t\t\t\tstyle={{ display: \"inline-block\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst only = items[0] as any;\n\t\t\t\tif (!isValidElement(only) || !canAttachRef(only)) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={triggerRef as any}\n\t\t\t\t\t\t\t{...events}\n\t\t\t\t\t\t\tclassName='i-popup-trigger'\n\t\t\t\t\t\t\tstyle={{ display: \"inline-block\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{only}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst { className: childClassName, ...restProps } =\n\t\t\t\t\tonly.props as any;\n\t\t\t\tconst nextProps: Record<string, any> = { ...restProps };\n\t\t\t\tfor (const evt of Object.keys(events)) {\n\t\t\t\t\tconst theirs = restProps[evt];\n\t\t\t\t\tconst ours = events[evt];\n\t\t\t\t\tnextProps[evt] =\n\t\t\t\t\t\ttypeof theirs === \"function\"\n\t\t\t\t\t\t\t? (e: any) => {\n\t\t\t\t\t\t\t\t\tours(e);\n\t\t\t\t\t\t\t\t\ttheirs(e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: ours;\n\t\t\t\t}\n\t\t\t\treturn cloneElement(only as any, {\n\t\t\t\t\tref: mergeRefs((only as any).ref, triggerRef as any),\n\t\t\t\t\tclassName: childClassName,\n\t\t\t\t\t...nextProps,\n\t\t\t\t});\n\t\t\t})()}\n\n\t\t\t{show && (\n\t\t\t\t<Content\n\t\t\t\t\tref={contentRef}\n\t\t\t\t\tarrow={arrow && trigger !== \"contextmenu\"}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t...style,\n\t\t\t\t\t\tposition: \"fixed\",\n\t\t\t\t\t}}\n\t\t\t\t\tclassName={className}\n\t\t\t\t\t{...contentTouch}\n\t\t\t\t\ttrigger={triggerRef.current as HTMLElement}\n\t\t\t\t>\n\t\t\t\t\t{content}\n\t\t\t\t</Content>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","names":[],"sources":["../../../../packages/components/progress/progress.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useRef } from \"react\";\nimport \"../../css/input.css\";\nimport { useMouseMove, useMouseUp, useReactive } from \"../../js/hooks\";\nimport Circle from \"./circle\";\nimport \"./index.css\";\nimport Line from \"./line\";\nimport { IProgress } from \"./type\";\n\nconst Progress = (props: IProgress) => {\n\tconst {\n\t\tvalue = 0,\n\t\tlineWidth = 8,\n\t\tcircleSize = 40,\n\t\tprecision = 0,\n\t\tstyle,\n\t\tdraggable = true,\n\t\ttype = \"line\",\n\t\tbarClass,\n\t\tvertical,\n\t\tlabel,\n\t\tlabelInline,\n\t\tclassName,\n\t\trenderCursor,\n\t\tonChange,\n\t\tonDraggingChange,\n\t} = props;\n\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst state = useReactive({\n\t\tvalue,\n\t\tdragging: false,\n\t\tsize: 0,\n\t\tstart: 0,\n\t});\n\n\tconst pageXY = vertical ? \"pageY\" : \"pageX\";\n\tconst rectTL = vertical ? \"top\" : \"left\";\n\tconst rectWH = vertical ? \"height\" : \"width\";\n\n\tconst getFixedValue = () => {\n\t\tlet value = +state.value.toFixed(precision);\n\t\tvalue = Math.min(100, value);\n\t\tvalue = Math.max(0, value);\n\n\t\treturn value;\n\t};\n\n\tconst handleMouseDown = (e) => {\n\t\tif (!ref.current || !draggable) return;\n\n\t\tif (e.touches) {\n\t\t\te = e.touches[0];\n\t\t}\n\n\t\tconst rect = ref.current.getBoundingClientRect();\n\t\tconst value = ((e[pageXY] - rect[rectTL]) * 100) / rect[rectWH];\n\n\t\tObject.assign(state, {\n\t\t\tvalue: vertical ? 100 - value : value,\n\t\t\tsize: rect[rectWH],\n\t\t\tstart: rect[rectTL],\n\t\t\tdragging: true,\n\t\t});\n\t\tonDraggingChange?.(true);\n\t};\n\n\tconst handleMouseMove = (e) => {\n\t\tif (!state.dragging || !draggable) 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 { start, size } = state;\n\t\tconst offset = e[pageXY] - start;\n\n\t\tif (offset < 0 || offset > size) return;\n\n\t\tconst value = ((e[pageXY] - start) * 100) / size;\n\t\tstate.value = vertical ? 100 - value : value;\n\t};\n\n\tconst handleMouseUp = () => {\n\t\tif (!state.dragging || !draggable) return;\n\n\t\tonChange?.(getFixedValue());\n\t\tstate.dragging = false;\n\t\tonDraggingChange?.(false);\n\t};\n\n\tuseMouseMove(handleMouseMove);\n\tuseMouseUp(handleMouseUp);\n\n\tuseEffect(() => {\n\t\tif (value > 100) {\n\t\t\tstate.value = 100;\n\t\t\treturn;\n\t\t}\n\n\t\tif (value < 0) {\n\t\t\tstate.value = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tstate.value = value;\n\t}, [value]);\n\n\treturn (\n\t\t<div\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{type === \"line\" && (\n\t\t\t\t<Line\n\t\t\t\t\tref={ref}\n\t\t\t\t\tvertical={vertical}\n\t\t\t\t\tlineWidth={lineWidth}\n\t\t\t\t\tbarClass={barClass}\n\t\t\t\t\tdragging={state.dragging}\n\t\t\t\t\tvalue={state.value}\n\t\t\t\t\trenderCursor={renderCursor}\n\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\tonTouchStart={handleMouseDown}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{type === \"circle\" && (\n\t\t\t\t<Circle\n\t\t\t\t\tvalue={state.value}\n\t\t\t\t\tcircleSize={circleSize}\n\t\t\t\t\tlineWidth={lineWidth}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Progress;\n"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"progress.js","names":[],"sources":["../../../../packages/components/progress/progress.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useRef } from \"react\";\nimport \"../../css/input.css\";\nimport { useMouseMove, useMouseUp, useReactive } from \"../../js/hooks\";\nimport Circle from \"./circle\";\nimport \"./index.css\";\nimport Line from \"./line\";\nimport { IProgress } from \"./type\";\n\nconst Progress = (props: IProgress) => {\n\tconst {\n\t\tvalue = 0,\n\t\tlineWidth = 8,\n\t\tcircleSize = 40,\n\t\tprecision = 0,\n\t\tstyle,\n\t\tdraggable = true,\n\t\ttype = \"line\",\n\t\tbarClass,\n\t\tvertical,\n\t\tlabel,\n\t\tlabelInline,\n\t\tclassName,\n\t\trenderCursor,\n\t\tonChange,\n\t\tonDraggingChange,\n\t} = props;\n\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst state = useReactive({\n\t\tvalue,\n\t\tdragging: false,\n\t\tsize: 0,\n\t\tstart: 0,\n\t});\n\n\tconst pageXY = vertical ? \"pageY\" : \"pageX\";\n\tconst rectTL = vertical ? \"top\" : \"left\";\n\tconst rectWH = vertical ? \"height\" : \"width\";\n\n\tconst getFixedValue = () => {\n\t\tlet value = +state.value.toFixed(precision);\n\t\tvalue = Math.min(100, value);\n\t\tvalue = Math.max(0, value);\n\n\t\treturn value;\n\t};\n\n\tconst handleMouseDown = (e) => {\n\t\tif (!ref.current || !draggable) return;\n\n\t\tif (e.touches) {\n\t\t\te = e.touches[0];\n\t\t}\n\n\t\tconst rect = ref.current.getBoundingClientRect();\n\t\tconst value = ((e[pageXY] - rect[rectTL]) * 100) / rect[rectWH];\n\n\t\tObject.assign(state, {\n\t\t\tvalue: vertical ? 100 - value : value,\n\t\t\tsize: rect[rectWH],\n\t\t\tstart: rect[rectTL],\n\t\t\tdragging: true,\n\t\t});\n\t\tonDraggingChange?.(true);\n\t};\n\n\tconst handleMouseMove = (e) => {\n\t\tif (!state.dragging || !draggable) 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 { start, size } = state;\n\t\tconst offset = e[pageXY] - start;\n\n\t\tif (offset < 0 || offset > size) return;\n\n\t\tconst value = ((e[pageXY] - start) * 100) / size;\n\t\tstate.value = vertical ? 100 - value : value;\n\t};\n\n\tconst handleMouseUp = () => {\n\t\tif (!state.dragging || !draggable) return;\n\n\t\tonChange?.(getFixedValue());\n\t\tstate.dragging = false;\n\t\tonDraggingChange?.(false);\n\t};\n\n\tuseMouseMove(handleMouseMove);\n\tuseMouseUp(handleMouseUp);\n\n\tuseEffect(() => {\n\t\tif (value > 100) {\n\t\t\tstate.value = 100;\n\t\t\treturn;\n\t\t}\n\n\t\tif (value < 0) {\n\t\t\tstate.value = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tstate.value = value;\n\t}, [value]);\n\n\treturn (\n\t\t<div\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{type === \"line\" && (\n\t\t\t\t<Line\n\t\t\t\t\tref={ref}\n\t\t\t\t\tvertical={vertical}\n\t\t\t\t\tlineWidth={lineWidth}\n\t\t\t\t\tbarClass={barClass}\n\t\t\t\t\tdragging={state.dragging}\n\t\t\t\t\tvalue={state.value}\n\t\t\t\t\trenderCursor={renderCursor}\n\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\tonTouchStart={handleMouseDown}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{type === \"circle\" && (\n\t\t\t\t<Circle\n\t\t\t\t\tvalue={state.value}\n\t\t\t\t\tcircleSize={circleSize}\n\t\t\t\t\tlineWidth={lineWidth}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Progress;\n"],"mappings":";;;;;;;AAOA,MAAM,YAAY,UAAgB;SAElC,QAAM,GACL,YAAM,GACL,aAAS,IACT,YAAY,GACZ,OACA,YAAY,MACZ,OAAK,QACL,UACA,UACA,OACA,aACA,WACA,cACA,UACA,qBACA;CAED,MAAI,MAAK,OAAA,KAAA;;EAET;EACA,UAAW;EACV,MAAK;EACL,OAAA;EACA,CAAA;CAED,MAAE,SAAA,WAAA,UAAA;;CAEF,MAAM,SAAS,WAAW,WAAW;CAErC,MAAM,sBAAqB;;AAE3B,UAAM,KAAA,IAAA,KAAiB,MAAK;AAC3B,UAAI,KAAS,IAAA,GAAM,MAAM;AAEzB,SAAO;;CAGR,MAAC,mBAAA,MAAA;;AAGA,MAAI,EAAC,QAAA,KAAA,EAAA,QAAA;EAIL,MAAA,OAAA,IAAA,QAAA,uBAAA;;AAGA,SAAM,OAAQ,OAAI;;GAElB,MAAO,KAAA;GACN,OAAO,KAAA;GACP,UAAU;GACV,CAAA;AACD,qBAAe,KAAA;;CAGhB,MAAC,mBAAA,MAAA;;AAED,IAAA,gBAAM;AAEL,MAAE,EAAA,QAAA,KAAA,EAAA,QAAA;EAIF,MAAA,EAAA,OAAA,SAAA;;AAGA,MAAA,SAAa,KAAI,SAAU,KAAK;EAEhC,MAAI,SAAY,EAAE,UAAS,SAAM,MAAM;;;CAIxC,MAAC,sBAAA;;AAGA,aAAW,eAAa,CAAA;;AAExB,qBAAW,MAAc;;AAG1B,cAAC,gBAAA;;AAGD,iBAAW;;AAEX,SAAA,QAAgB;AACf;;AAGA,MAAA,QAAA,GAAA;;AAEA;;AAGA,QAAA,QAAA;;AAGD,QAAA,qBAAA,OAAA;EAEA,WAAO,WAAA,iBAAA,WAAA,EACL,kBAAA,aACA,CAAA;EACI;;GAEJ,SAAO,oBAAA,QAAA;IAAK,WAAA;cAAA;IAAA,CAAA;GAEX,SAAS,UAAA,oBAAA,MAAA;IAEH;IACL;IACQ;IACE;IACV,UAAU,MAAC;IACX,OAAA,MAAU;IACA;IACV,aAAa;IACb,cAAc;IACd,CAAA;GAGD,SAAA,YAAA,oBAAA,QAAA;IAEA,OAAQ,MAAE;IACT;IACO;IACP,CAAA;GAEA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio.js","names":[],"sources":["../../../../packages/components/radio/radio.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport \"../../css/input.css\";\nimport { formatOption } from \"../../js/utils\";\nimport \"./index.css\";\nimport RadioItem from \"./item\";\nimport { IRadio } from \"./type\";\n\nfunction Radio(props: IRadio) {\n\tconst {\n\t\tlabel,\n\t\tname,\n\t\toptions,\n\t\tvalue,\n\t\ttype = \"default\",\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\toptionInline = true,\n\t\tlabelInline,\n\t\tdisabled,\n\t\trequired,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t} = props;\n\n\tconst [selectedValue, setSelectedValue] = useState(value);\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst handleChange = (value, e) => {\n\t\tsetSelectedValue(value);\n\t\tonChange?.(value, e);\n\t};\n\n\tuseEffect(() => {\n\t\tsetSelectedValue(value);\n\t}, [value]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-radio i-input-label\",\n\t\t\t\t{\n\t\t\t\t\t[`i-radio-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t{label && (\n\t\t\t\t<span className='i-input-label-text'>\n\t\t\t\t\t{required && <span className='error'>*</span>}\n\t\t\t\t\t{label}\n\n\t\t\t\t\t{message && <p className='i-radio-message'>{message}</p>}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-radio-options\", {\n\t\t\t\t\t\"i-options-block\": !optionInline,\n\t\t\t\t\t\"i-radio-options-button\": type === \"button\",\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{formattedOptions.map((option) => {\n\t\t\t\t\tconst checked = selectedValue === option.value;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<RadioItem\n\t\t\t\t\t\t\tkey={option.value as string}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tvalue={option.value}\n\t\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\tdisabled={disabled || option.disabled}\n\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderItem ?? option.label}\n\t\t\t\t\t\t</RadioItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nRadio.Item = RadioItem;\n\nexport default Radio;\n"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"radio.js","names":[],"sources":["../../../../packages/components/radio/radio.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport \"../../css/input.css\";\nimport { formatOption } from \"../../js/utils\";\nimport \"./index.css\";\nimport RadioItem from \"./item\";\nimport { IRadio } from \"./type\";\n\nfunction Radio(props: IRadio) {\n\tconst {\n\t\tlabel,\n\t\tname,\n\t\toptions,\n\t\tvalue,\n\t\ttype = \"default\",\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\toptionInline = true,\n\t\tlabelInline,\n\t\tdisabled,\n\t\trequired,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t} = props;\n\n\tconst [selectedValue, setSelectedValue] = useState(value);\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst handleChange = (value, e) => {\n\t\tsetSelectedValue(value);\n\t\tonChange?.(value, e);\n\t};\n\n\tuseEffect(() => {\n\t\tsetSelectedValue(value);\n\t}, [value]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-radio i-input-label\",\n\t\t\t\t{\n\t\t\t\t\t[`i-radio-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t{label && (\n\t\t\t\t<span className='i-input-label-text'>\n\t\t\t\t\t{required && <span className='error'>*</span>}\n\t\t\t\t\t{label}\n\n\t\t\t\t\t{message && <p className='i-radio-message'>{message}</p>}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-radio-options\", {\n\t\t\t\t\t\"i-options-block\": !optionInline,\n\t\t\t\t\t\"i-radio-options-button\": type === \"button\",\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{formattedOptions.map((option) => {\n\t\t\t\t\tconst checked = selectedValue === option.value;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<RadioItem\n\t\t\t\t\t\t\tkey={option.value as string}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tvalue={option.value}\n\t\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\tdisabled={disabled || option.disabled}\n\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderItem ?? option.label}\n\t\t\t\t\t\t</RadioItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nRadio.Item = RadioItem;\n\nexport default Radio;\n"],"mappings":";;;;;;AAMA,SAAS,MAAM,OAAe;SAE9B,OACC,MACC,SACA,OACA,OAAO,WACP,SAAK,UACL,SACA,eAAU,MACV,aACA,UACA,UACA,WACA,YACA,aACA;CAED,MAAI,CAAA,eAAK,oBAAA,SAAA,MAAA;CAET,MAAM,mBAAgB,cAAiB,aAAY,QAAM,EAAA,CAAA,QAAA,CAAA;CAEzD,MAAM,gBAAgB,OAAG,MAAU;;AAEnC,aAAM,OAAa,EAAE;;AAGrB,iBAAC;;IAED,CAAA,MAAU,CAAC;AAEX,QAAA,qBAAA,OAAA;EAEA,WAAO,WACL,yBACA;IACG,WAAS,WAAY,WAAA;GACvB,kBAAA;GACC,EACD,UACA;aAEA,SACF,qBAAA,QAAA;GAAA,WAAA;aAAA;IACE,YAAS,oBAAA,QAAA;KAAA,WAAA;eAAA;KAAA,CAAA;IACR;IAEC,WAAK,oBAAA,KAAA;KAAA,WAAA;eAAA;KAAA,CAAA;;MAIR,oBAAC,OAAD;;IAEC,mBAAA,CAAA;IACA,0BAAyB,SAAM;IAC9B,CAAC;aAED,iBAAC,KAAA,WAAA;IACH,MAAA,UAAA,kBAAA,OAAA;AAEE,WAAA,oBAAA,WAAA;KAGE;KACA,OAAK,OAAO;KACN;KACA;KACN,UAAS,YAAO,OAAA;KAChB,UAAU;eAEV,cAAU,OAAY;KACvB,EATM,OAAA,MASN;KAEA;GACA,CAAA,CACA;;;AAIN,MAAA,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resizable.js","names":[],"sources":["../../../../packages/components/resizable/resizable.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useRef } from \"react\";\nimport { useMouseMove, useMouseUp, useReactive } from \"../../js/hooks\";\nimport \"./index.css\";\nimport { IResizable } from \"./type\";\n\nconst Resizable = (props: IResizable) => {\n\tconst {\n\t\tother,\n\t\tchildren,\n\t\tvertical,\n\t\theight,\n\t\tsize = \"auto\",\n\t\tminSize = 0,\n\t\tmaxSize = \"100%\",\n\t\tstyle,\n\t\tline,\n\t\tclassName,\n\t\tasPercent,\n\t\tonResize,\n\t\tonResizeComplete,\n\t} = props;\n\n\tconst state = useReactive({\n\t\tsize,\n\t\tresizing: false,\n\t\tstart: 0,\n\t\ttotal: 0,\n\t});\n\n\tconst ref = useRef<HTMLDivElement>(null);\n\n\tconst handleMouseDown = () => {\n\t\tconst rect = ref.current?.getBoundingClientRect();\n\t\tif (!rect) return;\n\n\t\tstate.resizing = true;\n\n\t\tif (vertical) {\n\t\t\tstate.total = rect.height;\n\t\t\tstate.start = rect.top;\n\t\t\treturn;\n\t\t}\n\n\t\tstate.total = rect.width;\n\t\tstate.start = rect.left;\n\t};\n\n\tconst handleMouseMove = (e) => {\n\t\tif (!state.resizing) return;\n\n\t\te.preventDefault();\n\n\t\tif (e.touches) {\n\t\t\te = e.touches[0];\n\t\t}\n\n\t\tconst d = e[vertical ? \"pageY\" : \"pageX\"];\n\t\tconst offset = d - state.start;\n\n\t\tstate.size = asPercent ? `${(offset / state.total) * 100}%` : offset;\n\t\tonResize?.(state.size);\n\t};\n\n\tconst handleMouseUp = () => {\n\t\tif (!state.resizing) return;\n\n\t\tstate.resizing = false;\n\t\tonResizeComplete?.(state.size);\n\t};\n\n\tuseMouseUp(handleMouseUp);\n\tuseMouseMove(handleMouseMove);\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={classNames(\"i-resizable\", className, {\n\t\t\t\t[`i-resizable-vertical`]: vertical,\n\t\t\t})}\n\t\t\tstyle={{ ...style, height }}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName='i-resizable-a'\n\t\t\t\tstyle={{\n\t\t\t\t\t[vertical ? \"height\" : \"width\"]: state.size,\n\t\t\t\t\t[vertical ? \"minHeight\" : \"minWidth\"]: minSize,\n\t\t\t\t\t[vertical ? \"maxHeight\" : \"maxWidth\"]: maxSize,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{other}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-resizable-line\", {\n\t\t\t\t\t[`i-resizable-resizing`]: state.resizing,\n\t\t\t\t})}\n\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\tonTouchStart={handleMouseDown}\n\t\t\t\tonContextMenu={(e) => e.preventDefault()}\n\t\t\t>\n\t\t\t\t<div className='i-resizable-line-node'>{line}</div>\n\t\t\t</div>\n\n\t\t\t<div className='i-resizable-b'>{children}</div>\n\t\t</div>\n\t);\n};\n\nexport default Resizable;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"resizable.js","names":[],"sources":["../../../../packages/components/resizable/resizable.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useRef } from \"react\";\nimport { useMouseMove, useMouseUp, useReactive } from \"../../js/hooks\";\nimport \"./index.css\";\nimport { IResizable } from \"./type\";\n\nconst Resizable = (props: IResizable) => {\n\tconst {\n\t\tother,\n\t\tchildren,\n\t\tvertical,\n\t\theight,\n\t\tsize = \"auto\",\n\t\tminSize = 0,\n\t\tmaxSize = \"100%\",\n\t\tstyle,\n\t\tline,\n\t\tclassName,\n\t\tasPercent,\n\t\tonResize,\n\t\tonResizeComplete,\n\t} = props;\n\n\tconst state = useReactive({\n\t\tsize,\n\t\tresizing: false,\n\t\tstart: 0,\n\t\ttotal: 0,\n\t});\n\n\tconst ref = useRef<HTMLDivElement>(null);\n\n\tconst handleMouseDown = () => {\n\t\tconst rect = ref.current?.getBoundingClientRect();\n\t\tif (!rect) return;\n\n\t\tstate.resizing = true;\n\n\t\tif (vertical) {\n\t\t\tstate.total = rect.height;\n\t\t\tstate.start = rect.top;\n\t\t\treturn;\n\t\t}\n\n\t\tstate.total = rect.width;\n\t\tstate.start = rect.left;\n\t};\n\n\tconst handleMouseMove = (e) => {\n\t\tif (!state.resizing) return;\n\n\t\te.preventDefault();\n\n\t\tif (e.touches) {\n\t\t\te = e.touches[0];\n\t\t}\n\n\t\tconst d = e[vertical ? \"pageY\" : \"pageX\"];\n\t\tconst offset = d - state.start;\n\n\t\tstate.size = asPercent ? `${(offset / state.total) * 100}%` : offset;\n\t\tonResize?.(state.size);\n\t};\n\n\tconst handleMouseUp = () => {\n\t\tif (!state.resizing) return;\n\n\t\tstate.resizing = false;\n\t\tonResizeComplete?.(state.size);\n\t};\n\n\tuseMouseUp(handleMouseUp);\n\tuseMouseMove(handleMouseMove);\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={classNames(\"i-resizable\", className, {\n\t\t\t\t[`i-resizable-vertical`]: vertical,\n\t\t\t})}\n\t\t\tstyle={{ ...style, height }}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName='i-resizable-a'\n\t\t\t\tstyle={{\n\t\t\t\t\t[vertical ? \"height\" : \"width\"]: state.size,\n\t\t\t\t\t[vertical ? \"minHeight\" : \"minWidth\"]: minSize,\n\t\t\t\t\t[vertical ? \"maxHeight\" : \"maxWidth\"]: maxSize,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{other}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-resizable-line\", {\n\t\t\t\t\t[`i-resizable-resizing`]: state.resizing,\n\t\t\t\t})}\n\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\tonTouchStart={handleMouseDown}\n\t\t\t\tonContextMenu={(e) => e.preventDefault()}\n\t\t\t>\n\t\t\t\t<div className='i-resizable-line-node'>{line}</div>\n\t\t\t</div>\n\n\t\t\t<div className='i-resizable-b'>{children}</div>\n\t\t</div>\n\t);\n};\n\nexport default Resizable;\n"],"mappings":";;;;;;CAMA,MAAM,EACL,OACC,UACA,UACA,QACA,OAAM,QACN,UAAQ,GACR,UAAU,QACV,OACA,MACA,WACA,WACA,UACA,qBACA;;EAGD;EACC,UAAI;EACJ,OAAA;EACA,OAAO;EACP,CAAA;;;EAKD,MAAM,OAAA,IAAA,SAAqB,uBAAG;AAC7B,MAAA,CAAK,KAAM;;;AAKX,SAAI,QAAU,KAAA;AACb,SAAM,QAAQ,KAAK;AACnB;;;AAID,QAAM,QAAQ,KAAK;;;AAIpB,MAAK,CAAC,MAAA,SAAgB;;gBAKrB,KAAK,EAAC,QAAS;EAIf,MAAM,SAAA,EAAA,WAAA,UAAA,WAAM,MAAY;;AAGxB,aAAW,MAAE,KAAS;;;AAIvB,MAAK,CAAC,MAAA,SAAgB;;AAGrB,qBAAiB,MAAK,KAAA;;;AAIvB,cAAW,gBAAc;QAGzB,qBAAA,OAAA;EACE;EACA,WAAQ,WAAA,eAAA,WAAA,GACR,yBAAyB,UACxB,CAAC;EACF,OAAE;GAAA,GAAA;GAAA;GAAA;YALJ;GAOC,oBAAA,OAAA;IACE,WAAA;IACA,OAAA;MACA,WAAO,WAAA,UAAA,MAAA;MACL,WAAW,cAAY,aAAe;MACtC,WAAW,cAAc,aAAa;KACvC;cAEF;IACE,CAAA;;IAGD,WAAA,WAAA,oBAAA,GACA,yBAAyB,MAAA,UACxB,CAAC;IACF,aAAE;IACF,cAAa;IACb,gBAAc,MAAA,EAAA,gBAAe;cAE9B,oBAAA,OAAA;KAAA,WAAA;eAAA;KAAA,CAAA;IACM,CAAA;;;;;GAGD"}
|