vxe-pc-ui 3.20.8 → 3.20.10

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.
Files changed (141) hide show
  1. package/es/card/src/card.js +2 -1
  2. package/es/date-panel/src/date-panel.js +70 -39
  3. package/es/date-panel/style.css +22 -20
  4. package/es/date-panel/style.min.css +1 -1
  5. package/es/drawer/src/drawer.js +1 -0
  6. package/es/icon/style.css +1 -1
  7. package/es/icon-picker/src/icon-picker.js +11 -3
  8. package/es/icon-picker/style.css +9 -3
  9. package/es/icon-picker/style.min.css +1 -1
  10. package/es/layout-aside/src/layout-aside.js +2 -1
  11. package/es/layout-body/src/layout-body.js +2 -1
  12. package/es/layout-container/src/layout-container.js +9 -2
  13. package/es/list/src/list.js +80 -223
  14. package/es/menu/src/menu.js +1 -0
  15. package/es/modal/src/modal.js +1 -0
  16. package/es/scrollbar/src/scrollbar.js +32 -188
  17. package/es/select/src/select.js +273 -8
  18. package/es/select/style.css +44 -0
  19. package/es/select/style.min.css +1 -1
  20. package/es/style.css +1 -1
  21. package/es/style.min.css +1 -1
  22. package/es/tabs/src/tabs.js +2 -1
  23. package/es/tooltip/src/tooltip.js +7 -6
  24. package/es/tooltip/style.css +2 -0
  25. package/es/tooltip/style.min.css +1 -1
  26. package/es/tree/src/tree.js +85 -228
  27. package/es/ui/index.js +1 -1
  28. package/es/ui/src/log.js +1 -1
  29. package/es/vxe-date-panel/style.css +22 -20
  30. package/es/vxe-date-panel/style.min.css +1 -1
  31. package/es/vxe-icon-picker/style.css +9 -3
  32. package/es/vxe-icon-picker/style.min.css +1 -1
  33. package/es/vxe-select/style.css +44 -0
  34. package/es/vxe-select/style.min.css +1 -1
  35. package/es/vxe-tooltip/style.css +2 -0
  36. package/es/vxe-tooltip/style.min.css +1 -1
  37. package/lib/card/src/card.js +1 -1
  38. package/lib/card/src/card.min.js +1 -1
  39. package/lib/date-panel/src/date-panel.js +74 -43
  40. package/lib/date-panel/src/date-panel.min.js +1 -1
  41. package/lib/date-panel/style/style.css +22 -20
  42. package/lib/date-panel/style/style.min.css +1 -1
  43. package/lib/drawer/src/drawer.js +1 -1
  44. package/lib/drawer/src/drawer.min.js +1 -1
  45. package/lib/icon/style/style.css +1 -1
  46. package/lib/icon/style/style.min.css +1 -1
  47. package/lib/icon-picker/src/icon-picker.js +56 -38
  48. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  49. package/lib/icon-picker/style/style.css +9 -3
  50. package/lib/icon-picker/style/style.min.css +1 -1
  51. package/lib/index.umd.js +894 -816
  52. package/lib/index.umd.min.js +1 -1
  53. package/lib/layout-aside/src/layout-aside.js +1 -1
  54. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  55. package/lib/layout-body/src/layout-body.js +1 -1
  56. package/lib/layout-body/src/layout-body.min.js +1 -1
  57. package/lib/layout-container/src/layout-container.js +13 -3
  58. package/lib/layout-container/src/layout-container.min.js +1 -1
  59. package/lib/list/src/list.js +72 -225
  60. package/lib/list/src/list.min.js +1 -1
  61. package/lib/menu/src/menu.js +1 -1
  62. package/lib/menu/src/menu.min.js +1 -1
  63. package/lib/modal/src/modal.js +1 -1
  64. package/lib/modal/src/modal.min.js +1 -1
  65. package/lib/scrollbar/src/scrollbar.js +29 -192
  66. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  67. package/lib/select/src/select.js +322 -69
  68. package/lib/select/src/select.min.js +1 -1
  69. package/lib/select/style/style.css +44 -0
  70. package/lib/select/style/style.min.css +1 -1
  71. package/lib/style.css +1 -1
  72. package/lib/style.min.css +1 -1
  73. package/lib/tabs/src/tabs.js +1 -1
  74. package/lib/tabs/src/tabs.min.js +1 -1
  75. package/lib/tooltip/src/tooltip.js +5 -6
  76. package/lib/tooltip/src/tooltip.min.js +1 -1
  77. package/lib/tooltip/style/style.css +2 -0
  78. package/lib/tooltip/style/style.min.css +1 -1
  79. package/lib/tree/src/tree.js +77 -229
  80. package/lib/tree/src/tree.min.js +1 -1
  81. package/lib/ui/index.js +1 -1
  82. package/lib/ui/index.min.js +1 -1
  83. package/lib/ui/src/log.js +1 -1
  84. package/lib/ui/src/log.min.js +1 -1
  85. package/lib/vxe-date-panel/style/style.css +22 -20
  86. package/lib/vxe-date-panel/style/style.min.css +1 -1
  87. package/lib/vxe-icon-picker/style/style.css +9 -3
  88. package/lib/vxe-icon-picker/style/style.min.css +1 -1
  89. package/lib/vxe-select/style/style.css +44 -0
  90. package/lib/vxe-select/style/style.min.css +1 -1
  91. package/lib/vxe-tooltip/style/style.css +2 -0
  92. package/lib/vxe-tooltip/style/style.min.css +1 -1
  93. package/package.json +2 -2
  94. package/packages/card/src/card.ts +4 -2
  95. package/packages/date-panel/src/date-panel.ts +70 -39
  96. package/packages/drawer/src/drawer.ts +4 -2
  97. package/packages/icon-picker/src/icon-picker.ts +12 -3
  98. package/packages/layout-aside/src/layout-aside.ts +4 -2
  99. package/packages/layout-body/src/layout-body.ts +4 -2
  100. package/packages/layout-container/src/layout-container.ts +13 -3
  101. package/packages/list/src/list.ts +85 -241
  102. package/packages/menu/src/menu.ts +3 -1
  103. package/packages/modal/src/modal.ts +3 -1
  104. package/packages/scrollbar/src/scrollbar.ts +32 -199
  105. package/packages/select/src/select.ts +304 -11
  106. package/packages/tabs/src/tabs.ts +4 -4
  107. package/packages/tooltip/src/tooltip.ts +10 -8
  108. package/packages/tree/src/tree.ts +90 -247
  109. package/styles/components/date-panel.scss +31 -29
  110. package/styles/components/icon-picker.scss +9 -3
  111. package/styles/components/select.scss +77 -0
  112. package/styles/components/tooltip.scss +1 -0
  113. package/types/components/card.d.ts +2 -2
  114. package/types/components/drawer.d.ts +2 -2
  115. package/types/components/gantt-module/gantt-view.d.ts +8 -17
  116. package/types/components/grid.d.ts +3 -2
  117. package/types/components/icon-picker.d.ts +21 -1
  118. package/types/components/layout-aside.d.ts +2 -2
  119. package/types/components/layout-body.d.ts +2 -2
  120. package/types/components/layout-container.d.ts +3 -1
  121. package/types/components/list.d.ts +6 -2
  122. package/types/components/menu.d.ts +2 -2
  123. package/types/components/modal.d.ts +2 -2
  124. package/types/components/scrollbar.d.ts +17 -14
  125. package/types/components/select.d.ts +28 -3
  126. package/types/components/table.d.ts +26 -22
  127. package/types/components/tabs.d.ts +2 -2
  128. package/types/components/tooltip.d.ts +2 -2
  129. package/types/components/tree.d.ts +8 -17
  130. /package/es/icon/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
  131. /package/es/icon/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
  132. /package/es/icon/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
  133. /package/es/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
  134. /package/es/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
  135. /package/es/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
  136. /package/lib/icon/style/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
  137. /package/lib/icon/style/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
  138. /package/lib/icon/style/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
  139. /package/lib/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
  140. /package/lib/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
  141. /package/lib/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
