@ioca/react 1.3.1 → 1.3.3
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/components/affix/affix.js +2 -0
- package/lib/components/affix/affix.js.map +1 -0
- package/lib/components/affix/index.js +2 -0
- package/lib/components/affix/index.js.map +1 -0
- package/lib/components/affix/totop.js +2 -0
- package/lib/components/affix/totop.js.map +1 -0
- package/lib/components/badge/badge.js +2 -0
- package/lib/components/badge/badge.js.map +1 -0
- package/lib/components/badge/index.js +2 -0
- package/lib/components/badge/index.js.map +1 -0
- package/lib/components/button/button.js +2 -0
- package/lib/components/button/button.js.map +1 -0
- package/lib/components/button/group.js +2 -0
- package/lib/components/button/group.js.map +1 -0
- package/lib/components/button/index.js +2 -0
- package/lib/components/button/index.js.map +1 -0
- package/lib/components/button/toggle.js +2 -0
- package/lib/components/button/toggle.js.map +1 -0
- package/lib/components/card/card.js +2 -0
- package/lib/components/card/card.js.map +1 -0
- package/lib/components/card/index.js +2 -0
- package/lib/components/card/index.js.map +1 -0
- package/lib/components/checkbox/checkbox.js +2 -0
- package/lib/components/checkbox/checkbox.js.map +1 -0
- package/lib/components/checkbox/index.js +2 -0
- package/lib/components/checkbox/index.js.map +1 -0
- package/lib/components/checkbox/item.js +2 -0
- package/lib/components/checkbox/item.js.map +1 -0
- package/lib/components/collapse/collapse.js +2 -0
- package/lib/components/collapse/collapse.js.map +1 -0
- package/lib/components/collapse/index.js +2 -0
- package/lib/components/collapse/index.js.map +1 -0
- package/lib/components/collapse/item.js +2 -0
- package/lib/components/collapse/item.js.map +1 -0
- package/lib/components/datagrid/cell.js +2 -0
- package/lib/components/datagrid/cell.js.map +1 -0
- package/lib/components/datagrid/datagrid.js +2 -0
- package/lib/components/datagrid/datagrid.js.map +1 -0
- package/lib/components/datagrid/index.js +2 -0
- package/lib/components/datagrid/index.js.map +1 -0
- package/lib/components/datagrid/resize.js +2 -0
- package/lib/components/datagrid/resize.js.map +1 -0
- package/lib/components/datagrid/row.js +2 -0
- package/lib/components/datagrid/row.js.map +1 -0
- package/lib/components/datagrid/sorter.js +2 -0
- package/lib/components/datagrid/sorter.js.map +1 -0
- package/lib/components/description/description.js +2 -0
- package/lib/components/description/description.js.map +1 -0
- package/lib/components/description/index.js +2 -0
- package/lib/components/description/index.js.map +1 -0
- package/lib/components/drawer/drawer.js +2 -0
- package/lib/components/drawer/drawer.js.map +1 -0
- package/lib/components/drawer/index.js +2 -0
- package/lib/components/drawer/index.js.map +1 -0
- package/lib/components/dropdown/dropdown.js +2 -0
- package/lib/components/dropdown/dropdown.js.map +1 -0
- package/lib/components/dropdown/index.js +2 -0
- package/lib/components/dropdown/index.js.map +1 -0
- package/lib/components/dropdown/item.js +2 -0
- package/lib/components/dropdown/item.js.map +1 -0
- package/lib/components/editor/controls.js +2 -0
- package/lib/components/editor/controls.js.map +1 -0
- package/lib/components/editor/editor.js +2 -0
- package/lib/components/editor/editor.js.map +1 -0
- package/lib/components/editor/index.js +2 -0
- package/lib/components/editor/index.js.map +1 -0
- package/lib/components/flex/flex.js +2 -0
- package/lib/components/flex/flex.js.map +1 -0
- package/lib/components/flex/index.js +2 -0
- package/lib/components/flex/index.js.map +1 -0
- package/lib/components/form/context.js +2 -0
- package/lib/components/form/context.js.map +1 -0
- package/lib/components/form/field.js +2 -0
- package/lib/components/form/field.js.map +1 -0
- package/lib/components/form/form.js +2 -0
- package/lib/components/form/form.js.map +1 -0
- package/lib/components/form/index.js +2 -0
- package/lib/components/form/index.js.map +1 -0
- package/lib/components/form/useForm.js +2 -0
- package/lib/components/form/useForm.js.map +1 -0
- package/lib/components/icon/icon.js +2 -0
- package/lib/components/icon/icon.js.map +1 -0
- package/lib/components/icon/index.js +2 -0
- package/lib/components/icon/index.js.map +1 -0
- package/lib/components/image/image.js +2 -0
- package/lib/components/image/image.js.map +1 -0
- package/lib/components/image/index.js +2 -0
- package/lib/components/image/index.js.map +1 -0
- package/lib/components/image/list.js +2 -0
- package/lib/components/image/list.js.map +1 -0
- package/lib/components/input/container.js +2 -0
- package/lib/components/input/container.js.map +1 -0
- package/lib/components/input/index.js +2 -0
- package/lib/components/input/index.js.map +1 -0
- package/lib/components/input/input.js +2 -0
- package/lib/components/input/input.js.map +1 -0
- package/lib/components/input/number.js +2 -0
- package/lib/components/input/number.js.map +1 -0
- package/lib/components/input/range.js +2 -0
- package/lib/components/input/range.js.map +1 -0
- package/lib/components/input/textarea.js +2 -0
- package/lib/components/input/textarea.js.map +1 -0
- package/lib/components/list/index.js +2 -0
- package/lib/components/list/index.js.map +1 -0
- package/lib/components/list/item.js +2 -0
- package/lib/components/list/item.js.map +1 -0
- package/lib/components/list/list.js +2 -0
- package/lib/components/list/list.js.map +1 -0
- package/lib/components/loading/index.js +2 -0
- package/lib/components/loading/index.js.map +1 -0
- package/lib/components/loading/loading.js +2 -0
- package/lib/components/loading/loading.js.map +1 -0
- package/lib/components/message/index.js +2 -0
- package/lib/components/message/index.js.map +1 -0
- package/lib/components/message/message.js +2 -0
- package/lib/components/message/message.js.map +1 -0
- package/lib/components/modal/hookModal.js +2 -0
- package/lib/components/modal/hookModal.js.map +1 -0
- package/lib/components/modal/index.js +2 -0
- package/lib/components/modal/index.js.map +1 -0
- package/lib/components/modal/modal.js +2 -0
- package/lib/components/modal/modal.js.map +1 -0
- package/lib/components/modal/useModal.js +2 -0
- package/lib/components/modal/useModal.js.map +1 -0
- package/lib/components/pagination/index.js +2 -0
- package/lib/components/pagination/index.js.map +1 -0
- package/lib/components/pagination/page.js +2 -0
- package/lib/components/pagination/page.js.map +1 -0
- package/lib/components/pagination/pagination.js +2 -0
- package/lib/components/pagination/pagination.js.map +1 -0
- package/lib/components/picker/colors/footer.js +2 -0
- package/lib/components/picker/colors/footer.js.map +1 -0
- package/lib/components/picker/colors/handle.js +2 -0
- package/lib/components/picker/colors/handle.js.map +1 -0
- package/lib/components/picker/colors/index.js +2 -0
- package/lib/components/picker/colors/index.js.map +1 -0
- package/lib/components/picker/dates/dates.js +2 -0
- package/lib/components/picker/dates/dates.js.map +1 -0
- package/lib/components/picker/dates/index.js +2 -0
- package/lib/components/picker/dates/index.js.map +1 -0
- package/lib/components/picker/dates/panel.js +2 -0
- package/lib/components/picker/dates/panel.js.map +1 -0
- package/lib/components/picker/time/index.js +2 -0
- package/lib/components/picker/time/index.js.map +1 -0
- package/lib/components/picker/time/item.js +2 -0
- package/lib/components/picker/time/item.js.map +1 -0
- package/lib/components/picker/time/panel.js +2 -0
- package/lib/components/picker/time/panel.js.map +1 -0
- package/lib/components/popconfirm/index.js +2 -0
- package/lib/components/popconfirm/index.js.map +1 -0
- package/lib/components/popconfirm/popconfirm.js +2 -0
- package/lib/components/popconfirm/popconfirm.js.map +1 -0
- package/lib/components/popup/content.js +2 -0
- package/lib/components/popup/content.js.map +1 -0
- package/lib/components/popup/index.js +2 -0
- package/lib/components/popup/index.js.map +1 -0
- package/lib/components/popup/popup.js +2 -0
- package/lib/components/popup/popup.js.map +1 -0
- package/lib/components/progress/circle.js +2 -0
- package/lib/components/progress/circle.js.map +1 -0
- package/lib/components/progress/index.js +2 -0
- package/lib/components/progress/index.js.map +1 -0
- package/lib/components/progress/line.js +2 -0
- package/lib/components/progress/line.js.map +1 -0
- package/lib/components/progress/progress.js +2 -0
- package/lib/components/progress/progress.js.map +1 -0
- package/lib/components/radio/index.js +2 -0
- package/lib/components/radio/index.js.map +1 -0
- package/lib/components/radio/item.js +2 -0
- package/lib/components/radio/item.js.map +1 -0
- package/lib/components/radio/radio.js +2 -0
- package/lib/components/radio/radio.js.map +1 -0
- package/lib/components/resizable/index.js +2 -0
- package/lib/components/resizable/index.js.map +1 -0
- package/lib/components/resizable/resizable.js +2 -0
- package/lib/components/resizable/resizable.js.map +1 -0
- package/lib/components/select/index.js +2 -0
- package/lib/components/select/index.js.map +1 -0
- package/lib/components/select/options.js +2 -0
- package/lib/components/select/options.js.map +1 -0
- package/lib/components/select/select.js +2 -0
- package/lib/components/select/select.js.map +1 -0
- package/lib/components/step/divider.js +2 -0
- package/lib/components/step/divider.js.map +1 -0
- package/lib/components/step/index.js +2 -0
- package/lib/components/step/index.js.map +1 -0
- package/lib/components/step/item.js +2 -0
- package/lib/components/step/item.js.map +1 -0
- package/lib/components/step/step.js +2 -0
- package/lib/components/step/step.js.map +1 -0
- package/lib/components/swiper/index.js +2 -0
- package/lib/components/swiper/index.js.map +1 -0
- package/lib/components/swiper/item.js +2 -0
- package/lib/components/swiper/item.js.map +1 -0
- package/lib/components/swiper/swiper.js +2 -0
- package/lib/components/swiper/swiper.js.map +1 -0
- package/lib/components/tabs/index.js +2 -0
- package/lib/components/tabs/index.js.map +1 -0
- package/lib/components/tabs/item.js +2 -0
- package/lib/components/tabs/item.js.map +1 -0
- package/lib/components/tabs/tabs.js +2 -0
- package/lib/components/tabs/tabs.js.map +1 -0
- package/lib/components/tag/index.js +2 -0
- package/lib/components/tag/index.js.map +1 -0
- package/lib/components/tag/tag.js +2 -0
- package/lib/components/tag/tag.js.map +1 -0
- package/lib/components/text/highlight.js +2 -0
- package/lib/components/text/highlight.js.map +1 -0
- package/lib/components/text/index.js +2 -0
- package/lib/components/text/index.js.map +1 -0
- package/lib/components/text/number.js +2 -0
- package/lib/components/text/number.js.map +1 -0
- package/lib/components/text/text.js +2 -0
- package/lib/components/text/text.js.map +1 -0
- package/lib/components/text/time.js +2 -0
- package/lib/components/text/time.js.map +1 -0
- package/lib/components/tree/index.js +2 -0
- package/lib/components/tree/index.js.map +1 -0
- package/lib/components/tree/item.js +2 -0
- package/lib/components/tree/item.js.map +1 -0
- package/lib/components/tree/tree.js +2 -0
- package/lib/components/tree/tree.js.map +1 -0
- package/lib/components/upload/index.js +2 -0
- package/lib/components/upload/index.js.map +1 -0
- package/lib/components/upload/renderFile.js +2 -0
- package/lib/components/upload/renderFile.js.map +1 -0
- package/lib/components/upload/upload.js +2 -0
- package/lib/components/upload/upload.js.map +1 -0
- package/lib/components/utils/empty/index.js +2 -0
- package/lib/components/utils/empty/index.js.map +1 -0
- package/lib/components/utils/helpericon/helpericon.js +2 -0
- package/lib/components/utils/helpericon/helpericon.js.map +1 -0
- package/lib/components/utils/helpericon/index.js +2 -0
- package/lib/components/utils/helpericon/index.js.map +1 -0
- package/lib/components/video/index.js +2 -0
- package/lib/components/video/index.js.map +1 -0
- package/lib/components/video/video.js +2 -0
- package/lib/components/video/video.js.map +1 -0
- package/lib/css/index.css +1 -1
- package/lib/css/index.css.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/js/hooks.js +2 -0
- package/lib/js/hooks.js.map +1 -0
- package/lib/js/usePreview/content.js +2 -0
- package/lib/js/usePreview/content.js.map +1 -0
- package/lib/js/usePreview/index.js +2 -0
- package/lib/js/usePreview/index.js.map +1 -0
- package/lib/js/usePreview/renderFile.js +2 -0
- package/lib/js/usePreview/renderFile.js.map +1 -0
- package/lib/js/usePreview/type.js +2 -0
- package/lib/js/usePreview/type.js.map +1 -0
- package/lib/js/useRipple/index.js +2 -0
- package/lib/js/useRipple/index.js.map +1 -0
- package/lib/js/utils.js +2 -0
- package/lib/js/utils.js.map +1 -0
- package/lib/types/components/affix/affix.d.ts +10 -0
- package/lib/types/components/affix/index.d.ts +5 -0
- package/lib/types/components/affix/totop.d.ts +6 -0
- package/lib/types/components/affix/type.d.ts +13 -0
- package/lib/types/components/badge/badge.d.ts +6 -0
- package/lib/types/components/badge/index.d.ts +5 -0
- package/lib/types/components/badge/type.d.ts +15 -0
- package/lib/types/components/button/button.d.ts +5 -0
- package/lib/types/components/button/group.d.ts +6 -0
- package/lib/types/components/button/index.d.ts +5 -0
- package/lib/types/components/button/toggle.d.ts +6 -0
- package/lib/types/components/button/type.d.ts +44 -0
- package/lib/types/components/card/card.d.ts +6 -0
- package/lib/types/components/card/index.d.ts +5 -0
- package/lib/types/components/card/type.d.ts +13 -0
- package/lib/types/components/checkbox/checkbox.d.ts +10 -0
- package/lib/types/components/checkbox/index.d.ts +5 -0
- package/lib/types/components/checkbox/item.d.ts +6 -0
- package/lib/types/components/checkbox/type.d.ts +24 -0
- package/lib/types/components/collapse/collapse.d.ts +10 -0
- package/lib/types/components/collapse/index.d.ts +5 -0
- package/lib/types/components/collapse/item.d.ts +6 -0
- package/lib/types/components/collapse/type.d.ts +23 -0
- package/lib/types/components/datagrid/datagrid.d.ts +6 -0
- package/lib/types/components/datagrid/index.d.ts +5 -0
- package/lib/types/components/datagrid/type.d.ts +40 -0
- package/lib/types/components/description/description.d.ts +6 -0
- package/lib/types/components/description/index.d.ts +5 -0
- package/lib/types/components/description/type.d.ts +25 -0
- package/lib/types/components/drawer/drawer.d.ts +5 -0
- package/lib/types/components/drawer/index.d.ts +5 -0
- package/lib/types/components/drawer/type.d.ts +16 -0
- package/lib/types/components/dropdown/dropdown.d.ts +9 -0
- package/lib/types/components/dropdown/index.d.ts +5 -0
- package/lib/types/components/dropdown/type.d.ts +13 -0
- package/lib/types/components/editor/editor.d.ts +6 -0
- package/lib/types/components/editor/index.d.ts +5 -0
- package/lib/types/components/editor/type.d.ts +19 -0
- package/lib/types/components/flex/flex.d.ts +5 -0
- package/lib/types/components/flex/index.d.ts +5 -0
- package/lib/types/components/flex/type.d.ts +13 -0
- package/lib/types/components/form/field.d.ts +6 -0
- package/lib/types/components/form/form.d.ts +12 -0
- package/lib/types/components/form/index.d.ts +5 -0
- package/lib/types/components/form/type.d.ts +30 -0
- package/lib/types/components/form/useForm.d.ts +17 -0
- package/lib/types/components/icon/icon.d.ts +6 -0
- package/lib/types/components/icon/index.d.ts +5 -0
- package/lib/types/components/icon/type.d.ts +12 -0
- package/lib/types/components/image/image.d.ts +5 -0
- package/lib/types/components/image/index.d.ts +5 -0
- package/lib/types/components/image/list.d.ts +6 -0
- package/lib/types/components/image/type.d.ts +28 -0
- package/lib/types/components/input/index.d.ts +5 -0
- package/lib/types/components/input/input.d.ts +5 -0
- package/lib/types/components/input/number.d.ts +6 -0
- package/lib/types/components/input/range.d.ts +6 -0
- package/lib/types/components/input/textarea.d.ts +6 -0
- package/lib/types/components/input/type.d.ts +46 -0
- package/lib/types/components/list/index.d.ts +5 -0
- package/lib/types/components/list/list.d.ts +9 -0
- package/lib/types/components/list/type.d.ts +15 -0
- package/lib/types/components/loading/index.d.ts +5 -0
- package/lib/types/components/loading/loading.d.ts +6 -0
- package/lib/types/components/loading/type.d.ts +10 -0
- package/lib/types/components/message/index.d.ts +5 -0
- package/lib/types/components/message/message.d.ts +24 -0
- package/lib/types/components/message/type.d.ts +21 -0
- package/lib/types/components/modal/index.d.ts +5 -0
- package/lib/types/components/modal/modal.d.ts +5 -0
- package/lib/types/components/modal/type.d.ts +31 -0
- package/lib/types/components/modal/useModal.d.ts +9 -0
- package/lib/types/components/pagination/index.d.ts +5 -0
- package/lib/types/components/pagination/pagination.d.ts +6 -0
- package/lib/types/components/pagination/type.d.ts +18 -0
- package/lib/types/components/picker/colors/index.d.ts +6 -0
- package/lib/types/components/picker/dates/index.d.ts +6 -0
- package/lib/types/components/picker/time/index.d.ts +6 -0
- package/lib/types/components/picker/type.d.ts +41 -0
- package/lib/types/components/popconfirm/index.d.ts +5 -0
- package/lib/types/components/popconfirm/popconfirm.d.ts +6 -0
- package/lib/types/components/popconfirm/type.d.ts +14 -0
- package/lib/types/components/popup/index.d.ts +5 -0
- package/lib/types/components/popup/popup.d.ts +6 -0
- package/lib/types/components/popup/type.d.ts +29 -0
- package/lib/types/components/progress/index.d.ts +5 -0
- package/lib/types/components/progress/progress.d.ts +6 -0
- package/lib/types/components/progress/type.d.ts +23 -0
- package/lib/types/components/radio/index.d.ts +5 -0
- package/lib/types/components/radio/item.d.ts +6 -0
- package/lib/types/components/radio/radio.d.ts +10 -0
- package/lib/types/components/radio/type.d.ts +20 -0
- package/lib/types/components/resizable/index.d.ts +5 -0
- package/lib/types/components/resizable/resizable.d.ts +6 -0
- package/lib/types/components/resizable/type.d.ts +19 -0
- package/lib/types/components/select/index.d.ts +5 -0
- package/lib/types/components/select/select.d.ts +6 -0
- package/lib/types/components/select/type.d.ts +22 -0
- package/lib/types/components/step/index.d.ts +5 -0
- package/lib/types/components/step/item.d.ts +6 -0
- package/lib/types/components/step/step.d.ts +10 -0
- package/lib/types/components/step/type.d.ts +19 -0
- package/lib/types/components/swiper/index.d.ts +5 -0
- package/lib/types/components/swiper/item.d.ts +6 -0
- package/lib/types/components/swiper/swiper.d.ts +5 -0
- package/lib/types/components/swiper/type.d.ts +52 -0
- package/lib/types/components/tabs/index.d.ts +5 -0
- package/lib/types/components/tabs/item.d.ts +6 -0
- package/lib/types/components/tabs/tabs.d.ts +5 -0
- package/lib/types/components/tabs/type.d.ts +44 -0
- package/lib/types/components/tag/index.d.ts +5 -0
- package/lib/types/components/tag/tag.d.ts +6 -0
- package/lib/types/components/tag/type.d.ts +14 -0
- package/lib/types/components/text/highlight.d.ts +6 -0
- package/lib/types/components/text/index.d.ts +5 -0
- package/lib/types/components/text/number.d.ts +6 -0
- package/lib/types/components/text/text.d.ts +5 -0
- package/lib/types/components/text/time.d.ts +6 -0
- package/lib/types/components/text/type.d.ts +43 -0
- package/lib/types/components/tree/index.d.ts +5 -0
- package/lib/types/components/tree/tree.d.ts +6 -0
- package/lib/types/components/tree/type.d.ts +48 -0
- package/lib/types/components/upload/index.d.ts +5 -0
- package/lib/types/components/upload/type.d.ts +36 -0
- package/lib/types/components/upload/upload.d.ts +6 -0
- package/lib/types/components/video/index.d.ts +5 -0
- package/lib/types/components/video/type.d.ts +27 -0
- package/lib/types/components/video/video.d.ts +6 -0
- package/lib/types/index.d.ts +39 -1021
- package/lib/types/js/usePreview/index.d.ts +5 -0
- package/lib/types/js/usePreview/type.d.ts +39 -0
- package/lib/types/type/index.d.ts +28 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../packages/components/picker/time/index.tsx"],"sourcesContent":["import { AccessTimeRound } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\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\trenderItem,\n\t\tonChange,\n\t\tonBlur,\n\t\tpopupProps,\n\t\t...restProps\n\t} = props;\n\tconst state = useReactive({\n\t\tvalue,\n\t\tsafeValue: undefined,\n\t});\n\tconst [active, setActive] = useState<boolean>(false);\n\n\tconst handleChange = (v) => {\n\t\tstate.value = v;\n\t};\n\n\tconst handleFallback = (v) => {\n\t\tstate.safeValue = v;\n\t};\n\n\tconst handleValidTime = () => {\n\t\tif (!state.value) return;\n\n\t\tstate.value = state.safeValue;\n\t\thandleChange(state.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\tstate.value = 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\twatchResize\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={state.value}\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={state.value}\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\t{...restProps}\n\t\t\t/>\n\t\t</Popup>\n\t);\n}\n"],"names":["FORMAT","TimePicker","props","name","value","format","periods","placeholder","renderItem","onChange","onBlur","popupProps","restProps","state","useReactive","safeValue","undefined","active","setActive","useState","handleChange","v","useEffect","_jsx","Popup","visible","trigger","position","arrow","align","watchResize","onVisibleChange","content","Panel","onFallback","children","Input","append","Icon","icon","AccessTimeRound","className","size","e"],"mappings":"iVASA,MAAMA,EAAS,WAES,SAAAC,EAAWC,GAClC,MAAMC,KACLA,EAAIC,MACJA,EAAKC,OACLA,EAASL,EAAMM,QACfA,EAAOC,YACPA,EAAcL,EAAMG,QAAUL,EAAMQ,WACpCA,EAAUC,SACVA,EAAQC,OACRA,EAAMC,WACNA,KACGC,GACAV,EACEW,EAAQC,EAAY,CACzBV,QACAW,eAAWC,KAELC,EAAQC,GAAaC,GAAkB,GAExCC,EAAgBC,IACrBR,EAAMT,MAAQiB,CAAC,EA4BhB,OAJAC,GAAU,KACTT,EAAMT,MAAQA,CAAK,GACjB,CAACA,IAGHmB,EAACC,EACA,CAAAC,QAASR,EACTS,QAAQ,QACRC,SAAS,SACTC,OAAO,EACPC,MAAM,QACNC,aAAW,KACPnB,EACJoB,gBAlB2BV,IAC5BV,GAAYoB,kBAAkBV,GAC9BH,EAAUG,EAAE,EAiBXW,QACCT,EAACU,EACA,CAAA7B,MAAOS,EAAMT,MACbC,OAAQA,EACRC,QAASA,EACTE,WAAYA,EACZC,SAAUW,EACVc,WA1CoBb,IACvBR,EAAME,UAAYM,CAAC,IA0Cfc,SAGHZ,EAACa,EACA,CAAAhC,MAAOS,EAAMT,MACbG,YAAaA,EACb8B,OACCd,EAACe,EAAI,CACJC,KAAMhB,EAACiB,EAAe,CAAA,GACtBC,UAAU,oBACVC,KAAK,QAGPjC,SAAUW,EACVV,OA9CiBiC,IACnBjC,IAASiC,GAPJ9B,EAAMT,QAEXS,EAAMT,MAAQS,EAAME,UACpBK,EAAaP,EAAME,WAKF,KA6CXH,KAIR"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import t from"classnames";function i(i){const{items:r=[],active:m,renderItem:c,unit:n,onClick:a}=i;return r.map((i=>{const r=i===m;return e("a",{className:t("i-timepicker-item",{"i-timepicker-item-active":r}),onClick:()=>a(i),children:c?.(i,r,n)??(i<10?`0${i}`:i)},i)}))}export{i as default};
|
|
2
|
+
//# sourceMappingURL=item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.js","sources":["../../../../packages/components/picker/time/item.tsx"],"sourcesContent":["import classNames from \"classnames\";\n\nexport default function Items(props) {\n\tconst { items = [], active, renderItem, unit, onClick } = props;\n\n\treturn items.map((n) => {\n\t\tconst isActive = n === active;\n\n\t\treturn (\n\t\t\t<a\n\t\t\t\tkey={n}\n\t\t\t\tclassName={classNames(\"i-timepicker-item\", {\n\t\t\t\t\t\"i-timepicker-item-active\": isActive,\n\t\t\t\t})}\n\t\t\t\tonClick={() => onClick(n)}\n\t\t\t>\n\t\t\t\t{renderItem?.(n, isActive, unit) ?? (n < 10 ? `0${n}` : n)}\n\t\t\t</a>\n\t\t);\n\t});\n}\n"],"names":["Items","props","items","active","renderItem","unit","onClick","map","n","isActive","_jsx","className","classNames","children"],"mappings":"kEAEwB,SAAAA,EAAMC,GAC7B,MAAMC,MAAEA,EAAQ,GAAEC,OAAEA,EAAMC,WAAEA,EAAUC,KAAEA,EAAIC,QAAEA,GAAYL,EAE1D,OAAOC,EAAMK,KAAKC,IACjB,MAAMC,EAAWD,IAAML,EAEvB,OACCO,EAEC,IAAA,CAAAC,UAAWC,EAAW,oBAAqB,CAC1C,2BAA4BH,IAE7BH,QAAS,IAAMA,EAAQE,GAAEK,SAExBT,IAAaI,EAAGC,EAAUJ,KAAUG,EAAI,GAAK,IAAIA,IAAMA,IANnDA,EAOF,GAGP"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as e,Fragment as i,jsx as t}from"react/jsx-runtime";import{useReactive as r}from"ahooks";import{useMemo as n,useEffect as o}from"react";import s from"./item.js";const m={h:"hour",hh:"hour",m:"minute",mm:"minute",s:"second",ss:"second"};function c(c){const{value:l,stepH:d=1,stepM:h=1,stepS:a=1,format:u,periods:p,renderItem:v,onChange:g,onFallback:f}=c,k=r({period:void 0,hour:void 0,minute:void 0,second:void 0}),[C,N,I]=n((()=>{const e=u.includes("h"),i=u.includes("m"),t=u.includes("s");return[e?Array.from({length:(p?12:24)/d},((e,i)=>i*d)):[],i?Array.from({length:60/h},((e,i)=>i*h)):[],t?Array.from({length:60/a},((e,i)=>i*a)):[]]}),[d,h,a,u,p]),$=(e,i)=>{k[i]=e,(()=>{let e=u.replace(/(hh|h){1}|(mm|m){1}|(ss|s){1}/gi,(e=>{const i=e.toLowerCase(),t=k[m[i]]??0;return i.length>1&&t<10?`0${t??0}`:t??0}));p&&C.length>0&&(e=`${k.period??p[0]} ${e}`),g(e)})()};return o((()=>{let e=l??"";if(p&&C.length>0&&l){const[i,t]=l.split(" ");e=t??"",k.period=p.includes(i)?i:void 0}const i=e.match(/\d+/g)??[];if(!i.length)return void f("");let t=0;const r=u.replace(/(hh|h)+|(mm|m)+|(ss|s)+/gi,(e=>{const r=i[t++]??0;let n=e;return"hour"===m[e]&&(n=Math.min(p?11:23,r)),n=Math.min(59,r),k[m[e]]=n,e.length>1&&n<10?`0${n}`:n}));f(r)}),[l]),e("div",{className:"i-timepicker",children:[C.length>0&&e(i,{children:[p&&t("div",{className:"i-timepicker-list",children:t(s,{items:p,active:k.period,onClick:e=>$(e,"period")})}),t("div",{className:"i-timepicker-list",children:t(s,{items:C,active:k.hour,unit:"hour",renderItem:v,onClick:e=>$(e,"hour")})})]}),N.length>0&&t("div",{className:"i-timepicker-list",children:t(s,{items:N,active:k.minute,unit:"minute",renderItem:v,onClick:e=>$(e,"minute")})}),I.length>0&&t("div",{className:"i-timepicker-list",children:t(s,{items:I,active:k.second,unit:"second",renderItem:v,onClick:e=>$(e,"second")})})]})}export{c as default};
|
|
2
|
+
//# sourceMappingURL=panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.js","sources":["../../../../packages/components/picker/time/panel.tsx"],"sourcesContent":["import { useReactive } from \"ahooks\";\nimport { useEffect, useMemo } 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 state = useReactive<any>({\n\t\tperiod: undefined,\n\t\thour: undefined,\n\t\tminute: undefined,\n\t\tsecond: undefined,\n\t});\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 = () => {\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 = state[u] ?? 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 = `${state.period ?? periods[0]} ${result}`;\n\t\t}\n\n\t\tonChange(result);\n\t};\n\n\tconst handleSetTime = (v, unit) => {\n\t\tstate[unit] = v;\n\t\tupdateValue();\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\tstate.period = 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 r = format.replace(/(hh|h)+|(mm|m)+|(ss|s)+/gi, (p) => {\n\t\t\tconst n = nums[i++] ?? 0;\n\t\t\tlet o = p;\n\n\t\t\tif (UnitMaps[p] === \"hour\") {\n\t\t\t\to = Math.min(periods ? 11 : 23, n);\n\t\t\t}\n\n\t\t\to = Math.min(59, n);\n\n\t\t\tstate[UnitMaps[p]] = o;\n\t\t\treturn p.length > 1 && o < 10 ? `0${o}` : o;\n\t\t});\n\n\t\tonFallback(r);\n\t}, [value]);\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={state.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={state.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={state.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={state.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"],"names":["UnitMaps","h","hh","m","mm","s","ss","Panel","props","value","stepH","stepM","stepS","format","periods","renderItem","onChange","onFallback","state","useReactive","period","undefined","hour","minute","second","hours","minutes","seconds","useMemo","hasH","includes","hasM","hasS","Array","from","length","_","i","handleSetTime","v","unit","result","replace","pattern","p","toLowerCase","n","updateValue","useEffect","time","t","split","nums","match","r","o","Math","min","_jsxs","className","children","_jsx","Items","items","active","onClick"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as i,jsxs as o}from"react/jsx-runtime";import{InfoOutlined as n}from"@ricons/material";import{useReactive as e}from"ahooks";import"../button/index.js";import t from"../flex/flex.js";import l from"../icon/icon.js";import r from"../popup/popup.js";import s from"../button/button.js";const c={children:"确定"},a={children:"取消",secondary:!0},p=p=>{const{trigger:m="click",visible:f,icon:d=i(l,{icon:i(n,{}),className:"error"}),content:g,okButtonProps:b,cancelButtonProps:u,children:h,align:j="end",position:v="top",offset:k=12,extra:x,onOk:C,onClose:y,...N}=p,O=e({loading:!1,visible:f}),B=b?Object.assign({},c,b):c,P=u?Object.assign({},a,u):a,V=o("div",{className:"i-popconfirm",children:[o(t,{gap:12,children:[d,i("div",{className:"i-popconfirm-content",children:g})]}),o(t,{gap:12,justify:"flex-end",className:"mt-8 i-popconfirm-footer",children:[null!==u&&i(s,{...P,onClick:async i=>{P.onClick?.(i),await(y?.()),O.visible=!1}}),x,null!==b&&i(s,{loading:O.loading,...B,onClick:async i=>{O.loading=!0,B.onClick?.(i),C?.()?.then((()=>{O.visible=!1})).finally((()=>{O.loading=!1}))}})]})]});return i(r,{content:V,...N,trigger:m,visible:O.visible,align:j,offset:k,position:v,onVisibleChange:i=>{O.visible=i,N.onVisibleChange?.(i)},children:h})};export{p as default};
|
|
2
|
+
//# sourceMappingURL=popconfirm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popconfirm.js","sources":["../../../packages/components/popconfirm/popconfirm.tsx"],"sourcesContent":["import { InfoOutlined } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport { MouseEvent } from \"react\";\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' />,\n\t\tcontent,\n\t\tokButtonProps,\n\t\tcancelButtonProps,\n\t\tchildren,\n\t\talign = \"end\",\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\n\t\tonOk?.()\n\t\t\t?.then(() => {\n\t\t\t\tstate.visible = false;\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tstate.loading = false;\n\t\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={12}>\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\n\t\t\t\tgap={12}\n\t\t\t\tjustify='flex-end'\n\t\t\t\tclassName='mt-8 i-popconfirm-footer'\n\t\t\t>\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"],"names":["defaultOk","children","defaultCancel","secondary","Popconfirm","props","trigger","visible","icon","_jsx","Icon","InfoOutlined","className","content","okButtonProps","cancelButtonProps","align","position","offset","extra","onOk","onClose","restProps","state","useReactive","loading","ok","Object","assign","cancel","popconfirmContent","_jsxs","Flex","gap","justify","Button","onClick","async","e","then","finally","Popup","onVisibleChange","v"],"mappings":"oSAWA,MAAMA,EAAY,CACjBC,SAAU,MAGLC,EAAgB,CACrBD,SAAU,KACVE,WAAW,GAGNC,EAAcC,IACnB,MAAMC,QACLA,EAAU,QAAOC,QACjBA,EAAOC,KACPA,EAAOC,EAACC,EAAI,CAACF,KAAMC,EAACE,EAAY,CAAA,GAAKC,UAAU,UAAUC,QACzDA,EAAOC,cACPA,EAAaC,kBACbA,EAAiBd,SACjBA,EAAQe,MACRA,EAAQ,MAAKC,SACbA,EAAW,MAAKC,OAChBA,EAAS,GAAEC,MACXA,EAAKC,KACLA,EAAIC,QACJA,KACGC,GACAjB,EAEEkB,EAAQC,EAAY,CACzBC,SAAS,EACTlB,YAGKmB,EAAcZ,EACjBa,OAAOC,OAAO,GAAI5B,EAAWc,GAC7Bd,EACG6B,EAAkBd,EACrBY,OAAOC,OAAO,GAAI1B,EAAea,GACjCb,EA0BG4B,EACLC,EAAK,MAAA,CAAAnB,UAAU,eAAcX,SAAA,CAC5B8B,EAACC,GAAKC,IAAK,GACThC,SAAA,CAAAO,EACDC,EAAK,MAAA,CAAAG,UAAU,gCAAwBC,OAGxCkB,EAACC,EACA,CAAAC,IAAK,GACLC,QAAQ,WACRtB,UAAU,2BAA0BX,SAAA,CAEb,OAAtBc,GACAN,EAAC0B,EAAM,IAAKN,EAAQO,QAnBHC,MAAOC,IAC3BT,EAAOO,UAAUE,SACXjB,OACNE,EAAMhB,SAAU,CAAK,IAkBlBY,EACkB,OAAlBL,GACAL,EAAC0B,EACA,CAAAV,QAASF,EAAME,WACXC,EACJU,QAvCYC,MAAOC,IACvBf,EAAME,SAAU,EAChBC,EAAGU,UAAUE,GAEblB,OACGmB,MAAK,KACNhB,EAAMhB,SAAU,CAAK,IAErBiC,SAAQ,KACRjB,EAAME,SAAU,CAAK,GACpB,UAoCJ,OACChB,EAACgC,EACA,CAAA5B,QAASiB,KACLR,EACJhB,QAASA,EACTC,QAASgB,EAAMhB,QACfS,MAAOA,EACPE,OAAQA,EACRD,SAAUA,EACVyB,gBA5D2BC,IAC5BpB,EAAMhB,QAAUoC,EAChBrB,EAAUoB,kBAAkBC,EAAE,WA4D5B1C,GACM"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as t,jsx as r}from"react/jsx-runtime";import e from"classnames";import{useMemo as a}from"react";import{createPortal as o}from"react-dom";const s=s=>{const{ref:n,getContainer:c=t=>t?.offsetParent??document.body,trigger:l,arrow:m,arrowProps:p={},className:i,children:f,...d}=s,g=a((()=>{let{left:t,top:r,pos:e}=p,a="";switch(e){case"left":t+=2,a="translate(-100%, -50%) rotate(180deg)";break;case"right":t-=2,a="translate(0, -50%)";break;case"top":r-=2,a="translate(-50%, -50%) rotate(-90deg)";break;case"bottom":r+=2,a="translate(-50%, -50%) rotate(90deg)"}return{left:t,top:r,transform:a}}),[p]),w=t("div",{ref:n,className:e("i-popup",i),...d,children:[m&&r("svg",{xmlns:"http://www.w3.org/2000/svg",className:"i-popup-arrow",style:g,children:r("path",{d:"M0.5 0L1.5 0C1.5 4, 3 5.5, 5 7.5S8,10 8,12S7 14.5, 5 16.5S1.5,20 1.5,24L0.5 24L0.5 0z"})}),f]});return o(w,c(l))};export{s as default};
|
|
2
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sources":["../../../packages/components/popup/content.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { IPopupContent } from \"./type\";\n\nconst Content = (props: IPopupContent) => {\n\tconst {\n\t\tref,\n\t\tgetContainer = (trigger) => trigger?.offsetParent ?? document.body,\n\t\ttrigger,\n\t\tarrow,\n\t\tarrowProps = {},\n\t\tclassName,\n\t\tchildren,\n\t\t...restProps\n\t} = props;\n\n\tconst arrowCSS = useMemo(() => {\n\t\tlet { left, top, pos } = arrowProps;\n\t\tlet transform = \"\";\n\n\t\tswitch (pos) {\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\treturn {\n\t\t\tleft,\n\t\t\ttop,\n\t\t\ttransform,\n\t\t};\n\t}, [arrowProps]);\n\n\tconst content = (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={classNames(\"i-popup\", className)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{arrow && (\n\t\t\t\t<svg\n\t\t\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t\t\t\tclassName='i-popup-arrow'\n\t\t\t\t\tstyle={arrowCSS}\n\t\t\t\t>\n\t\t\t\t\t<path d='M0.5 0L1.5 0C1.5 4, 3 5.5, 5 7.5S8,10 8,12S7 14.5, 5 16.5S1.5,20 1.5,24L0.5 24L0.5 0z' />\n\t\t\t\t</svg>\n\t\t\t)}\n\n\t\t\t{children}\n\t\t</div>\n\t);\n\n\treturn createPortal(content, getContainer(trigger));\n};\n\nexport default Content;\n"],"names":["Content","props","ref","getContainer","trigger","offsetParent","document","body","arrow","arrowProps","className","children","restProps","arrowCSS","useMemo","left","top","pos","transform","content","_jsxs","classNames","_jsx","xmlns","style","d","createPortal"],"mappings":"qJAKA,MAAMA,EAAWC,IAChB,MAAMC,IACLA,EAAGC,aACHA,EAAgBC,GAAYA,GAASC,cAAgBC,SAASC,KAAIH,QAClEA,EAAOI,MACPA,EAAKC,WACLA,EAAa,CAAE,EAAAC,UACfA,EAASC,SACTA,KACGC,GACAX,EAEEY,EAAWC,GAAQ,KACxB,IAAIC,KAAEA,EAAIC,IAAEA,EAAGC,IAAEA,GAAQR,EACrBS,EAAY,GAEhB,OAAQD,GACP,IAAK,OACJF,GAAQ,EACRG,EAAY,wCACZ,MACD,IAAK,QACJH,GAAQ,EACRG,EAAY,qBACZ,MACD,IAAK,MACJF,GAAO,EACPE,EAAY,uCACZ,MACD,IAAK,SACJF,GAAO,EACPE,EAAY,sCAMd,MAAO,CACNH,OACAC,MACAE,YACA,GACC,CAACT,IAEEU,EACLC,EAAA,MAAA,CACClB,IAAKA,EACLQ,UAAWW,EAAW,UAAWX,MAC7BE,EAASD,SAAA,CAEZH,GACAc,EAAA,MAAA,CACCC,MAAM,6BACNb,UAAU,gBACVc,MAAOX,EAAQF,SAEfW,UAAMG,EAAE,4FAITd,KAIH,OAAOe,EAAaP,EAAShB,EAAaC,GAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as r,Fragment as t,jsx as e}from"react/jsx-runtime";import{useMouseUp as o,useResizeObserver as n}from"../../js/hooks.js";import{getPointPosition as s,getPosition as c}from"../../js/utils.js";import{useReactive as i,useCreation as u}from"ahooks";import{useRef as a,useMemo as l,useEffect as f,useLayoutEffect as p,Children as h,isValidElement as w,cloneElement as m}from"react";import g from"./content.js";function y(y){const{visible:d=!1,content:v,trigger:b="hover",gap:x=12,offset:j=8,fixed:P,position:k="top",showDelay:T=16,hideDelay:C=12,touchable:M,arrow:N=!0,align:W,fitSize:D,watchResize:O,clickOutside:z=!0,disabled:E,referToWindow:L,style:X,className:Y,getContainer:B,children:F,onVisibleChange:H}=y,R=a(null),S=a(null),V=a(null),q=a(""),A=i({show:!1,style:{position:P?"fixed":"absolute"},arrowProps:{}});o((r=>{if(!R.current||!S.current||!z)return;const t=r.target,e=R.current.contains(t)||S.current.contains(t);A.show&&!e&&K(!1)}));const G=()=>{V.current&&(clearTimeout(V.current),V.current=null)},I=()=>{E||A.show&&("hover"!==b||"hover"===b&&!M)||(A.show=!0,q.current="showing",V.current=setTimeout((()=>{if("showing"!==q.current)return;const[r,t,{arrowX:e,arrowY:o,arrowPos:n}]=c(R.current,S.current,{position:k,gap:x,offset:j,align:W,refWindow:L});A.style={...A.style,opacity:1,transform:"none",left:r,top:t},A.arrowProps={left:e,top:o,pos:n},H?.(!0),G(),q.current=""}),T))},J=()=>{A.show&&(q.current="hiding",V.current=setTimeout((()=>{"hiding"===q.current?(A.style={...A.style,opacity:0,transform:"translate(0, 2px)"},setTimeout((()=>{A.show=!1,G(),H?.(!1),q.current=""}),160)):G()}),C))},K=r=>{void 0===r?A.show?J():I():r?I():J()},Q=u((()=>({click:{onClick:()=>K(!0)},hover:{onMouseEnter:()=>K(!0),onMouseLeave:()=>K(!1)},focus:{onFocus:()=>K(!0),onBlur:()=>K(!1)},contextmenu:{onContextMenu:r=>{if(r.preventDefault(),r.stopPropagation(),A.show){const[t,e]=s(r,S.current);A.style={...A.style,left:t,top:e}}else A.show=!0,V.current=setTimeout((()=>{const[t,e]=s(r,S.current);A.style={...A.style,opacity:1,transform:"none",left:t,top:e},G(),H?.(!0)}),T)}},none:{}})),[]),U=l((()=>{if(!M)return{};const r={};return"hover"===b&&(r.onMouseEnter=()=>{G()},r.onMouseLeave=()=>K(!1)),r}),[M,b]),Z=()=>{if(!A.show)return;const[r,t,{arrowX:e,arrowY:o,arrowPos:n}]=c(R.current,S.current,{position:k,gap:x,offset:j,align:W,refWindow:L});Object.assign(A,{style:{...A.style,left:r,top:t},arrowProps:{left:e,top:o,pos:n}})};return f((()=>{if("contextmenu"===b)return;const{observe:r,unobserve:t,disconnect:e}=n();return R.current&&r(R.current,Z),O&&S.current?(r(S.current,Z),()=>{O&&S.current&&(t(S.current),R.current&&t(R.current),e())}):void 0}),[O,S.current,R.current]),p((()=>{if(!D||!A.show)return;const r=["top","bottom"].includes(k),t=R.current?.[r?"offsetWidth":"offsetHeight"];A.style={...A.style,[r?"width":"height"]:t}}),[A.show,D]),p((()=>{K(d)}),[d]),r(t,{children:[h.map(F,(r=>{if(!w(r))return;const{className:t,...e}=r.props;return Object.keys(Q[b]).map((r=>{if(!e[r])return;const t=Q[b][r];Q[b][r]=o=>{t(),e[r](o)}})),m(r,{ref:R,className:t,...e,...Q[b]})})),A.show&&e(g,{ref:S,arrow:N&&"contextmenu"!==b,style:{...X,...A.style},arrowProps:A.arrowProps,className:Y,...U,trigger:R.current,getContainer:B,children:v})]})}export{y as default};
|
|
2
|
+
//# sourceMappingURL=popup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popup.js","sources":["../../../packages/components/popup/popup.tsx"],"sourcesContent":["import { useMouseUp, useResizeObserver } from \"@p/js/hooks\";\nimport { getPointPosition, getPosition } from \"@p/js/utils\";\nimport { useCreation, useReactive } from \"ahooks\";\nimport {\n\tCSSProperties,\n\tChildren,\n\tMouseEvent,\n\tcloneElement,\n\tisValidElement,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n} from \"react\";\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\tfixed,\n\t\tposition = \"top\",\n\t\tshowDelay = 16,\n\t\thideDelay = 12,\n\t\ttouchable,\n\t\tarrow = true,\n\t\talign,\n\t\tfitSize,\n\t\twatchResize,\n\t\tclickOutside = true,\n\t\tdisabled,\n\t\treferToWindow,\n\t\tstyle,\n\t\tclassName,\n\t\tgetContainer,\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 statusRef = useRef<string>(\"\");\n\tconst state = useReactive<{\n\t\tshow: boolean;\n\t\tstyle: CSSProperties;\n\t\tarrowProps: Record<string, any>;\n\t}>({\n\t\tshow: false,\n\t\tstyle: { position: fixed ? \"fixed\" : \"absolute\" },\n\t\tarrowProps: {},\n\t});\n\n\tuseMouseUp((e) => {\n\t\tif (!triggerRef.current || !contentRef.current || !clickOutside) return;\n\n\t\tconst tar = e.target as HTMLElement;\n\t\tconst isContain =\n\t\t\ttriggerRef.current.contains(tar) ||\n\t\t\tcontentRef.current.contains(tar);\n\n\t\tif (!state.show || isContain) return;\n\n\t\thandleToggle(false);\n\t});\n\n\tconst clearTimer = () => {\n\t\tif (!timerRef.current) return;\n\t\tclearTimeout(timerRef.current);\n\t\ttimerRef.current = null;\n\t};\n\n\tconst handleShow = () => {\n\t\tif (disabled) return;\n\t\tif (\n\t\t\tstate.show &&\n\t\t\t(trigger !== \"hover\" || (trigger === \"hover\" && !touchable))\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tstate.show = true;\n\t\tstatusRef.current = \"showing\";\n\t\ttimerRef.current = setTimeout(() => {\n\t\t\tif (statusRef.current !== \"showing\") {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [left, top, { arrowX, arrowY, arrowPos }] = getPosition(\n\t\t\t\ttriggerRef.current,\n\t\t\t\tcontentRef.current,\n\t\t\t\t{\n\t\t\t\t\tposition,\n\t\t\t\t\tgap,\n\t\t\t\t\toffset,\n\t\t\t\t\talign,\n\t\t\t\t\trefWindow: referToWindow,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tstate.style = {\n\t\t\t\t...state.style,\n\t\t\t\topacity: 1,\n\t\t\t\ttransform: \"none\",\n\t\t\t\tleft,\n\t\t\t\ttop,\n\t\t\t};\n\t\t\tstate.arrowProps = {\n\t\t\t\tleft: arrowX,\n\t\t\t\ttop: arrowY,\n\t\t\t\tpos: arrowPos,\n\t\t\t};\n\t\t\tonVisibleChange?.(true);\n\t\t\tclearTimer();\n\t\t\tstatusRef.current = \"\";\n\t\t}, showDelay);\n\t};\n\n\tconst handleHide = () => {\n\t\tif (!state.show) return;\n\n\t\tstatusRef.current = \"hiding\";\n\t\ttimerRef.current = setTimeout(() => {\n\t\t\tif (statusRef.current !== \"hiding\") {\n\t\t\t\tclearTimer();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tstate.style = {\n\t\t\t\t...state.style,\n\t\t\t\topacity: 0,\n\t\t\t\ttransform: \"translate(0, 2px)\",\n\t\t\t};\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.show = false;\n\t\t\t\tclearTimer();\n\t\t\t\tonVisibleChange?.(false);\n\t\t\t\tstatusRef.current = \"\";\n\t\t\t}, 160);\n\t\t}, 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\n\t\tstate.show ? handleHide() : handleShow();\n\t};\n\tconst eventMaps = useCreation(\n\t\t() => ({\n\t\t\tclick: {\n\t\t\t\tonClick: () => handleToggle(true),\n\t\t\t},\n\t\t\thover: {\n\t\t\t\tonMouseEnter: () => handleToggle(true),\n\t\t\t\tonMouseLeave: () => handleToggle(false),\n\t\t\t},\n\t\t\tfocus: {\n\t\t\t\tonFocus: () => handleToggle(true),\n\t\t\t\tonBlur: () => handleToggle(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\tif (state.show) {\n\t\t\t\t\t\tconst [left, top] = getPointPosition(\n\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\tcontentRef.current as HTMLElement\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tstate.style = {\n\t\t\t\t\t\t\t...state.style,\n\t\t\t\t\t\t\tleft,\n\t\t\t\t\t\t\ttop,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.show = true;\n\n\t\t\t\t\ttimerRef.current = setTimeout(() => {\n\t\t\t\t\t\tconst [left, top] = getPointPosition(\n\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\tcontentRef.current as HTMLElement\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tstate.style = {\n\t\t\t\t\t\t\t...state.style,\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\ttransform: \"none\",\n\t\t\t\t\t\t\tleft,\n\t\t\t\t\t\t\ttop,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tclearTimer();\n\t\t\t\t\t\tonVisibleChange?.(true);\n\t\t\t\t\t}, showDelay);\n\t\t\t\t},\n\t\t\t},\n\t\t\tnone: {},\n\t\t}),\n\t\t[]\n\t);\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 computePosition = () => {\n\t\tif (!state.show) return;\n\n\t\tconst [left, top, { arrowX, arrowY, arrowPos }] = getPosition(\n\t\t\ttriggerRef.current,\n\t\t\tcontentRef.current,\n\t\t\t{\n\t\t\t\tposition,\n\t\t\t\tgap,\n\t\t\t\toffset,\n\t\t\t\talign,\n\t\t\t\trefWindow: referToWindow,\n\t\t\t}\n\t\t);\n\n\t\tObject.assign(state, {\n\t\t\tstyle: { ...state.style, left, top },\n\t\t\tarrowProps: { left: arrowX, top: arrowY, pos: arrowPos },\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (trigger === \"contextmenu\") return;\n\t\tconst { observe, unobserve, disconnect } = useResizeObserver();\n\n\t\ttriggerRef.current && observe(triggerRef.current, computePosition);\n\n\t\tif (!watchResize || !contentRef.current) return;\n\n\t\tobserve(contentRef.current, computePosition);\n\n\t\treturn () => {\n\t\t\tif (!watchResize || !contentRef.current) return;\n\n\t\t\tunobserve(contentRef.current);\n\t\t\ttriggerRef.current && unobserve(triggerRef.current);\n\t\t\tdisconnect();\n\t\t};\n\t}, [watchResize, contentRef.current, triggerRef.current]);\n\n\tuseLayoutEffect(() => {\n\t\tif (!fitSize || !state.show) return;\n\n\t\tconst vertical = [\"top\", \"bottom\"].includes(position);\n\t\tconst size =\n\t\t\ttriggerRef.current?.[vertical ? \"offsetWidth\" : \"offsetHeight\"];\n\t\tstate.style = { ...state.style, [vertical ? \"width\" : \"height\"]: size };\n\t}, [state.show, fitSize]);\n\n\tuseLayoutEffect(() => {\n\t\thandleToggle(visible);\n\t}, [visible]);\n\n\treturn (\n\t\t<>\n\t\t\t{Children.map(children, (child) => {\n\t\t\t\tif (!isValidElement(child)) return;\n\n\t\t\t\tconst { className, ...restProps } = child.props as any;\n\t\t\t\tObject.keys(eventMaps[trigger]).map((evt) => {\n\t\t\t\t\tif (!restProps[evt]) return;\n\t\t\t\t\tconst fn = eventMaps[trigger][evt];\n\n\t\t\t\t\teventMaps[trigger][evt] = (e) => {\n\t\t\t\t\t\tfn();\n\t\t\t\t\t\trestProps[evt](e);\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\treturn cloneElement(child, {\n\t\t\t\t\tref: triggerRef,\n\t\t\t\t\tclassName,\n\t\t\t\t\t...restProps,\n\t\t\t\t\t...eventMaps[trigger],\n\t\t\t\t});\n\t\t\t})}\n\n\t\t\t{state.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={{ ...style, ...state.style }}\n\t\t\t\t\tarrowProps={state.arrowProps}\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\tgetContainer={getContainer}\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"],"names":["Popup","props","visible","content","trigger","gap","offset","fixed","position","showDelay","hideDelay","touchable","arrow","align","fitSize","watchResize","clickOutside","disabled","referToWindow","style","className","getContainer","children","onVisibleChange","triggerRef","useRef","contentRef","timerRef","statusRef","state","useReactive","show","arrowProps","useMouseUp","e","current","tar","target","isContain","contains","handleToggle","clearTimer","clearTimeout","handleShow","setTimeout","left","top","arrowX","arrowY","arrowPos","getPosition","refWindow","opacity","transform","pos","handleHide","action","undefined","eventMaps","useCreation","click","onClick","hover","onMouseEnter","onMouseLeave","focus","onFocus","onBlur","contextmenu","onContextMenu","preventDefault","stopPropagation","getPointPosition","none","contentTouch","useMemo","events","computePosition","Object","assign","useEffect","observe","unobserve","disconnect","useResizeObserver","useLayoutEffect","vertical","includes","size","_jsxs","_Fragment","Children","map","child","isValidElement","restProps","keys","evt","fn","cloneElement","ref","_jsx","Content"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as e,jsx as r}from"react/jsx-runtime";import"../text/index.js";import c from"../text/text.js";function i(i){const{value:s,circleSize:t=40,lineWidth:a=8}=i;return e("div",{className:"i-progress-circle",children:[e("svg",{width:t,height:t,children:[r("circle",{cx:t/2,cy:t/2,r:t/2-a/2,fill:"none",stroke:"var(--background-opacity-2)",strokeWidth:a}),r("circle",{cx:t/2,cy:t/2,r:t/2-a/2,fill:"none",stroke:"var(--color-main)",strokeWidth:a,strokeDasharray:100,pathLength:100,className:"i-progress-circle-path",strokeLinecap:"round",style:{strokeDashoffset:`calc(100 - ${s})`}})]}),e("span",{className:"i-progress-circle-value",children:[r("span",{children:s}),r(c,{size:".81em",className:"color-7",children:"%"})]})]})}export{i as default};
|
|
2
|
+
//# sourceMappingURL=circle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circle.js","sources":["../../../packages/components/progress/circle.tsx"],"sourcesContent":["import Text from \"../text\";\nimport { IProgress } from \"./type\";\n\nexport default function Circle(\n\tprops: Pick<IProgress, \"value\" | \"circleSize\" | \"lineWidth\">\n) {\n\tconst { value, circleSize = 40, lineWidth = 8 } = props;\n\n\treturn (\n\t\t<div className='i-progress-circle'>\n\t\t\t<svg width={circleSize} height={circleSize}>\n\t\t\t\t<circle\n\t\t\t\t\tcx={circleSize / 2}\n\t\t\t\t\tcy={circleSize / 2}\n\t\t\t\t\tr={circleSize / 2 - lineWidth / 2}\n\t\t\t\t\tfill='none'\n\t\t\t\t\tstroke='var(--background-opacity-2)'\n\t\t\t\t\tstrokeWidth={lineWidth}\n\t\t\t\t/>\n\t\t\t\t<circle\n\t\t\t\t\tcx={circleSize / 2}\n\t\t\t\t\tcy={circleSize / 2}\n\t\t\t\t\tr={circleSize / 2 - lineWidth / 2}\n\t\t\t\t\tfill='none'\n\t\t\t\t\tstroke='var(--color-main)'\n\t\t\t\t\tstrokeWidth={lineWidth}\n\t\t\t\t\tstrokeDasharray={100}\n\t\t\t\t\tpathLength={100}\n\t\t\t\t\tclassName='i-progress-circle-path'\n\t\t\t\t\tstrokeLinecap='round'\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tstrokeDashoffset: `calc(100 - ${value})`,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</svg>\n\n\t\t\t<span className='i-progress-circle-value'>\n\t\t\t\t<span>{value}</span>\n\t\t\t\t<Text size='.81em' className='color-7'>\n\t\t\t\t\t%\n\t\t\t\t</Text>\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n"],"names":["Circle","props","value","circleSize","lineWidth","_jsxs","className","children","width","height","_jsx","cx","cy","r","fill","stroke","strokeWidth","strokeDasharray","pathLength","strokeLinecap","style","strokeDashoffset","Text","size"],"mappings":"0GAGwB,SAAAA,EACvBC,GAEA,MAAMC,MAAEA,EAAKC,WAAEA,EAAa,GAAEC,UAAEA,EAAY,GAAMH,EAElD,OACCI,SAAKC,UAAU,oBACdC,SAAA,CAAAF,EAAA,MAAA,CAAKG,MAAOL,EAAYM,OAAQN,YAC/BO,EACC,SAAA,CAAAC,GAAIR,EAAa,EACjBS,GAAIT,EAAa,EACjBU,EAAGV,EAAa,EAAIC,EAAY,EAChCU,KAAK,OACLC,OAAO,8BACPC,YAAaZ,IAEdM,YACCC,GAAIR,EAAa,EACjBS,GAAIT,EAAa,EACjBU,EAAGV,EAAa,EAAIC,EAAY,EAChCU,KAAK,OACLC,OAAO,oBACPC,YAAaZ,EACba,gBAAiB,IACjBC,WAAY,IACZZ,UAAU,yBACVa,cAAc,QACdC,MAAO,CACNC,iBAAkB,cAAcnB,WAKnCG,EAAA,OAAA,CAAMC,UAAU,0BACfC,SAAA,CAAAG,EAAA,OAAA,CAAAH,SAAOL,IACPQ,EAACY,EAAK,CAAAC,KAAK,QAAQjB,UAAU,UAEtBC,SAAA,WAIX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import e from"classnames";const s=s=>{const{ref:o,value:t,lineWidth:i,vertical:a,barClass:n,dragging:c,renderCursor:l,onMouseDown:h,onTouchStart:d}=s;return r("div",{ref:o,className:e("i-progress",{"i-progress-vertical":a}),style:{[a?"width":"height"]:i},onMouseDown:h,onTouchStart:d,children:r("div",{className:e("i-progress-bar",n,{"no-transition":c}),style:{[a?"height":"width"]:`${t}%`},children:l&&r("a",{className:"i-progress-cursor",children:l(t??0)})})})};export{s as default};
|
|
2
|
+
//# sourceMappingURL=line.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line.js","sources":["../../../packages/components/progress/line.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { MouseEvent, RefObject } from \"react\";\nimport { IProgress } from \"./type\";\n\nconst Line = (\n\tprops: Pick<\n\t\tIProgress,\n\t\t\"value\" | \"vertical\" | \"lineWidth\" | \"barClass\" | \"renderCursor\"\n\t> & {\n\t\tref: RefObject<HTMLDivElement | null>;\n\t\tdragging: boolean;\n\t\tonMouseDown: (e: MouseEvent) => void;\n\t\tonTouchStart: (e) => void;\n\t}\n) => {\n\tconst {\n\t\tref,\n\t\tvalue,\n\t\tlineWidth,\n\t\tvertical,\n\t\tbarClass,\n\t\tdragging,\n\t\trenderCursor,\n\t\tonMouseDown,\n\t\tonTouchStart,\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={classNames(\"i-progress\", {\n\t\t\t\t\"i-progress-vertical\": vertical,\n\t\t\t})}\n\t\t\tstyle={{ [vertical ? \"width\" : \"height\"]: lineWidth }}\n\t\t\tonMouseDown={onMouseDown}\n\t\t\tonTouchStart={onTouchStart}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-progress-bar\", barClass, {\n\t\t\t\t\t\"no-transition\": dragging,\n\t\t\t\t})}\n\t\t\t\tstyle={{ [vertical ? \"height\" : \"width\"]: `${value}%` }}\n\t\t\t>\n\t\t\t\t{renderCursor && (\n\t\t\t\t\t<a className='i-progress-cursor'>\n\t\t\t\t\t\t{renderCursor(value ?? 0)}\n\t\t\t\t\t</a>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default Line;\n"],"names":["Line","props","ref","value","lineWidth","vertical","barClass","dragging","renderCursor","onMouseDown","onTouchStart","_jsx","className","classNames","style","children"],"mappings":"kEAIA,MAAMA,EACLC,IAUA,MAAMC,IACLA,EAAGC,MACHA,EAAKC,UACLA,EAASC,SACTA,EAAQC,SACRA,EAAQC,SACRA,EAAQC,aACRA,EAAYC,YACZA,EAAWC,aACXA,GACGT,EAEJ,OACCU,EACC,MAAA,CAAAT,IAAKA,EACLU,UAAWC,EAAW,aAAc,CACnC,sBAAuBR,IAExBS,MAAO,CAAE,CAACT,EAAW,QAAU,UAAWD,GAC1CK,YAAaA,EACbC,aAAcA,EAAYK,SAE1BJ,EACC,MAAA,CAAAC,UAAWC,EAAW,iBAAkBP,EAAU,CACjD,gBAAiBC,IAElBO,MAAO,CAAE,CAACT,EAAW,SAAW,SAAU,GAAGF,MAE5CY,SAAAP,GACAG,EAAA,IAAA,CAAGC,UAAU,6BACXJ,EAAaL,GAAS,QAIrB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as e,jsx as r}from"react/jsx-runtime";import{useMouseMove as t,useMouseUp as i}from"../../js/hooks.js";import{useReactive as a}from"ahooks";import n from"classnames";import{useRef as l,useMemo as s,useEffect as o}from"react";import g from"./circle.js";import u from"./line.js";const c=c=>{const{value:m=0,lineWidth:d=8,circleSize:h=40,precision:p=0,style:v,draggable:f=!0,type:b="line",barClass:C,vertical:j,label:x,labelInline:z,className:y,renderCursor:D,onChange:M,onDraggingChange:N}=c,S=l(null),W=a({value:m,dragging:!1,size:0,start:0}),k=j?"pageY":"pageX",w=j?"top":"left",B=j?"height":"width",F=s((()=>{let e=+W.value.toFixed(p);return e=Math.min(100,e),e=Math.max(0,e),e}),[W.value,p]),I=e=>{if(!S.current||!f)return;e.touches&&(e=e.touches[0]);const r=S.current.getBoundingClientRect(),t=100*(e[k]-r[w])/r[B];Object.assign(W,{value:j?100-t:t,size:r[B],start:r[w],dragging:!0}),N?.(!0)};return t((e=>{if(!W.dragging||!f)return;e.preventDefault(),e.touches&&(e=e.touches[0]);const{start:r,size:t}=W,i=e[k]-r;if(i<0||i>t)return;const a=100*(e[k]-r)/t;W.value=j?100-a:a})),i((()=>{W.dragging&&f&&(M?.(F),W.dragging=!1,N?.(!1))})),o((()=>{W.value=m>100?100:m<0?0:m}),[m]),e("div",{className:n("i-input-label",y,{"i-input-inline":z}),style:v,children:[x&&r("span",{className:"i-input-label-text",children:x}),"line"===b&&r(u,{ref:S,vertical:j,lineWidth:d,barClass:C,dragging:W.dragging,value:W.value,renderCursor:D,onMouseDown:I,onTouchStart:I}),"circle"===b&&r(g,{value:W.value,circleSize:h,lineWidth:d})]})};export{c as default};
|
|
2
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sources":["../../../packages/components/progress/progress.tsx"],"sourcesContent":["import { useMouseMove, useMouseUp } from \"@p/js/hooks\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport \"../../css/input.css\";\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 toFixedValue = useMemo(() => {\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}, [state.value, precision]);\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?.(toFixedValue);\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"],"names":["Progress","props","value","lineWidth","circleSize","precision","style","draggable","type","barClass","vertical","label","labelInline","className","renderCursor","onChange","onDraggingChange","ref","useRef","state","useReactive","dragging","size","start","pageXY","rectTL","rectWH","toFixedValue","useMemo","toFixed","Math","min","max","handleMouseDown","e","current","touches","rect","getBoundingClientRect","Object","assign","useMouseMove","preventDefault","offset","useMouseUp","useEffect","_jsxs","classNames","children","_jsx","Line","onMouseDown","onTouchStart","Circle"],"mappings":"iSAUA,MAAMA,EAAYC,IACjB,MAAMC,MACLA,EAAQ,EAACC,UACTA,EAAY,EAACC,WACbA,EAAa,GAAEC,UACfA,EAAY,EAACC,MACbA,EAAKC,UACLA,GAAY,EAAIC,KAChBA,EAAO,OAAMC,SACbA,EAAQC,SACRA,EAAQC,MACRA,EAAKC,YACLA,EAAWC,UACXA,EAASC,aACTA,EAAYC,SACZA,EAAQC,iBACRA,GACGf,EAEEgB,EAAMC,EAAuB,MAC7BC,EAAQC,EAAY,CACzBlB,QACAmB,UAAU,EACVC,KAAM,EACNC,MAAO,IAGFC,EAASd,EAAW,QAAU,QAC9Be,EAASf,EAAW,MAAQ,OAC5BgB,EAAShB,EAAW,SAAW,QAE/BiB,EAAeC,GAAQ,KAC5B,IAAI1B,GAASiB,EAAMjB,MAAM2B,QAAQxB,GAIjC,OAHAH,EAAQ4B,KAAKC,IAAI,IAAK7B,GACtBA,EAAQ4B,KAAKE,IAAI,EAAG9B,GAEbA,CAAK,GACV,CAACiB,EAAMjB,MAAOG,IAEX4B,EAAmBC,IACxB,IAAKjB,EAAIkB,UAAY5B,EAAW,OAE5B2B,EAAEE,UACLF,EAAIA,EAAEE,QAAQ,IAGf,MAAMC,EAAOpB,EAAIkB,QAAQG,wBACnBpC,EAAsC,KAA5BgC,EAAEV,GAAUa,EAAKZ,IAAkBY,EAAKX,GAExDa,OAAOC,OAAOrB,EAAO,CACpBjB,MAAOQ,EAAW,IAAMR,EAAQA,EAChCoB,KAAMe,EAAKX,GACXH,MAAOc,EAAKZ,GACZJ,UAAU,IAEXL,KAAmB,EAAK,EA6CzB,OAjBAyB,GAzByBP,IACxB,IAAKf,EAAME,WAAad,EAAW,OACnC2B,EAAEQ,iBAEER,EAAEE,UACLF,EAAIA,EAAEE,QAAQ,IAGf,MAAMb,MAAEA,EAAKD,KAAEA,GAASH,EAClBwB,EAAST,EAAEV,GAAUD,EAE3B,GAAIoB,EAAS,GAAKA,EAASrB,EAAM,OAEjC,MAAMpB,EAA+B,KAArBgC,EAAEV,GAAUD,GAAgBD,EAC5CH,EAAMjB,MAAQQ,EAAW,IAAMR,EAAQA,CAAK,IAY7C0C,GATsB,KAChBzB,EAAME,UAAad,IAExBQ,IAAWY,GACXR,EAAME,UAAW,EACjBL,KAAmB,GAAM,IAM1B6B,GAAU,KAER1B,EAAMjB,MADHA,EAAQ,IACG,IAIXA,EAAQ,EACG,EAIDA,CAAK,GACjB,CAACA,IAGH4C,SACCjC,UAAWkC,EAAW,gBAAiBlC,EAAW,CACjD,iBAAkBD,IAEnBN,MAAOA,EAEN0C,SAAA,CAAArC,GAASsC,EAAM,OAAA,CAAApC,UAAU,qBAAoBmC,SAAErC,IAEtC,SAATH,GACAyC,EAACC,EACA,CAAAjC,IAAKA,EACLP,SAAUA,EACVP,UAAWA,EACXM,SAAUA,EACVY,SAAUF,EAAME,SAChBnB,MAAOiB,EAAMjB,MACbY,aAAcA,EACdqC,YAAalB,EACbmB,aAAcnB,IAIN,WAATzB,GACAyC,EAACI,EACA,CAAAnD,MAAOiB,EAAMjB,MACbE,WAAYA,EACZD,UAAWA,MAGR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as e,jsx as a}from"react/jsx-runtime";import i from"classnames";function d(d){const{type:n="default",name:t,value:o,checked:r,disabled:s,children:c,onChange:l}=d,m="function"==typeof c;return e("label",{className:i("i-radio-item",{disabled:s,"i-radio-item-custom":m}),children:[a("input",{type:"radio",name:t,checked:r,className:i("i-radio-input",`i-radio-${n}`),disabled:s,hidden:m,onChange:e=>{l?.(o,e)}}),m?c(!!r,o):a("span",{className:"i-radio-text",children:c})]})}export{d as default};
|
|
2
|
+
//# sourceMappingURL=item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.js","sources":["../../../packages/components/radio/item.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { ChangeEvent } from \"react\";\nimport { IRadioItem } from \"./type\";\n\nexport default function RadioItem(props: IRadioItem) {\n\tconst {\n\t\ttype = \"default\",\n\t\tname,\n\t\tvalue,\n\t\tchecked,\n\t\tdisabled,\n\t\tchildren,\n\t\tonChange,\n\t} = props;\n\tconst isChildrenFn = typeof children === \"function\";\n\n\tconst handleChange = (e: ChangeEvent) => {\n\t\tonChange?.(value, e);\n\t};\n\n\treturn (\n\t\t<label\n\t\t\tclassName={classNames(\"i-radio-item\", {\n\t\t\t\tdisabled,\n\t\t\t\t\"i-radio-item-custom\": isChildrenFn,\n\t\t\t})}\n\t\t>\n\t\t\t<input\n\t\t\t\ttype='radio'\n\t\t\t\tname={name}\n\t\t\t\tchecked={checked}\n\t\t\t\tclassName={classNames(\"i-radio-input\", `i-radio-${type}`)}\n\t\t\t\tdisabled={disabled}\n\t\t\t\thidden={isChildrenFn}\n\t\t\t\tonChange={handleChange}\n\t\t\t/>\n\n\t\t\t{isChildrenFn ? (\n\t\t\t\tchildren(!!checked, value)\n\t\t\t) : (\n\t\t\t\t<span className='i-radio-text'>{children}</span>\n\t\t\t)}\n\t\t</label>\n\t);\n}\n"],"names":["RadioItem","props","type","name","value","checked","disabled","children","onChange","isChildrenFn","_jsxs","className","classNames","_jsx","hidden","e"],"mappings":"4EAIwB,SAAAA,EAAUC,GACjC,MAAMC,KACLA,EAAO,UAASC,KAChBA,EAAIC,MACJA,EAAKC,QACLA,EAAOC,SACPA,EAAQC,SACRA,EAAQC,SACRA,GACGP,EACEQ,EAAmC,mBAAbF,EAM5B,OACCG,EACC,QAAA,CAAAC,UAAWC,EAAW,eAAgB,CACrCN,WACA,sBAAuBG,IAGxBF,SAAA,CAAAM,EAAA,QAAA,CACCX,KAAK,QACLC,KAAMA,EACNE,QAASA,EACTM,UAAWC,EAAW,gBAAiB,WAAWV,KAClDI,SAAUA,EACVQ,OAAQL,EACRD,SAlBmBO,IACrBP,IAAWJ,EAAOW,EAAE,IAoBlBN,EACAF,IAAWF,EAASD,GAEpBS,UAAMF,UAAU,eAAcJ,SAAEA,MAIpC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as e,jsx as a}from"react/jsx-runtime";import{formatOption as i}from"../../js/utils.js";import{useReactive as l}from"ahooks";import n from"classnames";import{useMemo as o,useEffect as r}from"react";import s from"./item.js";function t(t){const{label:m,name:d,options:u,value:c,type:p="default",status:b="normal",message:v,optionInline:h=!0,labelInline:f,disabled:N,required:g,className:j,renderItem:I,onChange:k}=t,x=l({value:c}),y=o((()=>i(u)),[u]),C=(e,a)=>{x.value=e,k?.(e,a)};return r((()=>{x.value=c}),[c]),e("div",{className:n("i-radio i-input-label",{[`i-radio-${b}`]:"normal"!==b,"i-input-inline":f},j),children:[m&&e("span",{className:"i-input-label-text",children:[g&&a("span",{className:"error",children:"*"}),m,v&&a("p",{className:"i-radio-message",children:v})]}),a("div",{className:n("i-radio-options",{"i-options-block":!h,"i-radio-options-button":"button"===p}),children:y.map((e=>{const i=x.value===e.value;return a(s,{name:d,value:e.value,checked:i,type:p,disabled:N||e.disabled,onChange:C,children:I??e.label},e.value)}))})]})}t.Item=s;export{t as default};
|
|
2
|
+
//# sourceMappingURL=radio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio.js","sources":["../../../packages/components/radio/radio.tsx"],"sourcesContent":["import { formatOption } from \"@p/js/utils\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { useEffect, useMemo } from \"react\";\nimport \"../../css/input.css\";\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 state = useReactive({\n\t\tvalue,\n\t});\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst handleChange = (value, e) => {\n\t\tstate.value = value;\n\t\tonChange?.(value, e);\n\t};\n\n\tuseEffect(() => {\n\t\tstate.value = 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 = state.value === 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"],"names":["Radio","props","label","name","options","value","type","status","message","optionInline","labelInline","disabled","required","className","renderItem","onChange","state","useReactive","formattedOptions","useMemo","formatOption","handleChange","e","useEffect","_jsxs","classNames","children","_jsx","map","option","checked","RadioItem","Item"],"mappings":"0OASA,SAASA,EAAMC,GACd,MAAMC,MACLA,EAAKC,KACLA,EAAIC,QACJA,EAAOC,MACPA,EAAKC,KACLA,EAAO,UAASC,OAChBA,EAAS,SAAQC,QACjBA,EAAOC,aACPA,GAAe,EAAIC,YACnBA,EAAWC,SACXA,EAAQC,SACRA,EAAQC,UACRA,EAASC,WACTA,EAAUC,SACVA,GACGd,EAEEe,EAAQC,EAAY,CACzBZ,UAGKa,EAAmBC,GAAQ,IAAMC,EAAahB,IAAU,CAACA,IAEzDiB,EAAe,CAAChB,EAAOiB,KAC5BN,EAAMX,MAAQA,EACdU,IAAWV,EAAOiB,EAAE,EAOrB,OAJAC,GAAU,KACTP,EAAMX,MAAQA,CAAK,GACjB,CAACA,IAGHmB,EACC,MAAA,CAAAX,UAAWY,EACV,wBACA,CACC,CAAC,WAAWlB,KAAsB,WAAXA,EACvB,iBAAkBG,GAEnBG,GACAa,SAAA,CAEAxB,GACAsB,EAAM,OAAA,CAAAX,UAAU,+BACdD,GAAYe,UAAMd,UAAU,QAAgBa,SAAA,MAC5CxB,EAEAM,GAAWmB,EAAA,IAAA,CAAGd,UAAU,2BAAmBL,OAI9CmB,EACC,MAAA,CAAAd,UAAWY,EAAW,kBAAmB,CACxC,mBAAoBhB,EACpB,yBAAmC,WAATH,IACzBoB,SAEDR,EAAiBU,KAAKC,IACtB,MAAMC,EAAUd,EAAMX,QAAUwB,EAAOxB,MAEvC,OACCsB,EAACI,EAAS,CAET5B,KAAMA,EACNE,MAAOwB,EAAOxB,MACdyB,QAASA,EACTxB,KAAMA,EACNK,SAAUA,GAAYkB,EAAOlB,SAC7BI,SAAUM,EAAYK,SAErBZ,GAAce,EAAO3B,OARjB2B,EAAOxB,MASD,QAMlB,CAEAL,EAAMgC,KAAOD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as e,jsx as i}from"react/jsx-runtime";import{useMouseUp as t,useMouseMove as s}from"../../js/hooks.js";import{useReactive as r}from"ahooks";import a from"classnames";import{useRef as n}from"react";const o=o=>{const{other:l,children:c,vertical:h,height:m,size:z="auto",minSize:d=0,maxSize:g="100%",style:u,line:f,className:p,asPercent:v,onResize:b,onResizeComplete:x}=o,N=r({size:z,resizing:!1,start:0,total:0}),j=n(null),w=()=>{const e=j.current?.getBoundingClientRect();if(e){if(N.resizing=!0,h)return N.total=e.height,void(N.start=e.top);N.total=e.width,N.start=e.left}};return t((()=>{N.resizing&&(N.resizing=!1,x?.(N.size))})),s((e=>{if(!N.resizing)return;e.preventDefault(),e.touches&&(e=e.touches[0]);const i=e[h?"pageY":"pageX"]-N.start;N.size=v?i/N.total*100+"%":i,b?.(N.size)})),e("div",{ref:j,className:a("i-resizable",p,{"i-resizable-vertical":h}),style:{...u,height:m},children:[i("div",{className:"i-resizable-a",style:{[h?"height":"width"]:N.size,[h?"minHeight":"minWidth"]:d,[h?"maxHeight":"maxWidth"]:g},children:l}),i("div",{className:a("i-resizable-line",{"i-resizable-resizing":N.resizing}),onMouseDown:w,onTouchStart:w,onContextMenu:e=>e.preventDefault(),children:i("div",{className:"i-resizable-line-node",children:f})}),i("div",{className:"i-resizable-b",children:c})]})};export{o as default};
|
|
2
|
+
//# sourceMappingURL=resizable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resizable.js","sources":["../../../packages/components/resizable/resizable.tsx"],"sourcesContent":["import { useMouseMove, useMouseUp } from \"@p/js/hooks\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { useRef } from \"react\";\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"],"names":["Resizable","props","other","children","vertical","height","size","minSize","maxSize","style","line","className","asPercent","onResize","onResizeComplete","state","useReactive","resizing","start","total","ref","useRef","handleMouseDown","rect","current","getBoundingClientRect","top","width","left","useMouseUp","useMouseMove","e","preventDefault","touches","offset","_jsxs","classNames","_jsx","onMouseDown","onTouchStart","onContextMenu"],"mappings":"iNAOA,MAAMA,EAAaC,IAClB,MAAMC,MACLA,EAAKC,SACLA,EAAQC,SACRA,EAAQC,OACRA,EAAMC,KACNA,EAAO,OAAMC,QACbA,EAAU,EAACC,QACXA,EAAU,OAAMC,MAChBA,EAAKC,KACLA,EAAIC,UACJA,EAASC,UACTA,EAASC,SACTA,EAAQC,iBACRA,GACGb,EAEEc,EAAQC,EAAY,CACzBV,OACAW,UAAU,EACVC,MAAO,EACPC,MAAO,IAGFC,EAAMC,EAAuB,MAE7BC,EAAkB,KACvB,MAAMC,EAAOH,EAAII,SAASC,wBAC1B,GAAKF,EAAL,CAIA,GAFAR,EAAME,UAAW,EAEbb,EAGH,OAFAW,EAAMI,MAAQI,EAAKlB,YACnBU,EAAMG,MAAQK,EAAKG,KAIpBX,EAAMI,MAAQI,EAAKI,MACnBZ,EAAMG,MAAQK,EAAKK,IAXR,CAWY,EA6BxB,OAHAC,GAPsB,KAChBd,EAAME,WAEXF,EAAME,UAAW,EACjBH,IAAmBC,EAAMT,MAAK,IAI/BwB,GAxByBC,IACxB,IAAKhB,EAAME,SAAU,OAErBc,EAAEC,iBAEED,EAAEE,UACLF,EAAIA,EAAEE,QAAQ,IAGf,MACMC,EADIH,EAAE3B,EAAW,QAAU,SACdW,EAAMG,MAEzBH,EAAMT,KAAOM,EAAgBsB,EAASnB,EAAMI,MAAS,IAA5B,IAAqCe,EAC9DrB,IAAWE,EAAMT,KAAK,IActB6B,EAAA,MAAA,CACCf,IAAKA,EACLT,UAAWyB,EAAW,cAAezB,EAAW,CAC/C,uBAA0BP,IAE3BK,MAAO,IAAKA,EAAOJ,UAAQF,SAAA,CAE3BkC,SACC1B,UAAU,gBACVF,MAAO,CACN,CAACL,EAAW,SAAW,SAAUW,EAAMT,KACvC,CAACF,EAAW,YAAc,YAAaG,EACvC,CAACH,EAAW,YAAc,YAAaI,GAGvCL,SAAAD,IAGFmC,EAAA,MAAA,CACC1B,UAAWyB,EAAW,mBAAoB,CACzC,uBAA0BrB,EAAME,WAEjCqB,YAAahB,EACbiB,aAAcjB,EACdkB,cAAgBT,GAAMA,EAAEC,iBAAgB7B,SAExCkC,SAAK1B,UAAU,wBAAyBR,SAAAO,MAGzC2B,EAAK,MAAA,CAAA1B,UAAU,gBAAeR,SAAEA,MAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{SearchRound as l,CheckRound as i}from"@ricons/material";import o from"classnames";import n from"../icon/icon.js";import s from"../list/list.js";import r from"../tag/tag.js";import a from"../utils/empty/index.js";const c=r=>{const{value:c,options:m,filter:p,filterPlaceholder:u,multiple:d,empty:f=e(a,{}),onSelect:h,onFilter:v}=r;return t("div",{className:o("i-select-options",{"i-select-options-multiple":d}),children:[p&&d&&t("div",{className:"i-select-filter",children:[e(n,{icon:e(l,{}),className:"color-8 ml-8 my-auto",size:"1.2em"}),e("input",{type:"text",className:"i-input",placeholder:u,onChange:v})]}),0===m.length&&f,m.map(((l,o)=>{const{label:r,value:a,disabled:m}=l,p=d?c?.includes(a):c===a;return t(s.Item,{active:p,type:"option",onClick:()=>h?.(a,l),disabled:m,children:[d&&e(n,{icon:e(i,{}),className:"i-select-option-check",size:"1em"}),r]},a||o)}))]})},m=(e=[],t=[],l=3)=>{const i=e.flatMap((e=>t.includes(e.value)?[e]:[]));if(l>=i.length)return i;const o=i.length-l,n=i.slice(0,l);return n.push(o),n},p=l=>{const{options:i,value:o,maxDisplay:n,multiple:s,onSelect:a}=l;return s?m(i,o,n).map(((l,i)=>{if("number"==typeof l)return t(r,{children:["+",l]},i);const{label:o,value:n}=l;return e(r,{hoverShowClose:!0,onClose:e=>{e?.stopPropagation(),a?.(n,l)},children:o},n)})):i.find((e=>e.value===o))?.label};export{c as Options,m as activeOptions,p as displayValue};
|
|
2
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sources":["../../../packages/components/select/options.tsx"],"sourcesContent":["import { CheckRound, SearchRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { TOption } from \"../../type\";\nimport Icon from \"../icon\";\nimport List from \"../list\";\nimport Tag from \"../tag\";\nimport Empty from \"../utils/empty\";\nimport { ISelectOptions } from \"./type\";\nexport const Options = (props: ISelectOptions) => {\n\tconst {\n\t\tvalue: val,\n\t\toptions,\n\t\tfilter,\n\t\tfilterPlaceholder,\n\t\tmultiple,\n\t\tempty = <Empty />,\n\t\tonSelect,\n\t\tonFilter,\n\t} = props;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-select-options\", {\n\t\t\t\t\"i-select-options-multiple\": multiple,\n\t\t\t})}\n\t\t>\n\t\t\t{filter && multiple && (\n\t\t\t\t<div className='i-select-filter'>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<SearchRound />}\n\t\t\t\t\t\tclassName='color-8 ml-8 my-auto'\n\t\t\t\t\t\tsize='1.2em'\n\t\t\t\t\t/>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype='text'\n\t\t\t\t\t\tclassName='i-input'\n\t\t\t\t\t\tplaceholder={filterPlaceholder}\n\t\t\t\t\t\tonChange={onFilter}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{options.length === 0 && empty}\n\n\t\t\t{options.map((option, i) => {\n\t\t\t\tconst { label, value, disabled } = option;\n\t\t\t\tconst isActive = multiple\n\t\t\t\t\t? val?.includes(value)\n\t\t\t\t\t: val === value;\n\n\t\t\t\treturn (\n\t\t\t\t\t<List.Item\n\t\t\t\t\t\tkey={(value as string) || i}\n\t\t\t\t\t\tactive={isActive}\n\t\t\t\t\t\ttype='option'\n\t\t\t\t\t\tonClick={() => onSelect?.(value, option)}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t{multiple && (\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ticon={<CheckRound />}\n\t\t\t\t\t\t\t\tclassName='i-select-option-check'\n\t\t\t\t\t\t\t\tsize='1em'\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</List.Item>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nexport const activeOptions = (\n\toptions: TOption[] = [],\n\tvalue: any[] = [],\n\tmax = 3\n) => {\n\tconst total = options.flatMap((opt) =>\n\t\tvalue.includes(opt.value) ? [opt] : []\n\t);\n\n\tif (max >= total.length) return total;\n\n\tconst rest = total.length - max;\n\tconst after = total.slice(0, max);\n\tafter.push(rest as any);\n\n\treturn after;\n};\n\nexport const displayValue = (config) => {\n\tconst { options, value, maxDisplay, multiple, onSelect } = config;\n\n\tif (multiple) {\n\t\treturn activeOptions(options, value, maxDisplay).map((opt, i) => {\n\t\t\tif (typeof opt === \"number\") return <Tag key={i}>+{opt}</Tag>;\n\n\t\t\tconst { label, value } = opt;\n\n\t\t\treturn (\n\t\t\t\t<Tag\n\t\t\t\t\tkey={value as string}\n\t\t\t\t\thoverShowClose\n\t\t\t\t\tonClose={(e) => {\n\t\t\t\t\t\te?.stopPropagation();\n\t\t\t\t\t\tonSelect?.(value, opt);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t});\n\t}\n\n\treturn options.find((opt: TOption) => opt.value === value)?.label;\n};\n"],"names":["Options","props","value","val","options","filter","filterPlaceholder","multiple","empty","_jsx","Empty","onSelect","onFilter","_jsxs","className","classNames","children","Icon","icon","SearchRound","size","type","placeholder","onChange","length","map","option","i","label","disabled","isActive","includes","List","Item","active","onClick","CheckRound","activeOptions","max","total","flatMap","opt","rest","after","slice","push","displayValue","config","maxDisplay","Tag","hoverShowClose","onClose","e","stopPropagation","find"],"mappings":"6QAQa,MAAAA,EAAWC,IACvB,MACCC,MAAOC,EAAGC,QACVA,EAAOC,OACPA,EAAMC,kBACNA,EAAiBC,SACjBA,EAAQC,MACRA,EAAQC,EAACC,EAAQ,CAAA,GAAAC,SACjBA,EAAQC,SACRA,GACGX,EAEJ,OACCY,EACC,MAAA,CAAAC,UAAWC,EAAW,mBAAoB,CACzC,4BAA6BR,IAG7BS,SAAA,CAAAX,GAAUE,GACVM,EAAK,MAAA,CAAAC,UAAU,kBACdE,SAAA,CAAAP,EAACQ,EACA,CAAAC,KAAMT,EAACU,EAAW,IAClBL,UAAU,uBACVM,KAAK,UAENX,EAAA,QAAA,CACCY,KAAK,OACLP,UAAU,UACVQ,YAAahB,EACbiB,SAAUX,OAKO,IAAnBR,EAAQoB,QAAgBhB,EAExBJ,EAAQqB,KAAI,CAACC,EAAQC,KACrB,MAAMC,MAAEA,EAAK1B,MAAEA,EAAK2B,SAAEA,GAAaH,EAC7BI,EAAWvB,EACdJ,GAAK4B,SAAS7B,GACdC,IAAQD,EAEX,OACCW,EAACmB,EAAKC,KAAI,CAETC,OAAQJ,EACRT,KAAK,SACLc,QAAS,IAAMxB,IAAWT,EAAOwB,GACjCG,SAAUA,EAETb,SAAA,CAAAT,GACAE,EAACQ,EACA,CAAAC,KAAMT,EAAC2B,EAAU,CAAA,GACjBtB,UAAU,wBACVM,KAAK,QAGNQ,IAbK1B,GAAoByB,EAcf,MAGT,EAIKU,EAAgB,CAC5BjC,EAAqB,GACrBF,EAAe,GACfoC,EAAM,KAEN,MAAMC,EAAQnC,EAAQoC,SAASC,GAC9BvC,EAAM6B,SAASU,EAAIvC,OAAS,CAACuC,GAAO,KAGrC,GAAIH,GAAOC,EAAMf,OAAQ,OAAOe,EAEhC,MAAMG,EAAOH,EAAMf,OAASc,EACtBK,EAAQJ,EAAMK,MAAM,EAAGN,GAG7B,OAFAK,EAAME,KAAKH,GAEJC,CAAK,EAGAG,EAAgBC,IAC5B,MAAM3C,QAAEA,EAAOF,MAAEA,EAAK8C,WAAEA,EAAUzC,SAAEA,EAAQI,SAAEA,GAAaoC,EAE3D,OAAIxC,EACI8B,EAAcjC,EAASF,EAAO8C,GAAYvB,KAAI,CAACgB,EAAKd,KAC1D,GAAmB,iBAARc,EAAkB,OAAO5B,EAACoC,EAAG,CAAAjC,SAAA,CAAA,IAAWyB,IAALd,GAE9C,MAAMC,MAAEA,EAAK1B,MAAEA,GAAUuC,EAEzB,OACChC,EAACwC,EAEA,CAAAC,gBACA,EAAAC,QAAUC,IACTA,GAAGC,kBACH1C,IAAWT,EAAOuC,EAAI,WAGtBb,GAPI1B,EAQA,IAKFE,EAAQkD,MAAMb,GAAiBA,EAAIvC,QAAUA,KAAQ0B,KAAK"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as e,jsx as l}from"react/jsx-runtime";import{UnfoldMoreRound as i}from"@ricons/material";import{useReactive as t}from"ahooks";import a from"classnames";import{debounce as n}from"radash";import{useState as r,useMemo as o,useEffect as s}from"react";import{formatOption as p}from"../../js/utils.js";import u from"../popup/popup.js";import c from"../utils/helpericon/helpericon.js";import{Options as m,displayValue as d}from"./options.js";const f=f=>{const{ref:v,type:h="text",name:g,label:b,value:y="",placeholder:V,options:N=[],multiple:x,prepend:j,append:C,labelInline:P,style:S,className:k,message:w,status:D="normal",hideClear:I,hideArrow:O,maxDisplay:z,border:A,filter:F,tip:$,filterPlaceholder:q="...",popupProps:B,onSelect:E,onChange:G,...H}=f,J=t({inputValue:"",filterValue:"",value:y,loading:!1}),[K,L]=r(!1),M=o((()=>p(N)),[N]),Q=o((()=>{const{filterValue:e}=J;if(!e||!F)return M;const l="function"==typeof F?F:l=>l.value.includes(e)||l.label.includes(e);return M.filter(l)}),[M,F,J.filterValue]),R=e=>{J.value=e,G?.(e)},T=(e,l)=>{if(E?.(e,l),x){const l=[...J.value],i=l.findIndex((l=>l===e));return i>-1?l.splice(i,1):l.push(e),void R(l)}L(!1),R(e)},U=n({delay:400},(e=>{const l=e.target.value;J.filterValue=l}));s((()=>{J.value=y}),[y]);const W=x?J.value.length>0:!!J.value,X=!I&&K&&W,Y=w??$;return e("label",{className:a("i-input-label",k,{"i-input-inline":P}),style:S,children:[b&&l("span",{className:"i-input-label-text",children:b}),l(u,{position:"bottom",arrow:!1,fitSize:!0,...B,visible:K,trigger:"none",onVisibleChange:e=>{L(e),F&&(J.filterValue="")},content:l(m,{options:Q,value:J.value,multiple:x,filter:!!F,filterPlaceholder:q,onSelect:T,onFilter:U}),children:e("div",{className:a("i-input-item",{[`i-input-${D}`]:"normal"!==D,"i-input-borderless":!A,"i-input-focus":K}),onClick:()=>L(!0),children:[j,l("input",{ref:v,type:"hidden",value:J.value,...H}),x?W?l("div",{className:a("i-input i-select",{"i-select-multiple":x}),children:d({options:M,value:J.value,multiple:x,maxDisplay:z,onSelect:T})}):l("input",{className:"i-input i-select",placeholder:V,readOnly:!0}):null,!x&&l("input",{value:K?J.filterValue:J.value,className:"i-input i-select",placeholder:J.value||V,onChange:e=>{J.filterValue=e.target.value},readOnly:!F}),l(c,{active:!O,icon:X?void 0:l(i,{}),onClick:e=>{e.stopPropagation(),L(!0),K&&R(x?[]:"")}}),C]})}),Y&&l("span",{className:"i-input-message",children:Y})]})};export{f as default};
|
|
2
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sources":["../../../packages/components/select/select.tsx"],"sourcesContent":["import { UnfoldMoreRound } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { debounce } from \"radash\";\nimport { ChangeEvent, useEffect, useMemo, useState } from \"react\";\nimport \"../../css/input.css\";\nimport { formatOption } from \"../../js/utils\";\nimport { TOption } from \"../../type\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { Options, displayValue } from \"./options\";\nimport { ISelect } from \"./type\";\n\nconst Select = (props: ISelect) => {\n\tconst {\n\t\tref,\n\t\ttype = \"text\",\n\t\tname,\n\t\tlabel,\n\t\tvalue = \"\",\n\t\tplaceholder,\n\t\toptions = [],\n\t\tmultiple,\n\t\tprepend,\n\t\tappend,\n\t\tlabelInline,\n\t\tstyle,\n\t\tclassName,\n\t\tmessage,\n\t\tstatus = \"normal\",\n\t\thideClear,\n\t\thideArrow,\n\t\tmaxDisplay,\n\t\tborder,\n\t\tfilter,\n\t\ttip,\n\t\tfilterPlaceholder = \"...\",\n\t\tpopupProps,\n\t\tonSelect,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tinputValue: \"\",\n\t\tfilterValue: \"\",\n\t\tvalue,\n\t\tloading: false,\n\t});\n\n\tconst [active, setActive] = useState<boolean>(false);\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst filterOptions = useMemo(() => {\n\t\tconst { filterValue: fv } = state;\n\t\tif (!fv || !filter) return formattedOptions;\n\n\t\tconst filterFn =\n\t\t\ttypeof filter === \"function\"\n\t\t\t\t? filter\n\t\t\t\t: (opt) => opt.value.includes(fv) || opt.label.includes(fv);\n\n\t\treturn formattedOptions.filter(filterFn);\n\t}, [formattedOptions, filter, state.filterValue]);\n\n\tconst changeValue = (v: any) => {\n\t\tstate.value = v;\n\t\tonChange?.(v);\n\t};\n\n\tconst handleSelect = (value: any, option?: TOption) => {\n\t\tonSelect?.(value, option);\n\n\t\tif (multiple) {\n\t\t\tconst values = [...(state.value as any[])];\n\t\t\tconst i = values.findIndex((v) => v === value);\n\n\t\t\ti > -1 ? values.splice(i, 1) : values.push(value);\n\t\t\tchangeValue(values as any);\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetActive(false);\n\t\tchangeValue(value);\n\t};\n\n\tconst handleVisibleChange = (visible: boolean) => {\n\t\tsetActive(visible);\n\n\t\tif (!filter) return;\n\n\t\tstate.filterValue = \"\";\n\t};\n\n\tconst handleHelperClick = (e) => {\n\t\te.stopPropagation();\n\t\tsetActive(true);\n\t\tif (!active) return;\n\n\t\tchangeValue(multiple ? [] : \"\");\n\t};\n\n\tconst handleFilterChange = debounce(\n\t\t{ delay: 400 },\n\t\t(e: ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst v = e.target.value;\n\t\t\tstate.filterValue = v;\n\t\t}\n\t);\n\n\tconst handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tstate.filterValue = e.target.value;\n\t};\n\n\tuseEffect(() => {\n\t\tstate.value = value;\n\t}, [value]);\n\n\tconst hasValue = multiple\n\t\t? (state.value as any[]).length > 0\n\t\t: !!state.value;\n\tconst clearable = !hideClear && active && hasValue;\n\tconst text = message ?? tip;\n\n\treturn (\n\t\t<label\n\t\t\tclassName={classNames(\"i-input-label\", className, {\n\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t})}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{label && <span className='i-input-label-text'>{label}</span>}\n\n\t\t\t<Popup\n\t\t\t\tposition='bottom'\n\t\t\t\tarrow={false}\n\t\t\t\tfitSize\n\t\t\t\t{...popupProps}\n\t\t\t\tvisible={active}\n\t\t\t\ttrigger='none'\n\t\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\t\tcontent={\n\t\t\t\t\t<Options\n\t\t\t\t\t\toptions={filterOptions}\n\t\t\t\t\t\tvalue={state.value}\n\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\tfilter={!!filter}\n\t\t\t\t\t\tfilterPlaceholder={filterPlaceholder}\n\t\t\t\t\t\tonSelect={handleSelect}\n\t\t\t\t\t\tonFilter={handleFilterChange}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-input-item\", {\n\t\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\n\t\t\t\t\t\t\"i-input-borderless\": !border,\n\t\t\t\t\t\t\"i-input-focus\": active,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={() => setActive(true)}\n\t\t\t\t>\n\t\t\t\t\t{prepend}\n\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\ttype='hidden'\n\t\t\t\t\t\tvalue={state.value}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{multiple ? (\n\t\t\t\t\t\thasValue ? (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-input i-select\", {\n\t\t\t\t\t\t\t\t\t\"i-select-multiple\": multiple,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{displayValue({\n\t\t\t\t\t\t\t\t\toptions: formattedOptions,\n\t\t\t\t\t\t\t\t\tvalue: state.value,\n\t\t\t\t\t\t\t\t\tmultiple,\n\t\t\t\t\t\t\t\t\tmaxDisplay,\n\t\t\t\t\t\t\t\t\tonSelect: handleSelect,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclassName='i-input i-select'\n\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t) : null}\n\n\t\t\t\t\t{!multiple && (\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tvalue={active ? state.filterValue : state.value}\n\t\t\t\t\t\t\tclassName='i-input i-select'\n\t\t\t\t\t\t\tplaceholder={state.value || placeholder}\n\t\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\t\treadOnly={!filter}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Helpericon\n\t\t\t\t\t\tactive={!hideArrow}\n\t\t\t\t\t\ticon={clearable ? undefined : <UnfoldMoreRound />}\n\t\t\t\t\t\tonClick={handleHelperClick}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{append}\n\t\t\t\t</div>\n\t\t\t</Popup>\n\n\t\t\t{text && <span className='i-input-message'>{text}</span>}\n\t\t</label>\n\t);\n};\n\nexport default Select;\n"],"names":["Select","props","ref","type","name","label","value","placeholder","options","multiple","prepend","append","labelInline","style","className","message","status","hideClear","hideArrow","maxDisplay","border","filter","tip","filterPlaceholder","popupProps","onSelect","onChange","restProps","state","useReactive","inputValue","filterValue","loading","active","setActive","useState","formattedOptions","useMemo","formatOption","filterOptions","fv","filterFn","opt","includes","changeValue","v","handleSelect","option","values","i","findIndex","splice","push","handleFilterChange","debounce","delay","e","target","useEffect","hasValue","length","clearable","text","_jsxs","classNames","children","_jsx","Popup","position","arrow","fitSize","visible","trigger","onVisibleChange","content","Options","onFilter","onClick","displayValue","readOnly","Helpericon","icon","undefined","UnfoldMoreRound","stopPropagation"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divider.js","sources":["../../../packages/components/step/divider.tsx"],"sourcesContent":["import \"./index.css\";\n\nexport default function Divider() {\n\treturn <i className='i-step-divider' />;\n}\n"],"names":["Divider","_jsx","className"],"mappings":"wCAEc,SAAUA,IACvB,OAAOC,EAAG,IAAA,CAAAC,UAAU,kBACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e,jsxs as i,Fragment as t}from"react/jsx-runtime";import{CheckRound as s}from"@ricons/material";import n from"classnames";import c from"./divider.js";const l=["finished","active","pending"];function r(i,t){return e("span",{className:"i-step-item-index",children:"finished"===t?e(s,{style:{width:"1em",height:"1.5em"}}):i+1})}function a(s){const{index:a=0,active:m=0,renderIcon:d=r,title:o,vertical:h,line:p=e(c,{}),asList:v,style:f,className:N,children:u,onClick:x}=s,g=l[a===m?1:a<m?0:2];return e("div",{style:f,className:n("i-step-item",{[`i-step-item-${g}`]:!v},N),onClick:()=>{x?.(a)},children:i(t,h?{children:[i("div",{className:"i-step-item-left",children:[d?.(a,g),p]}),i("div",{className:"i-step-item-right",children:[e("div",{className:"i-step-item-title",children:o}),u&&e("div",{className:"i-step-item-content",children:u})]})]}:{children:[i("div",{className:"i-step-item-title",children:[d?.(a,g),e("span",{children:o}),p]}),u&&e("div",{className:"i-step-item-content",children:u})]})})}export{a as default};
|
|
2
|
+
//# sourceMappingURL=item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.js","sources":["../../../packages/components/step/item.tsx"],"sourcesContent":["import { CheckRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport Divider from \"./divider\";\nimport { IStepItem } from \"./type\";\n\nconst STATUS = [\"finished\", \"active\", \"pending\"];\n\nfunction defaultRenderIcon(i: number, status: string) {\n\treturn (\n\t\t<span className='i-step-item-index'>\n\t\t\t{status === \"finished\" ? (\n\t\t\t\t<CheckRound style={{ width: \"1em\", height: \"1.5em\" }} />\n\t\t\t) : (\n\t\t\t\ti + 1\n\t\t\t)}\n\t\t</span>\n\t);\n}\n\nfunction Item(props: IStepItem) {\n\tconst {\n\t\tindex = 0,\n\t\tactive = 0,\n\t\trenderIcon = defaultRenderIcon,\n\t\ttitle,\n\t\tvertical,\n\t\tline = <Divider />,\n\t\tasList,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tonClick,\n\t} = props;\n\tconst status = STATUS[index === active ? 1 : index < active ? 0 : 2];\n\n\tconst handleClick = () => {\n\t\tonClick?.(index);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-step-item\",\n\t\t\t\t{\n\t\t\t\t\t[`i-step-item-${status}`]: !asList,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tonClick={handleClick}\n\t\t>\n\t\t\t{vertical ? (\n\t\t\t\t<>\n\t\t\t\t\t<div className='i-step-item-left'>\n\t\t\t\t\t\t{renderIcon?.(index, status)}\n\t\t\t\t\t\t{line}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className='i-step-item-right'>\n\t\t\t\t\t\t<div className='i-step-item-title'>{title}</div>\n\t\t\t\t\t\t{children && (\n\t\t\t\t\t\t\t<div className='i-step-item-content'>\n\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<div className='i-step-item-title'>\n\t\t\t\t\t\t{renderIcon?.(index, status)}\n\n\t\t\t\t\t\t<span>{title}</span>\n\n\t\t\t\t\t\t{line}\n\t\t\t\t\t</div>\n\t\t\t\t\t{children && (\n\t\t\t\t\t\t<div className='i-step-item-content'>{children}</div>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default Item;\n"],"names":["STATUS","defaultRenderIcon","i","status","_jsx","className","CheckRound","style","width","height","Item","props","index","active","renderIcon","title","vertical","line","Divider","asList","children","onClick","classNames","_jsxs","_Fragment"],"mappings":"oKAKA,MAAMA,EAAS,CAAC,WAAY,SAAU,WAEtC,SAASC,EAAkBC,EAAWC,GACrC,OACCC,EAAM,OAAA,CAAAC,UAAU,6BACH,aAAXF,EACAC,EAACE,EAAU,CAACC,MAAO,CAAEC,MAAO,MAAOC,OAAQ,WAE3CP,EAAI,GAIR,CAEA,SAASQ,EAAKC,GACb,MAAMC,MACLA,EAAQ,EAACC,OACTA,EAAS,EAACC,WACVA,EAAab,EAAiBc,MAC9BA,EAAKC,SACLA,EAAQC,KACRA,EAAOb,EAACc,EAAO,CAAA,GAAGC,OAClBA,EAAMZ,MACNA,EAAKF,UACLA,EAASe,SACTA,EAAQC,QACRA,GACGV,EACER,EAASH,EAAOY,IAAUC,EAAS,EAAID,EAAQC,EAAS,EAAI,GAMlE,OACCT,EACC,MAAA,CAAAG,MAAOA,EACPF,UAAWiB,EACV,cACA,CACC,CAAC,eAAenB,MAAYgB,GAE7Bd,GAEDgB,QAdkB,KACnBA,IAAUT,EAAM,EAaKQ,SAGnBG,EAAAC,EADAR,EACA,CAAAI,SAAA,CACCG,SAAKlB,UAAU,mBACbe,SAAA,CAAAN,IAAaF,EAAOT,GACpBc,KAEFM,SAAKlB,UAAU,oBACde,SAAA,CAAAhB,EAAA,MAAA,CAAKC,UAAU,6BAAqBU,IACnCK,GACAhB,EAAA,MAAA,CAAKC,UAAU,sBACbe,SAAAA,oBAOJG,EAAK,MAAA,CAAAlB,UAAU,oBAAmBe,SAAA,CAChCN,IAAaF,EAAOT,GAErBC,EAAO,OAAA,CAAAgB,SAAAL,IAENE,KAEDG,GACAhB,EAAA,MAAA,CAAKC,UAAU,+BAAuBe,QAM5C"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import t from"classnames";import{useMemo as r,Children as s}from"react";import i from"./item.js";const c=c=>{const{active:n=0,vertical:o,renderIcon:a,line:l,style:m,asList:p,className:d,children:f,onClick:u}=c,v=r((()=>{const e=[];let t=0;return s.map(f,(r=>{if(!r||r.type!==i)return;const{props:s}=r;e.push({...r,props:{renderIcon:a,line:l,onClick:u,...s,vertical:o,active:n,asList:p,index:t++}})})),e}),[n,f]);return e("div",{className:t("i-step",{"i-step-vertical":o},d),style:m,children:v})};c.Item=i;export{c as default};
|
|
2
|
+
//# sourceMappingURL=step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step.js","sources":["../../../packages/components/step/step.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { Children, ReactNode, useMemo } from \"react\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { IStep } from \"./type\";\n\nconst Step = (props: IStep) => {\n\tconst {\n\t\tactive = 0,\n\t\tvertical,\n\t\trenderIcon,\n\t\tline,\n\t\tstyle,\n\t\tasList,\n\t\tclassName,\n\t\tchildren,\n\t\tonClick,\n\t} = props;\n\n\tconst steps = useMemo(() => {\n\t\tconst nodes: ReactNode[] = [];\n\t\tlet index = 0;\n\n\t\tChildren.map(children, (el: any) => {\n\t\t\tif (!el || el.type !== Item) return;\n\n\t\t\tconst { props: elProps } = el;\n\n\t\t\tnodes.push({\n\t\t\t\t...el,\n\t\t\t\tprops: {\n\t\t\t\t\trenderIcon,\n\t\t\t\t\tline,\n\t\t\t\t\tonClick,\n\t\t\t\t\t...elProps,\n\t\t\t\t\tvertical,\n\t\t\t\t\tactive,\n\t\t\t\t\tasList,\n\t\t\t\t\tindex: index++,\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\treturn nodes;\n\t}, [active, children]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-step\",\n\t\t\t\t{ \"i-step-vertical\": vertical },\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{steps}\n\t\t</div>\n\t);\n};\n\nStep.Item = Item;\n\nexport default Step;\n"],"names":["Step","props","active","vertical","renderIcon","line","style","asList","className","children","onClick","steps","useMemo","nodes","index","Children","map","el","type","Item","elProps","push","_jsx","classNames"],"mappings":"yIAMA,MAAMA,EAAQC,IACb,MAAMC,OACLA,EAAS,EAACC,SACVA,EAAQC,WACRA,EAAUC,KACVA,EAAIC,MACJA,EAAKC,OACLA,EAAMC,UACNA,EAASC,SACTA,EAAQC,QACRA,GACGT,EAEEU,EAAQC,GAAQ,KACrB,MAAMC,EAAqB,GAC3B,IAAIC,EAAQ,EAsBZ,OApBAC,EAASC,IAAIP,GAAWQ,IACvB,IAAKA,GAAMA,EAAGC,OAASC,EAAM,OAE7B,MAAQlB,MAAOmB,GAAYH,EAE3BJ,EAAMQ,KAAK,IACPJ,EACHhB,MAAO,CACNG,aACAC,OACAK,aACGU,EACHjB,WACAD,SACAK,SACAO,MAAOA,MAEP,IAGID,CAAK,GACV,CAACX,EAAQO,IAEZ,OACCa,EACC,MAAA,CAAAd,UAAWe,EACV,SACA,CAAE,kBAAmBpB,GACrBK,GAEDF,MAAOA,EAENG,SAAAE,GACI,EAIRX,EAAKmB,KAAOA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import t from"classnames";import{useMemo as e}from"react";function a(a){const{index:n=0,itemIndex:r=0,active:s,type:m,transition:o,gap:c=0,itemHeight:l,vertical:d,style:p,className:f,children:g,onItemClick:h}=a,x=e((()=>"normal"===m?{[d?"paddingBlock":"paddingInline"]:c/2,height:l}:{transform:`translate(-${100*n}%, 0)`,transition:o}),[n,c,l,d,m]);return i("div",{style:{...p,...x},className:t("i-swiper-item",f,{"i-swiper-active":s}),"data-index":r,onClick:i=>h?.(r,i),children:g})}export{a as default};
|
|
2
|
+
//# sourceMappingURL=item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.js","sources":["../../../packages/components/swiper/item.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport { ISwiperItem } from \"./type\";\n\nfunction Item(props: ISwiperItem) {\n\tconst {\n\t\tindex = 0,\n\t\titemIndex = 0,\n\t\tactive,\n\t\ttype,\n\t\ttransition,\n\t\tgap = 0,\n\t\titemHeight,\n\t\tvertical,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tonItemClick,\n\t} = props;\n\n\tconst selfStyle = useMemo(() => {\n\t\tif (type === \"normal\") {\n\t\t\treturn {\n\t\t\t\t[vertical ? \"paddingBlock\" : \"paddingInline\"]: gap / 2,\n\t\t\t\theight: itemHeight,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttransform: `translate(-${index * 100}%, 0)`,\n\t\t\ttransition,\n\t\t};\n\t}, [index, gap, itemHeight, vertical, type]);\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ ...style, ...selfStyle }}\n\t\t\tclassName={classNames(\"i-swiper-item\", className, {\n\t\t\t\t\"i-swiper-active\": active,\n\t\t\t})}\n\t\t\tdata-index={itemIndex}\n\t\t\tonClick={(e) => onItemClick?.(itemIndex, e)}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n\nexport default Item;\n"],"names":["Item","props","index","itemIndex","active","type","transition","gap","itemHeight","vertical","style","className","children","onItemClick","selfStyle","useMemo","height","transform","_jsx","classNames","onClick","e"],"mappings":"kGAIA,SAASA,EAAKC,GACb,MAAMC,MACLA,EAAQ,EAACC,UACTA,EAAY,EAACC,OACbA,EAAMC,KACNA,EAAIC,WACJA,EAAUC,IACVA,EAAM,EAACC,WACPA,EAAUC,SACVA,EAAQC,MACRA,EAAKC,UACLA,EAASC,SACTA,EAAQC,YACRA,GACGZ,EAEEa,EAAYC,GAAQ,IACZ,WAATV,EACI,CACN,CAACI,EAAW,eAAiB,iBAAkBF,EAAM,EACrDS,OAAQR,GAIH,CACNS,UAAW,cAAsB,IAARf,SACzBI,eAEC,CAACJ,EAAOK,EAAKC,EAAYC,EAAUJ,IAEtC,OACCa,EACC,MAAA,CAAAR,MAAO,IAAKA,KAAUI,GACtBH,UAAWQ,EAAW,gBAAiBR,EAAW,CACjD,kBAAmBP,IAClB,aACUD,EACZiB,QAAUC,GAAMR,IAAcV,EAAWkB,GAExCT,SAAAA,GAGJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e,jsxs as r,Fragment as t}from"react/jsx-runtime";import{useMouseMove as i,useMouseUp as n}from"../../js/hooks.js";import{clamp as s}from"../../js/utils.js";import{KeyboardArrowLeftRound as a,KeyboardArrowRightRound as o}from"@ricons/material";import{useReactive as c}from"ahooks";import l from"classnames";import{useRef as u,useMemo as d,Children as m,useImperativeHandle as p,useEffect as f}from"react";import g from"../icon/icon.js";import h from"./item.js";const w=w=>{const{ref:v,type:T="normal",initial:y=0,display:b=1,scroll:j=1,loop:x=!0,vertical:N,prev:k=e(g,{icon:e(a,{}),size:"2em"}),next:M=e(g,{icon:e(o,{}),size:"2em"}),duration:S=600,interval:$=3e3,autoplay:I,pauseOnHover:z,arrow:C=!0,reverse:H,draggable:O,dragOffset:D=40,gap:X=0,itemHeight:Y,indicator:A,fixedIndicator:P,style:W,className:B,children:L,renderIndicator:q,onBeforeSwipe:E,onAfterSwipe:F,onItemClick:G}=w,J=u(null),K=u(null),Q=`all ${S/1e3}s`,R=c({current:y,swipable:!0,transition:"fade"===T?"none":Q,dragStart:0,dragging:!1,initialized:!1}),U=d((()=>m.map(L,(e=>{if(e.type===h)return e}))),[L]),[V,Z,_,ee,re]=d((()=>{const e="normal"===T&&x&&U.length>b?b+1:0;let r=[];if(e<=0)r=[...U];else{const t=U.slice(0,e);r=[...U.slice(-e),...U,...t]}const t=r.length/b*100+"%";return[r,e,U.length,r.length,t]}),[b,x,T,U]),te=d((()=>-100*(R.current+Z)/ee),[R.current,ee]),ie=d((()=>{if(_<=b||"fade"===T)return;return`translate3d(${N?`0, ${te}%`:`${te}%, 0`}, 0)`}),[te,N,b,_,T]),ne=d((()=>{if(N&&Y)return{height:Y*b}}),[N,Y,b]),se=d((()=>Array.from({length:Math.ceil((_-b)/j)+1})),[x,A]),ae=()=>{clearTimeout(K.current),K.current=null},oe=e=>{if(!R.swipable||e===R.current)return;R.swipable=!1,E?.(R.current);let r=!1,t=e;const i=_-b;return x?e>i?(r=!0,e=_,t=0):e<0&&(r=!0,e=-b,t=i):(t=s(t,0,i),e=t),setTimeout((()=>{R.swipable=!0}),S+32),"fade"===T?(R.current=t,void F?.(t)):(R.current=e,r?void setTimeout((()=>{R.transition="none",R.current=t,F?.(t),I&&(K.current=setTimeout(ce,$)),setTimeout((()=>{R.transition=Q}),60)}),S+20):(I&&(K.current=setTimeout(ce,$)),void setTimeout((()=>{F?.(t)}),S+12)))},ce=()=>{oe(H?R.current-j:R.current+j)},le=()=>{oe(H?R.current+j:R.current-j)},ue=e=>{O&&R.swipable&&"fade"!==T&&(e.stopPropagation(),e.preventDefault(),e.touches&&(e=e.touches[0]),Object.assign(R,{dragStart:N?e.clientY:e.clientX,dragging:!0,transition:"none"}))};return i((e=>{if(!R.dragging||!J.current)return;e.preventDefault(),e.touches&&(e=e.touches[0]);const r=61.8*((N?e.clientY:e.clientX)-R.dragStart)/J.current[N?"offsetHeight":"offsetWidth"]+te;J.current.style.transform=`translate3d(${N?`0, ${r}%`:`${r}%, 0`}, 0)`})),n((e=>{if(!R.dragging||!J.current)return;e.changedTouches&&(e=e.changedTouches[0]);const r=N?e.clientY:e.clientX,t=J.current[N?"offsetHeight":"offsetWidth"]/ee,i=.618*(r-R.dragStart),n=Math.abs(i);if(n>D){const e=Math.floor(n/t)+(n%t-D>0?1:0);let r=R.current+(i>0?-e:e);oe(r)}J.current.style.transform=ie||"",Object.assign(R,{dragging:!1,transition:Q})})),p(v,(()=>({swipeTo:oe,swipeNext:ce,swipePrev:le}))),f((()=>{if(I)return K.current=setTimeout(ce,$),()=>{clearTimeout(K.current),K.current=null}}),[I,$]),r("div",{style:W,className:l("i-swiper",{"i-swiper-vertical":N,"i-swiper-initialized":R.initialized},B),children:[r("div",{className:"i-swiper-track",style:ne,onMouseOver:()=>{z&&ae()},onMouseLeave:()=>{z&&(ae(),K.current=setTimeout(ce,$))},children:[e("div",{ref:J,className:l("i-swiper-list",{"i-swiper-fade":"fade"===T}),style:{[N?"height":"width"]:re,transform:ie,transition:R.transition},onMouseDown:ue,onTouchStart:ue,children:V.map(((r,t)=>{const{props:i}=r;return e(h,{index:t,itemIndex:(t-Z+_)%_,active:t-Z===R.current,type:T,gap:X,transition:Q,itemHeight:Y,vertical:N,onItemClick:G,...i},t)}))}),C&&r(t,{children:[(x||0!==R.current)&&e("a",{className:"i-swiper-arrow i-swiper-prev",onClick:le,children:k}),(x||R.current<_-b)&&e("a",{className:"i-swiper-arrow i-swiper-next",onClick:ce,children:M})]})]}),A&&e("div",{className:l("i-swiper-indicators",{"i-swiper-indicators-fixed":P}),children:se.map(((r,t)=>e("a",{className:l("i-swiper-indicator",{"i-indicator-active":t===Math[x?"floor":"ceil"]((R.current+_)%_/j)}),onClick:()=>oe(t*j),children:q?.(t)},t)))})]})};w.Item=h;export{w as default};
|
|
2
|
+
//# sourceMappingURL=swiper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swiper.js","sources":["../../../packages/components/swiper/swiper.tsx"],"sourcesContent":["import { useMouseMove, useMouseUp } from \"@p/js/hooks\";\nimport { clamp } from \"@p/js/utils\";\nimport {\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n} from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport {\n\tChildren,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n} from \"react\";\nimport Icon from \"../icon\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { CompositionSwiper, ISwiper } from \"./type\";\n\nconst Swiper = ((props: ISwiper) => {\n\tconst {\n\t\tref,\n\t\ttype = \"normal\",\n\t\tinitial = 0,\n\t\tdisplay = 1,\n\t\tscroll = 1,\n\t\tloop = true,\n\t\tvertical,\n\t\tprev = <Icon icon={<KeyboardArrowLeftRound />} size='2em' />,\n\t\tnext = <Icon icon={<KeyboardArrowRightRound />} size='2em' />,\n\t\tduration = 600,\n\t\tinterval = 3000,\n\t\tautoplay,\n\t\tpauseOnHover,\n\t\tarrow = true,\n\t\treverse,\n\t\tdraggable,\n\t\tdragOffset = 40,\n\t\tgap = 0,\n\t\titemHeight,\n\t\tindicator,\n\t\tfixedIndicator,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\trenderIndicator,\n\t\tonBeforeSwipe,\n\t\tonAfterSwipe,\n\t\tonItemClick,\n\t} = props;\n\n\tconst listRef = useRef<HTMLDivElement>(null);\n\tconst timerRef = useRef<any>(null);\n\tconst transition = `all ${duration / 1000}s`;\n\tconst state = useReactive({\n\t\tcurrent: initial,\n\t\tswipable: true,\n\t\ttransition: type === \"fade\" ? \"none\" : transition,\n\t\tdragStart: 0,\n\t\tdragging: false,\n\t\tinitialized: false,\n\t});\n\n\tconst items = useMemo(() => {\n\t\treturn Children.map(children, (node: any) => {\n\t\t\tif (node.type !== Item) return;\n\n\t\t\treturn node;\n\t\t});\n\t}, [children]);\n\n\tconst [displayItems, extra, size, total, listSize] = useMemo(() => {\n\t\tconst extra =\n\t\t\ttype === \"normal\" && loop && items.length > display\n\t\t\t\t? display + 1\n\t\t\t\t: 0;\n\t\tlet list: any = [];\n\n\t\tif (extra <= 0) {\n\t\t\tlist = [...items];\n\t\t} else {\n\t\t\tconst head = items.slice(0, extra);\n\t\t\tconst tail = items.slice(-extra);\n\t\t\tlist = [...tail, ...items, ...head];\n\t\t}\n\n\t\tconst listSize = `${(list.length / display) * 100}%`;\n\n\t\treturn [list, extra, items.length, list.length, listSize];\n\t}, [display, loop, type, items]);\n\n\tconst offsetPercent = useMemo(\n\t\t() => (-100 * (state.current + extra)) / total,\n\t\t[state.current, total]\n\t);\n\n\tconst position = useMemo(() => {\n\t\tif (size <= display || type === \"fade\") return;\n\n\t\tconst offset = vertical\n\t\t\t? `0, ${offsetPercent}%`\n\t\t\t: `${offsetPercent}%, 0`;\n\t\treturn `translate3d(${offset}, 0)`;\n\t}, [offsetPercent, vertical, display, size, type]);\n\n\tconst trackStyle = useMemo(() => {\n\t\tif (!vertical || !itemHeight) return;\n\n\t\treturn {\n\t\t\theight: itemHeight * display,\n\t\t};\n\t}, [vertical, itemHeight, display]);\n\n\tconst indicatorsLoop = useMemo(() => {\n\t\treturn Array.from({\n\t\t\tlength: Math.ceil((size - display) / scroll) + 1,\n\t\t});\n\t}, [loop, indicator]);\n\n\tconst clearTimer = () => {\n\t\tclearTimeout(timerRef.current);\n\t\ttimerRef.current = null;\n\t};\n\n\tconst swipeTo = (i: number) => {\n\t\tif (!state.swipable || i === state.current) return;\n\t\tstate.swipable = false;\n\t\tonBeforeSwipe?.(state.current);\n\n\t\tlet reset = false;\n\t\tlet next = i;\n\t\tconst lastDisplay = size - display;\n\n\t\tif (loop) {\n\t\t\tif (i > lastDisplay) {\n\t\t\t\treset = true;\n\t\t\t\ti = size;\n\t\t\t\tnext = 0;\n\t\t\t} else if (i < 0) {\n\t\t\t\treset = true;\n\t\t\t\ti = -display;\n\t\t\t\tnext = lastDisplay;\n\t\t\t}\n\t\t} else {\n\t\t\tnext = clamp(next, 0, lastDisplay);\n\t\t\ti = next;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tstate.swipable = true;\n\t\t}, duration + 32);\n\n\t\tif (type === \"fade\") {\n\t\t\tstate.current = next;\n\t\t\tonAfterSwipe?.(next);\n\t\t\treturn;\n\t\t}\n\n\t\tstate.current = i;\n\n\t\tif (!reset) {\n\t\t\tif (autoplay) {\n\t\t\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\t\t\t}\n\t\t\tsetTimeout(() => {\n\t\t\t\tonAfterSwipe?.(next);\n\t\t\t}, duration + 12);\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tstate.transition = \"none\";\n\t\t\tstate.current = next;\n\t\t\tonAfterSwipe?.(next);\n\t\t\tif (autoplay) {\n\t\t\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\t\t\t}\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.transition = transition;\n\t\t\t}, 60);\n\t\t}, duration + 20);\n\t};\n\tconst swipeNext = () => {\n\t\tswipeTo(reverse ? state.current - scroll : state.current + scroll);\n\t};\n\n\tconst swipePrev = () => {\n\t\tswipeTo(reverse ? state.current + scroll : state.current - scroll);\n\t};\n\n\tconst handleMouseDown = (e) => {\n\t\tif (!draggable || !state.swipable || type === \"fade\") return;\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\n\t\tif (e.touches) {\n\t\t\te = e.touches[0];\n\t\t}\n\n\t\tObject.assign(state, {\n\t\t\tdragStart: vertical ? e.clientY : e.clientX,\n\t\t\tdragging: true,\n\t\t\ttransition: \"none\",\n\t\t});\n\t};\n\n\tconst handleMouseMove = (e) => {\n\t\tif (!state.dragging || !listRef.current) return;\n\t\te.preventDefault();\n\n\t\tif (e.touches) {\n\t\t\te = e.touches[0];\n\t\t}\n\n\t\tconst dragEnd = vertical ? e.clientY : e.clientX;\n\t\tconst offset =\n\t\t\t((dragEnd - state.dragStart) * 61.8) /\n\t\t\t\tlistRef.current[vertical ? \"offsetHeight\" : \"offsetWidth\"] +\n\t\t\toffsetPercent;\n\n\t\tlistRef.current.style.transform = `translate3d(${\n\t\t\tvertical ? `0, ${offset}%` : `${offset}%, 0`\n\t\t}, 0)`;\n\t};\n\n\tconst handleMouseUp = (e) => {\n\t\tif (!state.dragging || !listRef.current) return;\n\n\t\tif (e.changedTouches) {\n\t\t\te = e.changedTouches[0];\n\t\t}\n\n\t\tconst dragEnd = vertical ? e.clientY : e.clientX;\n\t\tconst part =\n\t\t\tlistRef.current[vertical ? \"offsetHeight\" : \"offsetWidth\"] / total;\n\t\tconst offset = (dragEnd - state.dragStart) * 0.618;\n\t\tconst absOffset = Math.abs(offset);\n\n\t\tif (absOffset > dragOffset) {\n\t\t\tconst base = Math.floor(absOffset / part);\n\t\t\tconst mod = (absOffset % part) - dragOffset > 0 ? 1 : 0;\n\t\t\tconst p = base + mod;\n\n\t\t\tlet to = state.current + (offset > 0 ? -p : p);\n\n\t\t\tswipeTo(to);\n\t\t}\n\n\t\tlistRef.current.style.transform = position || \"\";\n\n\t\tObject.assign(state, {\n\t\t\tdragging: false,\n\t\t\ttransition,\n\t\t});\n\t};\n\n\tconst handleMouseOver = () => {\n\t\tif (!pauseOnHover) return;\n\t\tclearTimer();\n\t};\n\n\tconst handleMouseLeave = () => {\n\t\tif (!pauseOnHover) return;\n\t\tclearTimer();\n\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\t};\n\n\tuseMouseMove(handleMouseMove);\n\tuseMouseUp(handleMouseUp);\n\n\tuseImperativeHandle(ref, () => ({\n\t\tswipeTo,\n\t\tswipeNext,\n\t\tswipePrev,\n\t}));\n\n\tuseEffect(() => {\n\t\tif (!autoplay) return;\n\t\ttimerRef.current = setTimeout(swipeNext, interval);\n\n\t\treturn () => {\n\t\t\tclearTimeout(timerRef.current);\n\t\t\ttimerRef.current = null;\n\t\t};\n\t}, [autoplay, interval]);\n\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-swiper\",\n\t\t\t\t{\n\t\t\t\t\t\"i-swiper-vertical\": vertical,\n\t\t\t\t\t\"i-swiper-initialized\": state.initialized,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName='i-swiper-track'\n\t\t\t\tstyle={trackStyle}\n\t\t\t\tonMouseOver={handleMouseOver}\n\t\t\t\tonMouseLeave={handleMouseLeave}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={listRef}\n\t\t\t\t\tclassName={classNames(\"i-swiper-list\", {\n\t\t\t\t\t\t\"i-swiper-fade\": type === \"fade\",\n\t\t\t\t\t})}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t[vertical ? \"height\" : \"width\"]: listSize,\n\t\t\t\t\t\ttransform: position,\n\t\t\t\t\t\ttransition: state.transition,\n\t\t\t\t\t}}\n\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\tonTouchStart={handleMouseDown}\n\t\t\t\t>\n\t\t\t\t\t{displayItems.map((item, i) => {\n\t\t\t\t\t\tconst { props: itemProps } = item;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Item\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\titemIndex={(i - extra + size) % size}\n\t\t\t\t\t\t\t\tactive={i - extra === state.current}\n\t\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\t\tgap={gap}\n\t\t\t\t\t\t\t\ttransition={transition}\n\t\t\t\t\t\t\t\titemHeight={itemHeight}\n\t\t\t\t\t\t\t\tvertical={vertical}\n\t\t\t\t\t\t\t\tonItemClick={onItemClick}\n\t\t\t\t\t\t\t\t{...itemProps}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\n\t\t\t\t{arrow && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{(loop || state.current !== 0) && (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName='i-swiper-arrow i-swiper-prev'\n\t\t\t\t\t\t\t\tonClick={swipePrev}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{prev}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(loop || state.current < size - display) && (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName='i-swiper-arrow i-swiper-next'\n\t\t\t\t\t\t\t\tonClick={swipeNext}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{next}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{indicator && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-swiper-indicators\", {\n\t\t\t\t\t\t\"i-swiper-indicators-fixed\": fixedIndicator,\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{indicatorsLoop.map((_, i) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-swiper-indicator\", {\n\t\t\t\t\t\t\t\t\t\"i-indicator-active\":\n\t\t\t\t\t\t\t\t\t\ti ===\n\t\t\t\t\t\t\t\t\t\tMath[loop ? \"floor\" : \"ceil\"](\n\t\t\t\t\t\t\t\t\t\t\t((state.current + size) % size) /\n\t\t\t\t\t\t\t\t\t\t\t\tscroll\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => swipeTo(i * scroll)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderIndicator?.(i)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}) as CompositionSwiper;\n\nSwiper.Item = Item;\n\nexport default Swiper;\n"],"names":["Swiper","props","ref","type","initial","display","scroll","loop","vertical","prev","_jsx","Icon","icon","KeyboardArrowLeftRound","size","next","KeyboardArrowRightRound","duration","interval","autoplay","pauseOnHover","arrow","reverse","draggable","dragOffset","gap","itemHeight","indicator","fixedIndicator","style","className","children","renderIndicator","onBeforeSwipe","onAfterSwipe","onItemClick","listRef","useRef","timerRef","transition","state","useReactive","current","swipable","dragStart","dragging","initialized","items","useMemo","Children","map","node","Item","displayItems","extra","total","listSize","length","list","head","slice","offsetPercent","position","trackStyle","height","indicatorsLoop","Array","from","Math","ceil","clearTimer","clearTimeout","swipeTo","i","reset","lastDisplay","clamp","setTimeout","swipeNext","swipePrev","handleMouseDown","e","stopPropagation","preventDefault","touches","Object","assign","clientY","clientX","useMouseMove","offset","transform","useMouseUp","changedTouches","dragEnd","part","absOffset","abs","p","floor","to","useImperativeHandle","useEffect","_jsxs","classNames","onMouseOver","onMouseLeave","onMouseDown","onTouchStart","item","itemProps","index","itemIndex","active","_Fragment","onClick","_"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.js","sources":["../../../packages/components/tabs/item.tsx"],"sourcesContent":["import { ITabItem } from \"./type\";\n\nconst Item = (props: ITabItem) => {\n\treturn <></>;\n};\n\nexport default Item;\n"],"names":["Item","props","_jsx"],"mappings":"sDAEA,MAAMA,EAAQC,GACNC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useIntersectionObserver as r}from"../../js/hooks.js";import{MoreHorizRound as a}from"@ricons/material";import{useReactive as i,useSize as n}from"ahooks";import s from"classnames";import{pick as o}from"radash";import{useRef as c,useEffect as l,Children as v,useImperativeHandle as d}from"react";import"../button/index.js";import p from"../icon/icon.js";import m from"../popup/popup.js";import f from"../utils/helpericon/helpericon.js";import b from"./item.js";import u from"../button/button.js";const h=b=>{const{ref:h,active:y,tabs:k,type:g="default",prepend:N,append:j,children:w,className:x,vertical:T,toggable:$,navsJustify:C="start",bar:D=!0,hideMore:I,barClass:M,renderMore:S=()=>t(u,{flat:!0,square:!0,size:"small",children:t(p,{icon:t(a,{})})}),onTabChange:A,...L}=b,O=c([]),E=c(null),H=c(null),P=i({active:y,prevActive:void 0,barStyle:{},cachedTabs:[],overflow:!1,more:[],tabs:[]}),{observe:W,unobserve:q}=r(),z=n(H);l((()=>{if(!k)return w?void(P.tabs=v.map(w,((e,t)=>{const{key:r,props:a}=e,{title:i,children:n,content:s,keepDOM:c}=a,l=n?"string"==typeof n?n:o(n,["props","type","$$typeof","ref"]):s;return{key:r||String(t),title:i,content:l,keepDOM:c}}))):void(P.tabs=[]);P.tabs=k.map(((e,t)=>["string","number"].includes(typeof e)?{key:e,title:e}:(void 0===e.key&&(e.key=t),e)))}),[w,k]);const B=e=>{const{key:t}=e,r=P.tabs.findIndex((e=>e.key===t));if(r>-1)return void X(P.tabs[r].key??r);const a=P.tabs.length,i=e.key??a;P.tabs.push({...e,key:i}),X(i)},J=e=>{const t=P.tabs.findIndex((t=>t.key===e));if(t<0)return;if(P.tabs.splice(t,1),P.active!==e)return;const r=P.tabs[t]||P.tabs[t-1];X(P.prevActive??r?.key??"")},X=e=>{if(e===P.active){if(!$)return;return A?.(void 0,e),P.active=void 0,void(P.barStyle={height:0,width:0})}P.prevActive=P.active,A?.(e,P.active),P.active=e};return l((()=>{if(!z||I)return;const{scrollHeight:e,scrollWidth:t}=H.current,{width:r,height:a}=z;P.overflow=e>a||t>r,P.overflow&&O.current.map(((e,t)=>{e&&W(e,((e,r)=>{P.tabs[t]&&(P.tabs[t].intersecting=r,P.more=P.tabs.filter((e=>!e.intersecting)))}))}))}),[z,I,P.tabs.length]),l((()=>{if(!D||"pane"===g||void 0===P.active)return;const e=P.tabs.findIndex((e=>e.key===P.active));setTimeout((()=>{const t=O.current[e];if(!t)return;if(P.tabs[e].keepDOM&&P.active){P.cachedTabs.findIndex((e=>e===P.active))<0&&P.cachedTabs.unshift(P.active)}const{offsetHeight:r,offsetLeft:a,offsetTop:i,offsetWidth:n}=t,s="line"===g;P.barStyle={height:!T&&s?".25em":r,width:T&&s?".25em":n,transform:`translate(${a}px, ${i}px)`}}),16)}),[P.active,D,z]),l((()=>{void 0!==y&&P.active!==y&&X(y)}),[y]),l((()=>{if(!I)return()=>{O.current?.map(q)}}),[P.tabs.length]),l((()=>{if(!H.current||T)return;const e=e=>{e.stopPropagation(),e.preventDefault(),T||H.current?.scrollBy({left:e.deltaY+e.deltaX})};return H.current.addEventListener("wheel",e,{passive:!1}),()=>{H.current&&H.current.removeEventListener("wheel",e)}}),[H.current]),d(h,(()=>({open:X,close:J,add:B,navs:H}))),e("div",{className:s("i-tabs",{flex:T,[`i-tabs-${g}`]:"default"!==g},x),...L,children:[e("div",{className:s("i-tab-navs-container",{"i-tab-navs-vertical":T}),children:[N,e("div",{ref:H,className:s("i-tab-navs",`justify-${C}`),children:[P.tabs.map(((r,a)=>{const{title:i,key:n=a,closable:o}=r;return e("a",{ref:e=>O.current[a]=e,className:s("i-tab-nav",{"i-tab-active":P.active===n}),onClick:()=>X(n),children:[i,o&&t(f,{as:"i",active:!0,className:"i-tab-nav-close",onClick:e=>{e.stopPropagation(),J(n)}})]},n)})),D&&t("span",{ref:E,className:s("i-tab-navs-bar",M),style:P.barStyle})]}),!I&&P.overflow&&P.more.length>0&&t(m,{arrow:!1,position:T?"right":"bottom",align:"end",touchable:!0,hideDelay:500,content:t("div",{className:"i-tabs-morelist pd-4",children:P.more.map(((e,r)=>{const{key:a=r,title:i}=e,n=P.active===a;return t("a",{className:s("i-tab-nav",{"i-tab-active":n}),onClick:()=>X(a),children:i},a)}))}),children:S(P.more)}),j]}),t("div",{className:"i-tab-contents",children:P.tabs.map(((e,r)=>{const{key:a=r,content:i}=e,n=P.active===a;return(n||void 0!==a&&P.cachedTabs.includes(a))&&t("div",{className:s("i-tab-content",{"i-tab-active":n}),children:i},a)}))})]})};h.Item=b;export{h as default};
|
|
2
|
+
//# sourceMappingURL=tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.js","sources":["../../../packages/components/tabs/tabs.tsx"],"sourcesContent":["import { useIntersectionObserver } from \"@p/js/hooks\";\nimport { MoreHorizRound } from \"@ricons/material\";\nimport { useReactive, useSize } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { pick } from \"radash\";\nimport {\n\tCSSProperties,\n\tChildren,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n} from \"react\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport TabItem from \"./item\";\nimport { CompositionTabs, ITabItem, ITabs, TTabKey } from \"./type\";\n\ntype TState = {\n\tactive?: TTabKey;\n\tprevActive?: TTabKey;\n\tbarStyle: CSSProperties;\n\tcachedTabs: TTabKey[];\n\toverflow: boolean;\n\tmore: ITabItem[];\n\ttabs: ITabItem[];\n};\n\nconst Tabs = ((props: ITabs) => {\n\tconst {\n\t\tref,\n\t\tactive,\n\t\ttabs: items,\n\t\ttype = \"default\",\n\t\tprepend,\n\t\tappend,\n\t\tchildren,\n\t\tclassName,\n\t\tvertical,\n\t\ttoggable,\n\t\tnavsJustify = \"start\",\n\t\tbar = true,\n\t\thideMore,\n\t\tbarClass,\n\t\trenderMore = () => (\n\t\t\t<Button flat square size='small'>\n\t\t\t\t<Icon icon={<MoreHorizRound />} />\n\t\t\t</Button>\n\t\t),\n\t\tonTabChange,\n\t\t...rest\n\t} = props;\n\n\tconst navRefs = useRef<HTMLElement[]>([]);\n\tconst barRef = useRef<HTMLSpanElement>(null);\n\tconst navsRef = useRef<HTMLDivElement>(null);\n\tconst state = useReactive<TState>({\n\t\tactive,\n\t\tprevActive: undefined,\n\t\tbarStyle: {},\n\t\tcachedTabs: [],\n\t\toverflow: false,\n\t\tmore: [],\n\t\ttabs: [],\n\t});\n\tconst { observe, unobserve } = useIntersectionObserver();\n\tconst size = useSize(navsRef);\n\n\tuseEffect(() => {\n\t\tif (!items) {\n\t\t\tif (!children) {\n\t\t\t\tstate.tabs = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tstate.tabs = Children.map(children, (node, i) => {\n\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\tkey?: TTabKey;\n\t\t\t\t\tprops?: any;\n\t\t\t\t};\n\t\t\t\tconst { title, children, content, keepDOM } = nodeProps;\n\n\t\t\t\tconst cloned = children\n\t\t\t\t\t? typeof children === \"string\"\n\t\t\t\t\t\t? children\n\t\t\t\t\t\t: pick(children, [\"props\", \"type\", \"$$typeof\", \"ref\"])\n\t\t\t\t\t: content;\n\n\t\t\t\treturn {\n\t\t\t\t\tkey: key || String(i),\n\t\t\t\t\ttitle,\n\t\t\t\t\tcontent: cloned,\n\t\t\t\t\tkeepDOM,\n\t\t\t\t};\n\t\t\t}) as ITabItem[];\n\n\t\t\treturn;\n\t\t}\n\n\t\tstate.tabs = items.map((item, i) => {\n\t\t\tif ([\"string\", \"number\"].includes(typeof item)) {\n\t\t\t\treturn { key: item, title: item };\n\t\t\t}\n\t\t\tif (item.key === undefined) {\n\t\t\t\titem.key = i;\n\t\t\t}\n\t\t\treturn item;\n\t\t});\n\t}, [children, items]);\n\n\tconst add = (tab: ITabItem) => {\n\t\tconst { key } = tab;\n\t\tconst i = state.tabs.findIndex((t) => t.key === key);\n\n\t\tif (i > -1) {\n\t\t\topen(state.tabs[i].key ?? i);\n\t\t\treturn;\n\t\t}\n\n\t\tconst l = state.tabs.length;\n\t\tconst tkey = tab.key ?? l;\n\t\tstate.tabs.push({ ...tab, key: tkey });\n\t\topen(tkey);\n\t};\n\n\tconst close = (key: TTabKey) => {\n\t\tconst i = state.tabs.findIndex((t) => t.key === key);\n\n\t\tif (i < 0) return;\n\n\t\tstate.tabs.splice(i, 1);\n\n\t\tif (state.active !== key) return;\n\n\t\tconst next = state.tabs[i] || state.tabs[i - 1];\n\t\topen(state.prevActive ?? next?.key ?? \"\");\n\t};\n\n\tconst open = (key: TTabKey) => {\n\t\tif (key === state.active) {\n\t\t\tif (!toggable) return;\n\n\t\t\tonTabChange?.(undefined, key);\n\t\t\tstate.active = undefined;\n\n\t\t\tstate.barStyle = {\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\n\t\tstate.prevActive = state.active;\n\t\tonTabChange?.(key, state.active);\n\t\tstate.active = key;\n\t};\n\n\tuseEffect(() => {\n\t\tif (!size || hideMore) return;\n\t\tconst { scrollHeight, scrollWidth } = navsRef.current as HTMLElement;\n\t\tconst { width, height } = size;\n\n\t\tstate.overflow = scrollHeight > height || scrollWidth > width;\n\n\t\tif (!state.overflow) return;\n\n\t\tnavRefs.current.map((nav, i) => {\n\t\t\tif (!nav) return;\n\t\t\tobserve(nav, (tar: HTMLElement, visible: boolean) => {\n\t\t\t\tif (!state.tabs[i]) return;\n\t\t\t\tstate.tabs[i].intersecting = visible;\n\t\t\t\tstate.more = state.tabs.filter((tab) => !tab.intersecting);\n\t\t\t});\n\t\t});\n\t}, [size, hideMore, state.tabs.length]);\n\n\tuseEffect(() => {\n\t\tif (!bar || type === \"pane\" || state.active === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = state.tabs.findIndex((tab) => tab.key === state.active);\n\n\t\tsetTimeout(() => {\n\t\t\tconst nav = navRefs.current[index];\n\n\t\t\tif (!nav) return;\n\n\t\t\tif (state.tabs[index].keepDOM && state.active) {\n\t\t\t\tconst i = state.cachedTabs.findIndex((k) => k === state.active);\n\t\t\t\ti < 0 && state.cachedTabs.unshift(state.active);\n\t\t\t}\n\n\t\t\tconst { offsetHeight, offsetLeft, offsetTop, offsetWidth } = nav;\n\t\t\tconst isLine = type === \"line\";\n\n\t\t\tstate.barStyle = {\n\t\t\t\theight: !vertical && isLine ? \".25em\" : offsetHeight,\n\t\t\t\twidth: vertical && isLine ? \".25em\" : offsetWidth,\n\t\t\t\ttransform: `translate(${offsetLeft}px, ${offsetTop}px)`,\n\t\t\t};\n\t\t}, 16);\n\t}, [state.active, bar, size]);\n\n\tuseEffect(() => {\n\t\tif (active === undefined || state.active === active) return;\n\n\t\topen(active);\n\t}, [active]);\n\n\tuseEffect(() => {\n\t\tif (hideMore) return;\n\t\treturn () => {\n\t\t\tnavRefs.current?.map(unobserve);\n\t\t};\n\t}, [state.tabs.length]);\n\n\tuseEffect(() => {\n\t\tif (!navsRef.current || vertical) return;\n\n\t\tconst handleMouseWheel = (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\n\t\t\tif (vertical) return;\n\n\t\t\tnavsRef.current?.scrollBy({\n\t\t\t\tleft: e.deltaY + e.deltaX,\n\t\t\t});\n\t\t};\n\n\t\tnavsRef.current.addEventListener(\"wheel\", handleMouseWheel, {\n\t\t\tpassive: false,\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (!navsRef.current) return;\n\t\t\tnavsRef.current.removeEventListener(\"wheel\", handleMouseWheel);\n\t\t};\n\t}, [navsRef.current]);\n\n\tuseImperativeHandle(ref, () => ({\n\t\topen,\n\t\tclose,\n\t\tadd,\n\t\tnavs: navsRef,\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tabs\",\n\t\t\t\t{ flex: vertical, [`i-tabs-${type}`]: type !== \"default\" },\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-tab-navs-container\", {\n\t\t\t\t\t\"i-tab-navs-vertical\": vertical,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend}\n\n\t\t\t\t<div\n\t\t\t\t\tref={navsRef}\n\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\"i-tab-navs\",\n\t\t\t\t\t\t`justify-${navsJustify}`\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{state.tabs.map((tab, i) => {\n\t\t\t\t\t\tconst { title, key = i, closable } = tab;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tref={(ref) => (navRefs.current[i] = ref as any)}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": state.active === key,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t\t{closable && (\n\t\t\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\t\t\tas='i'\n\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\tclassName='i-tab-nav-close'\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\tclose(key);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t\t{bar && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tref={barRef}\n\t\t\t\t\t\t\tclassName={classNames(\"i-tab-navs-bar\", barClass)}\n\t\t\t\t\t\t\tstyle={state.barStyle}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{!hideMore && state.overflow && state.more.length > 0 && (\n\t\t\t\t\t<Popup\n\t\t\t\t\t\tarrow={false}\n\t\t\t\t\t\tposition={vertical ? \"right\" : \"bottom\"}\n\t\t\t\t\t\talign='end'\n\t\t\t\t\t\ttouchable\n\t\t\t\t\t\thideDelay={500}\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<div className='i-tabs-morelist pd-4'>\n\t\t\t\t\t\t\t\t{state.more.map((tab, i) => {\n\t\t\t\t\t\t\t\t\tconst { key = i, title } = tab;\n\t\t\t\t\t\t\t\t\tconst isActive = state.active === key;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderMore(state.more)}\n\t\t\t\t\t</Popup>\n\t\t\t\t)}\n\n\t\t\t\t{append}\n\t\t\t</div>\n\n\t\t\t<div className='i-tab-contents'>\n\t\t\t\t{state.tabs.map((tab, i) => {\n\t\t\t\t\tconst { key = i, content } = tab;\n\t\t\t\t\tconst isActive = state.active === key;\n\t\t\t\t\tconst show =\n\t\t\t\t\t\tisActive ||\n\t\t\t\t\t\t(key !== undefined && state.cachedTabs.includes(key));\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\tshow && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-content\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}) as CompositionTabs;\n\nTabs.Item = TabItem;\n\nexport default Tabs;\n"],"names":["Tabs","props","ref","active","tabs","items","type","prepend","append","children","className","vertical","toggable","navsJustify","bar","hideMore","barClass","renderMore","_jsx","Button","flat","square","size","Icon","icon","MoreHorizRound","onTabChange","rest","navRefs","useRef","barRef","navsRef","state","useReactive","prevActive","undefined","barStyle","cachedTabs","overflow","more","observe","unobserve","useIntersectionObserver","useSize","useEffect","Children","map","node","i","key","nodeProps","title","content","keepDOM","cloned","pick","String","item","includes","add","tab","findIndex","t","open","l","length","tkey","push","close","splice","next","height","width","scrollHeight","scrollWidth","current","nav","tar","visible","intersecting","filter","index","setTimeout","k","unshift","offsetHeight","offsetLeft","offsetTop","offsetWidth","isLine","transform","handleMouseWheel","e","stopPropagation","preventDefault","scrollBy","left","deltaY","deltaX","addEventListener","passive","removeEventListener","useImperativeHandle","navs","_jsxs","classNames","flex","closable","onClick","Helpericon","as","style","Popup","arrow","position","align","touchable","hideDelay","isActive","Item","TabItem"],"mappings":"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"}
|