@xihan-ui/vue 1.0.0-alpha.3 → 1.1.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 +2316 -0
- package/README.md +1 -1
- 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 +1 -1
- 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/calendar.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/carousel.d.ts +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 +5 -5
- 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 +10 -1
- 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 +4 -4
- package/dist/components/combobox/combobox.d.ts.map +1 -1
- package/dist/components/combobox/combobox.js +12 -5
- 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 +2 -2
- 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 +4 -4
- 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 +79 -43
- 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/descriptions/descriptions.d.ts +1 -1
- package/dist/components/dialog/context.js +1 -1
- package/dist/components/dialog/context.js.map +1 -1
- package/dist/components/drawer/context.js +1 -1
- package/dist/components/drawer/context.js.map +1 -1
- 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 +1 -1
- 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/form/form.d.ts +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 +1 -1
- 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 +1 -1
- 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/listbox/listbox.d.ts +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 +4 -4
- 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 +2 -2
- 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 +59 -5
- 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 +3 -3
- 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 +2 -2
- package/dist/components/popconfirm/context.js +1 -1
- package/dist/components/popconfirm/context.js.map +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.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 +2 -2
- package/dist/components/popselect/popselect.d.ts.map +1 -1
- package/dist/components/popselect/popselect.js +5 -2
- 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/resizable/context.d.ts +7 -0
- package/dist/components/resizable/context.d.ts.map +1 -0
- package/dist/components/resizable/context.js +15 -0
- package/dist/components/resizable/context.js.map +1 -0
- package/dist/components/resizable/resizable.d.ts +174 -0
- package/dist/components/resizable/resizable.d.ts.map +1 -0
- package/dist/components/resizable/resizable.js +108 -0
- package/dist/components/resizable/resizable.js.map +1 -0
- package/dist/components/resizable/use-resizable.d.ts +14 -0
- package/dist/components/resizable/use-resizable.d.ts.map +1 -0
- package/dist/components/resizable/use-resizable.js +25 -0
- package/dist/components/resizable/use-resizable.js.map +1 -0
- 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 +2 -2
- package/dist/components/sortable/context.d.ts +7 -0
- package/dist/components/sortable/context.d.ts.map +1 -0
- package/dist/components/sortable/context.js +15 -0
- package/dist/components/sortable/context.js.map +1 -0
- package/dist/components/sortable/sortable.d.ts +166 -0
- package/dist/components/sortable/sortable.d.ts.map +1 -0
- package/dist/components/sortable/sortable.js +128 -0
- package/dist/components/sortable/sortable.js.map +1 -0
- package/dist/components/sortable/use-sortable.d.ts +14 -0
- package/dist/components/sortable/use-sortable.d.ts.map +1 -0
- package/dist/components/sortable/use-sortable.js +26 -0
- package/dist/components/sortable/use-sortable.js.map +1 -0
- 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 +1 -1
- package/dist/components/switch/switch.d.ts +1 -1
- package/dist/components/table/context.js +4 -4
- package/dist/components/table/context.js.map +1 -1
- package/dist/components/table/table.d.ts +108 -5
- package/dist/components/table/table.d.ts.map +1 -1
- package/dist/components/table/table.js +94 -8
- 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 +4 -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 +48 -3
- package/dist/components/tabs/tabs.d.ts.map +1 -1
- package/dist/components/tabs/tabs.js +45 -3
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/tabs/use-tabs.d.ts +1 -1
- package/dist/components/tabs/use-tabs.d.ts.map +1 -1
- package/dist/components/tabs/use-tabs.js +3 -2
- package/dist/components/tabs/use-tabs.js.map +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 +4 -4
- 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 +2 -2
- package/dist/components/text-field/text-field.d.ts.map +1 -1
- package/dist/components/text-field/text-field.js +9 -4
- 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 +4 -4
- 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 +4 -4
- 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 +2 -14
- 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 +1 -1
- 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 +66 -2
- package/dist/components/tree/tree.d.ts.map +1 -1
- package/dist/components/tree/tree.js +54 -3
- package/dist/components/tree/tree.js.map +1 -1
- package/dist/components/tree/use-tree.d.ts +1 -1
- package/dist/components/tree/use-tree.d.ts.map +1 -1
- package/dist/components/tree/use-tree.js +3 -2
- package/dist/components/tree/use-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 +4 -4
- 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 +25 -12
- package/dist/index.js +24 -11
- 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 +19 -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":"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,8 +77,8 @@ 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
83
|
open: boolean;
|
|
84
84
|
defaultOpen: boolean;
|
|
@@ -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"}
|
|
@@ -133,15 +133,15 @@ declare const XhTourRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
133
133
|
defaultOpen: boolean;
|
|
134
134
|
translations: Partial<import("@xihan-ui/headless").TourTranslations> | undefined;
|
|
135
135
|
offset: number;
|
|
136
|
-
steps: TourStep[];
|
|
137
136
|
placement: Placement;
|
|
137
|
+
steps: TourStep[];
|
|
138
138
|
closeOnEscape: boolean;
|
|
139
139
|
closeOnInteractOutside: boolean;
|
|
140
140
|
step: number;
|
|
141
|
+
autoScroll: boolean;
|
|
141
142
|
defaultStep: number;
|
|
142
143
|
showBackdrop: boolean;
|
|
143
144
|
spotlightPadding: number;
|
|
144
|
-
autoScroll: boolean;
|
|
145
145
|
}, SlotsType<{
|
|
146
146
|
default?: (props: TourRootSlotProps) => VNode[];
|
|
147
147
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -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;
|
|
@@ -53,6 +62,17 @@ declare const XhTreeRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
53
62
|
type: PropType<Direction>;
|
|
54
63
|
default: undefined;
|
|
55
64
|
};
|
|
65
|
+
/** 节点可以拖着搬家。整个节点都是拖动源,不另出把手。 */
|
|
66
|
+
nodeDraggable: BooleanConstructor;
|
|
67
|
+
/** 这一次搬家许不许。收到的是折算好的落点(搬到哪个父下面的第几位)。不给即都许。 */
|
|
68
|
+
allowDrop: {
|
|
69
|
+
type: PropType<TreeProps["allowDrop"]>;
|
|
70
|
+
default: undefined;
|
|
71
|
+
};
|
|
72
|
+
translations: {
|
|
73
|
+
type: PropType<TreeProps["translations"]>;
|
|
74
|
+
default: undefined;
|
|
75
|
+
};
|
|
56
76
|
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
57
77
|
[key: string]: any;
|
|
58
78
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
@@ -60,6 +80,7 @@ declare const XhTreeRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
60
80
|
'update:expandedValue': (_value: PayloadOf<TreeProps, "onExpandedChange">["value"]) => true;
|
|
61
81
|
'selection-change': (_details: PayloadOf<TreeProps, "onSelectionChange">) => true;
|
|
62
82
|
'update:selection': (_value: PayloadOf<TreeProps, "onSelectionChange">["value"]) => true;
|
|
83
|
+
'node-move': (_move: PayloadOf<TreeProps, "onNodeMove">) => true;
|
|
63
84
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
64
85
|
collection: {
|
|
65
86
|
type: PropType<TreeNode[]>;
|
|
@@ -81,6 +102,15 @@ declare const XhTreeRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
81
102
|
type: PropType<string[]>;
|
|
82
103
|
default: undefined;
|
|
83
104
|
};
|
|
105
|
+
multiple: {
|
|
106
|
+
type: BooleanConstructor;
|
|
107
|
+
default: undefined;
|
|
108
|
+
};
|
|
109
|
+
/** 末端那一层怎么排,默认 vertical;horizontal 让子节点全是叶子的那层并排铺开。 */
|
|
110
|
+
leafOrientation: {
|
|
111
|
+
type: PropType<TreeProps["leafOrientation"]>;
|
|
112
|
+
default: undefined;
|
|
113
|
+
};
|
|
84
114
|
selectionMode: {
|
|
85
115
|
type: PropType<TreeSelectionMode>;
|
|
86
116
|
default: undefined;
|
|
@@ -107,24 +137,41 @@ declare const XhTreeRoot: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
107
137
|
type: PropType<Direction>;
|
|
108
138
|
default: undefined;
|
|
109
139
|
};
|
|
140
|
+
/** 节点可以拖着搬家。整个节点都是拖动源,不另出把手。 */
|
|
141
|
+
nodeDraggable: BooleanConstructor;
|
|
142
|
+
/** 这一次搬家许不许。收到的是折算好的落点(搬到哪个父下面的第几位)。不给即都许。 */
|
|
143
|
+
allowDrop: {
|
|
144
|
+
type: PropType<TreeProps["allowDrop"]>;
|
|
145
|
+
default: undefined;
|
|
146
|
+
};
|
|
147
|
+
translations: {
|
|
148
|
+
type: PropType<TreeProps["translations"]>;
|
|
149
|
+
default: undefined;
|
|
150
|
+
};
|
|
110
151
|
}>> & Readonly<{
|
|
111
152
|
"onExpanded-change"?: ((_details: import("@xihan-ui/headless").TreeExpandedChangeDetails) => any) | undefined;
|
|
112
153
|
"onUpdate:expandedValue"?: ((_value: string[]) => any) | undefined;
|
|
113
154
|
"onSelection-change"?: ((_details: import("@xihan-ui/headless").TreeSelectionChangeDetails) => any) | undefined;
|
|
114
155
|
"onUpdate:selection"?: ((_value: string[]) => any) | undefined;
|
|
156
|
+
"onNode-move"?: ((_move: import("@xihan-ui/headless").TreeMove) => any) | undefined;
|
|
115
157
|
}>, {
|
|
158
|
+
multiple: boolean;
|
|
116
159
|
collection: TreeNode[];
|
|
117
160
|
dir: Direction;
|
|
118
161
|
disabled: boolean;
|
|
119
|
-
|
|
162
|
+
translations: Partial<import("@xihan-ui/headless").TreeTranslations> | undefined;
|
|
120
163
|
loop: boolean;
|
|
164
|
+
selectionMode: TreeSelectionMode;
|
|
121
165
|
checkedStrategy: import("@xihan-ui/behavior").CascadeStrategy | undefined;
|
|
122
166
|
cascade: boolean;
|
|
123
167
|
typeahead: boolean;
|
|
168
|
+
allowDrop: ((move: import("@xihan-ui/headless").TreeMove) => boolean) | undefined;
|
|
124
169
|
expandedValue: string[];
|
|
125
170
|
defaultExpandedValue: string[];
|
|
126
171
|
selection: string[];
|
|
127
172
|
defaultSelection: string[];
|
|
173
|
+
leafOrientation: import("@xihan-ui/kernel").Orientation | undefined;
|
|
174
|
+
nodeDraggable: boolean;
|
|
128
175
|
expandOnClick: boolean;
|
|
129
176
|
}, SlotsType<{
|
|
130
177
|
default?: (props: TreeRootSlotProps) => VNode[];
|
|
@@ -135,6 +182,15 @@ declare const XhTreeLabel: import("vue").DefineComponent<{}, () => VNode<import(
|
|
|
135
182
|
declare const XhTreeTree: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
136
183
|
[key: string]: any;
|
|
137
184
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
185
|
+
/**
|
|
186
|
+
* 拖动过程的读屏播报区,视觉上不可见。
|
|
187
|
+
*
|
|
188
|
+
* 放在 root 里、与 tree 部件平级。它必须在拖动开始**之前**就在 DOM 上——
|
|
189
|
+
* 读屏不播报后插入的节点,等到拾起才渲出来等于没有。
|
|
190
|
+
*/
|
|
191
|
+
declare const XhTreeLiveRegion: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
192
|
+
[key: string]: any;
|
|
193
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
138
194
|
declare const XhTreeItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
139
195
|
value: {
|
|
140
196
|
type: StringConstructor;
|
|
@@ -151,6 +207,14 @@ declare const XhTreeItem: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
151
207
|
declare const XhTreeItemText: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
152
208
|
[key: string]: any;
|
|
153
209
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
210
|
+
/**
|
|
211
|
+
* 节点拖拽把手。放在节点里,自带 touch-action: none,按下即拖,不等激活距离。
|
|
212
|
+
* 对读屏隐藏、也不占 Tab 位;键盘搬家由树上的 Alt + 方向键承担。
|
|
213
|
+
* 整个节点起手那一路照旧可用,把手是叠加的第二个入口。
|
|
214
|
+
*/
|
|
215
|
+
declare const XhTreeNodeDragTrigger: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
216
|
+
[key: string]: any;
|
|
217
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
154
218
|
declare const XhTreeItemCheckbox: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
155
219
|
[key: string]: any;
|
|
156
220
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -189,5 +253,5 @@ declare const XhTreeBranchContent: import("vue").DefineComponent<{}, () => VNode
|
|
|
189
253
|
[key: string]: any;
|
|
190
254
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
191
255
|
//#endregion
|
|
192
|
-
export { TreeRootSlotProps, XhTreeBranch, XhTreeBranchCheckbox, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeItem, XhTreeItemCheckbox, XhTreeItemIndicator, XhTreeItemText, XhTreeLabel, XhTreeRoot, XhTreeTree };
|
|
256
|
+
export { TreeRootSlotProps, XhTreeBranch, XhTreeBranchCheckbox, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeItem, XhTreeItemCheckbox, XhTreeItemIndicator, XhTreeItemText, XhTreeLabel, XhTreeLiveRegion, XhTreeNodeDragTrigger, XhTreeRoot, XhTreeTree };
|
|
193
257
|
//# sourceMappingURL=tree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","names":[],"sources":["../../../src/components/tree/tree.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"tree.d.ts","names":[],"sources":["../../../src/components/tree/tree.ts"],"mappings":";;;;;KAUK,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;;;;;;;IAID,MAAA,SAAS;;;;IACR,MAAA,SAAS;;;;;;EAIX,oBAAA,UAAA,UAAU;EACP,yBAAA,QAAA,UAAU;EACZ,qBAAA,UAAA,UAAU;EACZ,qBAAA,QAAA,UAAU;EAElB,cAAA,OAAA,UAAU;;;IA7BF,MAAA,SAAS;;;;IACN,MAAA;;;;IACO,MAAA;;;;IACX,MAAA;;;;IACO,MAAA;;;;;;;;;IAGA,MAAA,SAAS;;;;IACX,MAAA,SAAS;;;;;IAEP,MAAA,SAAS;;;;;;;;;;;;;;;;;IAKrB,MAAA,SAAS;;;;;;;IAID,MAAA,SAAS;;;;IACR,MAAA,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY/B,WAAC,OAAO,sBAAsB;kCA6B1C;cAEW,2BAAW,0BAAA,oBAAA,4BAAA;;8BAMtB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,0BAAU,0BAAA,oBAAA,4BAAA;;8BAMrB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;;;;;;;cAQW,gCAAgB,0BAAA,oBAAA,4BAAA;;8BAU3B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,0BAAU,8BAAA;;;;;;;;;;;;MAiBrB,oDAAA;cAEW,8BAAc,0BAAA,oBAAA,4BAAA;;8BAOzB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;;;;;;cAOW,qCAAqB,0BAAA,oBAAA,4BAAA;;8BAOhC,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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { withXhConfig } from "../../config/config.js";
|
|
1
2
|
import { provideTree, provideTreeNode, useTreeContext, useTreeNodeContext } from "./context.js";
|
|
2
3
|
import { useTree } from "./use-tree.js";
|
|
3
4
|
import { computed, defineComponent, h, onBeforeUnmount, ref, watch } from "vue";
|
|
@@ -42,6 +43,15 @@ const XhTreeRoot = defineComponent({
|
|
|
42
43
|
type: Array,
|
|
43
44
|
default: void 0
|
|
44
45
|
},
|
|
46
|
+
multiple: {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
default: void 0
|
|
49
|
+
},
|
|
50
|
+
/** 末端那一层怎么排,默认 vertical;horizontal 让子节点全是叶子的那层并排铺开。 */
|
|
51
|
+
leafOrientation: {
|
|
52
|
+
type: String,
|
|
53
|
+
default: void 0
|
|
54
|
+
},
|
|
45
55
|
selectionMode: {
|
|
46
56
|
type: String,
|
|
47
57
|
default: void 0
|
|
@@ -67,13 +77,25 @@ const XhTreeRoot = defineComponent({
|
|
|
67
77
|
dir: {
|
|
68
78
|
type: String,
|
|
69
79
|
default: void 0
|
|
80
|
+
},
|
|
81
|
+
/** 节点可以拖着搬家。整个节点都是拖动源,不另出把手。 */
|
|
82
|
+
nodeDraggable: Boolean,
|
|
83
|
+
/** 这一次搬家许不许。收到的是折算好的落点(搬到哪个父下面的第几位)。不给即都许。 */
|
|
84
|
+
allowDrop: {
|
|
85
|
+
type: Function,
|
|
86
|
+
default: void 0
|
|
87
|
+
},
|
|
88
|
+
translations: {
|
|
89
|
+
type: Object,
|
|
90
|
+
default: void 0
|
|
70
91
|
}
|
|
71
92
|
},
|
|
72
93
|
emits: {
|
|
73
94
|
"expanded-change": (_details) => true,
|
|
74
95
|
"update:expandedValue": (_value) => true,
|
|
75
96
|
"selection-change": (_details) => true,
|
|
76
|
-
"update:selection": (_value) => true
|
|
97
|
+
"update:selection": (_value) => true,
|
|
98
|
+
"node-move": (_move) => true
|
|
77
99
|
},
|
|
78
100
|
slots: Object,
|
|
79
101
|
setup(props, { slots, emit }) {
|
|
@@ -85,7 +107,10 @@ const XhTreeRoot = defineComponent({
|
|
|
85
107
|
emit("selection-change", details);
|
|
86
108
|
emit("update:selection", details.value);
|
|
87
109
|
};
|
|
88
|
-
const
|
|
110
|
+
const onNodeMove = (move) => {
|
|
111
|
+
emit("node-move", move);
|
|
112
|
+
};
|
|
113
|
+
const ctx = useTree(withXhConfig("tree", props), onExpandedChange, onSelectionChange, onNodeMove);
|
|
89
114
|
provideTree(ctx);
|
|
90
115
|
return () => h("div", ctx.api.value.getRootProps(), slots.default?.({
|
|
91
116
|
visibleNodes: ctx.api.value.visibleNodes,
|
|
@@ -115,6 +140,19 @@ const XhTreeTree = defineComponent({
|
|
|
115
140
|
return () => h("div", ctx.api.value.getTreeProps(), slots.default?.());
|
|
116
141
|
}
|
|
117
142
|
});
|
|
143
|
+
/**
|
|
144
|
+
* 拖动过程的读屏播报区,视觉上不可见。
|
|
145
|
+
*
|
|
146
|
+
* 放在 root 里、与 tree 部件平级。它必须在拖动开始**之前**就在 DOM 上——
|
|
147
|
+
* 读屏不播报后插入的节点,等到拾起才渲出来等于没有。
|
|
148
|
+
*/
|
|
149
|
+
const XhTreeLiveRegion = defineComponent({
|
|
150
|
+
name: "XhTreeLiveRegion",
|
|
151
|
+
setup() {
|
|
152
|
+
const ctx = useTreeContext();
|
|
153
|
+
return () => h("div", ctx.api.value.getLiveRegionProps(), ctx.service.context.get("announcement"));
|
|
154
|
+
}
|
|
155
|
+
});
|
|
118
156
|
const XhTreeItem = defineComponent({
|
|
119
157
|
name: "XhTreeItem",
|
|
120
158
|
props: { value: {
|
|
@@ -141,6 +179,19 @@ const XhTreeItemText = defineComponent({
|
|
|
141
179
|
return () => h("span", ctx.api.value.getItemTextProps(node.value), slots.default?.());
|
|
142
180
|
}
|
|
143
181
|
});
|
|
182
|
+
/**
|
|
183
|
+
* 节点拖拽把手。放在节点里,自带 touch-action: none,按下即拖,不等激活距离。
|
|
184
|
+
* 对读屏隐藏、也不占 Tab 位;键盘搬家由树上的 Alt + 方向键承担。
|
|
185
|
+
* 整个节点起手那一路照旧可用,把手是叠加的第二个入口。
|
|
186
|
+
*/
|
|
187
|
+
const XhTreeNodeDragTrigger = defineComponent({
|
|
188
|
+
name: "XhTreeNodeDragTrigger",
|
|
189
|
+
setup(_, { slots }) {
|
|
190
|
+
const ctx = useTreeContext();
|
|
191
|
+
const { node } = useTreeNodeContext();
|
|
192
|
+
return () => h("span", ctx.api.value.getNodeDragTriggerProps(node.value), slots.default?.());
|
|
193
|
+
}
|
|
194
|
+
});
|
|
144
195
|
const XhTreeItemCheckbox = defineComponent({
|
|
145
196
|
name: "XhTreeItemCheckbox",
|
|
146
197
|
setup(_, { slots }) {
|
|
@@ -224,6 +275,6 @@ const XhTreeBranchContent = defineComponent({
|
|
|
224
275
|
}
|
|
225
276
|
});
|
|
226
277
|
//#endregion
|
|
227
|
-
export { XhTreeBranch, XhTreeBranchCheckbox, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeItem, XhTreeItemCheckbox, XhTreeItemIndicator, XhTreeItemText, XhTreeLabel, XhTreeRoot, XhTreeTree };
|
|
278
|
+
export { XhTreeBranch, XhTreeBranchCheckbox, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeItem, XhTreeItemCheckbox, XhTreeItemIndicator, XhTreeItemText, XhTreeLabel, XhTreeLiveRegion, XhTreeNodeDragTrigger, XhTreeRoot, XhTreeTree };
|
|
228
279
|
|
|
229
280
|
//# sourceMappingURL=tree.js.map
|
|
@@ -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 { withXhConfig } from '../../config/config'\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 nodeDraggable: Boolean,\n /** 这一次搬家许不许。收到的是折算好的落点(搬到哪个父下面的第几位)。不给即都许。 */\n allowDrop: { type: Function as PropType<TreeProps['allowDrop']>, default: undefined },\n translations: { type: Object as PropType<TreeProps['translations']>, 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 // 搬家是通知,节点顺序的真源在使用者的数据里,故没有配对的 update:*\n 'node-move': (_move: PayloadOf<TreeProps, 'onNodeMove'>) => 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 onNodeMove: TreeProps['onNodeMove'] = (move) => {\n emit('node-move', move)\n }\n const ctx = useTree(withXhConfig('tree', props) as TreeProps, onExpandedChange, onSelectionChange, onNodeMove)\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\n/**\n * 拖动过程的读屏播报区,视觉上不可见。\n *\n * 放在 root 里、与 tree 部件平级。它必须在拖动开始**之前**就在 DOM 上——\n * 读屏不播报后插入的节点,等到拾起才渲出来等于没有。\n */\nexport const XhTreeLiveRegion = defineComponent({\n name: 'XhTreeLiveRegion',\n setup() {\n const ctx = useTreeContext()\n return () => h(\n 'div',\n ctx.api.value.getLiveRegionProps() as Record<string, unknown>,\n ctx.service.context.get('announcement'),\n )\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\n/**\n * 节点拖拽把手。放在节点里,自带 touch-action: none,按下即拖,不等激活距离。\n * 对读屏隐藏、也不占 Tab 位;键盘搬家由树上的 Alt + 方向键承担。\n * 整个节点起手那一路照旧可用,把手是叠加的第二个入口。\n */\nexport const XhTreeNodeDragTrigger = defineComponent({\n name: 'XhTreeNodeDragTrigger',\n setup(_, { slots }) {\n const ctx = useTreeContext()\n const { node } = useTreeNodeContext()\n return () => h('span', ctx.api.value.getNodeDragTriggerProps(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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"}
|
|
@@ -7,7 +7,7 @@ interface TreeContext {
|
|
|
7
7
|
/** 机器实例,供部件上报 DOM 侧的事实(如节点卸载带走了焦点)。 */
|
|
8
8
|
service: Service<TreeSchema>;
|
|
9
9
|
}
|
|
10
|
-
declare function useTree(props: TreeSchema['props'], onExpandedChange?: TreeSchema['props']['onExpandedChange'], onSelectionChange?: TreeSchema['props']['onSelectionChange']): TreeContext;
|
|
10
|
+
declare function useTree(props: TreeSchema['props'], onExpandedChange?: TreeSchema['props']['onExpandedChange'], onSelectionChange?: TreeSchema['props']['onSelectionChange'], onNodeMove?: TreeSchema['props']['onNodeMove']): TreeContext;
|
|
11
11
|
//#endregion
|
|
12
12
|
export { TreeContext, useTree };
|
|
13
13
|
//# sourceMappingURL=use-tree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tree.d.ts","names":[],"sources":["../../../src/components/tree/use-tree.ts"],"mappings":";;;;UAUiB;EACf,KAAK,YAAY;;EAEjB,SAAS,QAAQ;;iBAGH,QACd,OAAO,qBACP,mBAAmB,yCACnB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"use-tree.d.ts","names":[],"sources":["../../../src/components/tree/use-tree.ts"],"mappings":";;;;UAUiB;EACf,KAAK,YAAY;;EAEjB,SAAS,QAAQ;;iBAGH,QACd,OAAO,qBACP,mBAAmB,yCACnB,oBAAoB,0CACpB,aAAa,oCACZ"}
|
|
@@ -5,11 +5,12 @@ import { computed } from "vue";
|
|
|
5
5
|
import { connectTree, treeMachine } from "@xihan-ui/headless";
|
|
6
6
|
import { createScope } from "@xihan-ui/kernel";
|
|
7
7
|
//#region src/components/tree/use-tree.ts
|
|
8
|
-
function useTree(props, onExpandedChange, onSelectionChange) {
|
|
8
|
+
function useTree(props, onExpandedChange, onSelectionChange, onNodeMove) {
|
|
9
9
|
const service = useMachine(treeMachine, () => ({
|
|
10
10
|
...props,
|
|
11
11
|
onExpandedChange,
|
|
12
|
-
onSelectionChange
|
|
12
|
+
onSelectionChange,
|
|
13
|
+
onNodeMove
|
|
13
14
|
}), createScope(null, createVueIdGenerator()));
|
|
14
15
|
return {
|
|
15
16
|
api: computed(() => connectTree(service, vueNormalize)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tree.js","names":[],"sources":["../../../src/components/tree/use-tree.ts"],"sourcesContent":["import type { TreeApi, TreeSchema } from '@xihan-ui/headless'\nimport type { Service } from '@xihan-ui/machine'\nimport type { ComputedRef } from 'vue'\nimport { connectTree, treeMachine } from '@xihan-ui/headless'\nimport { createScope } from '@xihan-ui/kernel'\nimport { computed } from 'vue'\nimport { vueNormalize } from '../../runtime/normalize-props'\nimport { useMachine } from '../../runtime/use-machine'\nimport { createVueIdGenerator } from '../../runtime/vue-id'\n\nexport interface TreeContext {\n api: ComputedRef<TreeApi>\n /** 机器实例,供部件上报 DOM 侧的事实(如节点卸载带走了焦点)。 */\n service: Service<TreeSchema>\n}\n\nexport function useTree(\n props: TreeSchema['props'],\n onExpandedChange?: TreeSchema['props']['onExpandedChange'],\n onSelectionChange?: TreeSchema['props']['onSelectionChange'],\n): TreeContext {\n const idGen = createVueIdGenerator()\n const scope = createScope(null, idGen)\n // 连打检索缓冲存在机器的 refs 里,适配器不必注入 refs\n const service = useMachine(treeMachine
|
|
1
|
+
{"version":3,"file":"use-tree.js","names":[],"sources":["../../../src/components/tree/use-tree.ts"],"sourcesContent":["import type { TreeApi, TreeSchema } from '@xihan-ui/headless'\nimport type { Service } from '@xihan-ui/machine'\nimport type { ComputedRef } from 'vue'\nimport { connectTree, treeMachine } from '@xihan-ui/headless'\nimport { createScope } from '@xihan-ui/kernel'\nimport { computed } from 'vue'\nimport { vueNormalize } from '../../runtime/normalize-props'\nimport { useMachine } from '../../runtime/use-machine'\nimport { createVueIdGenerator } from '../../runtime/vue-id'\n\nexport interface TreeContext {\n api: ComputedRef<TreeApi>\n /** 机器实例,供部件上报 DOM 侧的事实(如节点卸载带走了焦点)。 */\n service: Service<TreeSchema>\n}\n\nexport function useTree(\n props: TreeSchema['props'],\n onExpandedChange?: TreeSchema['props']['onExpandedChange'],\n onSelectionChange?: TreeSchema['props']['onSelectionChange'],\n onNodeMove?: TreeSchema['props']['onNodeMove'],\n): TreeContext {\n const idGen = createVueIdGenerator()\n const scope = createScope(null, idGen)\n // 连打检索缓冲存在机器的 refs 里,适配器不必注入 refs\n const service = useMachine(\n treeMachine,\n () => ({ ...props, onExpandedChange, onSelectionChange, onNodeMove }),\n scope,\n )\n const api = computed(() => connectTree(service, vueNormalize))\n return { api, service }\n}\n"],"mappings":";;;;;;;AAgBA,SAAgB,QACd,OACA,kBACA,mBACA,YACa;CAIb,MAAM,UAAU,WACd,oBACO;EAAE,GAAG;EAAO;EAAkB;EAAmB;CAAW,IAJvD,YAAY,MADZ,qBACsB,CAK9B,CACN;CAEA,OAAO;EAAE,KADG,eAAe,YAAY,SAAS,YAAY,CACjD;EAAG;CAAQ;AACxB"}
|
|
@@ -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"}
|
|
@@ -190,25 +190,25 @@ declare const XhTreeSelectRoot: import("vue").DefineComponent<import("vue").Extr
|
|
|
190
190
|
name: string;
|
|
191
191
|
invalid: boolean;
|
|
192
192
|
label: string;
|
|
193
|
-
size: Size;
|
|
194
193
|
value: string | string[];
|
|
195
194
|
multiple: boolean;
|
|
196
195
|
collection: TreeNode[];
|
|
197
196
|
defaultValue: string | string[];
|
|
198
197
|
dir: Direction;
|
|
199
198
|
tone: Tone;
|
|
199
|
+
size: Size;
|
|
200
200
|
disabled: boolean;
|
|
201
201
|
open: boolean;
|
|
202
202
|
defaultOpen: boolean;
|
|
203
203
|
translations: Partial<import("@xihan-ui/headless").TreeSelectTranslations> | undefined;
|
|
204
204
|
offset: number;
|
|
205
|
-
variant: ControlVariant;
|
|
206
205
|
readOnly: boolean;
|
|
206
|
+
placeholder: string;
|
|
207
207
|
loop: boolean;
|
|
208
|
+
placement: Placement;
|
|
209
|
+
variant: ControlVariant;
|
|
208
210
|
checkedStrategy: import("@xihan-ui/behavior").CascadeStrategy | undefined;
|
|
209
211
|
cascade: boolean;
|
|
210
|
-
placeholder: string;
|
|
211
|
-
placement: Placement;
|
|
212
212
|
clearable: boolean;
|
|
213
213
|
expandedValue: string[];
|
|
214
214
|
defaultExpandedValue: string[];
|