@@ -112,6 +112,7 @@
112
112
  }
113
113
 
114
114
  .vxe-select--panel-body {
115
+ position: relative;
115
116
  display: flex;
116
117
  flex-direction: row;
117
118
  flex-grow: 1;
@@ -259,3 +260,79 @@
259
260
  .vxe-select--empty-placeholder {
260
261
  line-height: var(--vxe-ui-select-current-option-height);
261
262
  }
263
+
264
+ // 滚动条
265
+ .vxe-select--panel-body {
266
+ &.ov-padding {
267
+ &.overflow-x {
268
+ &.sx-pos--top {
269
+ padding-top: var(--vxe-ui-scrollbar-x-height);
270
+ }
271
+ &.sx-pos--bottom {
272
+ padding-bottom: var(--vxe-ui-scrollbar-x-height);
273
+ }
274
+ }
275
+ &.overflow-y {
276
+ &.sy-pos--left {
277
+ padding-left: var(--vxe-ui-scrollbar-y-width);
278
+ }
279
+ &.sy-pos--right {
280
+ padding-right: var(--vxe-ui-scrollbar-y-width);
281
+ }
282
+ }
283
+ }
284
+ &.ov-x--hidden {
285
+ & > .vxe-select-option--wrapper {
286
+ overflow-x: hidden;
287
+ }
288
+ }
289
+ &.ov-y--hidden {
290
+ & > .vxe-select-option--wrapper {
291
+ overflow-y: hidden;
292
+ }
293
+ }
294
+ &.is--virtual-scrollbar {
295
+ &.ov-x--auto-hide {
296
+ &:hover {
297
+ & > .vxe-scrollbar {
298
+ & > .vxe-scrollbar--track-x {
299
+ opacity: 1;
300
+ }
301
+ }
302
+ }
303
+ & > .vxe-scrollbar {
304
+ & > .vxe-scrollbar--track-x {
305
+ opacity: 0;
306
+ @include baseMixin.createAnimationTransition(opacity, 0.8s);
307
+ }
308
+ }
309
+ }
310
+ &.ov-y--auto-hide {
311
+ &:hover {
312
+ & > .vxe-scrollbar {
313
+ & > .vxe-scrollbar--track-y {
314
+ opacity: 1;
315
+ }
316
+ }
317
+ }
318
+ & > .vxe-scrollbar {
319
+ & > .vxe-scrollbar--track-y {
320
+ opacity: 0;
321
+ @include baseMixin.createAnimationTransition(opacity, 0.8s);
322
+ }
323
+ }
324
+ }
325
+ }
326
+ & > .vxe-scrollbar {
327
+ position: unset;
328
+ }
329
+ &.is--virtual-scrollbar {
330
+ & > .vxe-select-option--wrapper {
331
+ scrollbar-width: none;
332
+ -ms-overflow-style: none;
333
+ }
334
+ & > .vxe-select-option--wrapper::-webkit-scrollbar {
335
+ display: none;
336
+ }
337
+ }
338
+ }
@@ -31,6 +31,7 @@
31
31
  .vxe-tooltip--content,
32
32
  .vxe-tooltip--scrollbar-content-view {
33
33
  padding: 8px 12px;
34
+ width: max-content;
34
35
  max-width: 600px;
35
36
  max-height: 800px;
36
37
  white-space: pre-line;
@@ -1,4 +1,4 @@
1
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType } from '@vxe-ui/core'
1
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType, VxeComponentIsVScrollbar } from '@vxe-ui/core'
2
2
  import { VxeScrollbarProps } from './scrollbar'
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
@@ -26,7 +26,7 @@ export namespace VxeCardPropTypes {
26
26
  export type Shadow = boolean
27
27
  export type Padding = boolean
28
28
  export type Size = VxeComponentSizeType
29
- export type UseScrollbar = boolean
29
+ export type UseScrollbar = VxeComponentIsVScrollbar
30
30
  export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
31
31
  /**
32
32
  * 滚动条宽度
@@ -1,5 +1,5 @@
1
1
  import { CreateElement } from 'vue'
2
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, VxeComponentSlotType, ValueOf } from '@vxe-ui/core'
2
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, VxeComponentSlotType, ValueOf, VxeComponentIsVScrollbar } from '@vxe-ui/core'
3
3
  import { VxeScrollbarProps } from './scrollbar'
4
4
 
5
5
  /* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
@@ -68,7 +68,7 @@ export namespace VxeDrawerPropTypes {
68
68
  export type Padding = boolean
69
69
  export type BeforeHideMethod = (params: VxeDrawerDefines.DrawerVisibleParams) => Promise<any>
70
70
  export type Slots = VxeDrawerSlots
71
- export type UseScrollbar = boolean
71
+ export type UseScrollbar = VxeComponentIsVScrollbar
72
72
  export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
73
73
  /**
74
74
  * 滚动条宽度
@@ -1,4 +1,4 @@
1
- import { DefineVxeComponentInstance } from '@vxe-ui/core'
1
+ import { DefineVxeComponentInstance, VxeUseInitVScrollbarResult, VxeUseInitVScrollbarReactData, VxeUseInitVScrollbarInternalData } from '@vxe-ui/core'
2
2
  import { VxeTableConstructor, VxeTableMethods, VxeTablePrivateMethods } from '../table'
3
3
  import { VxeGanttDefines, VxeGanttConstructor } from '../gantt'
4
4
  import { VxeScrollbarPropTypes } from '../scrollbar'
@@ -17,7 +17,7 @@ export type VxeGanttViewConstructor = VxeGanttViewInstance
17
17
  interface VxeGanttViewProps {
18
18
  }
19
19
 
20
- export interface GanttViewReactData {
20
+ export interface GanttViewReactData extends VxeUseInitVScrollbarReactData {
21
21
  // 是否启用了横向 X 可视渲染方式加载
22
22
  scrollXLoad: boolean
23
23
  // 是否启用了纵向 Y 可视渲染方式加载
@@ -35,10 +35,6 @@ export interface GanttViewReactData {
35
35
  lastScrollTime: number
36
36
  lazScrollLoading: boolean
37
37
 
38
- // 滚动条
39
- yThumbHeight: number
40
- xThumbWidth: number
41
-
42
38
  scrollVMLoading: boolean
43
39
  scrollYHeight: number
44
40
  scrollYTop: number
@@ -56,7 +52,7 @@ export interface GanttViewReactData {
56
52
  viewCellWidth: number
57
53
  }
58
54
 
59
- export interface GanttViewInternalData {
55
+ export interface GanttViewInternalData extends VxeUseInitVScrollbarInternalData {
60
56
  xeTable: (VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods) | null
61
57
  // 渲染所有列
62
58
  visibleColumn: VxeGanttDefines.ViewColumn[]
@@ -78,15 +74,6 @@ export interface GanttViewInternalData {
78
74
  endIndex: number
79
75
  }
80
76
 
81
- // 滚动条
82
- scrollObserver?: ResizeObserver
83
- isThumbDrag?: boolean
84
- thumbDragOffset: number
85
- yThumbTop: number
86
- xThumbLeft: number
87
- lastScrollLeft: number
88
- lastScrollTop: number
89
-
90
77
  // 刷新布局
91
78
  rceTimeout?: undefined | number
92
79
  rceRunTime?: undefined | number
@@ -183,7 +170,11 @@ export interface VxeGanttViewPrivateMethods {
183
170
  updateScrollbar(): void
184
171
  }
185
172
 
186
- export interface VxeGanttViewMethods {
173
+ export interface VxeGanttViewMethods extends VxeUseInitVScrollbarResult {
174
+ /**
175
+ * 获取滚动视图元素
176
+ */
177
+ getScrollViewElem(): HTMLElement | null | undefined
187
178
  refreshData(): Promise<void>
188
179
  updateViewData(force?: boolean): Promise<void>
189
180
  connectUpdate(params: {
@@ -1,6 +1,6 @@
1
1
  import { CreateElement } from 'vue'
2
2
  import { NormalizedScopedSlot } from 'vue/types/vnode'
3
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, VxeComponentSlotType, ValueOf } from '@vxe-ui/core'
3
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, VxeComponentIsVScrollbar, VxeComponentSlotType, ValueOf } from '@vxe-ui/core'
4
4
  import { VxeToolbarProps, VxeToolbarPropTypes, VxeToolbarSlotTypes } from './toolbar'
5
5
  import { VxeTableDefines, VxeTableEmits, VxeTableConstructor, VxeTableProps, TableMethods, VxeTableSlotTypes } from './table'
6
6
  import { VxeColumnPropTypes } from './column'
@@ -461,7 +461,8 @@ export interface VxeGridProps<D = any> extends VxeTableProps<D> {
461
461
  }
462
462
 
463
463
  export interface GridPrivateComputed<D = any> {
464
- computeSize: VxeGridPropTypes.Size
464
+ computeSize: VxeComponentSizeType
465
+ computeIsVScrollbar: VxeComponentIsVScrollbar
465
466
  computeProxyOpts: VxeGridPropTypes.ProxyConfig<D>
466
467
  computePagerOpts: VxeGridPropTypes.PagerConfig
467
468
  computeFormOpts: VxeGridPropTypes.FormConfig
@@ -1,5 +1,6 @@
1
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentStyleType, VxeComponentSizeType } from '@vxe-ui/core'
1
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentIsVScrollbar, VxeComponentStyleType, VxeComponentSizeType } from '@vxe-ui/core'
2
2
  import { VxeIconPropTypes } from './icon'
