@vxe-ui/core 4.4.35 → 4.4.37

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.
@@ -1,36 +1,126 @@
1
- import { ComputedRef } from 'vue'
1
+ import { ComputedRef, Ref } from 'vue'
2
+ import { VxeComponentBaseOptions } from '../tool/common'
2
3
  import { VxeComponentSizeType, VxeComponentIsVScrollbar, VxeComponentPermissionCodeType, VxeComponentPermissionMethod, VxeComponentPermissionInfo } from '../tool'
3
4
 
4
- export type VxeUseFnUseSize = (props: {
5
+ export interface VxeUseSizeResult {
6
+ computeSize: ComputedRef<VxeComponentSizeType>
7
+ }
8
+ export type VxeUseSize = (props: {
5
9
  size?: VxeComponentSizeType;
6
- }) => {
7
- computeSize: ComputedRef<VxeComponentSizeType>;
10
+ }) => VxeUseSizeResult
11
+
12
+ /**
13
+ * 组件尺寸上下文
14
+ */
15
+ export const useSize: VxeUseSize
16
+
17
+ export interface VxeUsePermissionResult {
18
+ computePermissionInfo: ComputedRef<VxeComponentPermissionInfo>
8
19
  }
20
+ export type VxeUsePermission = (props: {
21
+ permissionCode?: VxeComponentPermissionCodeType
22
+ permissionMethod?: VxeComponentPermissionMethod
23
+ }) => VxeUsePermissionResult
9
24
 
10
- export const useSize: VxeUseFnUseSize
25
+ /**
26
+ * 权限码处理
27
+ */
28
+ export const usePermission: VxeUsePermission
11
29
 
30
+ export interface VxeUseVScrollbarResult {
31
+ computeIsVScrollbar: ComputedRef<VxeComponentIsVScrollbar>
32
+ }
12
33
  export type VxeUseVScrollbar = (props: {
13
34
  useScrollbar?: VxeComponentIsVScrollbar;
14
- }) => {
15
- computeIsVScrollbar: ComputedRef<VxeComponentIsVScrollbar>;
16
- }
35
+ }) => VxeUseVScrollbarResult
17
36
 
37
+ /**
38
+ * 虚拟滚动条是否启用
39
+ */
18
40
  export const useVScrollbar: VxeUseVScrollbar
19
41
 
20
- export type VxeUsePermission = (props: {
21
- permissionCode?: VxeComponentPermissionCodeType
22
- permissionMethod?: VxeComponentPermissionMethod
23
- }) => {
24
- computePermissionInfo: ComputedRef<VxeComponentPermissionInfo>;
42
+ export interface VxeUseInitVScrollbarReactData {
43
+ yThumbHeight: number
44
+ xThumbWidth: number
45
+ }
46
+ export interface VxeUseInitVScrollbarInternalData {
47
+ scrollObserver?: ResizeObserver
48
+ isThumbDrag?: boolean
49
+ thumbDragOffset: number
50
+ yThumbTop: number
51
+ xThumbLeft: number
52
+ lastScrollTop: number
53
+ lastScrollLeft: number
54
+ }
55
+ export interface VxeUseInitVScrollbarResult {
56
+ /**
57
+ * 内部方法
58
+ * @private
59
+ */
60
+ updateThumbSize(): void
61
+ /**
62
+ * 内部方法
63
+ * @private
64
+ */
65
+ updateThumbOffset(): void
66
+ /**
67
+ * 内部方法
68
+ * @private
69
+ */
70
+ clickTrackXEvent(evnt: MouseEvent): void
71
+ /**
72
+ * 内部方法
73
+ * @private
74
+ */
75
+ clickTrackYEvent(evnt: MouseEvent): void
76
+ /**
77
+ * 内部方法
78
+ * @private
79
+ */
80
+ pointerdownThumbXEvent(evnt: PointerEvent): void
81
+ /**
82
+ * 内部方法
83
+ * @private
84
+ */
85
+ pointermoveThumbXEvent(evnt: PointerEvent): void
86
+ /**
87
+ * 内部方法
88
+ * @private
89
+ */
90
+ cleatPointerThumbEvent(evnt: PointerEvent): void
91
+ /**
92
+ * 内部方法
93
+ * @private
94
+ */
95
+ pointerdownThumbYEvent(evnt: PointerEvent): void
96
+ /**
97
+ * 内部方法
98
+ * @private
99
+ */
100
+ pointermoveThumbYEvent(evnt: PointerEvent): void
25
101
  }
26
102
 
27
- export const usePermission: VxeUsePermission
103
+ export type VxeUseInitVScrollbar = ($xeVM: VxeComponentBaseOptions & {
104
+ reactData: VxeUseInitVScrollbarReactData
105
+ internalData: VxeUseInitVScrollbarInternalData
106
+ getScrollViewElem(): HTMLElement | null | undefined
107
+ }) => VxeUseInitVScrollbarResult & {
108
+ refTrackXElem: Ref<HTMLDivElement | undefined>
109
+ refTrackYElem: Ref<HTMLDivElement | undefined>
110
+ refThumbXElem: Ref<HTMLDivElement | undefined>
111
+ refThumbYElem: Ref<HTMLDivElement | undefined>
112
+ }
113
+ /**
114
+ * 初始化虚拟滚动条
115
+ */
116
+ export const useInitVScrollbar: VxeUseInitVScrollbar
28
117
 
29
118
  /**
30
119
  * 通用方法
31
120
  */
32
121
  export interface VxeGlobalUseFns {
33
- useSize: VxeUseFnUseSize
122
+ useSize: VxeUseSize
34
123
  useVScrollbar: VxeUseVScrollbar
35
124
  usePermission: VxeUsePermission
125
+ useInitVScrollbar: VxeUseInitVScrollbar
36
126
  }