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,83 @@
|
|
|
1
|
+
import type { CSSProperties, VNodeChild } from "vue";
|
|
2
|
+
import type { HysPopupMotionProps } from "../motion/popup";
|
|
3
|
+
import type { Placement } from "./useFloating";
|
|
4
|
+
export type HysPopupPlacement = Placement;
|
|
5
|
+
export type HysPopupTrigger = "hover" | "focus" | "click" | "contextmenu" | "manual";
|
|
6
|
+
export interface HysPopupVirtualReference {
|
|
7
|
+
getBoundingClientRect: () => DOMRect;
|
|
8
|
+
contextElement?: HTMLElement;
|
|
9
|
+
}
|
|
10
|
+
export type HysPopupReference = HTMLElement | HysPopupVirtualReference;
|
|
11
|
+
export interface HysPopupSurfaceProps extends HysPopupMotionProps {
|
|
12
|
+
open?: boolean;
|
|
13
|
+
modelValue?: boolean;
|
|
14
|
+
defaultOpen?: boolean;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
trigger?: HysPopupTrigger | readonly HysPopupTrigger[];
|
|
17
|
+
triggerKeys?: readonly string[];
|
|
18
|
+
triggerTabindex?: number;
|
|
19
|
+
placement?: HysPopupPlacement;
|
|
20
|
+
offset?: number;
|
|
21
|
+
autoAdjustOverflow?: boolean;
|
|
22
|
+
showDelay?: number;
|
|
23
|
+
hideDelay?: number;
|
|
24
|
+
autoClose?: number;
|
|
25
|
+
enterable?: boolean;
|
|
26
|
+
closeOnEscape?: boolean;
|
|
27
|
+
closeOnOutside?: boolean;
|
|
28
|
+
destroyOnHide?: boolean;
|
|
29
|
+
forceRender?: boolean;
|
|
30
|
+
appendTo?: string | HTMLElement | false;
|
|
31
|
+
reference?: HysPopupReference | (() => HysPopupReference | undefined);
|
|
32
|
+
width?: string | number;
|
|
33
|
+
maxWidth?: string | number;
|
|
34
|
+
maxHeight?: string | number;
|
|
35
|
+
showArrow?: boolean;
|
|
36
|
+
arrowOffset?: number;
|
|
37
|
+
effect?: "light" | "dark";
|
|
38
|
+
color?: string;
|
|
39
|
+
textColor?: string;
|
|
40
|
+
overlayClass?: string;
|
|
41
|
+
overlayStyle?: CSSProperties;
|
|
42
|
+
contentClass?: string;
|
|
43
|
+
contentStyle?: CSSProperties;
|
|
44
|
+
zIndex?: number;
|
|
45
|
+
ariaLabel?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface HysTooltipProps extends HysPopupSurfaceProps {
|
|
48
|
+
text?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface HysPopoverProps extends HysPopupSurfaceProps {
|
|
51
|
+
title?: string;
|
|
52
|
+
content?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface HysPopupSurfaceContext {
|
|
55
|
+
open: boolean;
|
|
56
|
+
show: () => Promise<boolean>;
|
|
57
|
+
close: () => Promise<boolean>;
|
|
58
|
+
toggle: () => Promise<boolean>;
|
|
59
|
+
updatePosition: () => void;
|
|
60
|
+
}
|
|
61
|
+
export interface HysTooltipSlots {
|
|
62
|
+
default?: (scope: HysPopupSurfaceContext) => VNodeChild;
|
|
63
|
+
content?: (scope: HysPopupSurfaceContext) => VNodeChild;
|
|
64
|
+
}
|
|
65
|
+
export interface HysPopoverSlots {
|
|
66
|
+
trigger?: (scope: HysPopupSurfaceContext) => VNodeChild;
|
|
67
|
+
default?: (scope: HysPopupSurfaceContext) => VNodeChild;
|
|
68
|
+
title?: (scope: HysPopupSurfaceContext) => VNodeChild;
|
|
69
|
+
}
|
|
70
|
+
export interface HysPopupSurfaceInstance {
|
|
71
|
+
readonly element: HTMLElement | undefined;
|
|
72
|
+
readonly referenceElement: HTMLElement | undefined;
|
|
73
|
+
readonly open: boolean;
|
|
74
|
+
readonly placement: HysPopupPlacement;
|
|
75
|
+
show: () => Promise<boolean>;
|
|
76
|
+
hide: () => Promise<boolean>;
|
|
77
|
+
close: () => Promise<boolean>;
|
|
78
|
+
toggle: () => Promise<boolean>;
|
|
79
|
+
updatePosition: () => void;
|
|
80
|
+
focus: () => void;
|
|
81
|
+
}
|
|
82
|
+
export type HysTooltipInstance = HysPopupSurfaceInstance;
|
|
83
|
+
export type HysPopoverInstance = HysPopupSurfaceInstance;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { VNodeChild } from "vue";
|
|
2
|
+
export type HysProgressType = "line" | "circle" | "dashboard";
|
|
3
|
+
export type HysProgressStatus = "normal" | "success" | "warning" | "error" | "active";
|
|
4
|
+
export type HysProgressSize = "sm" | "md" | "lg";
|
|
5
|
+
export type HysProgressLinecap = "round" | "butt" | "square";
|
|
6
|
+
export type HysProgressGapPosition = "top" | "right" | "bottom" | "left";
|
|
7
|
+
export type HysProgressGradientDirection = number | "to right" | "to left" | "to top" | "to bottom" | "to top right" | "to top left" | "to bottom right" | "to bottom left";
|
|
8
|
+
export interface HysProgressGradientStop {
|
|
9
|
+
offset: number;
|
|
10
|
+
color: string;
|
|
11
|
+
}
|
|
12
|
+
export interface HysProgressGradient {
|
|
13
|
+
from: string;
|
|
14
|
+
to: string;
|
|
15
|
+
direction?: HysProgressGradientDirection;
|
|
16
|
+
stops?: readonly HysProgressGradientStop[];
|
|
17
|
+
}
|
|
18
|
+
export interface HysProgressColorStop {
|
|
19
|
+
value: number;
|
|
20
|
+
color: string;
|
|
21
|
+
}
|
|
22
|
+
export type HysProgressColor = string | ((value: number) => string) | readonly HysProgressColorStop[] | readonly string[] | HysProgressGradient;
|
|
23
|
+
export interface HysProgressSuccess {
|
|
24
|
+
value: number;
|
|
25
|
+
color?: HysProgressColor;
|
|
26
|
+
}
|
|
27
|
+
export interface HysProgressLabelContext {
|
|
28
|
+
value: number;
|
|
29
|
+
successValue: number;
|
|
30
|
+
status: HysProgressStatus;
|
|
31
|
+
indeterminate: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface HysProgressProps {
|
|
34
|
+
value: number;
|
|
35
|
+
showLabel?: boolean;
|
|
36
|
+
color?: HysProgressColor;
|
|
37
|
+
status?: HysProgressStatus;
|
|
38
|
+
strokeWidth?: number;
|
|
39
|
+
type?: HysProgressType;
|
|
40
|
+
width?: number | string;
|
|
41
|
+
format?: (value: number, successValue: number) => VNodeChild;
|
|
42
|
+
indeterminate?: boolean;
|
|
43
|
+
size?: HysProgressSize;
|
|
44
|
+
textInside?: boolean;
|
|
45
|
+
textColor?: string;
|
|
46
|
+
precision?: number;
|
|
47
|
+
showStatusIcon?: boolean;
|
|
48
|
+
trailColor?: string;
|
|
49
|
+
strokeLinecap?: HysProgressLinecap;
|
|
50
|
+
success?: HysProgressSuccess;
|
|
51
|
+
steps?: number;
|
|
52
|
+
stepGap?: number;
|
|
53
|
+
gapDegree?: number;
|
|
54
|
+
gapPosition?: HysProgressGapPosition;
|
|
55
|
+
striped?: boolean;
|
|
56
|
+
stripedFlow?: boolean;
|
|
57
|
+
animated?: boolean;
|
|
58
|
+
duration?: number;
|
|
59
|
+
flowDuration?: number;
|
|
60
|
+
ariaLabel?: string;
|
|
61
|
+
ariaValueText?: string | ((context: HysProgressLabelContext) => string);
|
|
62
|
+
}
|
|
63
|
+
export interface HysProgressSlots {
|
|
64
|
+
default?: (context: HysProgressLabelContext) => VNodeChild;
|
|
65
|
+
icon?: (context: HysProgressLabelContext) => VNodeChild;
|
|
66
|
+
}
|
|
67
|
+
export interface HysProgressInstance {
|
|
68
|
+
readonly element: HTMLElement | undefined;
|
|
69
|
+
readonly value: number;
|
|
70
|
+
readonly successValue: number;
|
|
71
|
+
readonly status: HysProgressStatus;
|
|
72
|
+
}
|
|
73
|
+
export declare const progressPercent: (value: number | undefined) => number;
|
|
74
|
+
export declare const progressNumber: (value: number | undefined, fallback: number, min: number, max: number) => number;
|
|
75
|
+
export declare const progressStatusColor: (status: HysProgressStatus) => string;
|
|
76
|
+
export type ProgressPaint = {
|
|
77
|
+
color: string;
|
|
78
|
+
gradient?: {
|
|
79
|
+
stops: HysProgressGradientStop[];
|
|
80
|
+
angle: number;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
export declare function progressPaint(color: HysProgressColor | undefined, value: number, fallback: string): ProgressPaint;
|
|
84
|
+
export declare function progressCssPaint(paint: ProgressPaint): string;
|
|
85
|
+
export declare function progressGradientCoordinates(degrees: number): {
|
|
86
|
+
x1: number;
|
|
87
|
+
y1: number;
|
|
88
|
+
x2: number;
|
|
89
|
+
y2: number;
|
|
90
|
+
};
|
|
91
|
+
export declare function progressArc(radius: number, start: number, degrees: number): string;
|
|
92
|
+
export declare const progressId: () => string;
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export type HysSelectValue = string | number | boolean | Record<string, unknown>;
|
|
2
2
|
export type HysSelectModelValue = HysSelectValue | HysSelectValue[] | null;
|
|
3
|
+
export type HysSelectLabeledValue = {
|
|
4
|
+
value: HysSelectValue;
|
|
5
|
+
label: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function isSelectLabeledValue(value: HysSelectValue): value is HysSelectLabeledValue;
|
|
3
8
|
export interface HysSelectOption {
|
|
4
9
|
label: string;
|
|
5
10
|
value: HysSelectValue;
|
|
@@ -29,6 +34,8 @@ export interface HysSelectInstance {
|
|
|
29
34
|
close: () => void;
|
|
30
35
|
scrollTo: (value: HysSelectValue) => void;
|
|
31
36
|
retry: () => void;
|
|
37
|
+
selectAll: () => number;
|
|
38
|
+
deselectAll: () => number;
|
|
32
39
|
selected: HysSelectOption[];
|
|
33
40
|
query: string;
|
|
34
41
|
isOpen: boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { HysSplitPaneLength } from "../components/HysSplitPane/HysSplitPane.vue";
|
|
2
|
+
export declare const paneEpsilon = 1e-7;
|
|
3
|
+
export declare function paneRatio(value: HysSplitPaneLength | undefined, available: number): number | undefined;
|
|
4
|
+
interface PanePreference {
|
|
5
|
+
min: number;
|
|
6
|
+
max: number;
|
|
7
|
+
preferred?: number;
|
|
8
|
+
relative?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function fitPaneSizes(panes: readonly PanePreference[]): number[];
|
|
11
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { HysPopupTransition } from '../motion/popup';
|
|
2
|
+
import type { Component, CSSProperties, HTMLAttributes, VNodeChild } from "vue";
|
|
2
3
|
import type { Placement } from "./useFloating";
|
|
3
4
|
export type HysTableKey = string | number;
|
|
4
5
|
export type HysTableDirection = "asc" | "desc";
|
|
@@ -19,6 +20,22 @@ export interface HysTableSelectionColumn {
|
|
|
19
20
|
fixed?: boolean | "left" | "right";
|
|
20
21
|
align?: "left" | "center" | "right";
|
|
21
22
|
}
|
|
23
|
+
export interface HysTableRowSelectionOptions {
|
|
24
|
+
range?: boolean;
|
|
25
|
+
/** 只允许指定行绕过行级选择限制。 */
|
|
26
|
+
ignoreSelectable?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface HysTableSelectionAction<T extends object = Record<string, unknown>> {
|
|
29
|
+
key: string;
|
|
30
|
+
label: string;
|
|
31
|
+
disabled?: boolean;
|
|
32
|
+
select: (context: {
|
|
33
|
+
rows: readonly T[];
|
|
34
|
+
keys: readonly HysTableKey[];
|
|
35
|
+
selectedKeys: readonly HysTableKey[];
|
|
36
|
+
setSelected: (keys: readonly HysTableKey[]) => Promise<boolean>;
|
|
37
|
+
}) => void | Promise<void>;
|
|
38
|
+
}
|
|
22
39
|
export interface HysTableFilterConfirmOptions {
|
|
23
40
|
closeDropdown?: boolean;
|
|
24
41
|
}
|
|
@@ -29,12 +46,26 @@ export interface HysTableScrollRowOptions {
|
|
|
29
46
|
behavior?: ScrollBehavior;
|
|
30
47
|
block?: "start" | "center" | "end" | "nearest";
|
|
31
48
|
}
|
|
49
|
+
export interface HysTableStickyOptions {
|
|
50
|
+
offsetHeader?: number;
|
|
51
|
+
offsetScroll?: number;
|
|
52
|
+
getContainer?: () => HTMLElement | Window | null | undefined;
|
|
53
|
+
}
|
|
32
54
|
export interface HysTableFilter {
|
|
33
55
|
label: string;
|
|
34
56
|
value: HysTableFilterValue;
|
|
35
57
|
disabled?: boolean;
|
|
36
58
|
children?: readonly HysTableFilter[];
|
|
37
59
|
}
|
|
60
|
+
export interface HysTableFilterDropdownContext<T extends object = Record<string, unknown>> {
|
|
61
|
+
column: HysTableColumn<T>;
|
|
62
|
+
open: boolean;
|
|
63
|
+
values: readonly HysTableFilterValue[];
|
|
64
|
+
setValues: (values: readonly HysTableFilterValue[]) => void;
|
|
65
|
+
confirm: (options?: HysTableFilterConfirmOptions) => void;
|
|
66
|
+
clear: (options?: HysTableFilterResetOptions) => void;
|
|
67
|
+
close: () => void;
|
|
68
|
+
}
|
|
38
69
|
export type HysTableElementAttrs = HTMLAttributes & Record<string, unknown>;
|
|
39
70
|
export type HysTablePaginationPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
|
|
40
71
|
export interface HysTableCellContext<T extends object = Record<string, unknown>> {
|
|
@@ -44,6 +75,28 @@ export interface HysTableCellContext<T extends object = Record<string, unknown>>
|
|
|
44
75
|
rowIndex: number;
|
|
45
76
|
columnIndex: number;
|
|
46
77
|
}
|
|
78
|
+
export interface HysTableOverflowTooltipOptions {
|
|
79
|
+
placement?: Placement;
|
|
80
|
+
effect?: "light" | "dark";
|
|
81
|
+
maxWidth?: number | string;
|
|
82
|
+
offset?: number;
|
|
83
|
+
hideDelay?: number;
|
|
84
|
+
enterable?: boolean;
|
|
85
|
+
}
|
|
86
|
+
export interface HysTableComponents {
|
|
87
|
+
table?: Component;
|
|
88
|
+
header?: {
|
|
89
|
+
wrapper?: Component;
|
|
90
|
+
row?: Component;
|
|
91
|
+
cell?: Component;
|
|
92
|
+
};
|
|
93
|
+
body?: {
|
|
94
|
+
wrapper?: Component;
|
|
95
|
+
row?: Component;
|
|
96
|
+
cell?: Component;
|
|
97
|
+
rowHeaderCell?: Component;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
47
100
|
export interface HysTableColumn<T extends object = any> {
|
|
48
101
|
key: string;
|
|
49
102
|
label: string;
|
|
@@ -56,11 +109,18 @@ export interface HysTableColumn<T extends object = any> {
|
|
|
56
109
|
fixed?: boolean | "left" | "right";
|
|
57
110
|
align?: "left" | "center" | "right";
|
|
58
111
|
headerAlign?: "left" | "center" | "right";
|
|
112
|
+
/** 合并同一层、同一固定区域内相邻的叶列表头。0 隐藏标题。 */
|
|
113
|
+
headerColSpan?: number;
|
|
114
|
+
/** 表头插槽未提供内容时渲染列标题。 */
|
|
115
|
+
renderHeader?: (column: HysTableColumn<T>, sorts: readonly HysTableSort[]) => VNodeChild;
|
|
59
116
|
sortable?: boolean | "custom";
|
|
60
117
|
sorter?: (a: T, b: T) => number;
|
|
61
118
|
sortBy?: string | ((row: T) => unknown) | readonly (string | ((row: T) => unknown))[];
|
|
62
119
|
sortOrders?: readonly (HysTableDirection | null)[];
|
|
63
120
|
defaultSortOrder?: HysTableDirection;
|
|
121
|
+
/** 受控排序方向,null 清除该列排序。表格级 sort 和 sorts 优先。 */
|
|
122
|
+
sortOrder?: HysTableDirection | null;
|
|
123
|
+
showSorterTooltip?: boolean | HysTableOverflowTooltipOptions;
|
|
64
124
|
sortPriority?: number;
|
|
65
125
|
filters?: readonly HysTableFilter[];
|
|
66
126
|
filterable?: boolean;
|
|
@@ -68,11 +128,25 @@ export interface HysTableColumn<T extends object = any> {
|
|
|
68
128
|
filterMode?: "menu" | "tree";
|
|
69
129
|
filterSearch?: boolean | ((query: string, option: HysTableFilter) => boolean);
|
|
70
130
|
defaultFilterValue?: readonly HysTableFilterValue[];
|
|
131
|
+
/** 受控筛选值,空数组清除该列筛选。表格级 filters 优先。 */
|
|
132
|
+
filteredValue?: readonly HysTableFilterValue[];
|
|
133
|
+
filtered?: boolean;
|
|
134
|
+
filterDropdownOpen?: boolean;
|
|
135
|
+
onFilterDropdownOpenChange?: (open: boolean) => void;
|
|
136
|
+
filterPlacement?: Placement;
|
|
137
|
+
renderFilterIcon?: (context: {
|
|
138
|
+
column: HysTableColumn<T>;
|
|
139
|
+
filtered: boolean;
|
|
140
|
+
open: boolean;
|
|
141
|
+
}) => VNodeChild;
|
|
142
|
+
renderFilterDropdown?: (context: HysTableFilterDropdownContext<T>) => VNodeChild;
|
|
71
143
|
filterResetToDefault?: boolean;
|
|
72
144
|
filterMethod?: (value: HysTableFilterValue, row: T, column: HysTableColumn<T>) => boolean;
|
|
73
145
|
formatter?: (row: T, column: HysTableColumn<T>, value: unknown, index: number) => VNodeChild;
|
|
74
|
-
ellipsis?: boolean
|
|
75
|
-
|
|
146
|
+
ellipsis?: boolean | {
|
|
147
|
+
showTitle?: boolean;
|
|
148
|
+
};
|
|
149
|
+
showOverflowTooltip?: boolean | HysTableOverflowTooltipOptions;
|
|
76
150
|
tooltipFormatter?: (context: HysTableCellContext<T>) => VNodeChild;
|
|
77
151
|
className?: string;
|
|
78
152
|
headerClassName?: string;
|
|
@@ -90,12 +164,20 @@ export interface HysTablePagination {
|
|
|
90
164
|
position?: readonly HysTablePaginationPosition[];
|
|
91
165
|
page?: number;
|
|
92
166
|
pageSize?: number;
|
|
167
|
+
defaultPage?: number;
|
|
168
|
+
defaultPageSize?: number;
|
|
93
169
|
total?: number;
|
|
170
|
+
/** 服务端分页的总页数,可在总记录数未知时使用。 */
|
|
171
|
+
pageCount?: number;
|
|
94
172
|
pageSizeOptions?: number[];
|
|
95
173
|
showSizeChanger?: boolean;
|
|
96
174
|
showQuickJumper?: boolean;
|
|
97
175
|
showTotal?: boolean;
|
|
98
176
|
compact?: boolean;
|
|
177
|
+
layout?: string;
|
|
178
|
+
size?: "sm" | "md" | "lg";
|
|
179
|
+
responsive?: boolean;
|
|
180
|
+
siblingCount?: number;
|
|
99
181
|
hideOnSinglePage?: boolean;
|
|
100
182
|
}
|
|
101
183
|
export interface HysTableQuery<T extends object = Record<string, unknown>> {
|
|
@@ -130,6 +212,8 @@ export interface HysTableLocale {
|
|
|
130
212
|
resizeColumn: string;
|
|
131
213
|
sortAsc: string;
|
|
132
214
|
sortDesc: string;
|
|
215
|
+
sortClear?: string;
|
|
216
|
+
stickyScrollLabel?: string;
|
|
133
217
|
filterSearch?: string;
|
|
134
218
|
noFilterMatch?: string;
|
|
135
219
|
invertSelection?: string;
|
|
@@ -140,6 +224,9 @@ export interface HysTableLocale {
|
|
|
140
224
|
perPage: string;
|
|
141
225
|
jump: string;
|
|
142
226
|
page: string;
|
|
227
|
+
pageItem: string;
|
|
228
|
+
navigation: string;
|
|
229
|
+
confirm: string;
|
|
143
230
|
first: string;
|
|
144
231
|
previous: string;
|
|
145
232
|
next: string;
|
|
@@ -147,12 +234,18 @@ export interface HysTableLocale {
|
|
|
147
234
|
}>;
|
|
148
235
|
}
|
|
149
236
|
export interface HysTableProps<T extends object> {
|
|
237
|
+
popupTransition?: HysPopupTransition;
|
|
238
|
+
popupTransitionDuration?: number;
|
|
150
239
|
locale?: Partial<HysTableLocale>;
|
|
151
240
|
columns: readonly HysTableColumn<T>[];
|
|
152
241
|
rows: readonly T[];
|
|
242
|
+
/** 替换表格的结构组件。自定义组件需转发属性与默认插槽,并保留原生表格元素。 */
|
|
243
|
+
components?: HysTableComponents;
|
|
153
244
|
rowKey?: string | ((row: T) => HysTableKey);
|
|
154
245
|
emptyText?: string;
|
|
155
246
|
loading?: boolean;
|
|
247
|
+
/** replace 用加载行替换数据,overlay 保留当前行并覆盖加载提示。 */
|
|
248
|
+
loadingMode?: "replace" | "overlay";
|
|
156
249
|
disabled?: boolean;
|
|
157
250
|
striped?: boolean;
|
|
158
251
|
bordered?: boolean;
|
|
@@ -162,9 +255,15 @@ export interface HysTableProps<T extends object> {
|
|
|
162
255
|
height?: number | string;
|
|
163
256
|
maxHeight?: number | string;
|
|
164
257
|
stickyHeader?: boolean;
|
|
258
|
+
/** 随页面或自定义容器滚动固定表头和水平滚动条。 */
|
|
259
|
+
sticky?: boolean | HysTableStickyOptions;
|
|
165
260
|
showHeader?: boolean;
|
|
166
261
|
fit?: boolean;
|
|
262
|
+
/** 表格横向最小宽度,用于控制滚动区域内的列布局。 */
|
|
263
|
+
scrollWidth?: number | string;
|
|
167
264
|
scrollbarAlwaysOn?: boolean;
|
|
265
|
+
/** 使用浏览器默认的滚动条样式。 */
|
|
266
|
+
nativeScrollbar?: boolean;
|
|
168
267
|
scrollbarTabindex?: number | string;
|
|
169
268
|
headerRowClassName?: string | ((columns: readonly HysTableColumn<T>[], level: number) => string);
|
|
170
269
|
headerRowStyle?: CSSProperties | ((columns: readonly HysTableColumn<T>[], level: number) => CSSProperties);
|
|
@@ -185,7 +284,7 @@ export interface HysTableProps<T extends object> {
|
|
|
185
284
|
reserveSelection?: boolean;
|
|
186
285
|
checkStrictly?: boolean;
|
|
187
286
|
selectOnIndeterminate?: boolean;
|
|
188
|
-
selectionActions?: boolean;
|
|
287
|
+
selectionActions?: boolean | readonly HysTableSelectionAction<T>[];
|
|
189
288
|
rangeSelection?: boolean;
|
|
190
289
|
hideSelectAll?: boolean;
|
|
191
290
|
selectionColumn?: HysTableSelectionColumn;
|
|
@@ -200,11 +299,15 @@ export interface HysTableProps<T extends object> {
|
|
|
200
299
|
defaultSort?: HysTableSort | readonly HysTableSort[] | null;
|
|
201
300
|
multiSort?: boolean;
|
|
202
301
|
sortOrders?: readonly (HysTableDirection | null)[];
|
|
302
|
+
/** 悬停或聚焦列标题时提示下一次排序操作。 */
|
|
303
|
+
showSorterTooltip?: boolean | HysTableOverflowTooltipOptions;
|
|
203
304
|
filters?: HysTableFilters;
|
|
204
305
|
defaultFilters?: HysTableFilters;
|
|
205
306
|
filterColumnKey?: string | null;
|
|
206
307
|
filterPlacement?: Placement;
|
|
207
308
|
appendFilterTo?: string | HTMLElement | false;
|
|
309
|
+
/** 根据触发元素指定排序、溢出与筛选浮层的挂载目标。 */
|
|
310
|
+
getPopupContainer?: (trigger: HTMLElement) => HTMLElement | string | false | undefined;
|
|
208
311
|
pagination?: boolean | HysTablePagination;
|
|
209
312
|
page?: number;
|
|
210
313
|
pageSize?: number;
|
|
@@ -227,6 +330,10 @@ export interface HysTableProps<T extends object> {
|
|
|
227
330
|
indent?: number;
|
|
228
331
|
loadChildren?: (row: T, context: HysTableLoadContext) => readonly T[] | Promise<readonly T[]>;
|
|
229
332
|
showSummary?: boolean;
|
|
333
|
+
/** 汇总全部筛选结果,或仅汇总当前页实际显示的行。 */
|
|
334
|
+
summaryScope?: "filtered" | "page";
|
|
335
|
+
/** 将汇总行固定在表格滚动区域底部。 */
|
|
336
|
+
stickySummary?: boolean;
|
|
230
337
|
sumText?: string;
|
|
231
338
|
summaryMethod?: (context: {
|
|
232
339
|
columns: readonly HysTableColumn<T>[];
|
|
@@ -236,8 +343,13 @@ export interface HysTableProps<T extends object> {
|
|
|
236
343
|
rowspan?: number;
|
|
237
344
|
colspan?: number;
|
|
238
345
|
} | readonly [number, number] | undefined;
|
|
239
|
-
|
|
346
|
+
/** 默认溢出提示,列可覆盖配置或设置 false 关闭。 */
|
|
347
|
+
showOverflowTooltip?: boolean | HysTableOverflowTooltipOptions;
|
|
240
348
|
tooltipFormatter?: (context: HysTableCellContext<T>) => VNodeChild;
|
|
349
|
+
/** 在列格式化后统一处理默认单元格内容。 */
|
|
350
|
+
transformCellText?: (context: HysTableCellContext<T> & {
|
|
351
|
+
text: VNodeChild;
|
|
352
|
+
}) => VNodeChild;
|
|
241
353
|
resizable?: boolean;
|
|
242
354
|
columnWidths?: Readonly<Record<string, number>>;
|
|
243
355
|
allowDragLastColumn?: boolean;
|
|
@@ -253,7 +365,7 @@ export interface HysTableInstance<T extends object = Record<string, unknown>> {
|
|
|
253
365
|
clearSelection: () => Promise<boolean>;
|
|
254
366
|
getSelectionRows: () => T[];
|
|
255
367
|
getHalfSelectionRows: () => T[];
|
|
256
|
-
toggleRowSelection: (row: T | HysTableKey, selected?: boolean,
|
|
368
|
+
toggleRowSelection: (row: T | HysTableKey, selected?: boolean, options?: boolean | HysTableRowSelectionOptions) => Promise<boolean>;
|
|
257
369
|
toggleAllSelection: (selected?: boolean) => Promise<boolean>;
|
|
258
370
|
invertSelection: () => Promise<boolean>;
|
|
259
371
|
setCurrentRow: (row?: T | HysTableKey | null) => Promise<boolean>;
|
|
@@ -292,6 +404,7 @@ export interface TableHeader<T extends object> {
|
|
|
292
404
|
leaves: HysTableColumn<T>[];
|
|
293
405
|
colspan: number;
|
|
294
406
|
rowspan: number;
|
|
407
|
+
blank?: boolean;
|
|
295
408
|
fixed?: "left" | "right";
|
|
296
409
|
}
|
|
297
410
|
export declare const tableToken: (key: HysTableKey) => string;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { Component, VNodeChild } from "vue";
|
|
2
|
+
import type { HysPopupMotionProps } from "../motion/popup";
|
|
3
|
+
export type HysTagInputReason = "keyboard" | "blur" | "separator" | "paste" | "api";
|
|
4
|
+
export interface HysTagInputAddContext {
|
|
5
|
+
signal: AbortSignal;
|
|
6
|
+
values: readonly string[];
|
|
7
|
+
reason: HysTagInputReason;
|
|
8
|
+
}
|
|
9
|
+
export interface HysTagInputInvalid {
|
|
10
|
+
value: string;
|
|
11
|
+
reason: "duplicate" | "max" | "guard" | "error" | "maxlength" | "minlength";
|
|
12
|
+
error?: Error;
|
|
13
|
+
}
|
|
14
|
+
export interface HysTagInputProps extends HysPopupMotionProps {
|
|
15
|
+
modelValue?: readonly string[];
|
|
16
|
+
defaultValue?: readonly string[];
|
|
17
|
+
max?: number;
|
|
18
|
+
placeholder?: string;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
readonly?: boolean;
|
|
21
|
+
size?: "sm" | "md" | "lg";
|
|
22
|
+
addOnBlur?: boolean;
|
|
23
|
+
separator?: string;
|
|
24
|
+
delimiters?: string | readonly string[] | RegExp;
|
|
25
|
+
trigger?: "Enter" | "Space" | "Tab" | readonly string[];
|
|
26
|
+
beforeAdd?: (value: string, context: HysTagInputAddContext) => boolean | void | Promise<boolean | void>;
|
|
27
|
+
allowDuplicates?: boolean;
|
|
28
|
+
caseSensitive?: boolean;
|
|
29
|
+
trim?: boolean;
|
|
30
|
+
clearable?: boolean;
|
|
31
|
+
clearIcon?: Component;
|
|
32
|
+
tagTone?: "primary" | "success" | "warning" | "danger" | "neutral";
|
|
33
|
+
tagEffect?: "light" | "dark" | "outline";
|
|
34
|
+
tagRound?: boolean;
|
|
35
|
+
draggable?: boolean;
|
|
36
|
+
collapseTags?: boolean;
|
|
37
|
+
maxCollapseTags?: number;
|
|
38
|
+
collapseTagsTooltip?: boolean;
|
|
39
|
+
overflowHeight?: number;
|
|
40
|
+
maxTagTextLength?: number;
|
|
41
|
+
maxlength?: number;
|
|
42
|
+
minlength?: number;
|
|
43
|
+
ariaLabel?: string;
|
|
44
|
+
label?: string;
|
|
45
|
+
name?: string;
|
|
46
|
+
form?: string;
|
|
47
|
+
autocomplete?: string;
|
|
48
|
+
autofocus?: boolean;
|
|
49
|
+
tabindex?: number;
|
|
50
|
+
status?: "error" | "warning" | "success";
|
|
51
|
+
error?: string;
|
|
52
|
+
validateEvent?: boolean;
|
|
53
|
+
inputProps?: Record<string, unknown>;
|
|
54
|
+
}
|
|
55
|
+
export interface HysTagInputSlotContext {
|
|
56
|
+
values: readonly string[];
|
|
57
|
+
draft: string;
|
|
58
|
+
disabled: boolean;
|
|
59
|
+
readonly: boolean;
|
|
60
|
+
pending: boolean;
|
|
61
|
+
add: (value?: string | string[]) => Promise<boolean>;
|
|
62
|
+
clear: () => Promise<boolean>;
|
|
63
|
+
}
|
|
64
|
+
export interface HysTagInputTagContext {
|
|
65
|
+
value: string;
|
|
66
|
+
index: number;
|
|
67
|
+
disabled: boolean;
|
|
68
|
+
readonly: boolean;
|
|
69
|
+
remove: () => Promise<boolean>;
|
|
70
|
+
}
|
|
71
|
+
export interface HysTagInputSlots {
|
|
72
|
+
tag?: (context: HysTagInputTagContext) => VNodeChild;
|
|
73
|
+
prefix?: (context: HysTagInputSlotContext) => VNodeChild;
|
|
74
|
+
suffix?: (context: HysTagInputSlotContext) => VNodeChild;
|
|
75
|
+
"clear-icon"?: (context: HysTagInputSlotContext) => VNodeChild;
|
|
76
|
+
"remove-icon"?: (context: HysTagInputTagContext) => VNodeChild;
|
|
77
|
+
"collapse-tag"?: (context: {
|
|
78
|
+
count: number;
|
|
79
|
+
values: readonly string[];
|
|
80
|
+
}) => VNodeChild;
|
|
81
|
+
}
|
|
82
|
+
export interface HysTagInputInstance {
|
|
83
|
+
readonly element: HTMLElement | undefined;
|
|
84
|
+
readonly input: HTMLInputElement | undefined;
|
|
85
|
+
readonly values: readonly string[];
|
|
86
|
+
readonly draft: string;
|
|
87
|
+
readonly pending: boolean;
|
|
88
|
+
focus: (options?: FocusOptions) => void;
|
|
89
|
+
blur: () => void;
|
|
90
|
+
add: (value?: string | string[]) => Promise<boolean>;
|
|
91
|
+
remove: (index: number) => Promise<boolean>;
|
|
92
|
+
clear: () => Promise<boolean>;
|
|
93
|
+
move: (from: number, to: number) => Promise<boolean>;
|
|
94
|
+
setDraft: (value: string) => void;
|
|
95
|
+
}
|
|
96
|
+
export declare function splitTags(value: string, separator?: string | readonly string[] | RegExp): string[];
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { Component, VNodeChild } from "vue";
|
|
2
|
+
export type HysTimelineKey = string | number;
|
|
3
|
+
export type HysTimelineMode = "left" | "right" | "alternate" | "alternate-reverse";
|
|
4
|
+
export type HysTimelinePosition = "left" | "right";
|
|
5
|
+
export type HysTimelineSize = "sm" | "md" | "lg";
|
|
6
|
+
export type HysTimelineTone = "primary" | "success" | "warning" | "danger" | "info" | "neutral";
|
|
7
|
+
export interface HysTimelineItem {
|
|
8
|
+
id?: HysTimelineKey;
|
|
9
|
+
key?: HysTimelineKey;
|
|
10
|
+
title: string;
|
|
11
|
+
time?: string;
|
|
12
|
+
dateTime?: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
status?: "done" | "current" | "pending";
|
|
15
|
+
color?: string;
|
|
16
|
+
label?: string;
|
|
17
|
+
position?: HysTimelinePosition;
|
|
18
|
+
tone?: HysTimelineTone;
|
|
19
|
+
size?: HysTimelineSize | number;
|
|
20
|
+
hollow?: boolean;
|
|
21
|
+
loading?: boolean;
|
|
22
|
+
icon?: Component;
|
|
23
|
+
hideTime?: boolean;
|
|
24
|
+
timePlacement?: "top" | "bottom";
|
|
25
|
+
}
|
|
26
|
+
export type HysTimelineFieldNames = Partial<Record<keyof HysTimelineItem, string>>;
|
|
27
|
+
export interface HysTimelineProps<T extends object = HysTimelineItem> {
|
|
28
|
+
items: readonly T[];
|
|
29
|
+
reverse?: boolean;
|
|
30
|
+
pending?: string | boolean;
|
|
31
|
+
mode?: HysTimelineMode;
|
|
32
|
+
itemKey?: string | ((item: T, index: number) => HysTimelineKey);
|
|
33
|
+
fieldNames?: HysTimelineFieldNames;
|
|
34
|
+
size?: HysTimelineSize;
|
|
35
|
+
hollow?: boolean;
|
|
36
|
+
showTime?: boolean;
|
|
37
|
+
timePlacement?: "top" | "bottom";
|
|
38
|
+
responsive?: boolean;
|
|
39
|
+
lineStyle?: "solid" | "dashed" | "dotted";
|
|
40
|
+
lineColor?: string;
|
|
41
|
+
pendingPosition?: "start" | "end";
|
|
42
|
+
pendingLoading?: boolean;
|
|
43
|
+
pendingText?: string;
|
|
44
|
+
emptyText?: string;
|
|
45
|
+
ariaLabel?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface HysTimelineItemContext<T extends object = HysTimelineItem> {
|
|
48
|
+
item: T;
|
|
49
|
+
index: number;
|
|
50
|
+
sourceIndex: number;
|
|
51
|
+
key: HysTimelineKey;
|
|
52
|
+
title: string;
|
|
53
|
+
time: string;
|
|
54
|
+
description: string;
|
|
55
|
+
label: string;
|
|
56
|
+
position: HysTimelinePosition;
|
|
57
|
+
status: HysTimelineItem["status"];
|
|
58
|
+
tone: HysTimelineTone;
|
|
59
|
+
loading: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface HysTimelinePendingContext {
|
|
62
|
+
pending: string | boolean | undefined;
|
|
63
|
+
loading: boolean;
|
|
64
|
+
}
|
|
65
|
+
export interface HysTimelineSlots<T extends object = HysTimelineItem> {
|
|
66
|
+
item?: (context: HysTimelineItemContext<T>) => VNodeChild;
|
|
67
|
+
title?: (context: HysTimelineItemContext<T>) => VNodeChild;
|
|
68
|
+
description?: (context: HysTimelineItemContext<T>) => VNodeChild;
|
|
69
|
+
time?: (context: HysTimelineItemContext<T>) => VNodeChild;
|
|
70
|
+
label?: (context: HysTimelineItemContext<T>) => VNodeChild;
|
|
71
|
+
dot?: (context: HysTimelineItemContext<T>) => VNodeChild;
|
|
72
|
+
pending?: (context: HysTimelinePendingContext) => VNodeChild;
|
|
73
|
+
"pending-dot"?: (context: HysTimelinePendingContext) => VNodeChild;
|
|
74
|
+
empty?: () => VNodeChild;
|
|
75
|
+
}
|
|
76
|
+
export interface HysTimelineInstance<T extends object = HysTimelineItem> {
|
|
77
|
+
readonly element: HTMLOListElement | undefined;
|
|
78
|
+
getItems: () => T[];
|
|
79
|
+
}
|
|
80
|
+
export declare function timelineRead(item: object, path: string): unknown;
|
|
81
|
+
export declare const timelineText: (value: unknown) => string;
|
|
82
|
+
export declare const timelineTone: (tone: HysTimelineTone) => string;
|