3
+ import { VxeScrollbarProps } from './scrollbar'
3
4
 
4
5
  /* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
5
6
 
@@ -86,6 +87,17 @@ export namespace VxeIconPickerPropTypes {
86
87
  className?: string | ((params: { $iconPicker: VxeIconPickerConstructor }) => string)
87
88
  }
88
89
  export type Transfer = boolean
90
+ export type UseScrollbar = VxeComponentIsVScrollbar
91
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
92
+ /**
93
+ * 滚动条宽度
94
+ */
95
+ width?: number | string
96
+ /**
97
+ * 滚动条高度
98
+ */
99
+ height?: number | string
100
+ }
89
101
  }
90
102
 
91
103
  export interface VxeIconPickerProps {
@@ -112,6 +124,14 @@ export interface VxeIconPickerProps {
112
124
  placement?: VxeIconPickerPropTypes.Placement
113
125
  popupConfig?: VxeIconPickerPropTypes.PopupConfig
114
126
  transfer?: VxeIconPickerPropTypes.Transfer
127
+ /**
128
+ * 使用虚拟滚动条
129
+ */
130
+ useScrollbar?: VxeIconPickerPropTypes.UseScrollbar
131
+ /**
132
+ * 滚动条配置项
133
+ */
134
+ scrollbarConfig?: VxeIconPickerPropTypes.ScrollbarConfig
115
135
  }
116
136
 
117
137
  export interface IconPickerPrivateComputed {
@@ -1,4 +1,4 @@
1
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType, VxeComponentStyleType } from '@vxe-ui/core'
1
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType, VxeComponentStyleType, VxeComponentIsVScrollbar } from '@vxe-ui/core'
2
2
  import { VxeScrollbarProps } from './scrollbar'
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
@@ -29,7 +29,7 @@ export namespace VxeLayoutAsidePropTypes {
29
29
  */
30
30
  animation?: boolean
31
31
  }
