hys-ui 0.2.0 → 0.4.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 +59 -0
- package/README.md +68 -59
- package/dist/components/HysAlert/HysAlert.vue.js +5 -54
- package/dist/components/HysAlert/HysAlert2.vue.js +159 -2
- package/dist/components/HysAnimatedNumber/HysAnimatedNumber.vue.js +5 -41
- package/dist/components/HysAnimatedNumber/HysAnimatedNumber2.vue.js +146 -2
- package/dist/components/HysAutocomplete/HysAutocomplete.vue.js +2 -2
- package/dist/components/HysAutocomplete/HysAutocomplete2.vue.js +285 -273
- package/dist/components/HysAvatarGroup/HysAvatarGroup.vue.js +1 -1
- package/dist/components/HysAvatarGroup/HysAvatarGroup2.vue.js +102 -98
- package/dist/components/HysBreadcrumb/HysBreadcrumb.vue.js +1 -1
- package/dist/components/HysBreadcrumb/HysBreadcrumb2.vue.js +273 -59
- package/dist/components/HysButton/HysButton.vue.js +2 -2
- package/dist/components/HysButton/HysButton2.vue.js +227 -60
- package/dist/components/HysButtonGroup/HysButtonGroup.vue.js +7 -0
- package/dist/components/HysButtonGroup/HysButtonGroup2.vue.js +51 -0
- package/dist/components/HysCalendar/HysCalendar.vue.js +3 -3
- package/dist/components/HysCalendar/HysCalendar2.vue.js +237 -225
- package/dist/components/HysCascader/HysCascader.vue.js +2 -2
- package/dist/components/HysCascader/HysCascader2.vue.js +337 -324
- package/dist/components/HysColorPicker/HysColorPanel.vue.js +7 -0
- package/dist/components/HysColorPicker/HysColorPanel2.vue.js +238 -0
- package/dist/components/HysColorPicker/HysColorPicker.vue.js +2 -2
- package/dist/components/HysColorPicker/HysColorPicker2.vue.js +239 -217
- package/dist/components/HysCommandPalette/HysCommandPalette.vue.js +90 -76
- package/dist/components/HysContextMenu/HysContextMenu.vue.js +5 -89
- package/dist/components/HysContextMenu/HysContextMenu2.vue.js +247 -2
- package/dist/components/HysContextMenu/HysMenuPanel.vue.js +7 -0
- package/dist/components/HysContextMenu/HysMenuPanel2.vue.js +208 -0
- package/dist/components/HysContextMenu/HysMenuSlot.js +10 -0
- package/dist/components/HysDataGrid/HysDataGrid.vue.js +1 -1
- package/dist/components/HysDataGrid/HysDataGrid2.vue.js +1008 -559
- package/dist/components/HysDatePicker/HysDatePicker.vue.js +2 -0
- package/dist/components/HysDatePicker/HysDatePickerControl.vue.js +2 -2
- package/dist/components/HysDatePicker/HysDatePickerControl2.vue.js +539 -526
- package/dist/components/HysDateRangePicker/HysDateRangePicker.vue.js +5 -3
- package/dist/components/HysDrawer/HysDrawer.vue.js +1 -1
- package/dist/components/HysDrawer/HysDrawer2.vue.js +434 -84
- package/dist/components/HysEmpty/HysEmpty.vue.js +5 -41
- package/dist/components/HysEmpty/HysEmpty2.vue.js +181 -2
- package/dist/components/HysFormItem/HysFormItem.vue.js +2 -2
- package/dist/components/HysFormItem/HysFormItem2.vue.js +171 -164
- package/dist/components/HysGantt/HysGantt.vue.js +1 -1
- package/dist/components/HysGantt/HysGantt2.vue.js +810 -795
- package/dist/components/HysMention/HysMention.vue.js +1 -1
- package/dist/components/HysMention/HysMention2.vue.js +1092 -142
- package/dist/components/HysModal/HysModal.vue.js +2 -2
- package/dist/components/HysModal/HysModal2.vue.js +491 -85
- package/dist/components/HysPagination/HysPagination.vue.js +2 -2
- package/dist/components/HysPagination/HysPagination2.vue.js +243 -180
- package/dist/components/HysPopover/HysPopover.vue.js +5 -91
- package/dist/components/HysPopover/HysPopover2.vue.js +120 -2
- package/dist/components/HysProgress/HysProgress.vue.js +2 -2
- package/dist/components/HysProgress/HysProgress2.vue.js +319 -52
- package/dist/components/HysSearch/HysSearch.vue.js +5 -82
- package/dist/components/HysSearch/HysSearch2.vue.js +176 -2
- package/dist/components/HysSelect/HysSelect.vue.js +2 -2
- package/dist/components/HysSelect/HysSelect2.vue.js +755 -590
- package/dist/components/HysSlider/HysSlider.vue.js +2 -2
- package/dist/components/HysSlider/HysSlider2.vue.js +192 -188
- package/dist/components/HysSlider/SliderTooltip.vue.js +2 -2
- package/dist/components/HysSlider/SliderTooltip2.vue.js +103 -89
- package/dist/components/HysSplitPane/HysSplitPane.vue.js +315 -58
- package/dist/components/HysSplitPane/HysSplitPane3.vue.js +5 -0
- package/dist/components/HysTable/HysTable.vue.js +2 -2
- package/dist/components/HysTable/HysTable2.vue.js +1416 -1127
- package/dist/components/HysTagInput/HysTagInput.vue.js +5 -82
- package/dist/components/HysTagInput/HysTagInput2.vue.js +396 -2
- package/dist/components/HysTimeline/HysTimeline.vue.js +2 -2
- package/dist/components/HysTimeline/HysTimeline2.vue.js +243 -24
- package/dist/components/HysTooltip/HysTooltip.vue.js +5 -64
- package/dist/components/HysTooltip/HysTooltip2.vue.js +110 -2
- package/dist/components/HysTour/HysTour.vue.js +291 -63
- package/dist/components/HysTour/HysTour3.vue.js +5 -0
- package/dist/components/HysTransfer/HysTransfer.vue.js +2 -2
- package/dist/components/HysTransfer/HysTransfer2.vue.js +237 -207
- package/dist/components/HysTransfer/HysTransferPanel.vue.js +1 -1
- package/dist/components/HysTransfer/HysTransferPanel2.vue.js +320 -271
- package/dist/components/HysTree/HysTree.vue.js +2 -2
- package/dist/components/HysTree/HysTree2.vue.js +195 -184
- package/dist/components/HysTreeSelect/HysTreeSelect.vue.js +4 -4
- package/dist/components/HysTreeSelect/HysTreeSelect2.vue.js +389 -377
- package/dist/components/HysUpload/HysUpload.vue.js +2 -2
- package/dist/components/HysUpload/HysUpload2.vue.js +459 -125
- package/dist/components/HysVirtualTable/HysVirtualTable.vue.js +5 -94
- package/dist/components/HysVirtualTable/HysVirtualTable2.vue.js +656 -2
- package/dist/composables/buttonGroup.js +12 -0
- package/dist/composables/color.js +97 -0
- package/dist/composables/dataGrid.js +68 -0
- package/dist/composables/drawer.js +17 -0
- package/dist/composables/feedback.js +14 -0
- package/dist/composables/floatingPosition.js +18 -0
- package/dist/composables/mentionDocument.js +79 -0
- package/dist/composables/mentionEditor.js +58 -0
- package/dist/composables/menu.js +96 -0
- package/dist/composables/modal.js +14 -0
- package/dist/composables/overlayManager.js +48 -18
- package/dist/composables/progress.js +94 -0
- package/dist/composables/selectOptions.js +44 -38
- package/dist/composables/splitPaneSizes.js +58 -0
- package/dist/composables/table.js +128 -105
- package/dist/composables/tagInput.js +16 -0
- package/dist/composables/timeline.js +19 -0
- package/dist/composables/transfer.js +19 -17
- package/dist/composables/upload.js +55 -0
- package/dist/composables/uploadRequest.js +58 -0
- package/dist/composables/useAlert.js +124 -0
- package/dist/composables/useColorPicker.js +402 -0
- package/dist/composables/useContextMenu.js +514 -0
- package/dist/composables/useDataGridRemote.js +67 -0
- package/dist/composables/useDialog.js +86 -43
- package/dist/composables/useDrawerPush.js +33 -0
- package/dist/composables/useDrawerResize.js +221 -0
- package/dist/composables/useFloating.js +118 -80
- package/dist/composables/useHysModal.js +185 -0
- package/dist/composables/useMentionCaret.js +81 -0
- package/dist/composables/useMentionList.js +81 -0
- package/dist/composables/useMentionModel.js +90 -0
- package/dist/composables/useMentionOptions.js +421 -0
- package/dist/composables/useModal.js +295 -0
- package/dist/composables/useModalInteraction.js +394 -0
- package/dist/composables/usePopupSurface.js +458 -0
- package/dist/composables/useSplitPaneDrag.js +52 -0
- package/dist/composables/useSplitPaneStorage.js +38 -0
- package/dist/composables/useTable.js +344 -312
- package/dist/composables/useTableSticky.js +79 -0
- package/dist/composables/useTagInput.js +313 -0
- package/dist/composables/useTourLayout.js +129 -0
- package/dist/composables/useTransferMotion.js +185 -0
- package/dist/composables/useUpload.js +472 -0
- package/dist/composables/useUploadModel.js +65 -0
- package/dist/composables/useUploadRequests.js +266 -0
- package/dist/composables/useVirtualTableLayout.js +277 -0
- package/dist/composables/virtualTable.js +43 -0
- package/dist/config.js +11 -11
- package/dist/index.js +175 -153
- package/dist/internal/MultiSplitPane.vue.js +305 -0
- package/dist/internal/MultiSplitPane2.vue.js +4 -0
- package/dist/internal/PopupReference.js +39 -0
- package/dist/internal/PopupSurfacePanel.vue.js +7 -0
- package/dist/internal/PopupSurfacePanel2.vue.js +92 -0
- package/dist/motion/PopupMotion.js +105 -0
- package/dist/motion/popup.js +10 -0
- package/dist/style.css +1 -1
- package/dist/types/components/HysAlert/HysAlert.vue.d.ts +32 -22
- package/dist/types/components/HysAnimatedNumber/HysAnimatedNumber.vue.d.ts +61 -7
- package/dist/types/components/HysAutocomplete/HysAutocomplete.vue.d.ts +7 -7
- package/dist/types/components/HysAvatarGroup/HysAvatarGroup.vue.d.ts +6 -1
- package/dist/types/components/HysBadge/HysBadge.vue.d.ts +3 -3
- package/dist/types/components/HysBreadcrumb/HysBreadcrumb.vue.d.ts +54 -31
- package/dist/types/components/HysButton/HysButton.vue.d.ts +82 -22
- package/dist/types/components/HysButtonGroup/HysButtonGroup.vue.d.ts +30 -0
- package/dist/types/components/HysCalendar/HysCalendar.vue.d.ts +3 -2
- package/dist/types/components/HysCascader/HysCascader.vue.d.ts +7 -7
- package/dist/types/components/HysCascader/HysCascaderColumn.vue.d.ts +2 -2
- package/dist/types/components/HysColorPicker/HysColorPanel.vue.d.ts +58 -0
- package/dist/types/components/HysColorPicker/HysColorPicker.vue.d.ts +63 -10
- package/dist/types/components/HysCommandPalette/HysCommandPalette.vue.d.ts +2 -1
- package/dist/types/components/HysContextMenu/HysContextMenu.vue.d.ts +50 -34
- package/dist/types/components/HysContextMenu/HysMenuPanel.vue.d.ts +79 -0
- package/dist/types/components/HysContextMenu/HysMenuSlot.d.ts +8 -0
- package/dist/types/components/HysDataGrid/HysDataGrid.vue.d.ts +65 -118
- package/dist/types/components/HysDatePicker/HysDatePickerControl.vue.d.ts +3 -3
- package/dist/types/components/HysDrawer/HysDrawer.vue.d.ts +92 -35
- package/dist/types/components/HysEmpty/HysEmpty.vue.d.ts +24 -20
- package/dist/types/components/HysFileManager/HysFileManager.vue.d.ts +2 -2
- package/dist/types/components/HysGantt/HysGantt.vue.d.ts +2 -1
- package/dist/types/components/HysMention/HysMention.vue.d.ts +91 -39
- package/dist/types/components/HysModal/HysModal.vue.d.ts +111 -34
- package/dist/types/components/HysNumberInput/HysNumberInput.vue.d.ts +2 -2
- package/dist/types/components/HysPagination/HysPagination.vue.d.ts +55 -4
- package/dist/types/components/HysPopover/HysPopover.vue.d.ts +41 -29
- package/dist/types/components/HysProgress/HysProgress.vue.d.ts +18 -24
- package/dist/types/components/HysRating/HysRating.vue.d.ts +1 -1
- package/dist/types/components/HysResizablePanel/HysResizablePanel.vue.d.ts +2 -2
- package/dist/types/components/HysSearch/HysSearch.vue.d.ts +45 -7
- package/dist/types/components/HysSelect/HysSelect.vue.d.ts +19 -5
- package/dist/types/components/HysSlider/HysSlider.vue.d.ts +5 -4
- package/dist/types/components/HysSlider/SliderTooltip.vue.d.ts +3 -1
- package/dist/types/components/HysSplitPane/HysSplitPane.vue.d.ts +125 -14
- package/dist/types/components/HysSteps/HysSteps.vue.d.ts +1 -1
- package/dist/types/components/HysTable/HysTable.vue.d.ts +1742 -5
- package/dist/types/components/HysTabs/HysTabs.vue.d.ts +2 -2
- package/dist/types/components/HysTagInput/HysTagInput.vue.d.ts +47 -25
- package/dist/types/components/HysTimeline/HysTimeline.vue.d.ts +19 -32
- package/dist/types/components/HysTooltip/HysTooltip.vue.d.ts +39 -19
- package/dist/types/components/HysTour/HysTour.vue.d.ts +46 -8
- package/dist/types/components/HysTransfer/HysTransfer.vue.d.ts +2 -2
- package/dist/types/components/HysTransfer/HysTransferPanel.vue.d.ts +5 -3
- package/dist/types/components/HysTree/HysTree.vue.d.ts +2 -2
- package/dist/types/components/HysUpload/HysUpload.vue.d.ts +55 -67
- package/dist/types/components/HysVirtualTable/HysVirtualTable.vue.d.ts +71 -40
- package/dist/types/composables/autocomplete.d.ts +3 -0
- package/dist/types/composables/avatar.d.ts +3 -0
- package/dist/types/composables/buttonGroup.d.ts +9 -0
- package/dist/types/composables/cascader.d.ts +3 -0
- package/dist/types/composables/color.d.ts +97 -0
- package/dist/types/composables/dataGrid.d.ts +100 -0
- package/dist/types/composables/datePicker.d.ts +3 -0
- package/dist/types/composables/drawer.d.ts +102 -0
- package/dist/types/composables/feedback.d.ts +98 -0
- package/dist/types/composables/floatingPosition.d.ts +14 -0
- package/dist/types/composables/formContext.d.ts +2 -0
- package/dist/types/composables/mention.d.ts +284 -0
- package/dist/types/composables/mentionDocument.d.ts +15 -0
- package/dist/types/composables/mentionEditor.d.ts +7 -0
- package/dist/types/composables/menu.d.ts +183 -0
- package/dist/types/composables/modal.d.ts +185 -0
- package/dist/types/composables/overlayManager.d.ts +7 -3
- package/dist/types/composables/popupSurface.d.ts +83 -0
- package/dist/types/composables/progress.d.ts +92 -0
- package/dist/types/composables/selectOptions.d.ts +7 -0
- package/dist/types/composables/splitPaneSizes.d.ts +11 -0
- package/dist/types/composables/table.d.ts +119 -6
- package/dist/types/composables/tagInput.d.ts +96 -0
- package/dist/types/composables/timeline.d.ts +82 -0
- package/dist/types/composables/tour.d.ts +68 -0
- package/dist/types/composables/transfer.d.ts +7 -0
- package/dist/types/composables/tree.d.ts +3 -0
- package/dist/types/composables/treeSelect.d.ts +3 -0
- package/dist/types/composables/upload.d.ts +202 -0
- package/dist/types/composables/uploadRequest.d.ts +3 -0
- package/dist/types/composables/useAlert.d.ts +21 -0
- package/dist/types/composables/useCascader.d.ts +1 -1
- package/dist/types/composables/useColorPicker.d.ts +101 -0
- package/dist/types/composables/useContextMenu.d.ts +81 -0
- package/dist/types/composables/useDataGridRemote.d.ts +15 -0
- package/dist/types/composables/useDialog.d.ts +16 -3
- package/dist/types/composables/useDrawerPush.d.ts +6 -0
- package/dist/types/composables/useDrawerResize.d.ts +27 -0
- package/dist/types/composables/useFloating.d.ts +22 -3
- package/dist/types/composables/useHysModal.d.ts +44 -0
- package/dist/types/composables/useMentionCaret.d.ts +6 -0
- package/dist/types/composables/useMentionList.d.ts +23 -0
- package/dist/types/composables/useMentionModel.d.ts +14 -0
- package/dist/types/composables/useMentionOptions.d.ts +26 -0
- package/dist/types/composables/useModal.d.ts +62 -0
- package/dist/types/composables/useModalInteraction.d.ts +27 -0
- package/dist/types/composables/usePopupSurface.d.ts +3341 -0
- package/dist/types/composables/useSplitPaneDrag.d.ts +14 -0
- package/dist/types/composables/useSplitPaneStorage.d.ts +4 -0
- package/dist/types/composables/useTable.d.ts +7 -3
- package/dist/types/composables/useTableSticky.d.ts +22 -0
- package/dist/types/composables/useTagInput.d.ts +66 -0
- package/dist/types/composables/useTourLayout.d.ts +33 -0
- package/dist/types/composables/useTransferMotion.d.ts +36 -0
- package/dist/types/composables/useUpload.d.ts +94 -0
- package/dist/types/composables/useUploadModel.d.ts +14 -0
- package/dist/types/composables/useUploadRequests.d.ts +38 -0
- package/dist/types/composables/useVirtualTableLayout.d.ts +51 -0
- package/dist/types/composables/virtualTable.d.ts +126 -0
- package/dist/types/config.d.ts +1 -0
- package/dist/types/index.d.ts +53 -3
- package/dist/types/internal/MultiSplitPane.vue.d.ts +54 -0
- package/dist/types/internal/PopupReference.d.ts +18 -0
- package/dist/types/internal/PopupSurfacePanel.vue.d.ts +37 -0
- package/dist/types/motion/PopupMotion.d.ts +59 -0
- package/dist/types/motion/popup.d.ts +12 -0
- package/package.json +3 -2
- package/dist/components/HysSplitPane/HysSplitPane2.vue.js +0 -4
- package/dist/components/HysTour/HysTour2.vue.js +0 -4
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { Component, CSSProperties, VNode } from "vue";
|
|
2
|
+
import type { HysButtonProps } from "../components/HysButton/HysButton.vue";
|
|
3
|
+
import type { HysPopupMotionProps } from "../motion/popup";
|
|
4
|
+
import type { Placement } from "./useFloating";
|
|
5
|
+
export type HysTourTarget = string | HTMLElement | (() => HTMLElement | null | undefined);
|
|
6
|
+
export type HysTourContent = string | VNode | (() => string | VNode);
|
|
7
|
+
export type HysTourMask = boolean | {
|
|
8
|
+
color?: string;
|
|
9
|
+
style?: CSSProperties;
|
|
10
|
+
};
|
|
11
|
+
export interface HysTourGap {
|
|
12
|
+
/** Pixels around the target, either uniform or [horizontal, vertical]. */
|
|
13
|
+
offset?: number | [number, number];
|
|
14
|
+
radius?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface HysTourButtonProps extends HysButtonProps {
|
|
17
|
+
children?: HysTourContent;
|
|
18
|
+
onClick?: (event: MouseEvent) => void;
|
|
19
|
+
}
|
|
20
|
+
export interface HysTourAppearance {
|
|
21
|
+
/** Preferred card placement; flips to the opposite side when space is limited. */
|
|
22
|
+
placement?: Placement;
|
|
23
|
+
mask?: HysTourMask;
|
|
24
|
+
gap?: HysTourGap;
|
|
25
|
+
showArrow?: boolean;
|
|
26
|
+
arrow?: boolean | {
|
|
27
|
+
pointAtCenter?: boolean;
|
|
28
|
+
};
|
|
29
|
+
type?: "default" | "primary";
|
|
30
|
+
contentStyle?: CSSProperties;
|
|
31
|
+
scrollIntoViewOptions?: boolean | ScrollIntoViewOptions;
|
|
32
|
+
targetAreaClickable?: boolean;
|
|
33
|
+
showClose?: boolean;
|
|
34
|
+
closeIcon?: string | Component;
|
|
35
|
+
prevButtonProps?: HysTourButtonProps;
|
|
36
|
+
nextButtonProps?: HysTourButtonProps;
|
|
37
|
+
}
|
|
38
|
+
export interface HysTourStep extends HysTourAppearance {
|
|
39
|
+
/** An element, CSS selector, or function returning the element. */
|
|
40
|
+
target?: HysTourTarget;
|
|
41
|
+
title?: HysTourContent;
|
|
42
|
+
description?: HysTourContent;
|
|
43
|
+
cover?: HysTourContent;
|
|
44
|
+
onClose?: () => void;
|
|
45
|
+
}
|
|
46
|
+
export interface HysTourProps extends HysPopupMotionProps, HysTourAppearance {
|
|
47
|
+
steps: readonly HysTourStep[];
|
|
48
|
+
/** Display state alias for v-model:open. */
|
|
49
|
+
open?: boolean;
|
|
50
|
+
/** Zero-based step index; supports v-model:current and external navigation. */
|
|
51
|
+
current?: number;
|
|
52
|
+
closeOnEscape?: boolean;
|
|
53
|
+
appendTo?: string | HTMLElement | false;
|
|
54
|
+
zIndex?: number;
|
|
55
|
+
skipText?: string;
|
|
56
|
+
prevText?: string;
|
|
57
|
+
nextText?: string;
|
|
58
|
+
finishText?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface HysTourContext {
|
|
61
|
+
step: HysTourStep | undefined;
|
|
62
|
+
current: number;
|
|
63
|
+
total: number;
|
|
64
|
+
goTo: (index: number) => void;
|
|
65
|
+
previous: () => void;
|
|
66
|
+
next: () => void;
|
|
67
|
+
close: () => void;
|
|
68
|
+
}
|
|
@@ -32,6 +32,8 @@ export interface HysTransferLocale {
|
|
|
32
32
|
moveLeft: string;
|
|
33
33
|
dragRight: string;
|
|
34
34
|
dragLeft: string;
|
|
35
|
+
doubleClickRight?: string;
|
|
36
|
+
doubleClickLeft?: string;
|
|
35
37
|
dragCount: string;
|
|
36
38
|
moved: string;
|
|
37
39
|
added: string;
|
|
@@ -78,7 +80,12 @@ export interface HysTransferProps<T extends object, K extends HysTransferKey> {
|
|
|
78
80
|
oneWay?: boolean;
|
|
79
81
|
draggable?: boolean;
|
|
80
82
|
dragChecked?: boolean;
|
|
83
|
+
moveOnDoubleClick?: boolean;
|
|
81
84
|
animated?: boolean;
|
|
85
|
+
moveAnimation?: "flight" | "fade" | "none";
|
|
86
|
+
moveDuration?: number;
|
|
87
|
+
maxAnimatedItems?: number;
|
|
88
|
+
highlightOnArrival?: boolean;
|
|
82
89
|
size?: "sm" | "md" | "lg";
|
|
83
90
|
listHeight?: number;
|
|
84
91
|
listStyle?: CSSProperties;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { HysPopupTransition } from '../motion/popup';
|
|
1
2
|
import type { CSSProperties, VNodeChild } from "vue";
|
|
2
3
|
export type HysTreeKey = string | number;
|
|
3
4
|
export type HysTreeValue = HysTreeKey | readonly HysTreeKey[] | null;
|
|
@@ -104,6 +105,8 @@ export interface HysTreeNodeContext<N extends object> {
|
|
|
104
105
|
leaf: boolean;
|
|
105
106
|
}
|
|
106
107
|
export interface HysTreeProps<N extends object = TreeNode, V extends HysTreeValue = HysTreeValue> {
|
|
108
|
+
popupTransition?: HysPopupTransition;
|
|
109
|
+
popupTransitionDuration?: number;
|
|
107
110
|
nodes: readonly N[];
|
|
108
111
|
modelValue?: V;
|
|
109
112
|
defaultValue?: V;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { HysPopupTransition } from '../motion/popup';
|
|
1
2
|
import type { CSSProperties, VNodeChild } from "vue";
|
|
2
3
|
import { type HysTreeKey, type HysTreeFieldNames, type HysTreeLoadContext, type HysTreeLocale } from "./tree";
|
|
3
4
|
import type { Placement } from "./useFloating";
|
|
@@ -44,6 +45,8 @@ export interface HysTreeSelectChange<N extends object = HysTreeSelectNode> {
|
|
|
44
45
|
event?: Event;
|
|
45
46
|
}
|
|
46
47
|
export interface HysTreeSelectProps<N extends object = HysTreeSelectNode, V extends HysTreeSelectValue = HysTreeSelectValue> {
|
|
48
|
+
popupTransition?: HysPopupTransition;
|
|
49
|
+
popupTransitionDuration?: number;
|
|
47
50
|
modelValue?: V;
|
|
48
51
|
defaultValue?: V;
|
|
49
52
|
nodes: readonly N[];
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import type { CSSProperties, VNodeChild } from "vue";
|
|
2
|
+
export type HysUploadStatus = "ready" | "uploading" | "success" | "error";
|
|
3
|
+
export type HysUploadListType = "text" | "picture" | "picture-card";
|
|
4
|
+
export interface HysUploadItem {
|
|
5
|
+
uid: string;
|
|
6
|
+
name: string;
|
|
7
|
+
size?: number;
|
|
8
|
+
raw?: File;
|
|
9
|
+
status?: HysUploadStatus;
|
|
10
|
+
percentage?: number;
|
|
11
|
+
response?: unknown;
|
|
12
|
+
error?: Error;
|
|
13
|
+
url?: string;
|
|
14
|
+
thumbUrl?: string;
|
|
15
|
+
type?: string;
|
|
16
|
+
relativePath?: string;
|
|
17
|
+
}
|
|
18
|
+
/** The original local-file contract remains the default generic. */
|
|
19
|
+
export interface HysUploadFile extends HysUploadItem {
|
|
20
|
+
size: number;
|
|
21
|
+
raw: File;
|
|
22
|
+
}
|
|
23
|
+
export type HysUploadChangeType = "select" | "remove" | "clear" | "reset" | "start" | "progress" | "success" | "error" | "abort" | "retry";
|
|
24
|
+
export interface HysUploadChange<T extends HysUploadItem = HysUploadFile> {
|
|
25
|
+
type: HysUploadChangeType;
|
|
26
|
+
files: readonly T[];
|
|
27
|
+
changed: readonly T[];
|
|
28
|
+
}
|
|
29
|
+
export interface HysUploadContext<T extends HysUploadItem = HysUploadFile> {
|
|
30
|
+
signal: AbortSignal;
|
|
31
|
+
files: readonly T[];
|
|
32
|
+
}
|
|
33
|
+
export interface HysUploadInvalid<T extends HysUploadItem = HysUploadFile> {
|
|
34
|
+
reason: "type" | "size" | "validation" | "identity";
|
|
35
|
+
file: File;
|
|
36
|
+
message: string;
|
|
37
|
+
files: readonly T[];
|
|
38
|
+
}
|
|
39
|
+
export interface HysUploadError extends Error {
|
|
40
|
+
status?: number;
|
|
41
|
+
response?: unknown;
|
|
42
|
+
url?: string;
|
|
43
|
+
method?: string;
|
|
44
|
+
kind?: "http" | "network" | "timeout" | "configuration" | "custom";
|
|
45
|
+
}
|
|
46
|
+
export type HysUploadDataScalar = string | number | boolean | Blob | null | undefined;
|
|
47
|
+
export type HysUploadData = Record<string, HysUploadDataScalar | readonly HysUploadDataScalar[]>;
|
|
48
|
+
export interface HysUploadRequestOptions<T extends HysUploadItem = HysUploadFile> extends HysUploadContext<T> {
|
|
49
|
+
file: T;
|
|
50
|
+
body: Blob;
|
|
51
|
+
action: string;
|
|
52
|
+
method: string;
|
|
53
|
+
name: string;
|
|
54
|
+
headers: Record<string, string>;
|
|
55
|
+
data: HysUploadData;
|
|
56
|
+
withCredentials: boolean;
|
|
57
|
+
timeout: number;
|
|
58
|
+
onProgress: (percentage: number) => void;
|
|
59
|
+
onSuccess: (response: unknown) => void;
|
|
60
|
+
onError: (error: unknown) => void;
|
|
61
|
+
}
|
|
62
|
+
export type HysUploadRequestResult = void | Promise<unknown> | (() => void) | {
|
|
63
|
+
abort?: () => void;
|
|
64
|
+
promise?: Promise<unknown>;
|
|
65
|
+
};
|
|
66
|
+
export interface HysUploadLocale {
|
|
67
|
+
choose: string;
|
|
68
|
+
drag: string;
|
|
69
|
+
checking: string;
|
|
70
|
+
localHint: string;
|
|
71
|
+
uploadHint: string;
|
|
72
|
+
files: string;
|
|
73
|
+
ready: string;
|
|
74
|
+
uploading: string;
|
|
75
|
+
success: string;
|
|
76
|
+
error: string;
|
|
77
|
+
queued: string;
|
|
78
|
+
removing: string;
|
|
79
|
+
submit: string;
|
|
80
|
+
abort: string;
|
|
81
|
+
retry: string;
|
|
82
|
+
clear: string;
|
|
83
|
+
remove: string;
|
|
84
|
+
preview: string;
|
|
85
|
+
download: string;
|
|
86
|
+
empty: string;
|
|
87
|
+
}
|
|
88
|
+
export declare const uploadLocale: HysUploadLocale;
|
|
89
|
+
export interface HysUploadProps<T extends HysUploadItem = HysUploadFile> {
|
|
90
|
+
fileList?: readonly T[];
|
|
91
|
+
modelValue?: readonly T[];
|
|
92
|
+
defaultFileList?: readonly T[];
|
|
93
|
+
defaultValue?: readonly T[];
|
|
94
|
+
accept?: string;
|
|
95
|
+
multiple?: boolean;
|
|
96
|
+
disabled?: boolean;
|
|
97
|
+
readonly?: boolean;
|
|
98
|
+
loading?: boolean;
|
|
99
|
+
limit?: number;
|
|
100
|
+
maxSize?: number;
|
|
101
|
+
drag?: boolean;
|
|
102
|
+
paste?: boolean;
|
|
103
|
+
directory?: boolean;
|
|
104
|
+
showFileList?: boolean;
|
|
105
|
+
listType?: HysUploadListType;
|
|
106
|
+
listHeight?: number | string;
|
|
107
|
+
size?: "sm" | "md" | "lg";
|
|
108
|
+
showToolbar?: boolean;
|
|
109
|
+
showPreview?: boolean;
|
|
110
|
+
showDownload?: boolean;
|
|
111
|
+
showRemove?: boolean;
|
|
112
|
+
showRetry?: boolean;
|
|
113
|
+
openFileDialogOnClick?: boolean;
|
|
114
|
+
autoUpload?: boolean;
|
|
115
|
+
concurrency?: number;
|
|
116
|
+
action?: string | ((file: T, context: HysUploadContext<T>) => string | Promise<string>);
|
|
117
|
+
method?: string;
|
|
118
|
+
name?: string;
|
|
119
|
+
headers?: Record<string, string> | ((file: T, context: HysUploadContext<T>) => Record<string, string> | Promise<Record<string, string>>);
|
|
120
|
+
data?: HysUploadData | ((file: T, context: HysUploadContext<T>) => HysUploadData | Promise<HysUploadData>);
|
|
121
|
+
withCredentials?: boolean;
|
|
122
|
+
timeout?: number;
|
|
123
|
+
customRequest?: (options: HysUploadRequestOptions<T>) => HysUploadRequestResult;
|
|
124
|
+
beforeUpload?: (file: File, context: HysUploadContext<T>) => boolean | void | File | Blob | Promise<boolean | void | File | Blob>;
|
|
125
|
+
beforeRemove?: (file: T, files: readonly T[], context: HysUploadContext<T>) => boolean | void | Promise<boolean | void>;
|
|
126
|
+
createFile?: (raw: File, uid: string) => T;
|
|
127
|
+
previewFile?: (file: T, context: HysUploadContext<T>) => string | false | Promise<string | false>;
|
|
128
|
+
downloadFile?: (file: T, context: HysUploadContext<T>) => void | boolean | string | Promise<void | boolean | string>;
|
|
129
|
+
locale?: Partial<HysUploadLocale>;
|
|
130
|
+
ariaLabel?: string;
|
|
131
|
+
triggerLabel?: string;
|
|
132
|
+
error?: string;
|
|
133
|
+
validateEvent?: boolean;
|
|
134
|
+
listStyle?: CSSProperties;
|
|
135
|
+
}
|
|
136
|
+
export interface HysUploadActions {
|
|
137
|
+
preview: () => Promise<boolean>;
|
|
138
|
+
download: () => Promise<boolean>;
|
|
139
|
+
remove: () => Promise<boolean>;
|
|
140
|
+
retry: () => Promise<boolean>;
|
|
141
|
+
abort: () => number;
|
|
142
|
+
}
|
|
143
|
+
export interface HysUploadFileContext<T extends HysUploadItem = HysUploadFile> {
|
|
144
|
+
file: T;
|
|
145
|
+
status: HysUploadStatus;
|
|
146
|
+
percentage: number;
|
|
147
|
+
queued: boolean;
|
|
148
|
+
busy: boolean;
|
|
149
|
+
actions: HysUploadActions;
|
|
150
|
+
thumbnail?: string;
|
|
151
|
+
}
|
|
152
|
+
export interface HysUploadSlotContext<T extends HysUploadItem = HysUploadFile> {
|
|
153
|
+
files: readonly T[];
|
|
154
|
+
busy: boolean;
|
|
155
|
+
disabled: boolean;
|
|
156
|
+
uploading: number;
|
|
157
|
+
queued: number;
|
|
158
|
+
open: (event?: Event) => void;
|
|
159
|
+
submit: () => Promise<number>;
|
|
160
|
+
abort: () => number;
|
|
161
|
+
clear: () => Promise<boolean>;
|
|
162
|
+
}
|
|
163
|
+
export interface HysUploadSlots<T extends HysUploadItem = HysUploadFile> {
|
|
164
|
+
default?: (scope: HysUploadSlotContext<T>) => VNodeChild;
|
|
165
|
+
trigger?: (scope: HysUploadSlotContext<T>) => VNodeChild;
|
|
166
|
+
tip?: (scope: HysUploadSlotContext<T>) => VNodeChild;
|
|
167
|
+
toolbar?: (scope: HysUploadSlotContext<T>) => VNodeChild;
|
|
168
|
+
file?: (scope: HysUploadFileContext<T>) => VNodeChild;
|
|
169
|
+
item?: (scope: HysUploadFileContext<T>) => VNodeChild;
|
|
170
|
+
empty?: (scope: HysUploadSlotContext<T>) => VNodeChild;
|
|
171
|
+
progress?: (scope: HysUploadFileContext<T>) => VNodeChild;
|
|
172
|
+
preview?: (scope: {
|
|
173
|
+
file: T;
|
|
174
|
+
url: string;
|
|
175
|
+
close: () => void;
|
|
176
|
+
}) => VNodeChild;
|
|
177
|
+
}
|
|
178
|
+
export interface HysUploadInstance<T extends HysUploadItem = HysUploadFile> {
|
|
179
|
+
readonly element: HTMLElement | undefined;
|
|
180
|
+
readonly input: HTMLInputElement | undefined;
|
|
181
|
+
readonly files: readonly T[];
|
|
182
|
+
readonly busy: boolean;
|
|
183
|
+
readonly uploading: number;
|
|
184
|
+
readonly queued: number;
|
|
185
|
+
open: (event?: Event) => void;
|
|
186
|
+
focus: () => void;
|
|
187
|
+
addFiles: (files: readonly File[]) => Promise<T[]>;
|
|
188
|
+
getFiles: () => T[];
|
|
189
|
+
clearFiles: (statuses?: readonly HysUploadStatus[]) => Promise<boolean>;
|
|
190
|
+
remove: (file: T | string) => Promise<boolean>;
|
|
191
|
+
submit: (file?: T | string) => Promise<number>;
|
|
192
|
+
retry: (file: T | string) => Promise<boolean>;
|
|
193
|
+
abort: (file?: T | string) => number;
|
|
194
|
+
preview: (file: T | string) => Promise<boolean>;
|
|
195
|
+
download: (file: T | string) => Promise<boolean>;
|
|
196
|
+
}
|
|
197
|
+
export declare const uploadStatus: (file: HysUploadItem) => HysUploadStatus;
|
|
198
|
+
export declare const uploadPercent: (file: HysUploadItem) => number;
|
|
199
|
+
export declare const uploadImage: (file: HysUploadItem) => boolean;
|
|
200
|
+
export declare function uploadSize(value?: number): string;
|
|
201
|
+
export declare function uploadFailure(error: unknown, kind?: HysUploadError["kind"]): HysUploadError;
|
|
202
|
+
export declare function uploadUrl(value: string | undefined, image?: boolean): string | undefined;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type HysUploadItem, type HysUploadRequestOptions } from "./upload";
|
|
2
|
+
/** A cancellable multipart transport. The browser supplies the multipart boundary. */
|
|
3
|
+
export declare function uploadRequest<T extends HysUploadItem>(options: HysUploadRequestOptions<T>): () => void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ComputedRef } from "vue";
|
|
2
|
+
import { type HysAlertProps, type HysAlertSlotContext } from "./feedback";
|
|
3
|
+
export declare function useAlert(props: HysAlertProps, emit: (name: string, ...args: any[]) => void): {
|
|
4
|
+
skin: ComputedRef<{
|
|
5
|
+
'data-hys-ui': string;
|
|
6
|
+
'data-hys-theme': import("..").HysTheme;
|
|
7
|
+
'data-hys-motion': import("..").HysMotion;
|
|
8
|
+
}>;
|
|
9
|
+
element: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
|
|
10
|
+
live: import("vue").Ref<boolean, boolean>;
|
|
11
|
+
visible: ComputedRef<boolean>;
|
|
12
|
+
tone: ComputedRef<import("./feedback").HysAlertTone>;
|
|
13
|
+
duration: ComputedRef<number>;
|
|
14
|
+
closing: import("vue").Ref<boolean, boolean>;
|
|
15
|
+
scope: ComputedRef<HysAlertSlotContext>;
|
|
16
|
+
close: (reason?: "button" | "api", event?: Event) => Promise<false>;
|
|
17
|
+
show: () => Promise<boolean>;
|
|
18
|
+
beforeLeave: (node: Element) => void;
|
|
19
|
+
afterLeave: (node: Element) => void;
|
|
20
|
+
restore: (node: Element) => void;
|
|
21
|
+
};
|
|
@@ -110,7 +110,7 @@ export declare function useCascader<N extends object>(props: HysCascaderProps<N>
|
|
|
110
110
|
filter: (text: string) => void;
|
|
111
111
|
clear: () => Promise<boolean>;
|
|
112
112
|
removeTag: (key: HysTreeKey) => Promise<boolean>;
|
|
113
|
-
request: (keys: readonly HysTreeKey[], reason: "clear" | "select" | "
|
|
113
|
+
request: (keys: readonly HysTreeKey[], reason: "clear" | "select" | "api" | "check" | "remove", node?: CascaderEntry<N> | undefined, event?: Event, provided?: HysTreeSelectValue, halfKeys?: HysTreeKey[]) => Promise<boolean>;
|
|
114
114
|
project: (keys: readonly HysTreeKey[]) => HysTreeKey[];
|
|
115
115
|
retrySearch: () => Promise<void>;
|
|
116
116
|
setValue: (value: HysTreeSelectValue) => Promise<boolean>;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { type HysColor, type HysColorPickerProps, type HysColorPickerContext } from "./color";
|
|
2
|
+
export declare function useColorPicker(props: HysColorPickerProps, emit: (name: string, ...args: any[]) => void): {
|
|
3
|
+
attrs: import("vue").Attrs;
|
|
4
|
+
field: import("./formContext").HysFieldContext | undefined;
|
|
5
|
+
control: {
|
|
6
|
+
disabled: import("vue").ComputedRef<boolean>;
|
|
7
|
+
size: import("vue").ComputedRef<"sm" | "md" | "lg">;
|
|
8
|
+
label: import("vue").ComputedRef<string | undefined>;
|
|
9
|
+
};
|
|
10
|
+
element: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
|
|
11
|
+
trigger: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
|
|
12
|
+
input: import("vue").Ref<HTMLInputElement | undefined, HTMLInputElement | undefined>;
|
|
13
|
+
panel: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
|
|
14
|
+
live: import("vue").Ref<boolean, boolean>;
|
|
15
|
+
draft: import("vue").Ref<string, string>;
|
|
16
|
+
working: import("vue").Ref<{
|
|
17
|
+
h: number;
|
|
18
|
+
s: number;
|
|
19
|
+
v: number;
|
|
20
|
+
a: number;
|
|
21
|
+
}, HysColor | {
|
|
22
|
+
h: number;
|
|
23
|
+
s: number;
|
|
24
|
+
v: number;
|
|
25
|
+
a: number;
|
|
26
|
+
}>;
|
|
27
|
+
hasColor: import("vue").Ref<boolean, boolean>;
|
|
28
|
+
focused: import("vue").Ref<boolean, boolean>;
|
|
29
|
+
errorId: string;
|
|
30
|
+
panelId: string;
|
|
31
|
+
value: import("vue").ComputedRef<string>;
|
|
32
|
+
locked: import("vue").ComputedRef<boolean>;
|
|
33
|
+
format: import("vue").ComputedRef<import("./color").HysColorFormat>;
|
|
34
|
+
serialized: import("vue").ComputedRef<string>;
|
|
35
|
+
css: import("vue").ComputedRef<string>;
|
|
36
|
+
valid: import("vue").ComputedRef<boolean>;
|
|
37
|
+
dirty: import("vue").ComputedRef<boolean>;
|
|
38
|
+
status: import("vue").ComputedRef<import("./formContext").HysFormStatus | undefined>;
|
|
39
|
+
floating: {
|
|
40
|
+
open: import("vue").Ref<boolean, boolean>;
|
|
41
|
+
style: import("vue").ComputedRef<{
|
|
42
|
+
zIndex: string;
|
|
43
|
+
}>;
|
|
44
|
+
placement: import("vue").Ref<import("./useFloating").Placement, import("./useFloating").Placement>;
|
|
45
|
+
update: () => void;
|
|
46
|
+
show: (force?: boolean) => Promise<void>;
|
|
47
|
+
close: (restore?: boolean, force?: boolean) => void;
|
|
48
|
+
toggle: () => void | Promise<void>;
|
|
49
|
+
restoringFocus: import("vue").Ref<boolean, boolean>;
|
|
50
|
+
schedule: () => void;
|
|
51
|
+
isTop: () => boolean;
|
|
52
|
+
};
|
|
53
|
+
open: import("vue").ComputedRef<boolean>;
|
|
54
|
+
teleportTo: import("vue").ComputedRef<Element>;
|
|
55
|
+
presets: import("vue").ComputedRef<{
|
|
56
|
+
value: string;
|
|
57
|
+
color: string;
|
|
58
|
+
parsed: HysColor;
|
|
59
|
+
key: string;
|
|
60
|
+
}[]>;
|
|
61
|
+
context: import("vue").ComputedRef<HysColorPickerContext>;
|
|
62
|
+
gesture: import("vue").ShallowRef<{
|
|
63
|
+
node: HTMLElement;
|
|
64
|
+
id: number;
|
|
65
|
+
kind: "palette" | "hue" | "alpha";
|
|
66
|
+
rect: DOMRect;
|
|
67
|
+
value: string;
|
|
68
|
+
color: HysColor;
|
|
69
|
+
hasColor: boolean;
|
|
70
|
+
lastRequest: string;
|
|
71
|
+
releaseValidation: () => void;
|
|
72
|
+
} | undefined, {
|
|
73
|
+
node: HTMLElement;
|
|
74
|
+
id: number;
|
|
75
|
+
kind: "palette" | "hue" | "alpha";
|
|
76
|
+
rect: DOMRect;
|
|
77
|
+
value: string;
|
|
78
|
+
color: HysColor;
|
|
79
|
+
hasColor: boolean;
|
|
80
|
+
lastRequest: string;
|
|
81
|
+
releaseValidation: () => void;
|
|
82
|
+
} | undefined>;
|
|
83
|
+
sync: () => void;
|
|
84
|
+
publish: (final?: boolean) => Promise<boolean>;
|
|
85
|
+
setColor: (raw: string) => Promise<boolean>;
|
|
86
|
+
commitText: () => Promise<boolean>;
|
|
87
|
+
confirm: () => Promise<boolean>;
|
|
88
|
+
clear: () => Promise<boolean>;
|
|
89
|
+
cancel: () => void;
|
|
90
|
+
show: () => Promise<boolean>;
|
|
91
|
+
hide: (restore?: boolean) => Promise<boolean>;
|
|
92
|
+
focus: (options?: FocusOptions) => void;
|
|
93
|
+
blur: () => void;
|
|
94
|
+
focusIn: (event: FocusEvent) => void;
|
|
95
|
+
focusOut: (event: FocusEvent) => void;
|
|
96
|
+
start: (event: PointerEvent, kind: "hue" | "alpha" | "palette") => void;
|
|
97
|
+
move: (event: PointerEvent) => void;
|
|
98
|
+
end: (event: PointerEvent) => Promise<void>;
|
|
99
|
+
pointerCancel: (event: PointerEvent) => void;
|
|
100
|
+
keyboard: (event: KeyboardEvent, kind: "hue" | "alpha" | "palette") => void;
|
|
101
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { type CSSProperties, type Ref } from "vue";
|
|
2
|
+
import { type HysContextMenuProps, type HysMenuKey, type MenuRow, type HysMenuShowOptions } from "./menu";
|
|
3
|
+
export declare function useContextMenu<N extends object>(props: HysContextMenuProps<N>, root: Ref<HTMLElement | undefined>, layer: Ref<HTMLElement | undefined>, panel: Ref<HTMLElement | undefined>, id: string, emit: (name: string, ...args: any[]) => void): {
|
|
4
|
+
control: {
|
|
5
|
+
disabled: import("vue").ComputedRef<boolean>;
|
|
6
|
+
size: import("vue").ComputedRef<"sm" | "md" | "lg">;
|
|
7
|
+
label: import("vue").ComputedRef<string | undefined>;
|
|
8
|
+
};
|
|
9
|
+
live: Ref<boolean, boolean>;
|
|
10
|
+
busy: import("vue").ComputedRef<boolean>;
|
|
11
|
+
graph: import("vue").ComputedRef<{
|
|
12
|
+
roots: MenuRow<N>[];
|
|
13
|
+
all: MenuRow<N>[];
|
|
14
|
+
byKey: Map<string, MenuRow<N>>;
|
|
15
|
+
}>;
|
|
16
|
+
triggers: import("vue").ComputedRef<any[]>;
|
|
17
|
+
open: Ref<boolean, boolean>;
|
|
18
|
+
branches: import("vue").ComputedRef<MenuRow<N>[]>;
|
|
19
|
+
menus: import("vue").ComputedRef<MenuRow<N>[][]>;
|
|
20
|
+
openPath: import("vue").ComputedRef<HysMenuKey[]>;
|
|
21
|
+
checkedKeys: import("vue").ComputedRef<HysMenuKey[]>;
|
|
22
|
+
selectedKeys: import("vue").ComputedRef<HysMenuKey[]>;
|
|
23
|
+
context: (row: MenuRow<N>) => {
|
|
24
|
+
item: N;
|
|
25
|
+
value: HysMenuKey | undefined;
|
|
26
|
+
label: string;
|
|
27
|
+
path: N[];
|
|
28
|
+
keys: HysMenuKey[];
|
|
29
|
+
level: number;
|
|
30
|
+
disabled: boolean;
|
|
31
|
+
checked: boolean;
|
|
32
|
+
selected: boolean;
|
|
33
|
+
expanded: boolean;
|
|
34
|
+
submenu: boolean;
|
|
35
|
+
};
|
|
36
|
+
tabbable: (row: MenuRow<N>) => 0 | -1;
|
|
37
|
+
active: Ref<Map<number, HysMenuKey> & Omit<Map<number, HysMenuKey>, keyof Map<any, any>>, Map<number, HysMenuKey> | (Map<number, HysMenuKey> & Omit<Map<number, HysMenuKey>, keyof Map<any, any>>)>;
|
|
38
|
+
childStyles: import("vue").ShallowRef<Record<number, CSSProperties>, Record<number, CSSProperties>>;
|
|
39
|
+
floating: {
|
|
40
|
+
open: Ref<boolean, boolean>;
|
|
41
|
+
style: import("vue").ComputedRef<{
|
|
42
|
+
zIndex: string;
|
|
43
|
+
}>;
|
|
44
|
+
placement: Ref<import("./useFloating").Placement, import("./useFloating").Placement>;
|
|
45
|
+
update: () => void;
|
|
46
|
+
show: (force?: boolean) => Promise<void>;
|
|
47
|
+
close: (restore?: boolean, force?: boolean) => void;
|
|
48
|
+
toggle: () => void | Promise<void>;
|
|
49
|
+
restoringFocus: Ref<boolean, boolean>;
|
|
50
|
+
schedule: () => void;
|
|
51
|
+
isTop: () => boolean;
|
|
52
|
+
};
|
|
53
|
+
forceHide: () => void;
|
|
54
|
+
focusableChild: Ref<boolean, boolean>;
|
|
55
|
+
measureTrigger: () => void;
|
|
56
|
+
setPanel: (level: number, element?: HTMLElement) => void;
|
|
57
|
+
scheduleLayout: (updateRoot?: boolean) => void;
|
|
58
|
+
show: (event?: MouseEvent | KeyboardEvent | HysMenuShowOptions) => Promise<boolean>;
|
|
59
|
+
hide: (restore?: boolean) => Promise<boolean>;
|
|
60
|
+
focus: () => void;
|
|
61
|
+
toggle: () => Promise<boolean>;
|
|
62
|
+
focusItem: (key: HysMenuKey) => Promise<boolean>;
|
|
63
|
+
openSubmenu: (key: HysMenuKey, focusChild?: boolean) => Promise<boolean>;
|
|
64
|
+
closeSubmenus: () => Promise<boolean>;
|
|
65
|
+
setCheckedKeys: (keys: readonly HysMenuKey[]) => Promise<boolean>;
|
|
66
|
+
setSelectedKeys: (keys: readonly HysMenuKey[]) => Promise<boolean>;
|
|
67
|
+
choose: (row: MenuRow<N>, event?: MouseEvent | KeyboardEvent) => Promise<boolean>;
|
|
68
|
+
setActive: (row: MenuRow<N>, focus?: boolean) => void;
|
|
69
|
+
hoverRoot: (value: boolean, event?: PointerEvent) => void;
|
|
70
|
+
enterPanel: () => void;
|
|
71
|
+
hoverRow: (row: MenuRow<N>) => void;
|
|
72
|
+
triggerClick: (event: MouseEvent) => void;
|
|
73
|
+
contextmenu: (event: MouseEvent) => void;
|
|
74
|
+
triggerFocus: (event: FocusEvent) => void;
|
|
75
|
+
focusOut: (event: FocusEvent) => void;
|
|
76
|
+
triggerKey: (event: KeyboardEvent) => void;
|
|
77
|
+
keyboard: (level: number, event: KeyboardEvent) => void;
|
|
78
|
+
first: (level?: number, last?: boolean) => void;
|
|
79
|
+
setPath: (keys: readonly HysMenuKey[], focusChild?: boolean) => Promise<boolean>;
|
|
80
|
+
getItems: () => N[];
|
|
81
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ComputedRef } from "vue";
|
|
2
|
+
import type { HysDataGridProps, HysDataGridQuery } from "./dataGrid";
|
|
3
|
+
export declare function useDataGridRemote<T extends object>(props: HysDataGridProps<T>, query: ComputedRef<HysDataGridQuery>, onError: (error: unknown) => void): {
|
|
4
|
+
pending: import("vue").Ref<boolean, boolean>;
|
|
5
|
+
failure: import("vue").ShallowRef<{
|
|
6
|
+
error: unknown;
|
|
7
|
+
query: string;
|
|
8
|
+
} | undefined, {
|
|
9
|
+
error: unknown;
|
|
10
|
+
query: string;
|
|
11
|
+
} | undefined>;
|
|
12
|
+
reload: () => Promise<void>;
|
|
13
|
+
sourceRows: ComputedRef<readonly T[]>;
|
|
14
|
+
remoteTotal: ComputedRef<number | undefined>;
|
|
15
|
+
};
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
import { type Ref } from
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { type Ref } from "vue";
|
|
2
|
+
interface DialogOptions {
|
|
3
|
+
lockScroll?: () => boolean;
|
|
4
|
+
trapFocus?: () => boolean;
|
|
5
|
+
restoreFocus?: () => boolean;
|
|
6
|
+
initialFocus?: () => HTMLElement | false | undefined;
|
|
7
|
+
zIndex?: () => number | undefined;
|
|
8
|
+
onOpenAutoFocus?: (event: Event) => void;
|
|
9
|
+
onCloseAutoFocus?: (event: Event) => void;
|
|
10
|
+
childVisible?: () => boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function useDialog(open: Ref<boolean>, dialog: Ref<HTMLElement | undefined>, close: () => void, options?: DialogOptions): {
|
|
13
|
+
active: import("vue").ComputedRef<boolean>;
|
|
14
|
+
zIndex: import("vue").ComputedRef<number>;
|
|
15
|
+
focus: () => void;
|
|
4
16
|
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Ref, type CSSProperties } from "vue";
|
|
2
|
+
import type { HysDrawerProps } from "./drawer";
|
|
3
|
+
export declare function useDrawerPush(props: HysDrawerProps, shown: Readonly<Ref<boolean>>, fullscreen: Readonly<Ref<boolean>>): {
|
|
4
|
+
pushed: import("vue").ComputedRef<boolean>;
|
|
5
|
+
style: import("vue").ComputedRef<CSSProperties>;
|
|
6
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Ref } from "vue";
|
|
2
|
+
import { type HysDrawerProps } from "./drawer";
|
|
3
|
+
export declare function useDrawerResize(props: HysDrawerProps, root: Ref<HTMLElement | undefined>, panel: Ref<HTMLElement | undefined>, shown: Readonly<Ref<boolean>>, fullscreen: Readonly<Ref<boolean>>, busy: Readonly<Ref<boolean>>, emit: (name: string, ...args: any[]) => void): {
|
|
4
|
+
handle: Ref<HTMLElement | undefined, HTMLElement | undefined>;
|
|
5
|
+
resizing: Ref<boolean, boolean>;
|
|
6
|
+
size: import("vue").ComputedRef<number>;
|
|
7
|
+
vertical: import("vue").ComputedRef<boolean>;
|
|
8
|
+
limits: (availableSize?: number) => {
|
|
9
|
+
min: number;
|
|
10
|
+
max: number;
|
|
11
|
+
};
|
|
12
|
+
model: {
|
|
13
|
+
current: import("vue").ComputedRef<number | null>;
|
|
14
|
+
commit: (value: number | null, update: (value: number | null) => void, change: (value: number | null) => void, notifyOnRequest?: boolean) => Promise<boolean>;
|
|
15
|
+
reset: () => void;
|
|
16
|
+
invalidate: () => void;
|
|
17
|
+
isLive: () => boolean;
|
|
18
|
+
};
|
|
19
|
+
resolvedSize: import("vue").ComputedRef<number | undefined>;
|
|
20
|
+
start: (event: PointerEvent) => void;
|
|
21
|
+
stop: (cancelled?: boolean) => Promise<boolean>;
|
|
22
|
+
keyboard: (event: KeyboardEvent) => Promise<void>;
|
|
23
|
+
resizeTo: (value: number | string) => Promise<boolean>;
|
|
24
|
+
reset: () => Promise<boolean>;
|
|
25
|
+
measure: () => void;
|
|
26
|
+
resetAfterClose: () => void;
|
|
27
|
+
};
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
|
-
export type Placement = "bottom-start" | "bottom-end" | "
|
|
2
|
+
export type Placement = "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" | "right" | "right-start" | "right-end";
|
|
3
|
+
export interface FloatingPosition {
|
|
4
|
+
anchor: DOMRect;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
placement: Placement;
|
|
10
|
+
}
|
|
3
11
|
export interface FloatingAnchor {
|
|
4
12
|
getBoundingClientRect(): DOMRect;
|
|
5
13
|
contains(node: Node | null): boolean;
|
|
@@ -7,20 +15,31 @@ export interface FloatingAnchor {
|
|
|
7
15
|
readonly isConnected: boolean;
|
|
8
16
|
}
|
|
9
17
|
export declare function useFloating(anchor: Readonly<Ref<FloatingAnchor | undefined>>, panel: Ref<HTMLElement | undefined>, options?: {
|
|
10
|
-
placement?: Placement;
|
|
18
|
+
placement?: Placement | (() => Placement);
|
|
11
19
|
gap?: number;
|
|
12
20
|
padding?: number;
|
|
13
21
|
matchWidth?: boolean | "min" | (() => boolean | "min");
|
|
14
22
|
width?: () => number | string | undefined;
|
|
23
|
+
maxWidth?: () => number | string | undefined;
|
|
15
24
|
requestOpen?: (open: boolean, restoreFocus?: boolean) => boolean | void;
|
|
16
25
|
closeOnTab?: boolean;
|
|
26
|
+
closeOnEscape?: boolean;
|
|
27
|
+
closeOnOutside?: boolean;
|
|
28
|
+
autoAdjustOverflow?: boolean;
|
|
29
|
+
strategy?: "fixed" | "absolute";
|
|
30
|
+
zIndex?: () => number | undefined;
|
|
31
|
+
onPosition?: (position: FloatingPosition) => void;
|
|
17
32
|
}): {
|
|
18
33
|
open: Ref<boolean, boolean>;
|
|
19
|
-
style:
|
|
34
|
+
style: import("vue").ComputedRef<{
|
|
35
|
+
zIndex: string;
|
|
36
|
+
}>;
|
|
20
37
|
placement: Ref<Placement, Placement>;
|
|
21
38
|
update: () => void;
|
|
22
39
|
show: (force?: boolean) => Promise<void>;
|
|
23
40
|
close: (restore?: boolean, force?: boolean) => void;
|
|
24
41
|
toggle: () => void | Promise<void>;
|
|
25
42
|
restoringFocus: Ref<boolean, boolean>;
|
|
43
|
+
schedule: () => void;
|
|
44
|
+
isTop: () => boolean;
|
|
26
45
|
};
|