@xihan-ui/vue 1.0.0-alpha.3 → 1.0.0
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/CHANGELOG.md +2057 -0
- package/dist/backgrounds.d.ts.map +1 -1
- package/dist/backgrounds.js +1 -5
- package/dist/backgrounds.js.map +1 -1
- package/dist/behavior.d.ts +38 -0
- package/dist/behavior.d.ts.map +1 -0
- package/dist/behavior.js +74 -0
- package/dist/behavior.js.map +1 -0
- package/dist/components/accordion/accordion.d.ts +1 -1
- package/dist/components/accordion/context.js +2 -2
- package/dist/components/accordion/context.js.map +1 -1
- package/dist/components/affix/context.js +1 -1
- package/dist/components/affix/context.js.map +1 -1
- package/dist/components/alert/context.js +1 -1
- package/dist/components/alert/context.js.map +1 -1
- package/dist/components/anchor/anchor.d.ts +2 -2
- package/dist/components/anchor/context.js +1 -1
- package/dist/components/anchor/context.js.map +1 -1
- package/dist/components/avatar/context.js +1 -1
- package/dist/components/avatar/context.js.map +1 -1
- package/dist/components/avatar-group/context.js +1 -1
- package/dist/components/avatar-group/context.js.map +1 -1
- package/dist/components/back-top/back-top.d.ts +2 -2
- package/dist/components/back-top/context.js +1 -1
- package/dist/components/back-top/context.js.map +1 -1
- package/dist/components/badge/badge.d.ts +142 -50
- package/dist/components/badge/badge.d.ts.map +1 -1
- package/dist/components/badge/badge.js +67 -37
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/badge/context.js +15 -0
- package/dist/components/badge/context.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +1 -1
- package/dist/components/breadcrumb/context.js +1 -1
- package/dist/components/breadcrumb/context.js.map +1 -1
- package/dist/components/button-group/button-group.d.ts +1 -1
- package/dist/components/calendar/context.js +2 -2
- package/dist/components/calendar/context.js.map +1 -1
- package/dist/components/card/card.d.ts +1 -1
- package/dist/components/card/context.js +1 -1
- package/dist/components/card/context.js.map +1 -1
- package/dist/components/carousel/context.js +1 -1
- package/dist/components/carousel/context.js.map +1 -1
- package/dist/components/cascader/cascader.d.ts +4 -4
- package/dist/components/cascader/cascader.d.ts.map +1 -1
- package/dist/components/cascader/cascader.js +14 -4
- package/dist/components/cascader/cascader.js.map +1 -1
- package/dist/components/cascader/context.js +2 -2
- package/dist/components/cascader/context.js.map +1 -1
- package/dist/components/cascader/use-cascader.js +1 -1
- package/dist/components/cascader/use-cascader.js.map +1 -1
- package/dist/components/checkbox-group/context.js +2 -2
- package/dist/components/checkbox-group/context.js.map +1 -1
- package/dist/components/clipboard/context.js +1 -1
- package/dist/components/clipboard/context.js.map +1 -1
- package/dist/components/collapsible/context.js +1 -1
- package/dist/components/collapsible/context.js.map +1 -1
- package/dist/components/color-picker/color-picker.d.ts +12 -3
- package/dist/components/color-picker/color-picker.d.ts.map +1 -1
- package/dist/components/color-picker/color-picker.js +7 -1
- package/dist/components/color-picker/color-picker.js.map +1 -1
- package/dist/components/color-picker/context.js +2 -2
- package/dist/components/color-picker/context.js.map +1 -1
- package/dist/components/color-picker/use-color-picker.js +1 -1
- package/dist/components/color-picker/use-color-picker.js.map +1 -1
- package/dist/components/combobox/combobox.d.ts +3 -3
- package/dist/components/combobox/combobox.d.ts.map +1 -1
- package/dist/components/combobox/combobox.js +10 -4
- package/dist/components/combobox/combobox.js.map +1 -1
- package/dist/components/combobox/context.js +3 -3
- package/dist/components/combobox/context.js.map +1 -1
- package/dist/components/combobox/use-combobox.js +1 -1
- package/dist/components/combobox/use-combobox.js.map +1 -1
- package/dist/components/composer/context.js +1 -1
- package/dist/components/composer/context.js.map +1 -1
- package/dist/components/context-menu/context-menu.d.ts +4 -4
- package/dist/components/context-menu/context-menu.d.ts.map +1 -1
- package/dist/components/context-menu/context-menu.js +3 -1
- package/dist/components/context-menu/context-menu.js.map +1 -1
- package/dist/components/context-menu/context.js +5 -5
- package/dist/components/context-menu/context.js.map +1 -1
- package/dist/components/context-menu/use-context-menu.js +1 -1
- package/dist/components/context-menu/use-context-menu.js.map +1 -1
- package/dist/components/date-field/context.js +1 -1
- package/dist/components/date-field/context.js.map +1 -1
- package/dist/components/date-field/date-field.d.ts +2 -2
- package/dist/components/date-picker/context.js +13 -4
- package/dist/components/date-picker/context.js.map +1 -1
- package/dist/components/date-picker/date-picker.d.ts +80 -44
- package/dist/components/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/date-picker/date-picker.js +68 -26
- package/dist/components/date-picker/date-picker.js.map +1 -1
- package/dist/components/date-picker/use-date-picker.js +1 -1
- package/dist/components/date-picker/use-date-picker.js.map +1 -1
- package/dist/components/descriptions/context.js +1 -1
- package/dist/components/descriptions/context.js.map +1 -1
- package/dist/components/dialog/context.js +1 -1
- package/dist/components/dialog/context.js.map +1 -1
- package/dist/components/dialog/dialog.d.ts +1 -1
- package/dist/components/drawer/context.js +1 -1
- package/dist/components/drawer/context.js.map +1 -1
- package/dist/components/drawer/drawer.d.ts +2 -2
- package/dist/components/dynamic-input/context.js +2 -2
- package/dist/components/dynamic-input/context.js.map +1 -1
- package/dist/components/editable/context.js +1 -1
- package/dist/components/editable/context.js.map +1 -1
- package/dist/components/empty-state/context.js +1 -1
- package/dist/components/empty-state/context.js.map +1 -1
- package/dist/components/field/context.d.ts +9 -0
- package/dist/components/field/context.d.ts.map +1 -0
- package/dist/components/field/context.js +6 -2
- package/dist/components/field/context.js.map +1 -1
- package/dist/components/field/field.d.ts +26 -2
- package/dist/components/field/field.d.ts.map +1 -1
- package/dist/components/field/field.js +15 -4
- package/dist/components/field/field.js.map +1 -1
- package/dist/components/field/use-field-control.d.ts +41 -0
- package/dist/components/field/use-field-control.d.ts.map +1 -0
- package/dist/components/field/use-field-control.js +77 -0
- package/dist/components/field/use-field-control.js.map +1 -0
- package/dist/components/fieldset/context.js +1 -1
- package/dist/components/fieldset/context.js.map +1 -1
- package/dist/components/file-upload/context.js +2 -2
- package/dist/components/file-upload/context.js.map +1 -1
- package/dist/components/flex/flex.d.ts +9 -0
- package/dist/components/flex/flex.d.ts.map +1 -1
- package/dist/components/flex/flex.js +4 -0
- package/dist/components/flex/flex.js.map +1 -1
- package/dist/components/float-button/context.js +1 -1
- package/dist/components/float-button/context.js.map +1 -1
- package/dist/components/float-button/float-button.d.ts +2 -2
- package/dist/components/floating-panel/context.js +1 -1
- package/dist/components/floating-panel/context.js.map +1 -1
- package/dist/components/floating-panel/floating-panel.d.ts +1 -1
- package/dist/components/form/context.js +2 -2
- package/dist/components/form/context.js.map +1 -1
- package/dist/components/grid/context.js +1 -1
- package/dist/components/grid/context.js.map +1 -1
- package/dist/components/heatmap/context.js +3 -3
- package/dist/components/heatmap/context.js.map +1 -1
- package/dist/components/heatmap/heatmap.d.ts +1 -1
- package/dist/components/hotkeys/hotkeys.d.ts +3 -1
- package/dist/components/hotkeys/hotkeys.d.ts.map +1 -1
- package/dist/components/hotkeys/hotkeys.js +7 -25
- package/dist/components/hotkeys/hotkeys.js.map +1 -1
- package/dist/components/hotkeys/use-hotkeys.d.ts +31 -0
- package/dist/components/hotkeys/use-hotkeys.d.ts.map +1 -0
- package/dist/components/hotkeys/use-hotkeys.js +60 -0
- package/dist/components/hotkeys/use-hotkeys.js.map +1 -0
- package/dist/components/hover-card/context.js +1 -1
- package/dist/components/hover-card/context.js.map +1 -1
- package/dist/components/hover-card/hover-card.d.ts +2 -2
- package/dist/components/hover-card/hover-card.d.ts.map +1 -1
- package/dist/components/hover-card/hover-card.js +3 -1
- package/dist/components/hover-card/hover-card.js.map +1 -1
- package/dist/components/hover-card/use-hover-card.js +1 -1
- package/dist/components/hover-card/use-hover-card.js.map +1 -1
- package/dist/components/icon/icon.d.ts +1 -1
- package/dist/components/icon-wrapper/icon-wrapper.d.ts +1 -1
- package/dist/components/image/context.js +1 -1
- package/dist/components/image/context.js.map +1 -1
- package/dist/components/image-cropper/context.js +1 -1
- package/dist/components/image-cropper/context.js.map +1 -1
- package/dist/components/image-cropper/image-cropper.d.ts +1 -1
- package/dist/components/image-viewer/context.js +1 -1
- package/dist/components/image-viewer/context.js.map +1 -1
- package/dist/components/image-viewer/image-viewer.d.ts +2 -2
- package/dist/components/infinite-scroll/context.js +1 -1
- package/dist/components/infinite-scroll/context.js.map +1 -1
- package/dist/components/infinite-scroll/infinite-scroll.d.ts +1 -1
- package/dist/components/json-viewer/json-viewer.d.ts +12 -3
- package/dist/components/json-viewer/json-viewer.d.ts.map +1 -1
- package/dist/components/json-viewer/json-viewer.js +23 -2
- package/dist/components/json-viewer/json-viewer.js.map +1 -1
- package/dist/components/layout/context.js +1 -1
- package/dist/components/layout/context.js.map +1 -1
- package/dist/components/list/context.js +1 -1
- package/dist/components/list/context.js.map +1 -1
- package/dist/components/list/list.d.ts +1 -1
- package/dist/components/listbox/context.js +3 -3
- package/dist/components/listbox/context.js.map +1 -1
- package/dist/components/loading-bar/context.js +1 -1
- package/dist/components/loading-bar/context.js.map +1 -1
- package/dist/components/log/context.js +1 -1
- package/dist/components/log/context.js.map +1 -1
- package/dist/components/marquee/context.js +1 -1
- package/dist/components/marquee/context.js.map +1 -1
- package/dist/components/mention/context.js +2 -2
- package/dist/components/mention/context.js.map +1 -1
- package/dist/components/mention/mention.d.ts +2 -2
- package/dist/components/mention/mention.d.ts.map +1 -1
- package/dist/components/mention/mention.js +10 -4
- package/dist/components/mention/mention.js.map +1 -1
- package/dist/components/mention/use-mention.js +1 -1
- package/dist/components/mention/use-mention.js.map +1 -1
- package/dist/components/menu/context.js +4 -4
- package/dist/components/menu/context.js.map +1 -1
- package/dist/components/menu/menu.d.ts +3 -3
- package/dist/components/menu/menu.d.ts.map +1 -1
- package/dist/components/menu/menu.js +3 -1
- package/dist/components/menu/menu.js.map +1 -1
- package/dist/components/menu/use-menu.js +1 -1
- package/dist/components/menu/use-menu.js.map +1 -1
- package/dist/components/menubar/context.js +6 -6
- package/dist/components/menubar/context.js.map +1 -1
- package/dist/components/menubar/menubar.d.ts +2 -2
- package/dist/components/menubar/menubar.js.map +1 -1
- package/dist/components/navigation-menu/context.js +1 -1
- package/dist/components/navigation-menu/context.js.map +1 -1
- package/dist/components/navigation-menu/navigation-menu.d.ts +1 -1
- package/dist/components/notification/context.d.ts +23 -0
- package/dist/components/notification/context.d.ts.map +1 -0
- package/dist/components/notification/context.js +28 -0
- package/dist/components/notification/context.js.map +1 -0
- package/dist/components/notification/notification.d.ts +249 -0
- package/dist/components/notification/notification.d.ts.map +1 -0
- package/dist/components/notification/notification.js +179 -0
- package/dist/components/notification/notification.js.map +1 -0
- package/dist/components/notification/use-notification.d.ts +14 -0
- package/dist/components/notification/use-notification.d.ts.map +1 -0
- package/dist/components/notification/use-notification.js +42 -0
- package/dist/components/notification/use-notification.js.map +1 -0
- package/dist/components/number-animation/number-animation.d.ts +1 -1
- package/dist/components/number-field/context.js +1 -1
- package/dist/components/number-field/context.js.map +1 -1
- package/dist/components/number-field/number-field.d.ts +3 -3
- package/dist/components/number-field/number-field.d.ts.map +1 -1
- package/dist/components/number-field/number-field.js +7 -1
- package/dist/components/number-field/number-field.js.map +1 -1
- package/dist/components/page-header/context.js +1 -1
- package/dist/components/page-header/context.js.map +1 -1
- package/dist/components/pagination/context.js +1 -1
- package/dist/components/pagination/context.js.map +1 -1
- package/dist/components/pagination/pagination.d.ts +60 -6
- package/dist/components/pagination/pagination.d.ts.map +1 -1
- package/dist/components/pagination/pagination.js +85 -5
- package/dist/components/pagination/pagination.js.map +1 -1
- package/dist/components/pagination/use-pagination.d.ts +12 -2
- package/dist/components/pagination/use-pagination.d.ts.map +1 -1
- package/dist/components/pagination/use-pagination.js +50 -5
- package/dist/components/pagination/use-pagination.js.map +1 -1
- package/dist/components/password-input/context.js +1 -1
- package/dist/components/password-input/context.js.map +1 -1
- package/dist/components/password-input/password-input.d.ts +2 -2
- package/dist/components/password-input/password-input.d.ts.map +1 -1
- package/dist/components/password-input/password-input.js +7 -1
- package/dist/components/password-input/password-input.js.map +1 -1
- package/dist/components/pin-input/context.js +1 -1
- package/dist/components/pin-input/context.js.map +1 -1
- package/dist/components/pin-input/pin-input.d.ts +1 -1
- package/dist/components/popconfirm/context.js +1 -1
- package/dist/components/popconfirm/context.js.map +1 -1
- package/dist/components/popconfirm/popconfirm.d.ts +1 -1
- package/dist/components/popover/context.js +1 -1
- package/dist/components/popover/context.js.map +1 -1
- package/dist/components/popover/popover.d.ts +2 -2
- package/dist/components/popover/popover.d.ts.map +1 -1
- package/dist/components/popover/popover.js +3 -1
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/popover/use-popover.js +1 -1
- package/dist/components/popover/use-popover.js.map +1 -1
- package/dist/components/popselect/context.js +2 -2
- package/dist/components/popselect/context.js.map +1 -1
- package/dist/components/popselect/popselect.d.ts +3 -3
- package/dist/components/popselect/popselect.d.ts.map +1 -1
- package/dist/components/popselect/popselect.js +3 -1
- package/dist/components/popselect/popselect.js.map +1 -1
- package/dist/components/popselect/use-popselect.js +1 -1
- package/dist/components/popselect/use-popselect.js.map +1 -1
- package/dist/components/progress/progress.d.ts +1 -1
- package/dist/components/qr-code/context.js +1 -1
- package/dist/components/qr-code/context.js.map +1 -1
- package/dist/components/radio-group/context.js +2 -2
- package/dist/components/radio-group/context.js.map +1 -1
- package/dist/components/radio-group/radio-group.d.ts +1 -1
- package/dist/components/rating/context.js +1 -1
- package/dist/components/rating/context.js.map +1 -1
- package/dist/components/rating/rating.d.ts +2 -2
- package/dist/components/result/context.js +1 -1
- package/dist/components/result/context.js.map +1 -1
- package/dist/components/scroll-area/context.js +2 -2
- package/dist/components/scroll-area/context.js.map +1 -1
- package/dist/components/scroll-area/scroll-area.d.ts +1 -1
- package/dist/components/scrollbar/context.js +1 -1
- package/dist/components/scrollbar/context.js.map +1 -1
- package/dist/components/scrollbar/scrollbar.d.ts +1 -1
- package/dist/components/segmented/context.js +2 -2
- package/dist/components/segmented/context.js.map +1 -1
- package/dist/components/segmented/segmented.d.ts +1 -1
- package/dist/components/select/context.js +3 -3
- package/dist/components/select/context.js.map +1 -1
- package/dist/components/select/select.d.ts +3 -3
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/select/select.js +7 -3
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/side-nav/context.js +2 -2
- package/dist/components/side-nav/context.js.map +1 -1
- package/dist/components/side-nav/side-nav.d.ts +1 -1
- package/dist/components/signature-pad/context.js +1 -1
- package/dist/components/signature-pad/context.js.map +1 -1
- package/dist/components/skeleton/context.js +1 -1
- package/dist/components/skeleton/context.js.map +1 -1
- package/dist/components/slider/context.js +2 -2
- package/dist/components/slider/context.js.map +1 -1
- package/dist/components/slider/slider.d.ts +1 -1
- package/dist/components/space/context.js +1 -1
- package/dist/components/space/context.js.map +1 -1
- package/dist/components/space/space.d.ts +9 -0
- package/dist/components/space/space.d.ts.map +1 -1
- package/dist/components/space/space.js +4 -0
- package/dist/components/space/space.js.map +1 -1
- package/dist/components/spinner/context.js +1 -1
- package/dist/components/spinner/context.js.map +1 -1
- package/dist/components/spinner/spinner.d.ts +1 -1
- package/dist/components/splitter/context.js +1 -1
- package/dist/components/splitter/context.js.map +1 -1
- package/dist/components/statistic/context.js +1 -1
- package/dist/components/statistic/context.js.map +1 -1
- package/dist/components/statistic/statistic.d.ts +1 -1
- package/dist/components/steps/context.js +2 -2
- package/dist/components/steps/context.js.map +1 -1
- package/dist/components/steps/steps.d.ts +2 -2
- package/dist/components/table/context.js +4 -4
- package/dist/components/table/context.js.map +1 -1
- package/dist/components/table/table.d.ts +62 -3
- package/dist/components/table/table.d.ts.map +1 -1
- package/dist/components/table/table.js +37 -1
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/table/use-table.d.ts +1 -1
- package/dist/components/table/use-table.d.ts.map +1 -1
- package/dist/components/table/use-table.js +3 -2
- package/dist/components/table/use-table.js.map +1 -1
- package/dist/components/tabs/context.js +1 -1
- package/dist/components/tabs/context.js.map +1 -1
- package/dist/components/tabs/tabs.d.ts +1 -1
- package/dist/components/tag/context.js +1 -1
- package/dist/components/tag/context.js.map +1 -1
- package/dist/components/tag/use-tag.js +14 -2
- package/dist/components/tag/use-tag.js.map +1 -1
- package/dist/components/tags-input/context.js +2 -2
- package/dist/components/tags-input/context.js.map +1 -1
- package/dist/components/tags-input/tags-input.d.ts +3 -3
- package/dist/components/tags-input/tags-input.d.ts.map +1 -1
- package/dist/components/tags-input/tags-input.js +7 -1
- package/dist/components/tags-input/tags-input.js.map +1 -1
- package/dist/components/text-field/context.js +1 -1
- package/dist/components/text-field/context.js.map +1 -1
- package/dist/components/text-field/text-field.d.ts +1 -1
- package/dist/components/text-field/text-field.d.ts.map +1 -1
- package/dist/components/text-field/text-field.js +7 -3
- package/dist/components/text-field/text-field.js.map +1 -1
- package/dist/components/thread/context.d.ts +7 -0
- package/dist/components/thread/context.d.ts.map +1 -0
- package/dist/components/thread/context.js +1 -1
- package/dist/components/thread/context.js.map +1 -1
- package/dist/components/time-field/context.js +1 -1
- package/dist/components/time-field/context.js.map +1 -1
- package/dist/components/time-field/time-field.d.ts +2 -2
- package/dist/components/time-picker/context.js +2 -2
- package/dist/components/time-picker/context.js.map +1 -1
- package/dist/components/time-picker/time-picker.d.ts +5 -5
- package/dist/components/time-picker/time-picker.d.ts.map +1 -1
- package/dist/components/time-picker/time-picker.js +10 -1
- package/dist/components/time-picker/time-picker.js.map +1 -1
- package/dist/components/time-picker/use-time-picker.d.ts +1 -0
- package/dist/components/time-picker/use-time-picker.d.ts.map +1 -1
- package/dist/components/time-picker/use-time-picker.js +3 -0
- package/dist/components/time-picker/use-time-picker.js.map +1 -1
- package/dist/components/timeline/context.js +2 -2
- package/dist/components/timeline/context.js.map +1 -1
- package/dist/components/timeline/timeline.d.ts +1 -1
- package/dist/components/timer/context.js +1 -1
- package/dist/components/timer/context.js.map +1 -1
- package/dist/components/toast/context.js +1 -1
- package/dist/components/toast/context.js.map +1 -1
- package/dist/components/toast/toast.d.ts +3 -15
- package/dist/components/toast/toast.d.ts.map +1 -1
- package/dist/components/toast/toast.js +1 -12
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/toast/use-toast.d.ts.map +1 -1
- package/dist/components/toast/use-toast.js +1 -7
- package/dist/components/toast/use-toast.js.map +1 -1
- package/dist/components/toggle-group/context.js +1 -1
- package/dist/components/toggle-group/context.js.map +1 -1
- package/dist/components/toggle-group/toggle-group.d.ts +10 -1
- package/dist/components/toggle-group/toggle-group.d.ts.map +1 -1
- package/dist/components/toggle-group/toggle-group.js +4 -0
- package/dist/components/toggle-group/toggle-group.js.map +1 -1
- package/dist/components/toolbar/context.js +1 -1
- package/dist/components/toolbar/context.js.map +1 -1
- package/dist/components/toolbar/toolbar.d.ts +1 -1
- package/dist/components/tooltip/context.js +1 -1
- package/dist/components/tooltip/context.js.map +1 -1
- package/dist/components/tooltip/tooltip.d.ts +2 -2
- package/dist/components/tour/context.js +1 -1
- package/dist/components/tour/context.js.map +1 -1
- package/dist/components/tour/tour.d.ts +2 -2
- package/dist/components/transfer/context.js +3 -3
- package/dist/components/transfer/context.js.map +1 -1
- package/dist/components/tree/context.js +2 -2
- package/dist/components/tree/context.js.map +1 -1
- package/dist/components/tree/tree.d.ts +20 -0
- package/dist/components/tree/tree.d.ts.map +1 -1
- package/dist/components/tree/tree.js +9 -0
- package/dist/components/tree/tree.js.map +1 -1
- package/dist/components/tree-select/context.js +2 -2
- package/dist/components/tree-select/context.js.map +1 -1
- package/dist/components/tree-select/tree-select.d.ts +3 -3
- package/dist/components/tree-select/tree-select.d.ts.map +1 -1
- package/dist/components/tree-select/tree-select.js +14 -4
- package/dist/components/tree-select/tree-select.js.map +1 -1
- package/dist/components/tree-select/use-tree-select.js +1 -1
- package/dist/components/tree-select/use-tree-select.js.map +1 -1
- package/dist/components/typography/context.js +1 -1
- package/dist/components/typography/context.js.map +1 -1
- package/dist/components/virtualizer/context.js +1 -1
- package/dist/components/virtualizer/context.js.map +1 -1
- package/dist/components/watermark/context.js +1 -1
- package/dist/components/watermark/context.js.map +1 -1
- package/dist/config/config.js +1 -1
- package/dist/config/config.js.map +1 -1
- package/dist/index.d.ts +16 -9
- package/dist/index.js +15 -8
- package/dist/package.js +1 -1
- package/dist/runtime/use-scrollbars.js +66 -0
- package/dist/runtime/use-scrollbars.js.map +1 -0
- package/dist/services/dialog-service.d.ts +33 -8
- package/dist/services/dialog-service.d.ts.map +1 -1
- package/dist/services/dialog-service.js +44 -20
- package/dist/services/dialog-service.js.map +1 -1
- package/dist/services/glyph.js +41 -1
- package/dist/services/glyph.js.map +1 -1
- package/dist/services/loading-bar-service.d.ts +46 -0
- package/dist/services/loading-bar-service.d.ts.map +1 -0
- package/dist/services/loading-bar-service.js +70 -0
- package/dist/services/loading-bar-service.js.map +1 -0
- package/dist/services/mount-host.js +35 -0
- package/dist/services/mount-host.js.map +1 -0
- package/dist/services/notification-service.d.ts +46 -0
- package/dist/services/notification-service.d.ts.map +1 -0
- package/dist/services/notification-service.js +91 -0
- package/dist/services/notification-service.js.map +1 -0
- package/dist/services/service-config.js +16 -0
- package/dist/services/service-config.js.map +1 -0
- package/dist/services/toast-service.d.ts +20 -12
- package/dist/services/toast-service.d.ts.map +1 -1
- package/dist/services/toast-service.js +103 -50
- package/dist/services/toast-service.js.map +1 -1
- package/package.json +18 -14
- package/dist/components/toaster/context.js +0 -19
- package/dist/components/toaster/context.js.map +0 -1
- package/dist/components/toaster/toaster.d.ts +0 -135
- package/dist/components/toaster/toaster.d.ts.map +0 -1
- package/dist/components/toaster/toaster.js +0 -91
- package/dist/components/toaster/toaster.js.map +0 -1
- package/dist/components/toaster/use-toaster.d.ts +0 -15
- package/dist/components/toaster/use-toaster.d.ts.map +0 -1
- package/dist/components/toaster/use-toaster.js +0 -23
- package/dist/components/toaster/use-toaster.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/timer/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { TimerContext } from './use-timer'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<TimerContext> = Symbol('xh-timer')\n\nexport function provideTimer(ctx: TimerContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTimerContext(): TimerContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Timer 部件必须用在 XhTimerRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAkC,OAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/timer/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { TimerContext } from './use-timer'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<TimerContext> = Symbol.for('xh-timer')\n\nexport function provideTimer(ctx: TimerContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTimerContext(): TimerContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Timer 部件必须用在 XhTimerRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAkC,OAAO,IAAI,UAAU;AAE7D,SAAgB,aAAa,KAAyB;CACpD,QAAQ,KAAK,GAAG;AAClB;AAEA,SAAgB,kBAAgC;CAC9C,MAAM,MAAM,OAAO,KAAK,IAAI;CAC5B,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,iCAAiC;CACnD,OAAO;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/toast/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { ToastContext } from './use-toast'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<ToastContext> = Symbol('xh-toast')\n\nexport function provideToast(ctx: ToastContext): void {\n provide(KEY, ctx)\n}\n\nexport function useToastContext(): ToastContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Toast 部件必须用在 XhToastRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAkC,OAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/toast/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { ToastContext } from './use-toast'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<ToastContext> = Symbol.for('xh-toast')\n\nexport function provideToast(ctx: ToastContext): void {\n provide(KEY, ctx)\n}\n\nexport function useToastContext(): ToastContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Toast 部件必须用在 XhToastRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAkC,OAAO,IAAI,UAAU;AAE7D,SAAgB,aAAa,KAAyB;CACpD,QAAQ,KAAK,GAAG;AAClB;AAEA,SAAgB,kBAAgC;CAC9C,MAAM,MAAM,OAAO,KAAK,IAAI;CAC5B,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,iCAAiC;CACnD,OAAO;AACT"}
|
|
@@ -14,10 +14,6 @@ declare const XhToastRoot: import("vue").DefineComponent<import("vue").ExtractPr
|
|
|
14
14
|
type: StringConstructor;
|
|
15
15
|
default: undefined;
|
|
16
16
|
};
|
|
17
|
-
description: {
|
|
18
|
-
type: StringConstructor;
|
|
19
|
-
default: undefined;
|
|
20
|
-
};
|
|
21
17
|
type: {
|
|
22
18
|
type: PropType<ToastType>;
|
|
23
19
|
default: undefined;
|
|
@@ -56,10 +52,6 @@ declare const XhToastRoot: import("vue").DefineComponent<import("vue").ExtractPr
|
|
|
56
52
|
type: StringConstructor;
|
|
57
53
|
default: undefined;
|
|
58
54
|
};
|
|
59
|
-
description: {
|
|
60
|
-
type: StringConstructor;
|
|
61
|
-
default: undefined;
|
|
62
|
-
};
|
|
63
55
|
type: {
|
|
64
56
|
type: PropType<ToastType>;
|
|
65
57
|
default: undefined;
|
|
@@ -90,22 +82,18 @@ declare const XhToastRoot: import("vue").DefineComponent<import("vue").ExtractPr
|
|
|
90
82
|
}>, {
|
|
91
83
|
type: ToastType;
|
|
92
84
|
title: string;
|
|
93
|
-
closable: boolean;
|
|
94
85
|
translations: Partial<ToastTranslations>;
|
|
86
|
+
closable: boolean;
|
|
95
87
|
duration: number;
|
|
96
|
-
id: string;
|
|
97
|
-
description: string;
|
|
98
88
|
removeDelay: number;
|
|
99
89
|
pauseOnPageIdle: boolean;
|
|
90
|
+
id: string;
|
|
100
91
|
}, SlotsType<{
|
|
101
92
|
default?: (props: ToastRootSlotProps) => VNode[];
|
|
102
93
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
103
94
|
declare const XhToastTitle: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
104
95
|
[key: string]: any;
|
|
105
96
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
106
|
-
declare const XhToastDescription: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
107
|
-
[key: string]: any;
|
|
108
|
-
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
109
97
|
declare const XhToastActionTrigger: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
110
98
|
[key: string]: any;
|
|
111
99
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -113,5 +101,5 @@ declare const XhToastCloseTrigger: import("vue").DefineComponent<{}, () => VNode
|
|
|
113
101
|
[key: string]: any;
|
|
114
102
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
115
103
|
//#endregion
|
|
116
|
-
export { ToastRootSlotProps, XhToastActionTrigger, XhToastCloseTrigger,
|
|
104
|
+
export { ToastRootSlotProps, XhToastActionTrigger, XhToastCloseTrigger, XhToastRoot, XhToastTitle };
|
|
117
105
|
//# sourceMappingURL=toast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.d.ts","names":[],"sources":["../../../src/components/toast/toast.ts"],"mappings":";;;;KAQK,aAAa;;KAGN,qBAAqB,KAC/B;cAIW,2BAAW,8BAAA
|
|
1
|
+
{"version":3,"file":"toast.d.ts","names":[],"sources":["../../../src/components/toast/toast.ts"],"mappings":";;;;KAQK,aAAa;;KAGN,qBAAqB,KAC/B;cAIW,2BAAW,8BAAA;;;;;;;;;;IAOI,MAAA,SAAS;;;;;;;;;;;;;;;;;;;;IAKD,MAAA,SAAS,QAAQ;;;;;;EAIrB,kBAAA,UAAA,UAAU;EACjB,SAAA,UAAA,UAAU;;;;;;;;;;;IAVP,MAAA,SAAS;;;;;;;;;;;;;;;;;;;;IAKD,MAAA,SAAS,QAAQ;;;;;;;;;;;;;;;;EAQvC,WAAC,OAAO,uBAAuB;kCAsB3C;cAEW,4BAAY,0BAAA,oBAAA,4BAAA;;8BAWvB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,oCAAoB,0BAAA,oBAAA,4BAAA;;8BAO/B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,mCAAmB,0BAAA,oBAAA,4BAAA;;8BAM9B,qCAAA,iDAAA,aAAA,eAAA,oDAAA"}
|
|
@@ -14,10 +14,6 @@ const XhToastRoot = defineComponent({
|
|
|
14
14
|
type: String,
|
|
15
15
|
default: void 0
|
|
16
16
|
},
|
|
17
|
-
description: {
|
|
18
|
-
type: String,
|
|
19
|
-
default: void 0
|
|
20
|
-
},
|
|
21
17
|
type: {
|
|
22
18
|
type: String,
|
|
23
19
|
default: void 0
|
|
@@ -76,13 +72,6 @@ const XhToastTitle = defineComponent({
|
|
|
76
72
|
return () => h("div", ctx.api.value.getTitleProps(), slots.default ? slots.default() : ctx.api.value.title);
|
|
77
73
|
}
|
|
78
74
|
});
|
|
79
|
-
const XhToastDescription = defineComponent({
|
|
80
|
-
name: "XhToastDescription",
|
|
81
|
-
setup(_, { slots }) {
|
|
82
|
-
const ctx = useToastContext();
|
|
83
|
-
return () => h("div", ctx.api.value.getDescriptionProps(), slots.default ? slots.default() : ctx.api.value.description);
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
75
|
const XhToastActionTrigger = defineComponent({
|
|
87
76
|
name: "XhToastActionTrigger",
|
|
88
77
|
setup(_, { slots }) {
|
|
@@ -98,6 +87,6 @@ const XhToastCloseTrigger = defineComponent({
|
|
|
98
87
|
}
|
|
99
88
|
});
|
|
100
89
|
//#endregion
|
|
101
|
-
export { XhToastActionTrigger, XhToastCloseTrigger,
|
|
90
|
+
export { XhToastActionTrigger, XhToastCloseTrigger, XhToastRoot, XhToastTitle };
|
|
102
91
|
|
|
103
92
|
//# sourceMappingURL=toast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.js","names":[],"sources":["../../../src/components/toast/toast.ts"],"sourcesContent":["import type { ToastApi, ToastSchema, ToastTranslations, ToastType } from '@xihan-ui/headless'\nimport type { PropType, SlotsType, VNode } from 'vue'\nimport type { PayloadOf } from '../../runtime/payload'\nimport { defineComponent, h } from 'vue'\nimport { withXhConfig } from '../../config/config'\nimport { provideToast, useToastContext } from './context'\nimport { useToast } from './use-toast'\n\ntype ToastProps = ToastSchema['props']\n\n/** 默认插槽的载荷:这一条的身份、状态、计时剩余与生命周期方法。 */\nexport type ToastRootSlotProps = Pick<\n ToastApi,\n 'id' | 'status' | 'type' | 'paused' | 'remaining' | 'dismiss' | 'pause' | 'resume'\n>\n\nexport const XhToastRoot = defineComponent({\n name: 'XhToastRoot',\n // 缺省值由 connect 与机器给出,这里一律 default: undefined\n props: {\n // 队列身份,不是 DOM id;不给则回落到实例的 scope id\n id: { type: String, default: undefined },\n title: { type: String, default: undefined },\n
|
|
1
|
+
{"version":3,"file":"toast.js","names":[],"sources":["../../../src/components/toast/toast.ts"],"sourcesContent":["import type { ToastApi, ToastSchema, ToastTranslations, ToastType } from '@xihan-ui/headless'\nimport type { PropType, SlotsType, VNode } from 'vue'\nimport type { PayloadOf } from '../../runtime/payload'\nimport { defineComponent, h } from 'vue'\nimport { withXhConfig } from '../../config/config'\nimport { provideToast, useToastContext } from './context'\nimport { useToast } from './use-toast'\n\ntype ToastProps = ToastSchema['props']\n\n/** 默认插槽的载荷:这一条的身份、状态、计时剩余与生命周期方法。 */\nexport type ToastRootSlotProps = Pick<\n ToastApi,\n 'id' | 'status' | 'type' | 'paused' | 'remaining' | 'dismiss' | 'pause' | 'resume'\n>\n\nexport const XhToastRoot = defineComponent({\n name: 'XhToastRoot',\n // 缺省值由 connect 与机器给出,这里一律 default: undefined\n props: {\n // 队列身份,不是 DOM id;不给则回落到实例的 scope id\n id: { type: String, default: undefined },\n title: { type: String, default: undefined },\n type: { type: String as PropType<ToastType>, default: undefined },\n duration: { type: Number, default: undefined },\n removeDelay: { type: Number, default: undefined },\n closable: { type: Boolean, default: undefined },\n pauseOnPageIdle: { type: Boolean, default: undefined },\n translations: { type: Object as PropType<Partial<ToastTranslations>>, default: undefined },\n },\n // status-change 携带 { id, status },action 携带 { id }\n emits: {\n 'status-change': (_details: PayloadOf<ToastProps, 'onStatusChange'>) => true,\n 'action': (_details: PayloadOf<ToastProps, 'onAction'>) => true,\n },\n slots: Object as SlotsType<{\n default?: (props: ToastRootSlotProps) => VNode[]\n }>,\n setup(props, { slots, emit }) {\n const notifyStatus: ToastProps['onStatusChange'] = (details) => {\n emit('status-change', details)\n }\n const notifyAction: ToastProps['onAction'] = (details) => {\n emit('action', details)\n }\n const ctx = useToast(withXhConfig('toast', props) as ToastProps, notifyStatus, notifyAction)\n provideToast(ctx)\n return () => h('div', ctx.api.value.getRootProps() as Record<string, unknown>, slots.default?.({\n id: ctx.api.value.id,\n status: ctx.api.value.status,\n type: ctx.api.value.type,\n paused: ctx.api.value.paused,\n remaining: ctx.api.value.remaining,\n dismiss: ctx.api.value.dismiss,\n pause: ctx.api.value.pause,\n resume: ctx.api.value.resume,\n }))\n },\n})\n\nexport const XhToastTitle = defineComponent({\n name: 'XhToastTitle',\n setup(_, { slots }) {\n const ctx = useToastContext()\n // 渲染为 div 而非标题标签;无插槽内容时用 title prop 兜底\n return () => h(\n 'div',\n ctx.api.value.getTitleProps() as Record<string, unknown>,\n slots.default ? slots.default() : ctx.api.value.title,\n )\n },\n})\n\nexport const XhToastActionTrigger = defineComponent({\n name: 'XhToastActionTrigger',\n setup(_, { slots }) {\n const ctx = useToastContext()\n // 原生 <button>,激活行为交给平台\n return () => h('button', ctx.api.value.getActionTriggerProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhToastCloseTrigger = defineComponent({\n name: 'XhToastCloseTrigger',\n setup(_, { slots }) {\n const ctx = useToastContext()\n return () => h('button', ctx.api.value.getCloseTriggerProps() as Record<string, unknown>, slots.default?.())\n },\n})\n"],"mappings":";;;;;AAgBA,MAAa,cAAc,gBAAgB;CACzC,MAAM;CAEN,OAAO;EAEL,IAAI;GAAE,MAAM;GAAQ,SAAS,KAAA;EAAU;EACvC,OAAO;GAAE,MAAM;GAAQ,SAAS,KAAA;EAAU;EAC1C,MAAM;GAAE,MAAM;GAA+B,SAAS,KAAA;EAAU;EAChE,UAAU;GAAE,MAAM;GAAQ,SAAS,KAAA;EAAU;EAC7C,aAAa;GAAE,MAAM;GAAQ,SAAS,KAAA;EAAU;EAChD,UAAU;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EAC9C,iBAAiB;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EACrD,cAAc;GAAE,MAAM;GAAgD,SAAS,KAAA;EAAU;CAC3F;CAEA,OAAO;EACL,kBAAkB,aAAsD;EACxE,WAAW,aAAgD;CAC7D;CACA,OAAO;CAGP,MAAM,OAAO,EAAE,OAAO,QAAQ;EAC5B,MAAM,gBAA8C,YAAY;GAC9D,KAAK,iBAAiB,OAAO;EAC/B;EACA,MAAM,gBAAwC,YAAY;GACxD,KAAK,UAAU,OAAO;EACxB;EACA,MAAM,MAAM,SAAS,aAAa,SAAS,KAAK,GAAiB,cAAc,YAAY;EAC3F,aAAa,GAAG;EAChB,aAAa,EAAE,OAAO,IAAI,IAAI,MAAM,aAAa,GAA8B,MAAM,UAAU;GAC7F,IAAI,IAAI,IAAI,MAAM;GAClB,QAAQ,IAAI,IAAI,MAAM;GACtB,MAAM,IAAI,IAAI,MAAM;GACpB,QAAQ,IAAI,IAAI,MAAM;GACtB,WAAW,IAAI,IAAI,MAAM;GACzB,SAAS,IAAI,IAAI,MAAM;GACvB,OAAO,IAAI,IAAI,MAAM;GACrB,QAAQ,IAAI,IAAI,MAAM;EACxB,CAAC,CAAC;CACJ;AACF,CAAC;AAED,MAAa,eAAe,gBAAgB;CAC1C,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,gBAAgB;EAE5B,aAAa,EACX,OACA,IAAI,IAAI,MAAM,cAAc,GAC5B,MAAM,UAAU,MAAM,QAAQ,IAAI,IAAI,IAAI,MAAM,KAClD;CACF;AACF,CAAC;AAED,MAAa,uBAAuB,gBAAgB;CAClD,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,gBAAgB;EAE5B,aAAa,EAAE,UAAU,IAAI,IAAI,MAAM,sBAAsB,GAA8B,MAAM,UAAU,CAAC;CAC9G;AACF,CAAC;AAED,MAAa,sBAAsB,gBAAgB;CACjD,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,gBAAgB;EAC5B,aAAa,EAAE,UAAU,IAAI,IAAI,MAAM,qBAAqB,GAA8B,MAAM,UAAU,CAAC;CAC7G;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-toast.d.ts","names":[],"sources":["../../../src/components/toast/use-toast.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"use-toast.d.ts","names":[],"sources":["../../../src/components/toast/use-toast.ts"],"mappings":";;;UAOiB;EACf,KAAK,YAAY;;iBAGH,SACd,OAAO,sBACP,iBAAiB,wCACjB,WAAW,mCACV"}
|
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
import { vueNormalize } from "../../runtime/normalize-props.js";
|
|
2
2
|
import { useMachine } from "../../runtime/use-machine.js";
|
|
3
|
-
import { useToasterContextOptional } from "../toaster/context.js";
|
|
4
3
|
import { computed } from "vue";
|
|
5
4
|
import { connectToast, toastMachine } from "@xihan-ui/headless";
|
|
6
5
|
//#region src/components/toast/use-toast.ts
|
|
7
6
|
function useToast(props, onStatusChange, onAction) {
|
|
8
|
-
const toaster = useToasterContextOptional();
|
|
9
|
-
const notifyStatus = (details) => {
|
|
10
|
-
onStatusChange?.(details);
|
|
11
|
-
if (details.status === "unmounted") toaster?.dismiss(details.id);
|
|
12
|
-
};
|
|
13
7
|
const service = useMachine(toastMachine, () => ({
|
|
14
8
|
...props,
|
|
15
|
-
onStatusChange
|
|
9
|
+
onStatusChange,
|
|
16
10
|
onAction
|
|
17
11
|
}));
|
|
18
12
|
return { api: computed(() => connectToast(service, vueNormalize)) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-toast.js","names":[],"sources":["../../../src/components/toast/use-toast.ts"],"sourcesContent":["import type { ToastApi, ToastSchema } from '@xihan-ui/headless'\nimport type { ComputedRef } from 'vue'\nimport { connectToast, toastMachine } from '@xihan-ui/headless'\nimport { computed } from 'vue'\nimport { vueNormalize } from '../../runtime/normalize-props'\nimport { useMachine } from '../../runtime/use-machine'\
|
|
1
|
+
{"version":3,"file":"use-toast.js","names":[],"sources":["../../../src/components/toast/use-toast.ts"],"sourcesContent":["import type { ToastApi, ToastSchema } from '@xihan-ui/headless'\nimport type { ComputedRef } from 'vue'\nimport { connectToast, toastMachine } from '@xihan-ui/headless'\nimport { computed } from 'vue'\nimport { vueNormalize } from '../../runtime/normalize-props'\nimport { useMachine } from '../../runtime/use-machine'\n\nexport interface ToastContext {\n api: ComputedRef<ToastApi>\n}\n\nexport function useToast(\n props: ToastSchema['props'],\n onStatusChange?: ToastSchema['props']['onStatusChange'],\n onAction?: ToastSchema['props']['onAction'],\n): ToastContext {\n const service = useMachine(toastMachine, () => ({ ...props, onStatusChange, onAction }))\n const api = computed(() => connectToast(service, vueNormalize))\n return { api }\n}\n"],"mappings":";;;;;AAWA,SAAgB,SACd,OACA,gBACA,UACc;CACd,MAAM,UAAU,WAAW,qBAAqB;EAAE,GAAG;EAAO;EAAgB;CAAS,EAAE;CAEvF,OAAO,EAAE,KADG,eAAe,aAAa,SAAS,YAAY,CAClD,EAAE;AACf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/toggle-group/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { ToggleGroupContext } from './use-toggle-group'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<ToggleGroupContext> = Symbol('xh-toggle-group')\n\nexport function provideToggleGroup(ctx: ToggleGroupContext): void {\n provide(KEY, ctx)\n}\n\nexport function useToggleGroupContext(): ToggleGroupContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] ToggleGroup 部件必须用在 XhToggleGroupRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAwC,OAAO,iBAAiB;
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/toggle-group/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { ToggleGroupContext } from './use-toggle-group'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<ToggleGroupContext> = Symbol.for('xh-toggle-group')\n\nexport function provideToggleGroup(ctx: ToggleGroupContext): void {\n provide(KEY, ctx)\n}\n\nexport function useToggleGroupContext(): ToggleGroupContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] ToggleGroup 部件必须用在 XhToggleGroupRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAwC,OAAO,IAAI,iBAAiB;AAE1E,SAAgB,mBAAmB,KAA+B;CAChE,QAAQ,KAAK,GAAG;AAClB;AAEA,SAAgB,wBAA4C;CAC1D,MAAM,MAAM,OAAO,KAAK,IAAI;CAC5B,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,6CAA6C;CAC/D,OAAO;AACT"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PayloadOf } from "../../runtime/payload.js";
|
|
2
2
|
import { PropType, VNode } from "vue";
|
|
3
3
|
import { ToggleGroupNode, ToggleGroupSchema, ToggleGroupValue } from "@xihan-ui/headless";
|
|
4
|
-
import { Direction, Orientation } from "@xihan-ui/kernel";
|
|
4
|
+
import { Direction, Orientation, Size } from "@xihan-ui/kernel";
|
|
5
5
|
//#region src/components/toggle-group/toggle-group.d.ts
|
|
6
6
|
type ToggleGroupProps = ToggleGroupSchema['props'];
|
|
7
7
|
declare const XhToggleGroupRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
@@ -29,6 +29,10 @@ declare const XhToggleGroupRoot: import("vue").DefineComponent<import("vue").Ext
|
|
|
29
29
|
type: BooleanConstructor;
|
|
30
30
|
default: undefined;
|
|
31
31
|
};
|
|
32
|
+
size: {
|
|
33
|
+
type: PropType<Size>;
|
|
34
|
+
default: undefined;
|
|
35
|
+
};
|
|
32
36
|
orientation: {
|
|
33
37
|
type: PropType<Orientation>;
|
|
34
38
|
default: undefined;
|
|
@@ -75,6 +79,10 @@ declare const XhToggleGroupRoot: import("vue").DefineComponent<import("vue").Ext
|
|
|
75
79
|
type: BooleanConstructor;
|
|
76
80
|
default: undefined;
|
|
77
81
|
};
|
|
82
|
+
size: {
|
|
83
|
+
type: PropType<Size>;
|
|
84
|
+
default: undefined;
|
|
85
|
+
};
|
|
78
86
|
orientation: {
|
|
79
87
|
type: PropType<Orientation>;
|
|
80
88
|
default: undefined;
|
|
@@ -101,6 +109,7 @@ declare const XhToggleGroupRoot: import("vue").DefineComponent<import("vue").Ext
|
|
|
101
109
|
defaultValue: ToggleGroupValue;
|
|
102
110
|
orientation: Orientation;
|
|
103
111
|
dir: Direction;
|
|
112
|
+
size: Size;
|
|
104
113
|
disabled: boolean;
|
|
105
114
|
loop: boolean;
|
|
106
115
|
disallowEmpty: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group.d.ts","names":[],"sources":["../../../src/components/toggle-group/toggle-group.ts"],"mappings":";;;;;KAQK,mBAAmB;cAEX,iCAAiB,8BAAA;;IAIG,MAAA,SAAS;;;;IACJ,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"toggle-group.d.ts","names":[],"sources":["../../../src/components/toggle-group/toggle-group.ts"],"mappings":";;;;;KAQK,mBAAmB;cAEX,iCAAiB,8BAAA;;IAIG,MAAA,SAAS;;;;IACJ,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;;;;;;;;;;;;;IAI1B,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;IACjB,MAAA,SAAS;;;;;;;;;;;;;;EAML,iBAAA,UAAA,UAAU;EACZ,iBAAA,QAAA,UAAU;;;IAfN,MAAA,SAAS;;;;IACJ,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;;;;;;;;;;;;;IAI1B,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;IACjB,MAAA,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;qCA0BlC;cAEW,iCAAiB,8BAAA;;;;;;;;;;;;;;;;;;;;;;qCAmC5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group.js","names":[],"sources":["../../../src/components/toggle-group/toggle-group.ts"],"sourcesContent":["import type { ToggleGroupNode, ToggleGroupNodeMeta, ToggleGroupSchema, ToggleGroupValue } from '@xihan-ui/headless'\nimport type { Direction, Orientation } from '@xihan-ui/kernel'\nimport type { PropType, VNode } from 'vue'\nimport type { PayloadOf } from '../../runtime/payload'\nimport { defineComponent, h, onBeforeUnmount, ref, watch } from 'vue'\nimport { provideToggleGroup, useToggleGroupContext } from './context'\nimport { useToggleGroup } from './use-toggle-group'\n\ntype ToggleGroupProps = ToggleGroupSchema['props']\n\nexport const XhToggleGroupRoot = defineComponent({\n name: 'XhToggleGroupRoot',\n // 全部 default: undefined,缺省值由 connect 决定\n props: {\n collection: { type: Array as PropType<ToggleGroupNode[]>, default: undefined },\n value: { type: [String, Array] as PropType<ToggleGroupValue>, default: undefined },\n defaultValue: { type: [String, Array] as PropType<ToggleGroupValue>, default: undefined },\n multiple: { type: Boolean, default: undefined },\n disabled: { type: Boolean, default: undefined },\n disallowEmpty: { type: Boolean, default: undefined },\n orientation: { type: String as PropType<Orientation>, default: undefined },\n dir: { type: String as PropType<Direction>, default: undefined },\n loop: { type: Boolean, default: undefined },\n rovingFocus: { type: Boolean, default: undefined },\n },\n // value-change 携带 { value },update:value 携带裸值;裸值形态跟随 multiple,单选为字符串、多选为数组\n emits: {\n 'value-change': (_details: PayloadOf<ToggleGroupProps, 'onValueChange'>) => true,\n 'update:value': (_value: PayloadOf<ToggleGroupProps, 'onValueChange'>['value']) => true,\n },\n setup(props, { slots, emit }) {\n const notify: ToggleGroupProps['onValueChange'] = (details) => {\n emit('value-change', details)\n emit('update:value', details.value)\n }\n const ctx = useToggleGroup(props as ToggleGroupProps, notify)\n provideToggleGroup(ctx)\n return () => h(\n 'div',\n ctx.api.value.getRootProps() as Record<string, unknown>,\n slots.default\n ? slots.default()\n : props.collection\n ? renderDefaultTree(ctx.api.value.collection, slots.item)\n : [],\n )\n },\n})\n\nexport const XhToggleGroupItem = defineComponent({\n name: 'XhToggleGroupItem',\n props: {\n value: { type: String, required: true },\n // 缺省交给 connect 回 collection 里查,写死 false 会盖掉数据里的禁用\n disabled: { type: Boolean, default: undefined },\n },\n setup(props, { slots }) {\n const ctx = useToggleGroupContext()\n // 本条目持有焦点时,value 变更重报焦点条目,卸载时上报整组失焦\n const itemEl = ref<HTMLElement | null>(null)\n watch(() => props.value, (next, prev) => {\n if (next === prev)\n return\n const { service } = ctx\n if (service.getStatus() !== 'Started')\n return\n if (itemEl.value && service.scope.getActiveElement() === itemEl.value)\n service.send({ type: 'ITEM.FOCUS', value: next })\n })\n onBeforeUnmount(() => {\n const { service } = ctx\n if (service.getStatus() !== 'Started')\n return\n // 按「本节点当下正持有焦点」判定,不按 value 比对\n if (itemEl.value && service.scope.getActiveElement() === itemEl.value)\n service.send({ type: 'GROUP.BLUR' })\n })\n // 用原生 button,激活交给平台\n return () => h(\n 'button',\n { ...ctx.api.value.getItemProps({ value: props.value, disabled: props.disabled }) as Record<string, unknown>, ref: itemEl },\n slots.default?.(),\n )\n },\n})\n\n/**\n * 没写默认插槽时按 collection 铺开的整套结构,作者只交数据。\n * 与手写部件产出的 DOM 完全一致,要改结构就写默认插槽,行为不变。\n * 条目底下没有文本部件,文字直接落在条目里。\n */\nfunction renderDefaultTree(\n collection: readonly ToggleGroupNodeMeta[],\n itemSlot?: (node: ToggleGroupNodeMeta) => VNode[],\n): VNode[] {\n return collection.map(node => h(\n XhToggleGroupItem,\n { key: node.value, value: node.value },\n () => itemSlot?.(node) ?? node.label,\n ))\n}\n"],"mappings":";;;;AAUA,MAAa,oBAAoB,gBAAgB;CAC/C,MAAM;CAEN,OAAO;EACL,YAAY;GAAE,MAAM;GAAsC,SAAS,KAAA;EAAU;EAC7E,OAAO;GAAE,MAAM,CAAC,QAAQ,KAAK;GAAiC,SAAS,KAAA;EAAU;EACjF,cAAc;GAAE,MAAM,CAAC,QAAQ,KAAK;GAAiC,SAAS,KAAA;EAAU;EACxF,UAAU;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EAC9C,UAAU;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EAC9C,eAAe;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EACnD,aAAa;GAAE,MAAM;GAAiC,SAAS,KAAA;EAAU;EACzE,KAAK;GAAE,MAAM;GAA+B,SAAS,KAAA;EAAU;EAC/D,MAAM;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EAC1C,aAAa;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;CACnD;CAEA,OAAO;EACL,iBAAiB,aAA2D;EAC5E,iBAAiB,WAAkE;CACrF;CACA,MAAM,OAAO,EAAE,OAAO,QAAQ;EAC5B,MAAM,UAA6C,YAAY;GAC7D,KAAK,gBAAgB,OAAO;GAC5B,KAAK,gBAAgB,QAAQ,KAAK;EACpC;EACA,MAAM,MAAM,eAAe,OAA2B,MAAM;EAC5D,mBAAmB,GAAG;EACtB,aAAa,EACX,OACA,IAAI,IAAI,MAAM,aAAa,GAC3B,MAAM,UACF,MAAM,QAAQ,IACd,MAAM,aACJ,kBAAkB,IAAI,IAAI,MAAM,YAAY,MAAM,IAAI,IACtD,CAAC,CACT;CACF;AACF,CAAC;AAED,MAAa,oBAAoB,gBAAgB;CAC/C,MAAM;CACN,OAAO;EACL,OAAO;GAAE,MAAM;GAAQ,UAAU;EAAK;EAEtC,UAAU;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;CAChD;CACA,MAAM,OAAO,EAAE,SAAS;EACtB,MAAM,MAAM,sBAAsB;EAElC,MAAM,SAAS,IAAwB,IAAI;EAC3C,YAAY,MAAM,QAAQ,MAAM,SAAS;GACvC,IAAI,SAAS,MACX;GACF,MAAM,EAAE,YAAY;GACpB,IAAI,QAAQ,UAAU,MAAM,WAC1B;GACF,IAAI,OAAO,SAAS,QAAQ,MAAM,iBAAiB,MAAM,OAAO,OAC9D,QAAQ,KAAK;IAAE,MAAM;IAAc,OAAO;GAAK,CAAC;EACpD,CAAC;EACD,sBAAsB;GACpB,MAAM,EAAE,YAAY;GACpB,IAAI,QAAQ,UAAU,MAAM,WAC1B;GAEF,IAAI,OAAO,SAAS,QAAQ,MAAM,iBAAiB,MAAM,OAAO,OAC9D,QAAQ,KAAK,EAAE,MAAM,aAAa,CAAC;EACvC,CAAC;EAED,aAAa,EACX,UACA;GAAE,GAAG,IAAI,IAAI,MAAM,aAAa;IAAE,OAAO,MAAM;IAAO,UAAU,MAAM;GAAS,CAAC;GAA8B,KAAK;EAAO,GAC1H,MAAM,UAAU,CAClB;CACF;AACF,CAAC;;;;;;AAOD,SAAS,kBACP,YACA,UACS;CACT,OAAO,WAAW,KAAI,SAAQ,EAC5B,mBACA;EAAE,KAAK,KAAK;EAAO,OAAO,KAAK;CAAM,SAC/B,WAAW,IAAI,KAAK,KAAK,KACjC,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"toggle-group.js","names":[],"sources":["../../../src/components/toggle-group/toggle-group.ts"],"sourcesContent":["import type { ToggleGroupNode, ToggleGroupNodeMeta, ToggleGroupSchema, ToggleGroupValue } from '@xihan-ui/headless'\nimport type { Direction, Orientation, Size } from '@xihan-ui/kernel'\nimport type { PropType, VNode } from 'vue'\nimport type { PayloadOf } from '../../runtime/payload'\nimport { defineComponent, h, onBeforeUnmount, ref, watch } from 'vue'\nimport { provideToggleGroup, useToggleGroupContext } from './context'\nimport { useToggleGroup } from './use-toggle-group'\n\ntype ToggleGroupProps = ToggleGroupSchema['props']\n\nexport const XhToggleGroupRoot = defineComponent({\n name: 'XhToggleGroupRoot',\n // 全部 default: undefined,缺省值由 connect 决定\n props: {\n collection: { type: Array as PropType<ToggleGroupNode[]>, default: undefined },\n value: { type: [String, Array] as PropType<ToggleGroupValue>, default: undefined },\n defaultValue: { type: [String, Array] as PropType<ToggleGroupValue>, default: undefined },\n multiple: { type: Boolean, default: undefined },\n disabled: { type: Boolean, default: undefined },\n disallowEmpty: { type: Boolean, default: undefined },\n size: { type: String as PropType<Size>, default: undefined },\n orientation: { type: String as PropType<Orientation>, default: undefined },\n dir: { type: String as PropType<Direction>, default: undefined },\n loop: { type: Boolean, default: undefined },\n rovingFocus: { type: Boolean, default: undefined },\n },\n // value-change 携带 { value },update:value 携带裸值;裸值形态跟随 multiple,单选为字符串、多选为数组\n emits: {\n 'value-change': (_details: PayloadOf<ToggleGroupProps, 'onValueChange'>) => true,\n 'update:value': (_value: PayloadOf<ToggleGroupProps, 'onValueChange'>['value']) => true,\n },\n setup(props, { slots, emit }) {\n const notify: ToggleGroupProps['onValueChange'] = (details) => {\n emit('value-change', details)\n emit('update:value', details.value)\n }\n const ctx = useToggleGroup(props as ToggleGroupProps, notify)\n provideToggleGroup(ctx)\n return () => h(\n 'div',\n ctx.api.value.getRootProps() as Record<string, unknown>,\n slots.default\n ? slots.default()\n : props.collection\n ? renderDefaultTree(ctx.api.value.collection, slots.item)\n : [],\n )\n },\n})\n\nexport const XhToggleGroupItem = defineComponent({\n name: 'XhToggleGroupItem',\n props: {\n value: { type: String, required: true },\n // 缺省交给 connect 回 collection 里查,写死 false 会盖掉数据里的禁用\n disabled: { type: Boolean, default: undefined },\n },\n setup(props, { slots }) {\n const ctx = useToggleGroupContext()\n // 本条目持有焦点时,value 变更重报焦点条目,卸载时上报整组失焦\n const itemEl = ref<HTMLElement | null>(null)\n watch(() => props.value, (next, prev) => {\n if (next === prev)\n return\n const { service } = ctx\n if (service.getStatus() !== 'Started')\n return\n if (itemEl.value && service.scope.getActiveElement() === itemEl.value)\n service.send({ type: 'ITEM.FOCUS', value: next })\n })\n onBeforeUnmount(() => {\n const { service } = ctx\n if (service.getStatus() !== 'Started')\n return\n // 按「本节点当下正持有焦点」判定,不按 value 比对\n if (itemEl.value && service.scope.getActiveElement() === itemEl.value)\n service.send({ type: 'GROUP.BLUR' })\n })\n // 用原生 button,激活交给平台\n return () => h(\n 'button',\n { ...ctx.api.value.getItemProps({ value: props.value, disabled: props.disabled }) as Record<string, unknown>, ref: itemEl },\n slots.default?.(),\n )\n },\n})\n\n/**\n * 没写默认插槽时按 collection 铺开的整套结构,作者只交数据。\n * 与手写部件产出的 DOM 完全一致,要改结构就写默认插槽,行为不变。\n * 条目底下没有文本部件,文字直接落在条目里。\n */\nfunction renderDefaultTree(\n collection: readonly ToggleGroupNodeMeta[],\n itemSlot?: (node: ToggleGroupNodeMeta) => VNode[],\n): VNode[] {\n return collection.map(node => h(\n XhToggleGroupItem,\n { key: node.value, value: node.value },\n () => itemSlot?.(node) ?? node.label,\n ))\n}\n"],"mappings":";;;;AAUA,MAAa,oBAAoB,gBAAgB;CAC/C,MAAM;CAEN,OAAO;EACL,YAAY;GAAE,MAAM;GAAsC,SAAS,KAAA;EAAU;EAC7E,OAAO;GAAE,MAAM,CAAC,QAAQ,KAAK;GAAiC,SAAS,KAAA;EAAU;EACjF,cAAc;GAAE,MAAM,CAAC,QAAQ,KAAK;GAAiC,SAAS,KAAA;EAAU;EACxF,UAAU;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EAC9C,UAAU;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EAC9C,eAAe;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EACnD,MAAM;GAAE,MAAM;GAA0B,SAAS,KAAA;EAAU;EAC3D,aAAa;GAAE,MAAM;GAAiC,SAAS,KAAA;EAAU;EACzE,KAAK;GAAE,MAAM;GAA+B,SAAS,KAAA;EAAU;EAC/D,MAAM;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EAC1C,aAAa;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;CACnD;CAEA,OAAO;EACL,iBAAiB,aAA2D;EAC5E,iBAAiB,WAAkE;CACrF;CACA,MAAM,OAAO,EAAE,OAAO,QAAQ;EAC5B,MAAM,UAA6C,YAAY;GAC7D,KAAK,gBAAgB,OAAO;GAC5B,KAAK,gBAAgB,QAAQ,KAAK;EACpC;EACA,MAAM,MAAM,eAAe,OAA2B,MAAM;EAC5D,mBAAmB,GAAG;EACtB,aAAa,EACX,OACA,IAAI,IAAI,MAAM,aAAa,GAC3B,MAAM,UACF,MAAM,QAAQ,IACd,MAAM,aACJ,kBAAkB,IAAI,IAAI,MAAM,YAAY,MAAM,IAAI,IACtD,CAAC,CACT;CACF;AACF,CAAC;AAED,MAAa,oBAAoB,gBAAgB;CAC/C,MAAM;CACN,OAAO;EACL,OAAO;GAAE,MAAM;GAAQ,UAAU;EAAK;EAEtC,UAAU;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;CAChD;CACA,MAAM,OAAO,EAAE,SAAS;EACtB,MAAM,MAAM,sBAAsB;EAElC,MAAM,SAAS,IAAwB,IAAI;EAC3C,YAAY,MAAM,QAAQ,MAAM,SAAS;GACvC,IAAI,SAAS,MACX;GACF,MAAM,EAAE,YAAY;GACpB,IAAI,QAAQ,UAAU,MAAM,WAC1B;GACF,IAAI,OAAO,SAAS,QAAQ,MAAM,iBAAiB,MAAM,OAAO,OAC9D,QAAQ,KAAK;IAAE,MAAM;IAAc,OAAO;GAAK,CAAC;EACpD,CAAC;EACD,sBAAsB;GACpB,MAAM,EAAE,YAAY;GACpB,IAAI,QAAQ,UAAU,MAAM,WAC1B;GAEF,IAAI,OAAO,SAAS,QAAQ,MAAM,iBAAiB,MAAM,OAAO,OAC9D,QAAQ,KAAK,EAAE,MAAM,aAAa,CAAC;EACvC,CAAC;EAED,aAAa,EACX,UACA;GAAE,GAAG,IAAI,IAAI,MAAM,aAAa;IAAE,OAAO,MAAM;IAAO,UAAU,MAAM;GAAS,CAAC;GAA8B,KAAK;EAAO,GAC1H,MAAM,UAAU,CAClB;CACF;AACF,CAAC;;;;;;AAOD,SAAS,kBACP,YACA,UACS;CACT,OAAO,WAAW,KAAI,SAAQ,EAC5B,mBACA;EAAE,KAAK,KAAK;EAAO,OAAO,KAAK;CAAM,SAC/B,WAAW,IAAI,KAAK,KAAK,KACjC,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/toolbar/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { ToolbarContext } from './use-toolbar'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<ToolbarContext> = Symbol('xh-toolbar')\n\nexport function provideToolbar(ctx: ToolbarContext): void {\n provide(KEY, ctx)\n}\n\nexport function useToolbarContext(): ToolbarContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Toolbar 部件必须用在 XhToolbarRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAoC,OAAO,YAAY;
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/toolbar/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { ToolbarContext } from './use-toolbar'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<ToolbarContext> = Symbol.for('xh-toolbar')\n\nexport function provideToolbar(ctx: ToolbarContext): void {\n provide(KEY, ctx)\n}\n\nexport function useToolbarContext(): ToolbarContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Toolbar 部件必须用在 XhToolbarRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAoC,OAAO,IAAI,YAAY;AAEjE,SAAgB,eAAe,KAA2B;CACxD,QAAQ,KAAK,GAAG;AAClB;AAEA,SAAgB,oBAAoC;CAClD,MAAM,MAAM,OAAO,KAAK,IAAI;CAC5B,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,qCAAqC;CACvD,OAAO;AACT"}
|
|
@@ -49,9 +49,9 @@ declare const XhToolbarRoot: import("vue").DefineComponent<import("vue").Extract
|
|
|
49
49
|
default: undefined;
|
|
50
50
|
};
|
|
51
51
|
}>> & Readonly<{}>, {
|
|
52
|
-
size: Size;
|
|
53
52
|
orientation: Orientation;
|
|
54
53
|
dir: Direction;
|
|
54
|
+
size: Size;
|
|
55
55
|
disabled: boolean;
|
|
56
56
|
loop: boolean;
|
|
57
57
|
}, SlotsType<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/tooltip/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { TooltipContext } from './use-tooltip'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<TooltipContext> = Symbol('xh-tooltip')\n\nexport function provideTooltip(ctx: TooltipContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTooltipContext(): TooltipContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Tooltip 部件必须用在 XhTooltipRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAoC,OAAO,YAAY;
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/tooltip/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { TooltipContext } from './use-tooltip'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<TooltipContext> = Symbol.for('xh-tooltip')\n\nexport function provideTooltip(ctx: TooltipContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTooltipContext(): TooltipContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Tooltip 部件必须用在 XhTooltipRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAoC,OAAO,IAAI,YAAY;AAEjE,SAAgB,eAAe,KAA2B;CACxD,QAAQ,KAAK,GAAG;AAClB;AAEA,SAAgB,oBAAoC;CAClD,MAAM,MAAM,OAAO,KAAK,IAAI;CAC5B,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,qCAAqC;CACvD,OAAO;AACT"}
|
|
@@ -77,12 +77,12 @@ declare const XhTooltipRoot: import("vue").DefineComponent<import("vue").Extract
|
|
|
77
77
|
"onOpen-change"?: ((_details: import("@xihan-ui/headless").TooltipOpenChangeDetails) => any) | undefined;
|
|
78
78
|
"onUpdate:open"?: ((_open: boolean) => any) | undefined;
|
|
79
79
|
}>, {
|
|
80
|
-
size: Size;
|
|
81
80
|
tone: Tone;
|
|
81
|
+
size: Size;
|
|
82
82
|
disabled: boolean;
|
|
83
|
+
offset: number;
|
|
83
84
|
open: boolean;
|
|
84
85
|
defaultOpen: boolean;
|
|
85
|
-
offset: number;
|
|
86
86
|
placement: Placement;
|
|
87
87
|
openDelay: number;
|
|
88
88
|
closeDelay: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/tour/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { TourContext } from './use-tour'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<TourContext> = Symbol('xh-tour')\n\nexport function provideTour(ctx: TourContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTourContext(): TourContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Tour 部件必须用在 XhTourRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAiC,OAAO,SAAS;
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/tour/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { TourContext } from './use-tour'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<TourContext> = Symbol.for('xh-tour')\n\nexport function provideTour(ctx: TourContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTourContext(): TourContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Tour 部件必须用在 XhTourRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAiC,OAAO,IAAI,SAAS;AAE3D,SAAgB,YAAY,KAAwB;CAClD,QAAQ,KAAK,GAAG;AAClB;AAEA,SAAgB,iBAA8B;CAC5C,MAAM,MAAM,OAAO,KAAK,IAAI;CAC5B,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,+BAA+B;CACjD,OAAO;AACT"}
|
|
@@ -129,10 +129,10 @@ declare const XhTourRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
129
129
|
"onUpdate:step"?: ((_step: number) => any) | undefined;
|
|
130
130
|
onSkip?: ((_details: import("@xihan-ui/headless").TourSkipDetails) => any) | undefined;
|
|
131
131
|
}>, {
|
|
132
|
+
offset: number;
|
|
133
|
+
translations: Partial<import("@xihan-ui/headless").TourTranslations> | undefined;
|
|
132
134
|
open: boolean;
|
|
133
135
|
defaultOpen: boolean;
|
|
134
|
-
translations: Partial<import("@xihan-ui/headless").TourTranslations> | undefined;
|
|
135
|
-
offset: number;
|
|
136
136
|
steps: TourStep[];
|
|
137
137
|
placement: Placement;
|
|
138
138
|
closeOnEscape: boolean;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { inject, provide } from "vue";
|
|
2
2
|
//#region src/components/transfer/context.ts
|
|
3
|
-
const KEY = Symbol("xh-transfer");
|
|
4
|
-
const PANEL_KEY = Symbol("xh-transfer-panel");
|
|
5
|
-
const ITEM_KEY = Symbol("xh-transfer-item");
|
|
3
|
+
const KEY = Symbol.for("xh-transfer");
|
|
4
|
+
const PANEL_KEY = Symbol.for("xh-transfer-panel");
|
|
5
|
+
const ITEM_KEY = Symbol.for("xh-transfer-item");
|
|
6
6
|
function provideTransfer(ctx) {
|
|
7
7
|
provide(KEY, ctx);
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/transfer/context.ts"],"sourcesContent":["import type { TransferItemProps, TransferPanelProps } from '@xihan-ui/headless'\nimport type { ComputedRef, InjectionKey } from 'vue'\nimport type { TransferContext } from './use-transfer'\nimport { inject, provide } from 'vue'\n\n/** 面板自报的身份,供面板内两侧共用的角色节点区分自己归哪一侧。 */\nexport interface TransferPanelContext {\n panel: ComputedRef<TransferPanelProps>\n}\n\n/** 条目自报的值与所属面板,供 item-text / item-checkbox 复用同一份声明。 */\nexport interface TransferItemContext {\n item: ComputedRef<TransferItemProps>\n}\n\nconst KEY: InjectionKey<TransferContext> = Symbol('xh-transfer')\nconst PANEL_KEY: InjectionKey<TransferPanelContext> = Symbol('xh-transfer-panel')\nconst ITEM_KEY: InjectionKey<TransferItemContext> = Symbol('xh-transfer-item')\n\nexport function provideTransfer(ctx: TransferContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTransferContext(): TransferContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Transfer 部件必须用在 XhTransferRoot 内')\n return ctx\n}\n\nexport function provideTransferPanel(ctx: TransferPanelContext): void {\n provide(PANEL_KEY, ctx)\n}\n\nexport function useTransferPanelContext(): TransferPanelContext {\n const ctx = inject(PANEL_KEY, null)\n if (!ctx)\n throw new Error('[xh] Transfer 面板子部件必须用在 XhTransferSourcePanel / XhTransferTargetPanel 内')\n return ctx\n}\n\nexport function provideTransferItem(ctx: TransferItemContext): void {\n provide(ITEM_KEY, ctx)\n}\n\nexport function useTransferItemContext(): TransferItemContext {\n const ctx = inject(ITEM_KEY, null)\n if (!ctx)\n throw new Error('[xh] Transfer 条目子部件必须用在 XhTransferItem 内')\n return ctx\n}\n"],"mappings":";;AAeA,MAAM,MAAqC,OAAO,aAAa;
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/transfer/context.ts"],"sourcesContent":["import type { TransferItemProps, TransferPanelProps } from '@xihan-ui/headless'\nimport type { ComputedRef, InjectionKey } from 'vue'\nimport type { TransferContext } from './use-transfer'\nimport { inject, provide } from 'vue'\n\n/** 面板自报的身份,供面板内两侧共用的角色节点区分自己归哪一侧。 */\nexport interface TransferPanelContext {\n panel: ComputedRef<TransferPanelProps>\n}\n\n/** 条目自报的值与所属面板,供 item-text / item-checkbox 复用同一份声明。 */\nexport interface TransferItemContext {\n item: ComputedRef<TransferItemProps>\n}\n\nconst KEY: InjectionKey<TransferContext> = Symbol.for('xh-transfer')\nconst PANEL_KEY: InjectionKey<TransferPanelContext> = Symbol.for('xh-transfer-panel')\nconst ITEM_KEY: InjectionKey<TransferItemContext> = Symbol.for('xh-transfer-item')\n\nexport function provideTransfer(ctx: TransferContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTransferContext(): TransferContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Transfer 部件必须用在 XhTransferRoot 内')\n return ctx\n}\n\nexport function provideTransferPanel(ctx: TransferPanelContext): void {\n provide(PANEL_KEY, ctx)\n}\n\nexport function useTransferPanelContext(): TransferPanelContext {\n const ctx = inject(PANEL_KEY, null)\n if (!ctx)\n throw new Error('[xh] Transfer 面板子部件必须用在 XhTransferSourcePanel / XhTransferTargetPanel 内')\n return ctx\n}\n\nexport function provideTransferItem(ctx: TransferItemContext): void {\n provide(ITEM_KEY, ctx)\n}\n\nexport function useTransferItemContext(): TransferItemContext {\n const ctx = inject(ITEM_KEY, null)\n if (!ctx)\n throw new Error('[xh] Transfer 条目子部件必须用在 XhTransferItem 内')\n return ctx\n}\n"],"mappings":";;AAeA,MAAM,MAAqC,OAAO,IAAI,aAAa;AACnE,MAAM,YAAgD,OAAO,IAAI,mBAAmB;AACpF,MAAM,WAA8C,OAAO,IAAI,kBAAkB;AAEjF,SAAgB,gBAAgB,KAA4B;CAC1D,QAAQ,KAAK,GAAG;AAClB;AAEA,SAAgB,qBAAsC;CACpD,MAAM,MAAM,OAAO,KAAK,IAAI;CAC5B,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,uCAAuC;CACzD,OAAO;AACT;AAEA,SAAgB,qBAAqB,KAAiC;CACpE,QAAQ,WAAW,GAAG;AACxB;AAEA,SAAgB,0BAAgD;CAC9D,MAAM,MAAM,OAAO,WAAW,IAAI;CAClC,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,yEAAyE;CAC3F,OAAO;AACT;AAEA,SAAgB,oBAAoB,KAAgC;CAClE,QAAQ,UAAU,GAAG;AACvB;AAEA,SAAgB,yBAA8C;CAC5D,MAAM,MAAM,OAAO,UAAU,IAAI;CACjC,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,0CAA0C;CAC5D,OAAO;AACT"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { inject, provide } from "vue";
|
|
2
2
|
//#region src/components/tree/context.ts
|
|
3
|
-
const KEY = Symbol("xh-tree");
|
|
4
|
-
const NODE_KEY = Symbol("xh-tree-node");
|
|
3
|
+
const KEY = Symbol.for("xh-tree");
|
|
4
|
+
const NODE_KEY = Symbol.for("xh-tree-node");
|
|
5
5
|
function provideTree(ctx) {
|
|
6
6
|
provide(KEY, ctx);
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/tree/context.ts"],"sourcesContent":["import type { TreeNodeProps } from '@xihan-ui/headless'\nimport type { ComputedRef, InjectionKey } from 'vue'\nimport type { TreeContext } from './use-tree'\nimport { inject, provide } from 'vue'\n\n/** 节点自报的值,供 item / branch 的子部件复用同一份声明;层级、禁用与标签回 collection 里查。 */\nexport interface TreeNodeContext {\n node: ComputedRef<TreeNodeProps>\n}\n\nconst KEY: InjectionKey<TreeContext> = Symbol('xh-tree')\nconst NODE_KEY: InjectionKey<TreeNodeContext> = Symbol('xh-tree-node')\n\nexport function provideTree(ctx: TreeContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTreeContext(): TreeContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Tree 部件必须用在 XhTreeRoot 内')\n return ctx\n}\n\nexport function provideTreeNode(ctx: TreeNodeContext): void {\n provide(NODE_KEY, ctx)\n}\n\nexport function useTreeNodeContext(): TreeNodeContext {\n const ctx = inject(NODE_KEY, null)\n if (!ctx)\n throw new Error('[xh] Tree 节点子部件必须用在 XhTreeItem 或 XhTreeBranch 内')\n return ctx\n}\n"],"mappings":";;AAUA,MAAM,MAAiC,OAAO,SAAS;
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/tree/context.ts"],"sourcesContent":["import type { TreeNodeProps } from '@xihan-ui/headless'\nimport type { ComputedRef, InjectionKey } from 'vue'\nimport type { TreeContext } from './use-tree'\nimport { inject, provide } from 'vue'\n\n/** 节点自报的值,供 item / branch 的子部件复用同一份声明;层级、禁用与标签回 collection 里查。 */\nexport interface TreeNodeContext {\n node: ComputedRef<TreeNodeProps>\n}\n\nconst KEY: InjectionKey<TreeContext> = Symbol.for('xh-tree')\nconst NODE_KEY: InjectionKey<TreeNodeContext> = Symbol.for('xh-tree-node')\n\nexport function provideTree(ctx: TreeContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTreeContext(): TreeContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Tree 部件必须用在 XhTreeRoot 内')\n return ctx\n}\n\nexport function provideTreeNode(ctx: TreeNodeContext): void {\n provide(NODE_KEY, ctx)\n}\n\nexport function useTreeNodeContext(): TreeNodeContext {\n const ctx = inject(NODE_KEY, null)\n if (!ctx)\n throw new Error('[xh] Tree 节点子部件必须用在 XhTreeItem 或 XhTreeBranch 内')\n return ctx\n}\n"],"mappings":";;AAUA,MAAM,MAAiC,OAAO,IAAI,SAAS;AAC3D,MAAM,WAA0C,OAAO,IAAI,cAAc;AAEzE,SAAgB,YAAY,KAAwB;CAClD,QAAQ,KAAK,GAAG;AAClB;AAEA,SAAgB,iBAA8B;CAC5C,MAAM,MAAM,OAAO,KAAK,IAAI;CAC5B,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,+BAA+B;CACjD,OAAO;AACT;AAEA,SAAgB,gBAAgB,KAA4B;CAC1D,QAAQ,UAAU,GAAG;AACvB;AAEA,SAAgB,qBAAsC;CACpD,MAAM,MAAM,OAAO,UAAU,IAAI;CACjC,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,iDAAiD;CACnE,OAAO;AACT"}
|
|
@@ -27,6 +27,15 @@ declare const XhTreeRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
27
27
|
type: PropType<string[]>;
|
|
28
28
|
default: undefined;
|
|
29
29
|
};
|
|
30
|
+
multiple: {
|
|
31
|
+
type: BooleanConstructor;
|
|
32
|
+
default: undefined;
|
|
33
|
+
};
|
|
34
|
+
/** 末端那一层怎么排,默认 vertical;horizontal 让子节点全是叶子的那层并排铺开。 */
|
|
35
|
+
leafOrientation: {
|
|
36
|
+
type: PropType<TreeProps["leafOrientation"]>;
|
|
37
|
+
default: undefined;
|
|
38
|
+
};
|
|
30
39
|
selectionMode: {
|
|
31
40
|
type: PropType<TreeSelectionMode>;
|
|
32
41
|
default: undefined;
|
|
@@ -81,6 +90,15 @@ declare const XhTreeRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
81
90
|
type: PropType<string[]>;
|
|
82
91
|
default: undefined;
|
|
83
92
|
};
|
|
93
|
+
multiple: {
|
|
94
|
+
type: BooleanConstructor;
|
|
95
|
+
default: undefined;
|
|
96
|
+
};
|
|
97
|
+
/** 末端那一层怎么排,默认 vertical;horizontal 让子节点全是叶子的那层并排铺开。 */
|
|
98
|
+
leafOrientation: {
|
|
99
|
+
type: PropType<TreeProps["leafOrientation"]>;
|
|
100
|
+
default: undefined;
|
|
101
|
+
};
|
|
84
102
|
selectionMode: {
|
|
85
103
|
type: PropType<TreeSelectionMode>;
|
|
86
104
|
default: undefined;
|
|
@@ -113,6 +131,7 @@ declare const XhTreeRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
113
131
|
"onSelection-change"?: ((_details: import("@xihan-ui/headless").TreeSelectionChangeDetails) => any) | undefined;
|
|
114
132
|
"onUpdate:selection"?: ((_value: string[]) => any) | undefined;
|
|
115
133
|
}>, {
|
|
134
|
+
multiple: boolean;
|
|
116
135
|
collection: TreeNode[];
|
|
117
136
|
dir: Direction;
|
|
118
137
|
disabled: boolean;
|
|
@@ -125,6 +144,7 @@ declare const XhTreeRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
125
144
|
defaultExpandedValue: string[];
|
|
126
145
|
selection: string[];
|
|
127
146
|
defaultSelection: string[];
|
|
147
|
+
leafOrientation: import("@xihan-ui/kernel").Orientation | undefined;
|
|
128
148
|
expandOnClick: boolean;
|
|
129
149
|
}, SlotsType<{
|
|
130
150
|
default?: (props: TreeRootSlotProps) => VNode[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","names":[],"sources":["../../../src/components/tree/tree.ts"],"mappings":";;;;;KASK,YAAY;;KAGL,oBAAoB,KAC9B;cAmCW,0BAAU,8BAAA;;IAIU,MAAA,SAAS;;;;IACN,MAAA;;;;IACO,MAAA;;;;IACX,MAAA;;;;IACO,MAAA;;;;
|
|
1
|
+
{"version":3,"file":"tree.d.ts","names":[],"sources":["../../../src/components/tree/tree.ts"],"mappings":";;;;;KASK,YAAY;;KAGL,oBAAoB,KAC9B;cAmCW,0BAAU,8BAAA;;IAIU,MAAA,SAAS;;;;IACN,MAAA;;;;IACO,MAAA;;;;IACX,MAAA;;;;IACO,MAAA;;;;;;;;;IAGA,MAAA,SAAS;;;;IACX,MAAA,SAAS;;;;;IAEP,MAAA,SAAS;;;;;;;;;;;;;;;;;IAKrB,MAAA,SAAS;;;;;;EAIF,oBAAA,UAAA,UAAU;EACP,yBAAA,QAAA,UAAU;EACZ,qBAAA,UAAA,UAAU;EACZ,qBAAA,QAAA,UAAU;;;IAtBV,MAAA,SAAS;;;;IACN,MAAA;;;;IACO,MAAA;;;;IACX,MAAA;;;;IACO,MAAA;;;;;;;;;IAGA,MAAA,SAAS;;;;IACX,MAAA,SAAS;;;;;IAEP,MAAA,SAAS;;;;;;;;;;;;;;;;;IAKrB,MAAA,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;EAUtB,WAAC,OAAO,sBAAsB;kCA0B1C;cAEW,2BAAW,0BAAA,oBAAA,4BAAA;;8BAMtB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,0BAAU,0BAAA,oBAAA,4BAAA;;8BAMrB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,0BAAU,8BAAA;;;;;;;;;;;;MAiBrB,oDAAA;cAEW,8BAAc,0BAAA,oBAAA,4BAAA;;8BAOzB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,kCAAkB,0BAAA,oBAAA,4BAAA;;8BAO7B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,oCAAoB,0BAAA,oBAAA,4BAAA;;8BAO/B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,mCAAmB,0BAAA,oBAAA,4BAAA;;8BAO9B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,4BAAY,8BAAA;;;;;;;;;;;;MAkBvB,oDAAA;cAEW,mCAAmB,0BAAA,oBAAA,4BAAA;;8BAO9B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,mCAAmB,0BAAA,oBAAA,4BAAA;;8BAO9B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,qCAAqB,0BAAA,oBAAA,4BAAA;;8BAOhC,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,gCAAgB,0BAAA,oBAAA,4BAAA;;8BAO3B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,mCAAmB,0BAAA,oBAAA,4BAAA;;8BAQ9B,qCAAA,iDAAA,aAAA,eAAA,oDAAA"}
|
|
@@ -42,6 +42,15 @@ const XhTreeRoot = defineComponent({
|
|
|
42
42
|
type: Array,
|
|
43
43
|
default: void 0
|
|
44
44
|
},
|
|
45
|
+
multiple: {
|
|
46
|
+
type: Boolean,
|
|
47
|
+
default: void 0
|
|
48
|
+
},
|
|
49
|
+
/** 末端那一层怎么排,默认 vertical;horizontal 让子节点全是叶子的那层并排铺开。 */
|
|
50
|
+
leafOrientation: {
|
|
51
|
+
type: String,
|
|
52
|
+
default: void 0
|
|
53
|
+
},
|
|
45
54
|
selectionMode: {
|
|
46
55
|
type: String,
|
|
47
56
|
default: void 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","names":[],"sources":["../../../src/components/tree/tree.ts"],"sourcesContent":["import type { TreeApi, TreeNode, TreeNodeProps, TreeSchema, TreeSelectionMode } from '@xihan-ui/headless'\nimport type { Direction } from '@xihan-ui/kernel'\nimport type { PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { PayloadOf } from '../../runtime/payload'\nimport type { TreeContext } from './use-tree'\nimport { computed, defineComponent, h, onBeforeUnmount, ref, watch } from 'vue'\nimport { provideTree, provideTreeNode, useTreeContext, useTreeNodeContext } from './context'\nimport { useTree } from './use-tree'\n\ntype TreeProps = TreeSchema['props']\n\n/** 默认插槽的载荷:可见行序列与展开、选中、焦点状态,以及按值判定与展开、收起、选中的动作。 */\nexport type TreeRootSlotProps = Pick<\n TreeApi,\n | 'visibleNodes'\n | 'expandedValue'\n | 'selection'\n | 'focusedValue'\n | 'isExpanded'\n | 'isSelected'\n | 'isIndeterminate'\n | 'expand'\n | 'collapse'\n | 'select'\n>\n\n/** 本节点持有焦点时,value 变更重报焦点节点,卸载时上报整树失焦 */\nfunction reportNodeFocus(ctx: TreeContext, el: Ref<HTMLElement | null>, value: () => string): void {\n watch(value, (next, prev) => {\n if (next === prev)\n return\n const { service } = ctx\n if (service.getStatus() !== 'Started')\n return\n if (el.value && service.scope.getActiveElement() === el.value)\n service.send({ type: 'NODE.FOCUS', value: next })\n })\n onBeforeUnmount(() => {\n const { service } = ctx\n // 整组一起卸载时根部件先停机,此刻送事件会在 dev 下抛\n if (service.getStatus() !== 'Started')\n return\n // 按「本节点当下正持有焦点」判定,不按 value 比对\n if (el.value && service.scope.getActiveElement() === el.value)\n service.send({ type: 'TREE.BLUR' })\n })\n}\n\nexport const XhTreeRoot = defineComponent({\n name: 'XhTreeRoot',\n // 有 connect 兜底的 prop 一律 default: undefined\n props: {\n collection: { type: Array as PropType<TreeNode[]>, default: undefined },\n expandedValue: { type: Array as PropType<string[]>, default: undefined },\n defaultExpandedValue: { type: Array as PropType<string[]>, default: undefined },\n selection: { type: Array as PropType<string[]>, default: undefined },\n defaultSelection: { type: Array as PropType<string[]>, default: undefined },\n selectionMode: { type: String as PropType<TreeSelectionMode>, default: undefined },\n cascade: Boolean,\n checkedStrategy: { type: String as PropType<TreeProps['checkedStrategy']>, default: undefined },\n expandOnClick: { type: Boolean, default: undefined },\n disabled: Boolean,\n loop: { type: Boolean, default: undefined },\n typeahead: { type: Boolean, default: undefined },\n dir: { type: String as PropType<Direction>, default: undefined },\n },\n // *-change 携带 { value },update:* 携带裸集合;回传值恒为数组,单选时长度 ≤ 1\n emits: {\n 'expanded-change': (_details: PayloadOf<TreeProps, 'onExpandedChange'>) => true,\n 'update:expandedValue': (_value: PayloadOf<TreeProps, 'onExpandedChange'>['value']) => true,\n 'selection-change': (_details: PayloadOf<TreeProps, 'onSelectionChange'>) => true,\n 'update:selection': (_value: PayloadOf<TreeProps, 'onSelectionChange'>['value']) => true,\n },\n slots: Object as SlotsType<{\n default?: (props: TreeRootSlotProps) => VNode[]\n }>,\n setup(props, { slots, emit }) {\n const onExpandedChange: TreeProps['onExpandedChange'] = (details) => {\n emit('expanded-change', details)\n emit('update:expandedValue', details.value)\n }\n const onSelectionChange: TreeProps['onSelectionChange'] = (details) => {\n emit('selection-change', details)\n emit('update:selection', details.value)\n }\n const ctx = useTree(props as TreeProps, onExpandedChange, onSelectionChange)\n provideTree(ctx)\n return () => h('div', ctx.api.value.getRootProps() as Record<string, unknown>, slots.default?.({\n visibleNodes: ctx.api.value.visibleNodes,\n expandedValue: ctx.api.value.expandedValue,\n selection: ctx.api.value.selection,\n focusedValue: ctx.api.value.focusedValue,\n isExpanded: ctx.api.value.isExpanded,\n isSelected: ctx.api.value.isSelected,\n isIndeterminate: ctx.api.value.isIndeterminate,\n expand: ctx.api.value.expand,\n collapse: ctx.api.value.collapse,\n select: ctx.api.value.select,\n }))\n },\n})\n\nexport const XhTreeLabel = defineComponent({\n name: 'XhTreeLabel',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n return () => h('span', ctx.api.value.getLabelProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeTree = defineComponent({\n name: 'XhTreeTree',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n return () => h('div', ctx.api.value.getTreeProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeItem = defineComponent({\n name: 'XhTreeItem',\n props: {\n value: { type: String, required: true },\n },\n setup(props, { slots }) {\n const ctx = useTreeContext()\n const node = computed<TreeNodeProps>(() => ({ value: props.value }))\n provideTreeNode({ node })\n const el = ref<HTMLElement | null>(null)\n reportNodeFocus(ctx, el, () => props.value)\n return () => h(\n 'div',\n { ...ctx.api.value.getItemProps(node.value) as Record<string, unknown>, ref: el },\n slots.default?.(),\n )\n },\n})\n\nexport const XhTreeItemText = defineComponent({\n name: 'XhTreeItemText',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getItemTextProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeItemCheckbox = defineComponent({\n name: 'XhTreeItemCheckbox',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getItemCheckboxProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeBranchCheckbox = defineComponent({\n name: 'XhTreeBranchCheckbox',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getBranchCheckboxProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeItemIndicator = defineComponent({\n name: 'XhTreeItemIndicator',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getItemIndicatorProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeBranch = defineComponent({\n name: 'XhTreeBranch',\n props: {\n value: { type: String, required: true },\n },\n setup(props, { slots }) {\n const ctx = useTreeContext()\n const node = computed<TreeNodeProps>(() => ({ value: props.value }))\n // 分支自身也是 treeitem,供其子部件读取;子节点各自再 provide 一层\n provideTreeNode({ node })\n const el = ref<HTMLElement | null>(null)\n reportNodeFocus(ctx, el, () => props.value)\n return () => h(\n 'div',\n { ...ctx.api.value.getBranchProps(node.value) as Record<string, unknown>, ref: el },\n slots.default?.(),\n )\n },\n})\n\nexport const XhTreeBranchControl = defineComponent({\n name: 'XhTreeBranchControl',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('div', ctx.api.value.getBranchControlProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeBranchTrigger = defineComponent({\n name: 'XhTreeBranchTrigger',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getBranchTriggerProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeBranchIndicator = defineComponent({\n name: 'XhTreeBranchIndicator',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getBranchIndicatorProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeBranchText = defineComponent({\n name: 'XhTreeBranchText',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getBranchTextProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeBranchContent = defineComponent({\n name: 'XhTreeBranchContent',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n // 收起只加 hidden,不卸载子树节点\n return () => h('div', ctx.api.value.getBranchContentProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree.js","names":[],"sources":["../../../src/components/tree/tree.ts"],"sourcesContent":["import type { TreeApi, TreeNode, TreeNodeProps, TreeSchema, TreeSelectionMode } from '@xihan-ui/headless'\nimport type { Direction } from '@xihan-ui/kernel'\nimport type { PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { PayloadOf } from '../../runtime/payload'\nimport type { TreeContext } from './use-tree'\nimport { computed, defineComponent, h, onBeforeUnmount, ref, watch } from 'vue'\nimport { provideTree, provideTreeNode, useTreeContext, useTreeNodeContext } from './context'\nimport { useTree } from './use-tree'\n\ntype TreeProps = TreeSchema['props']\n\n/** 默认插槽的载荷:可见行序列与展开、选中、焦点状态,以及按值判定与展开、收起、选中的动作。 */\nexport type TreeRootSlotProps = Pick<\n TreeApi,\n | 'visibleNodes'\n | 'expandedValue'\n | 'selection'\n | 'focusedValue'\n | 'isExpanded'\n | 'isSelected'\n | 'isIndeterminate'\n | 'expand'\n | 'collapse'\n | 'select'\n>\n\n/** 本节点持有焦点时,value 变更重报焦点节点,卸载时上报整树失焦 */\nfunction reportNodeFocus(ctx: TreeContext, el: Ref<HTMLElement | null>, value: () => string): void {\n watch(value, (next, prev) => {\n if (next === prev)\n return\n const { service } = ctx\n if (service.getStatus() !== 'Started')\n return\n if (el.value && service.scope.getActiveElement() === el.value)\n service.send({ type: 'NODE.FOCUS', value: next })\n })\n onBeforeUnmount(() => {\n const { service } = ctx\n // 整组一起卸载时根部件先停机,此刻送事件会在 dev 下抛\n if (service.getStatus() !== 'Started')\n return\n // 按「本节点当下正持有焦点」判定,不按 value 比对\n if (el.value && service.scope.getActiveElement() === el.value)\n service.send({ type: 'TREE.BLUR' })\n })\n}\n\nexport const XhTreeRoot = defineComponent({\n name: 'XhTreeRoot',\n // 有 connect 兜底的 prop 一律 default: undefined\n props: {\n collection: { type: Array as PropType<TreeNode[]>, default: undefined },\n expandedValue: { type: Array as PropType<string[]>, default: undefined },\n defaultExpandedValue: { type: Array as PropType<string[]>, default: undefined },\n selection: { type: Array as PropType<string[]>, default: undefined },\n defaultSelection: { type: Array as PropType<string[]>, default: undefined },\n multiple: { type: Boolean, default: undefined },\n /** 末端那一层怎么排,默认 vertical;horizontal 让子节点全是叶子的那层并排铺开。 */\n leafOrientation: { type: String as PropType<TreeProps['leafOrientation']>, default: undefined },\n selectionMode: { type: String as PropType<TreeSelectionMode>, default: undefined },\n cascade: Boolean,\n checkedStrategy: { type: String as PropType<TreeProps['checkedStrategy']>, default: undefined },\n expandOnClick: { type: Boolean, default: undefined },\n disabled: Boolean,\n loop: { type: Boolean, default: undefined },\n typeahead: { type: Boolean, default: undefined },\n dir: { type: String as PropType<Direction>, default: undefined },\n },\n // *-change 携带 { value },update:* 携带裸集合;回传值恒为数组,单选时长度 ≤ 1\n emits: {\n 'expanded-change': (_details: PayloadOf<TreeProps, 'onExpandedChange'>) => true,\n 'update:expandedValue': (_value: PayloadOf<TreeProps, 'onExpandedChange'>['value']) => true,\n 'selection-change': (_details: PayloadOf<TreeProps, 'onSelectionChange'>) => true,\n 'update:selection': (_value: PayloadOf<TreeProps, 'onSelectionChange'>['value']) => true,\n },\n slots: Object as SlotsType<{\n default?: (props: TreeRootSlotProps) => VNode[]\n }>,\n setup(props, { slots, emit }) {\n const onExpandedChange: TreeProps['onExpandedChange'] = (details) => {\n emit('expanded-change', details)\n emit('update:expandedValue', details.value)\n }\n const onSelectionChange: TreeProps['onSelectionChange'] = (details) => {\n emit('selection-change', details)\n emit('update:selection', details.value)\n }\n const ctx = useTree(props as TreeProps, onExpandedChange, onSelectionChange)\n provideTree(ctx)\n return () => h('div', ctx.api.value.getRootProps() as Record<string, unknown>, slots.default?.({\n visibleNodes: ctx.api.value.visibleNodes,\n expandedValue: ctx.api.value.expandedValue,\n selection: ctx.api.value.selection,\n focusedValue: ctx.api.value.focusedValue,\n isExpanded: ctx.api.value.isExpanded,\n isSelected: ctx.api.value.isSelected,\n isIndeterminate: ctx.api.value.isIndeterminate,\n expand: ctx.api.value.expand,\n collapse: ctx.api.value.collapse,\n select: ctx.api.value.select,\n }))\n },\n})\n\nexport const XhTreeLabel = defineComponent({\n name: 'XhTreeLabel',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n return () => h('span', ctx.api.value.getLabelProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeTree = defineComponent({\n name: 'XhTreeTree',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n return () => h('div', ctx.api.value.getTreeProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeItem = defineComponent({\n name: 'XhTreeItem',\n props: {\n value: { type: String, required: true },\n },\n setup(props, { slots }) {\n const ctx = useTreeContext()\n const node = computed<TreeNodeProps>(() => ({ value: props.value }))\n provideTreeNode({ node })\n const el = ref<HTMLElement | null>(null)\n reportNodeFocus(ctx, el, () => props.value)\n return () => h(\n 'div',\n { ...ctx.api.value.getItemProps(node.value) as Record<string, unknown>, ref: el },\n slots.default?.(),\n )\n },\n})\n\nexport const XhTreeItemText = defineComponent({\n name: 'XhTreeItemText',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getItemTextProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeItemCheckbox = defineComponent({\n name: 'XhTreeItemCheckbox',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getItemCheckboxProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeBranchCheckbox = defineComponent({\n name: 'XhTreeBranchCheckbox',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getBranchCheckboxProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeItemIndicator = defineComponent({\n name: 'XhTreeItemIndicator',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getItemIndicatorProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeBranch = defineComponent({\n name: 'XhTreeBranch',\n props: {\n value: { type: String, required: true },\n },\n setup(props, { slots }) {\n const ctx = useTreeContext()\n const node = computed<TreeNodeProps>(() => ({ value: props.value }))\n // 分支自身也是 treeitem,供其子部件读取;子节点各自再 provide 一层\n provideTreeNode({ node })\n const el = ref<HTMLElement | null>(null)\n reportNodeFocus(ctx, el, () => props.value)\n return () => h(\n 'div',\n { ...ctx.api.value.getBranchProps(node.value) as Record<string, unknown>, ref: el },\n slots.default?.(),\n )\n },\n})\n\nexport const XhTreeBranchControl = defineComponent({\n name: 'XhTreeBranchControl',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('div', ctx.api.value.getBranchControlProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeBranchTrigger = defineComponent({\n name: 'XhTreeBranchTrigger',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getBranchTriggerProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeBranchIndicator = defineComponent({\n name: 'XhTreeBranchIndicator',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getBranchIndicatorProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeBranchText = defineComponent({\n name: 'XhTreeBranchText',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getBranchTextProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTreeBranchContent = defineComponent({\n name: 'XhTreeBranchContent',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n // 收起只加 hidden,不卸载子树节点\n return () => h('div', ctx.api.value.getBranchContentProps(node.value) as Record<string, unknown>, slots.default?.())\n },\n})\n"],"mappings":";;;;;AA2BA,SAAS,gBAAgB,KAAkB,IAA6B,OAA2B;CACjG,MAAM,QAAQ,MAAM,SAAS;EAC3B,IAAI,SAAS,MACX;EACF,MAAM,EAAE,YAAY;EACpB,IAAI,QAAQ,UAAU,MAAM,WAC1B;EACF,IAAI,GAAG,SAAS,QAAQ,MAAM,iBAAiB,MAAM,GAAG,OACtD,QAAQ,KAAK;GAAE,MAAM;GAAc,OAAO;EAAK,CAAC;CACpD,CAAC;CACD,sBAAsB;EACpB,MAAM,EAAE,YAAY;EAEpB,IAAI,QAAQ,UAAU,MAAM,WAC1B;EAEF,IAAI,GAAG,SAAS,QAAQ,MAAM,iBAAiB,MAAM,GAAG,OACtD,QAAQ,KAAK,EAAE,MAAM,YAAY,CAAC;CACtC,CAAC;AACH;AAEA,MAAa,aAAa,gBAAgB;CACxC,MAAM;CAEN,OAAO;EACL,YAAY;GAAE,MAAM;GAA+B,SAAS,KAAA;EAAU;EACtE,eAAe;GAAE,MAAM;GAA6B,SAAS,KAAA;EAAU;EACvE,sBAAsB;GAAE,MAAM;GAA6B,SAAS,KAAA;EAAU;EAC9E,WAAW;GAAE,MAAM;GAA6B,SAAS,KAAA;EAAU;EACnE,kBAAkB;GAAE,MAAM;GAA6B,SAAS,KAAA;EAAU;EAC1E,UAAU;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;;EAE9C,iBAAiB;GAAE,MAAM;GAAkD,SAAS,KAAA;EAAU;EAC9F,eAAe;GAAE,MAAM;GAAuC,SAAS,KAAA;EAAU;EACjF,SAAS;EACT,iBAAiB;GAAE,MAAM;GAAkD,SAAS,KAAA;EAAU;EAC9F,eAAe;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EACnD,UAAU;EACV,MAAM;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EAC1C,WAAW;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;EAC/C,KAAK;GAAE,MAAM;GAA+B,SAAS,KAAA;EAAU;CACjE;CAEA,OAAO;EACL,oBAAoB,aAAuD;EAC3E,yBAAyB,WAA8D;EACvF,qBAAqB,aAAwD;EAC7E,qBAAqB,WAA+D;CACtF;CACA,OAAO;CAGP,MAAM,OAAO,EAAE,OAAO,QAAQ;EAC5B,MAAM,oBAAmD,YAAY;GACnE,KAAK,mBAAmB,OAAO;GAC/B,KAAK,wBAAwB,QAAQ,KAAK;EAC5C;EACA,MAAM,qBAAqD,YAAY;GACrE,KAAK,oBAAoB,OAAO;GAChC,KAAK,oBAAoB,QAAQ,KAAK;EACxC;EACA,MAAM,MAAM,QAAQ,OAAoB,kBAAkB,iBAAiB;EAC3E,YAAY,GAAG;EACf,aAAa,EAAE,OAAO,IAAI,IAAI,MAAM,aAAa,GAA8B,MAAM,UAAU;GAC7F,cAAc,IAAI,IAAI,MAAM;GAC5B,eAAe,IAAI,IAAI,MAAM;GAC7B,WAAW,IAAI,IAAI,MAAM;GACzB,cAAc,IAAI,IAAI,MAAM;GAC5B,YAAY,IAAI,IAAI,MAAM;GAC1B,YAAY,IAAI,IAAI,MAAM;GAC1B,iBAAiB,IAAI,IAAI,MAAM;GAC/B,QAAQ,IAAI,IAAI,MAAM;GACtB,UAAU,IAAI,IAAI,MAAM;GACxB,QAAQ,IAAI,IAAI,MAAM;EACxB,CAAC,CAAC;CACJ;AACF,CAAC;AAED,MAAa,cAAc,gBAAgB;CACzC,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,eAAe;EAC3B,aAAa,EAAE,QAAQ,IAAI,IAAI,MAAM,cAAc,GAA8B,MAAM,UAAU,CAAC;CACpG;AACF,CAAC;AAED,MAAa,aAAa,gBAAgB;CACxC,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,eAAe;EAC3B,aAAa,EAAE,OAAO,IAAI,IAAI,MAAM,aAAa,GAA8B,MAAM,UAAU,CAAC;CAClG;AACF,CAAC;AAED,MAAa,aAAa,gBAAgB;CACxC,MAAM;CACN,OAAO,EACL,OAAO;EAAE,MAAM;EAAQ,UAAU;CAAK,EACxC;CACA,MAAM,OAAO,EAAE,SAAS;EACtB,MAAM,MAAM,eAAe;EAC3B,MAAM,OAAO,gBAA+B,EAAE,OAAO,MAAM,MAAM,EAAE;EACnE,gBAAgB,EAAE,KAAK,CAAC;EACxB,MAAM,KAAK,IAAwB,IAAI;EACvC,gBAAgB,KAAK,UAAU,MAAM,KAAK;EAC1C,aAAa,EACX,OACA;GAAE,GAAG,IAAI,IAAI,MAAM,aAAa,KAAK,KAAK;GAA8B,KAAK;EAAG,GAChF,MAAM,UAAU,CAClB;CACF;AACF,CAAC;AAED,MAAa,iBAAiB,gBAAgB;CAC5C,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,eAAe;EAC3B,MAAM,EAAE,SAAS,mBAAmB;EACpC,aAAa,EAAE,QAAQ,IAAI,IAAI,MAAM,iBAAiB,KAAK,KAAK,GAA8B,MAAM,UAAU,CAAC;CACjH;AACF,CAAC;AAED,MAAa,qBAAqB,gBAAgB;CAChD,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,eAAe;EAC3B,MAAM,EAAE,SAAS,mBAAmB;EACpC,aAAa,EAAE,QAAQ,IAAI,IAAI,MAAM,qBAAqB,KAAK,KAAK,GAA8B,MAAM,UAAU,CAAC;CACrH;AACF,CAAC;AAED,MAAa,uBAAuB,gBAAgB;CAClD,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,eAAe;EAC3B,MAAM,EAAE,SAAS,mBAAmB;EACpC,aAAa,EAAE,QAAQ,IAAI,IAAI,MAAM,uBAAuB,KAAK,KAAK,GAA8B,MAAM,UAAU,CAAC;CACvH;AACF,CAAC;AAED,MAAa,sBAAsB,gBAAgB;CACjD,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,eAAe;EAC3B,MAAM,EAAE,SAAS,mBAAmB;EACpC,aAAa,EAAE,QAAQ,IAAI,IAAI,MAAM,sBAAsB,KAAK,KAAK,GAA8B,MAAM,UAAU,CAAC;CACtH;AACF,CAAC;AAED,MAAa,eAAe,gBAAgB;CAC1C,MAAM;CACN,OAAO,EACL,OAAO;EAAE,MAAM;EAAQ,UAAU;CAAK,EACxC;CACA,MAAM,OAAO,EAAE,SAAS;EACtB,MAAM,MAAM,eAAe;EAC3B,MAAM,OAAO,gBAA+B,EAAE,OAAO,MAAM,MAAM,EAAE;EAEnE,gBAAgB,EAAE,KAAK,CAAC;EACxB,MAAM,KAAK,IAAwB,IAAI;EACvC,gBAAgB,KAAK,UAAU,MAAM,KAAK;EAC1C,aAAa,EACX,OACA;GAAE,GAAG,IAAI,IAAI,MAAM,eAAe,KAAK,KAAK;GAA8B,KAAK;EAAG,GAClF,MAAM,UAAU,CAClB;CACF;AACF,CAAC;AAED,MAAa,sBAAsB,gBAAgB;CACjD,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,eAAe;EAC3B,MAAM,EAAE,SAAS,mBAAmB;EACpC,aAAa,EAAE,OAAO,IAAI,IAAI,MAAM,sBAAsB,KAAK,KAAK,GAA8B,MAAM,UAAU,CAAC;CACrH;AACF,CAAC;AAED,MAAa,sBAAsB,gBAAgB;CACjD,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,eAAe;EAC3B,MAAM,EAAE,SAAS,mBAAmB;EACpC,aAAa,EAAE,QAAQ,IAAI,IAAI,MAAM,sBAAsB,KAAK,KAAK,GAA8B,MAAM,UAAU,CAAC;CACtH;AACF,CAAC;AAED,MAAa,wBAAwB,gBAAgB;CACnD,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,eAAe;EAC3B,MAAM,EAAE,SAAS,mBAAmB;EACpC,aAAa,EAAE,QAAQ,IAAI,IAAI,MAAM,wBAAwB,KAAK,KAAK,GAA8B,MAAM,UAAU,CAAC;CACxH;AACF,CAAC;AAED,MAAa,mBAAmB,gBAAgB;CAC9C,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,eAAe;EAC3B,MAAM,EAAE,SAAS,mBAAmB;EACpC,aAAa,EAAE,QAAQ,IAAI,IAAI,MAAM,mBAAmB,KAAK,KAAK,GAA8B,MAAM,UAAU,CAAC;CACnH;AACF,CAAC;AAED,MAAa,sBAAsB,gBAAgB;CACjD,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,MAAM,eAAe;EAC3B,MAAM,EAAE,SAAS,mBAAmB;EAEpC,aAAa,EAAE,OAAO,IAAI,IAAI,MAAM,sBAAsB,KAAK,KAAK,GAA8B,MAAM,UAAU,CAAC;CACrH;AACF,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { inject, provide } from "vue";
|
|
2
2
|
//#region src/components/tree-select/context.ts
|
|
3
|
-
const KEY = Symbol("xh-tree-select");
|
|
4
|
-
const NODE_KEY = Symbol("xh-tree-select-node");
|
|
3
|
+
const KEY = Symbol.for("xh-tree-select");
|
|
4
|
+
const NODE_KEY = Symbol.for("xh-tree-select-node");
|
|
5
5
|
function provideTreeSelect(ctx) {
|
|
6
6
|
provide(KEY, ctx);
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/tree-select/context.ts"],"sourcesContent":["import type { TreeSelectNodeProps } from '@xihan-ui/headless'\nimport type { ComputedRef, InjectionKey } from 'vue'\nimport type { TreeSelectContext } from './use-tree-select'\nimport { inject, provide } from 'vue'\n\n/** 节点自报的值,供 item / branch 的子部件复用同一份声明;层级、禁用与标签回 collection 里查。 */\nexport interface TreeSelectNodeContext {\n node: ComputedRef<TreeSelectNodeProps>\n}\n\nconst KEY: InjectionKey<TreeSelectContext> = Symbol('xh-tree-select')\nconst NODE_KEY: InjectionKey<TreeSelectNodeContext> = Symbol('xh-tree-select-node')\n\nexport function provideTreeSelect(ctx: TreeSelectContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTreeSelectContext(): TreeSelectContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] TreeSelect 部件必须用在 XhTreeSelectRoot 内')\n return ctx\n}\n\nexport function provideTreeSelectNode(ctx: TreeSelectNodeContext): void {\n provide(NODE_KEY, ctx)\n}\n\nexport function useTreeSelectNodeContext(): TreeSelectNodeContext {\n const ctx = inject(NODE_KEY, null)\n if (!ctx)\n throw new Error('[xh] TreeSelect 节点子部件必须用在 XhTreeSelectItem 或 XhTreeSelectBranch 内')\n return ctx\n}\n"],"mappings":";;AAUA,MAAM,MAAuC,OAAO,gBAAgB;
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/tree-select/context.ts"],"sourcesContent":["import type { TreeSelectNodeProps } from '@xihan-ui/headless'\nimport type { ComputedRef, InjectionKey } from 'vue'\nimport type { TreeSelectContext } from './use-tree-select'\nimport { inject, provide } from 'vue'\n\n/** 节点自报的值,供 item / branch 的子部件复用同一份声明;层级、禁用与标签回 collection 里查。 */\nexport interface TreeSelectNodeContext {\n node: ComputedRef<TreeSelectNodeProps>\n}\n\nconst KEY: InjectionKey<TreeSelectContext> = Symbol.for('xh-tree-select')\nconst NODE_KEY: InjectionKey<TreeSelectNodeContext> = Symbol.for('xh-tree-select-node')\n\nexport function provideTreeSelect(ctx: TreeSelectContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTreeSelectContext(): TreeSelectContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] TreeSelect 部件必须用在 XhTreeSelectRoot 内')\n return ctx\n}\n\nexport function provideTreeSelectNode(ctx: TreeSelectNodeContext): void {\n provide(NODE_KEY, ctx)\n}\n\nexport function useTreeSelectNodeContext(): TreeSelectNodeContext {\n const ctx = inject(NODE_KEY, null)\n if (!ctx)\n throw new Error('[xh] TreeSelect 节点子部件必须用在 XhTreeSelectItem 或 XhTreeSelectBranch 内')\n return ctx\n}\n"],"mappings":";;AAUA,MAAM,MAAuC,OAAO,IAAI,gBAAgB;AACxE,MAAM,WAAgD,OAAO,IAAI,qBAAqB;AAEtF,SAAgB,kBAAkB,KAA8B;CAC9D,QAAQ,KAAK,GAAG;AAClB;AAEA,SAAgB,uBAA0C;CACxD,MAAM,MAAM,OAAO,KAAK,IAAI;CAC5B,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,2CAA2C;CAC7D,OAAO;AACT;AAEA,SAAgB,sBAAsB,KAAkC;CACtE,QAAQ,UAAU,GAAG;AACvB;AAEA,SAAgB,2BAAkD;CAChE,MAAM,MAAM,OAAO,UAAU,IAAI;CACjC,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,mEAAmE;CACrF,OAAO;AACT"}
|