32
- export type UseScrollbar = boolean
32
+ export type UseScrollbar = VxeComponentIsVScrollbar
33
33
  export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
34
34
  /**
35
35
  * 滚动条宽度
@@ -1,4 +1,4 @@
1
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType } from '@vxe-ui/core'
1
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType, VxeComponentIsVScrollbar } from '@vxe-ui/core'
2
2
  import { VxeBacktopProps, VxeBacktopSlotTypes } from './backtop'
3
3
  import { VxeScrollbarProps } from './scrollbar'
4
4
 
@@ -24,7 +24,7 @@ export namespace VxeLayoutBodyPropTypes {
24
24
  export type Padding = boolean
25
25
  export type ShowBacktop = boolean
26
26
  export interface BacktopConfig extends Omit<VxeBacktopProps, 'target'> {}
27
- export type UseScrollbar = boolean
27
+ export type UseScrollbar = VxeComponentIsVScrollbar
28
28
  export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
29
29
  /**
30
30
  * 滚动条宽度
@@ -1,4 +1,4 @@
1
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType } from '@vxe-ui/core'
1
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType, VxeComponentIsVScrollbar } from '@vxe-ui/core'
2
2
 
3
3
  /* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
4
4
 
@@ -17,11 +17,13 @@ export interface VxeLayoutContainerPrivateRef extends LayoutContainerPrivateRef
17
17
 
18
18
  export namespace VxeLayoutContainerPropTypes {
19
19
  export type Size = VxeComponentSizeType
20
+ export type UseScrollbar = VxeComponentIsVScrollbar
20
21
  export type Vertical = boolean
21
22
  }
22
23
 
23
24
  export interface VxeLayoutContainerProps {
24
25
  size?: VxeLayoutContainerPropTypes.Size
26
+ useScrollbar?: VxeLayoutContainerPropTypes.UseScrollbar
25
27
  vertical?: VxeLayoutContainerPropTypes.Vertical
26
28
  }
27
29
 
@@ -1,4 +1,4 @@
1
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, ValueOf } from '@vxe-ui/core'
1
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, ValueOf, VxeComponentIsVScrollbar } from '@vxe-ui/core'
2
2
  import { VxeContextMenuPropTypes, VxeContextMenuDefines } from './context-menu'
3
3
  import { VxeScrollbarProps } from './scrollbar'
4
4
 
@@ -219,7 +219,7 @@ export namespace VxeListPropTypes {
219
219
  */
220
220
  enabled?: boolean
221
221
  }
222
- export type UseScrollbar = boolean
222
+ export type UseScrollbar = VxeComponentIsVScrollbar
223
223
  export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible'> {
224
224
  /**
225
225
  * 滚动条宽度
@@ -351,6 +351,10 @@ export interface ListInternalData {
351
351
 
352
352
  export interface ListMethods<D = any> {
353
353
  dispatchEvent(type: ValueOf<VxeListEmits>, params: Record<string, any>, evnt: Event | null): void
354
+ /**
355
+ * 获取滚动视图元素
356
+ */
357
+ getScrollViewElem(): HTMLElement | null | undefined
354
358
  /**
355
359
  * 加载数据
356
360
  * @param data 列表数据
@@ -1,5 +1,5 @@
1
1
  import { CreateElement } from 'vue'
2
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType, VxeComponentStyleType, VxeComponentPermissionCodeType, VxeComponentSlotType } from '@vxe-ui/core'
2
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType, VxeComponentStyleType, VxeComponentPermissionCodeType, VxeComponentSlotType, VxeComponentIsVScrollbar } from '@vxe-ui/core'
3
3
  import { VxeLinkPropTypes } from './link'
4
4
  import { VxeContextMenuPropTypes, VxeContextMenuDefines } from './context-menu'
5
5
  import { VxeScrollbarProps } from './scrollbar'
@@ -80,7 +80,7 @@ export namespace VxeMenuPropTypes {
80
80
  }): boolean
81
81
  }
82
82
  export type AppendTo = string | HTMLElement | ((params: {}) => string | HTMLElement)
83
- export type UseScrollbar = boolean
83
+ export type UseScrollbar = VxeComponentIsVScrollbar
84
84
  export interface ScrollbarConfig extends VxeScrollbarProps {}
85
85
  }
86
86
 
@@ -1,5 +1,5 @@
1
1
  import { CreateElement } from 'vue'
2
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentSizeType, VxeComponentEventParams, ValueOf, VxeComponentSlotType } from '@vxe-ui/core'
2
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentSizeType, VxeComponentEventParams, ValueOf, VxeComponentSlotType, VxeComponentIsVScrollbar } from '@vxe-ui/core'
3
3
  import { VxeScrollbarProps } from './scrollbar'
4
4
 
5
5
  /* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
@@ -121,7 +121,7 @@ export namespace VxeModalPropTypes {
121
121
  type: ModalEventTypes
122
122
  }) => Promise<any>
123
123
  export type Slots = VxeModalSlots
124
- export type UseScrollbar = boolean
124
+ export type UseScrollbar = VxeComponentIsVScrollbar
125
125
  export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
126
126
  /**
127
127
  * 滚动条宽度
@@ -1,4 +1,4 @@
1
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentStyleType } from '@vxe-ui/core'
1
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType, VxeComponentStyleType, VxeUseInitVScrollbarReactData, VxeUseInitVScrollbarInternalData } from '@vxe-ui/core'
2
2
 
3
3
  /* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
4
4
 
@@ -17,6 +17,7 @@ export interface ScrollbarPrivateRef {
17
17
  export interface VxeScrollbarPrivateRef extends ScrollbarPrivateRef { }
18
18
 
19
19
  export namespace VxeScrollbarPropTypes {
20
+ export type Size = VxeComponentSizeType
20
21
  export type Id = number | string
21
22
  export type ViewId = number | string
22
23
  export type Theme = '' | 'light' | 'dark'
@@ -70,11 +71,20 @@ export namespace VxeScrollbarPropTypes {
70
71
  export type ViewStyle = VxeComponentStyleType
71
72
  export type ViewClassName = string
72
73
  export type ViewInnerClassName = string
74
+ /**
75
+ * 已废弃
76
+ * @deprecated
77
+ */
73
78
  export type AutoResize = boolean
79
+ /**
80
+ * 已废弃
81
+ * @deprecated
82
+ */
74
83
  export type SyncResize = boolean
75
84
  }
76
85
 
77
86
  export interface VxeScrollbarProps {
87
+ size?: VxeScrollbarPropTypes.Size
78
88
  /**
79
89
  * ID
80
90
  */
@@ -161,10 +171,12 @@ export interface VxeScrollbarProps {
161
171
  viewInnerClassName?: VxeScrollbarPropTypes.ViewInnerClassName
162
172
  /**
163
173
  * 自动监听元素的变化去重新计算样式
174
+ * @deprecated
164
175
  */
165
176
  autoResize?: VxeScrollbarPropTypes.AutoResize
166
177
  /**
167
178
  * 自动跟随某个属性的变化去重新计算表格,和手动调用 recalculate 方法是一样的效果(对于通过某个属性来更新内容时可能会用到)
179
+ * @deprecated
168
180
  */
169
181
  syncResize?: VxeScrollbarPropTypes.SyncResize
170
182
  }
@@ -173,18 +185,9 @@ export interface ScrollbarPrivateComputed {
173
185
  }
174
186
  export interface VxeScrollbarPrivateComputed extends ScrollbarPrivateComputed { }
175
187
 
176
- export interface ScrollbarReactData {
177
- yThumbHeight: number
178
- xThumbWidth: number
188
+ export interface ScrollbarReactData extends VxeUseInitVScrollbarReactData {
179
189
  }
180
- export interface ScrollbarInternalData {
181
- resizeObserver?: ResizeObserver
182
- isThumbDrag?: boolean
183
- thumbDragOffset: number
184
- yThumbTop: number
185
- xThumbLeft: number
186
- lastScrollTop: number
187
- lastScrollLeft: number
190
+ export interface ScrollbarInternalData extends VxeUseInitVScrollbarInternalData {
188
191
  }
189
192
 
190
193
  export interface ScrollbarMethods {
@@ -221,11 +224,11 @@ export interface ScrollbarMethods {
221
224
  /**
222
225
  * 获取滚动视图元素
223
226
  */
224
- getViewElem(): HTMLElement | null
227
+ getScrollViewElem(): HTMLElement | null | undefined
225
228
  /**
226
229
  * 获取滚动视图内容包裹元素
227
230
  */
228
- getViewInnerElem(): HTMLElement | null
231
+ getScrollViewInnerElem(): HTMLElement | null | undefined
229
232
  /**
230
233
  * 重新计算样式
231
234
  * 对于某些特殊场景可能会用到,比如更新内容
@@ -1,6 +1,7 @@
1
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, VxeComponentStyleType, ValueOf } from '@vxe-ui/core'
1
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, VxeComponentStyleType, ValueOf, VxeComponentIsVScrollbar, VxeUseInitVScrollbarReactData, VxeUseInitVScrollbarInternalData } from '@vxe-ui/core'
2
2
  import { VxeOptgroupProps } from './optgroup'
3
3
  import { VxeOptionProps, VxeOptionPropTypes } from './option'
4
+ import { VxeScrollbarProps } from './scrollbar'
4
5
 
5
6
  /* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
6
7
 
@@ -9,6 +10,7 @@ export type VxeSelectComponent = DefineVxeComponentOptions<VxeSelectProps>
9
10
 
10
11
  export type VxeSelectInstance = DefineVxeComponentInstance<{
11
12
  reactData: SelectReactData
13
+ internalData: SelectInternalData
12
14
  }, VxeSelectProps, VxeSelectPrivateComputed, VxeSelectMethods>
13
15
 
14
16
  export type VxeSelectConstructor = VxeSelectInstance
@@ -193,6 +195,17 @@ export namespace VxeSelectPropTypes {
193
195
  * @deprecated
194
196
  */
195
197
  export interface ScrollY extends VirtualYConfig {}
198
+ export type UseScrollbar = VxeComponentIsVScrollbar
199
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
200
+ /**
201
+ * 滚动条宽度
202
+ */
203
+ width?: number | string
204
+ /**
205
+ * 滚动条高度
206
+ */
207
+ height?: number | string
208
+ }
196
209
  }
197
210
 
198
211
  export interface VxeSelectProps {
@@ -273,6 +286,14 @@ export interface VxeSelectProps {
273
286
  * 纵向虚拟滚动配置项
274
287
  */
275
288
  virtualYConfig?: VxeSelectPropTypes.VirtualYConfig
289
+ /**
290
+ * 使用虚拟滚动条
291
+ */
292
+ useScrollbar?: VxeSelectPropTypes.UseScrollbar
293
+ /**
294
+ * 滚动条配置项
295
+ */
296
+ scrollbarConfig?: VxeSelectPropTypes.ScrollbarConfig
276
297
 
277
298
  /**
278
299
  * 已废弃,被 remote-config.queryMethod 替换
@@ -300,7 +321,7 @@ export interface SelectPrivateComputed {
300
321
  }
301
322
  export interface VxeSelectPrivateComputed extends SelectPrivateComputed { }
302
323
 
303
- export interface SelectReactData {
324
+ export interface SelectReactData extends VxeUseInitVScrollbarReactData {
304
325
  initialized: boolean
305
326
  scrollYLoad: boolean
306
327
  bodyHeight: number
@@ -322,7 +343,7 @@ export interface SelectReactData {
322
343
  isActivated: boolean
323
344
  }
324
345
 
325
- export interface SelectInternalData {
346
+ export interface SelectInternalData extends VxeUseInitVScrollbarInternalData {
326
347
  isLoaded?: boolean
327
348
  synchData: any[]
328
349
  fullData: any[]
@@ -346,6 +367,10 @@ export interface SelectInternalData {
346
367
 
347
368
  export interface SelectMethods {
348
369
  dispatchEvent(type: ValueOf<VxeSelectEmits>, params: Record<string, any>, evnt: Event | null): void
370
+ /**
371
+ * 获取滚动视图元素
372
+ */
373
+ getScrollViewElem(): HTMLElement | null | undefined
349
374
  /**
350
375
  * 加载数据
351
376
  * @param data 列表数据
@@ -1,6 +1,6 @@
1
1
  import { VNode, CreateElement } from 'vue'
2
2
  import { NormalizedScopedSlot } from 'vue/types/vnode'
3
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, ValueOf, VxeGlobalConfig, VxeComponentStyleType, VxeComponentSlotType, VxeGlobalRendererOptions } from '@vxe-ui/core'
3
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, ValueOf, VxeGlobalConfig, VxeComponentStyleType, VxeComponentSlotType, VxeGlobalRendererOptions, VxeComponentIsVScrollbar, VxeUseSizeResult, VxeUseVScrollbarResult, VxeUseInitVScrollbarResult, VxeUseInitVScrollbarReactData, VxeUseInitVScrollbarInternalData } from '@vxe-ui/core'
4
4
  import { VxeColumnPropTypes, VxeColumnProps, VxeColumnSlotTypes } from './column'
5
5
  import { VxeTableExtendCellAreaDefines, VxeTableExtendCellAreaEmits } from './table-plugins'
6
6
  import { VxeGridConstructor, VxeGridPrivateMethods } from './grid'
@@ -1392,6 +1392,10 @@ export namespace VxeTablePropTypes {
1392
1392
  * 是否显示底部按钮
1393
1393
  */
1394
1394
  showFooter?: boolean
1395
+ /**
1396
+ * 使用虚拟滚动条
1397
+ */
1398
+ useScrollbar?: VxeTooltipPropTypes.UseScrollbar
1395
1399
  }
1396
1400
  export interface FilterOpts<D = VxeTablePropTypes.Row> extends FilterConfig<D> { }
1397
1401
 
@@ -2987,7 +2991,7 @@ export namespace VxeTablePropTypes {
2987
2991
  */
2988
2992
  overscrollBehavior?: 'contain' | 'none' | ''
2989
2993
  }
2990
- export type UseScrollbar = boolean
2994
+ export type UseScrollbar = VxeComponentIsVScrollbar
2991
2995
  /**
2992
2996
  * 滚动条配置项
2993
2997
  */
@@ -3965,8 +3969,8 @@ export interface VxeTableProps<D = any> {
3965
3969
  }
3966
3970
 
3967
3971
  export interface TablePrivateComputed<D = any> {
3968
- computeSize: VxeTablePropTypes.Size
3969
3972
  computeTableId: string
3973
+ computeTableStyle: VxeComponentStyleType
3970
3974
  computeRowField: string
3971
3975
  computeEditDirtyOpts: VxeTablePropTypes.EditDirtyConfig
3972
3976
  computeValidOpts: VxeTablePropTypes.ValidOpts<D>
@@ -4126,9 +4130,9 @@ export interface TablePrivateComputed<D = any> {
4126
4130
  */
4127
4131
  computeSYOpts: VxeTablePropTypes.VirtualYConfig & { gt: number }
4128
4132
  }
4129
- export interface VxeTablePrivateComputed<D = any> extends TablePrivateComputed<D> { }
4133
+ export interface VxeTablePrivateComputed<D = any> extends TablePrivateComputed<D>, VxeUseSizeResult, VxeUseVScrollbarResult { }
4130
4134
 
4131
- export interface TableReactData<D = any> {
4135
+ export interface TableReactData<D = any> extends VxeUseInitVScrollbarReactData {
4132
4136
  updateColFlag: number
4133
4137
  // 低性能的静态列
4134
4138
  staticColumns: any[]
@@ -4151,10 +4155,6 @@ export interface TableReactData<D = any> {
4151
4155
  // 横向滚动条的高度
4152
4156
  scrollbarHeight: number
4153
4157
 
4154
- // 滚动条
4155
- yThumbHeight: number
4156
- xThumbWidth: number
4157
-
4158
4158
  /**
4159
4159
  * 行高
4160
4160
  * @deprecated
@@ -4353,7 +4353,7 @@ export interface TableReactData<D = any> {
4353
4353
  currColFlag: number
4354
4354
  }
4355
4355
 
4356
- export interface TableInternalData<D = any> {
4356
+ export interface TableInternalData<D = any> extends VxeUseInitVScrollbarInternalData {
4357
4357
  tZindex: number
4358
4358
  currKeyField: string
4359
4359
  isCurrDeepKey: boolean
@@ -4398,15 +4398,6 @@ export interface TableInternalData<D = any> {
4398
4398
 
4399
4399
  resizeObserver?: ResizeObserver
4400
4400
 
4401
- // 滚动条
4402
- scrollObserver?: ResizeObserver
4403
- isThumbDrag?: boolean
4404
- thumbDragOffset: number
4405
- yThumbTop: number
4406
- xThumbLeft: number
4407
- lastScrollTop: number
4408
- lastScrollLeft: number
4409
-
4410
4401
  // 单选框属性,已选中保留的行
4411
4402
  radioReserveRow: any
4412
4403
  // 复选框属性,已选中保留的行
@@ -4596,6 +4587,10 @@ export interface TableMethods<DT = any> {
4596
4587
  * 获取根元素
4597
4588
  */
4598
4589
  getEl(): HTMLDivElement
4590
+ /**
4591
+ * 获取滚动视图元素
4592
+ */
4593
+ getScrollViewElem(): HTMLElement | null | undefined
4599
4594
  /**
4600
4595
  * 手动清除表格所有条件,还原到初始状态
4601
4596
  * 对于增删改查的场景中可能会用到,比如在数据保存之后清除表格缓存
@@ -5603,9 +5598,19 @@ export interface TableMethods<DT = any> {
5603
5598
  */
5604
5599
  getCustomStoreData(): VxeTableDefines.CustomStoreData
5605
5600
  }
5606
- export interface VxeTableMethods<D = any> extends TableMethods<D> { }
5601
+ export interface VxeTableMethods<D = any> extends TableMethods<D>, VxeUseInitVScrollbarResult { }
5607
5602
 
5608
5603
  export interface TablePrivateMethods<D = any> {
5604
+ /**
5605
+ * 内部方法
5606
+ * @private
5607
+ */
5608
+ getInternalData(): TableInternalData<D>
5609
+ /**
5610
+ * 内部方法
5611
+ * @private
5612
+ */
5613
+ getReactData(): TableReactData<D>
5609
5614
  /**
5610
5615
  * 内部方法
5611
5616
  * @deprecated
@@ -6010,7 +6015,7 @@ export interface TablePrivateMethods<D = any> {
6010
6015
  * 内部方法
6011
6016
  * @private
6012
6017
  */
6013
- updateScrollbar(): void
6018
+ updateScrollbar(): Promise<void>
6014
6019
  /**
6015
6020
  * 内部方法
6016
6021
  * @private
@@ -6359,7 +6364,6 @@ export namespace VxeTableDefines {
6359
6364
  style: any
6360
6365
  column: VxeTableDefines.ColumnInfo | null | undefined
6361
6366
  visible: boolean
6362
- maxHeight: number | string | null
6363
6367
  }
6364
6368
 
6365
6369
  export interface HistoryStackObj<D = any> {
@@ -1,4 +1,4 @@
1
- import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType } from '@vxe-ui/core'
1
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentSizeType, VxeComponentIsVScrollbar } from '@vxe-ui/core'
2
2
  import { VxeTabPaneProps, VxeTabPaneDefines, VxeTabPanePropTypes } from './tab-pane'
3
3
  import { VxeScrollbarProps } from './scrollbar'
4
4
 
@@ -106,7 +106,7 @@ export namespace VxeTabsPropTypes {
106
106
  option: Omit<VxeTabPaneProps, 'slots'>
107
107
  }) => boolean
108
108
  }
109
- export type UseScrollbar = boolean
109
+ export type UseScrollbar = VxeComponentIsVScrollbar
110
110
  export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
111
111
  /**
112
112
  * 滚动条宽度