vxe-pc-ui 3.20.0 → 3.20.1

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 (91) hide show
  1. package/es/card/src/card.js +18 -3
  2. package/es/icon/style.css +1 -1
  3. package/es/language/fr-FR.js +29 -29
  4. package/es/layout-aside/src/layout-aside.js +8 -5
  5. package/es/layout-body/src/layout-body.js +22 -11
  6. package/es/list/src/list.js +86 -35
  7. package/es/list/style.css +25 -8
  8. package/es/list/style.min.css +1 -1
  9. package/es/scrollbar/src/scrollbar.js +69 -17
  10. package/es/style.css +1 -1
  11. package/es/style.min.css +1 -1
  12. package/es/tabs/src/tabs.js +19 -3
  13. package/es/tree/src/tree.js +439 -56
  14. package/es/tree/style.css +43 -0
  15. package/es/tree/style.min.css +1 -1
  16. package/es/ui/index.js +1 -1
  17. package/es/ui/src/log.js +1 -1
  18. package/es/ui/src/utils.js +3 -0
  19. package/es/vxe-list/style.css +25 -8
  20. package/es/vxe-list/style.min.css +1 -1
  21. package/es/vxe-tree/style.css +43 -0
  22. package/es/vxe-tree/style.min.css +1 -1
  23. package/lib/card/src/card.js +18 -3
  24. package/lib/card/src/card.min.js +1 -1
  25. package/lib/icon/style/style.css +1 -1
  26. package/lib/icon/style/style.min.css +1 -1
  27. package/lib/index.umd.js +640 -139
  28. package/lib/index.umd.min.js +1 -1
  29. package/lib/language/fr-FR.js +29 -29
  30. package/lib/language/fr-FR.min.js +1 -1
  31. package/lib/language/fr-FR.umd.js +29 -29
  32. package/lib/layout-aside/src/layout-aside.js +8 -8
  33. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  34. package/lib/layout-body/src/layout-body.js +26 -19
  35. package/lib/layout-body/src/layout-body.min.js +1 -1
  36. package/lib/list/src/list.js +73 -32
  37. package/lib/list/src/list.min.js +1 -1
  38. package/lib/list/style/style.css +25 -8
  39. package/lib/list/style/style.min.css +1 -1
  40. package/lib/scrollbar/src/scrollbar.js +74 -15
  41. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  42. package/lib/style.css +1 -1
  43. package/lib/style.min.css +1 -1
  44. package/lib/tabs/src/tabs.js +20 -7
  45. package/lib/tabs/src/tabs.min.js +1 -1
  46. package/lib/tree/src/tree.js +416 -53
  47. package/lib/tree/src/tree.min.js +1 -1
  48. package/lib/tree/style/style.css +43 -0
  49. package/lib/tree/style/style.min.css +1 -1
  50. package/lib/ui/index.js +1 -1
  51. package/lib/ui/index.min.js +1 -1
  52. package/lib/ui/src/log.js +1 -1
  53. package/lib/ui/src/log.min.js +1 -1
  54. package/lib/ui/src/utils.js +4 -0
  55. package/lib/ui/src/utils.min.js +1 -1
  56. package/lib/vxe-list/style/style.css +25 -8
  57. package/lib/vxe-list/style/style.min.css +1 -1
  58. package/lib/vxe-tree/style/style.css +43 -0
  59. package/lib/vxe-tree/style/style.min.css +1 -1
  60. package/package.json +1 -1
  61. package/packages/card/src/card.ts +19 -3
  62. package/packages/language/fr-FR.ts +903 -903
  63. package/packages/layout-aside/src/layout-aside.ts +8 -5
  64. package/packages/layout-body/src/layout-body.ts +26 -14
  65. package/packages/list/src/list.ts +97 -41
  66. package/packages/scrollbar/src/scrollbar.ts +79 -17
  67. package/packages/tabs/src/tabs.ts +20 -7
  68. package/packages/tree/src/tree.ts +482 -67
  69. package/packages/ui/src/utils.ts +4 -0
  70. package/styles/components/list.scss +35 -10
  71. package/styles/components/tree.scss +76 -0
  72. package/types/components/card.d.ts +10 -1
  73. package/types/components/layout-aside.d.ts +10 -1
  74. package/types/components/layout-body.d.ts +10 -1
  75. package/types/components/list.d.ts +10 -1
  76. package/types/components/scrollbar.d.ts +16 -2
  77. package/types/components/table.d.ts +47 -4
  78. package/types/components/tabs.d.ts +10 -1
  79. package/types/components/tree.d.ts +33 -2
  80. /package/es/icon/{iconfont.1791880407207.ttf → iconfont.1791950618327.ttf} +0 -0
  81. /package/es/icon/{iconfont.1791880407207.woff → iconfont.1791950618327.woff} +0 -0
  82. /package/es/icon/{iconfont.1791880407207.woff2 → iconfont.1791950618327.woff2} +0 -0
  83. /package/es/{iconfont.1791880407207.ttf → iconfont.1791950618327.ttf} +0 -0
  84. /package/es/{iconfont.1791880407207.woff → iconfont.1791950618327.woff} +0 -0
  85. /package/es/{iconfont.1791880407207.woff2 → iconfont.1791950618327.woff2} +0 -0
  86. /package/lib/icon/style/{iconfont.1791880407207.ttf → iconfont.1791950618327.ttf} +0 -0
  87. /package/lib/icon/style/{iconfont.1791880407207.woff → iconfont.1791950618327.woff} +0 -0
  88. /package/lib/icon/style/{iconfont.1791880407207.woff2 → iconfont.1791950618327.woff2} +0 -0
  89. /package/lib/{iconfont.1791880407207.ttf → iconfont.1791950618327.ttf} +0 -0
  90. /package/lib/{iconfont.1791880407207.woff → iconfont.1791950618327.woff} +0 -0
  91. /package/lib/{iconfont.1791880407207.woff2 → iconfont.1791950618327.woff2} +0 -0
@@ -72,3 +72,7 @@ export function enModelValue (nodeid: string | number | null | undefined) {
72
72
  export function deModelValue (nodeid: string | number | null) {
73
73
  return nodeid ? decodeURIComponent(`${nodeid}`) : nodeid
74
74
  }
75
+
76
+ export function getDefaultConfig <T = any, D = any> (val1: T, def1: D): (T | D) {
77
+ return XEUtils.eqNull(val1) ? def1 : val1
78
+ }
@@ -290,21 +290,34 @@
290
290
 
291
291
  // 滚动条
292
292
  .vxe-list {
293
- & > .vxe-scrollbar {
294
- position: unset;
293
+ &.ov-padding {
294
+ &.overflow-x {
295
+ &.sx-pos--top {
296
+ padding-top: var(--vxe-ui-scrollbar-x-height);
297
+ }
298
+ &.sx-pos--bottom {
299
+ padding-bottom: var(--vxe-ui-scrollbar-x-height);
300
+ }
301
+ }
302
+ &.overflow-y {
303
+ &.sy-pos--left {
304
+ padding-left: var(--vxe-ui-scrollbar-y-width);
305
+ }
306
+ &.sy-pos--right {
307
+ padding-right: var(--vxe-ui-scrollbar-y-width);
308
+ }
309
+ }
295
310
  }
296
- &.is--virtual-scrollbar {
311
+ &.ov-x--hidden {
297
312
  & > .vxe-list--virtual-wrapper {
298
- scrollbar-width: none;
299
- -ms-overflow-style: none;
313
+ overflow-x: hidden;
300
314
  }
301
- & > .vxe-list--virtual-wrapper::-webkit-scrollbar {
302
- display: none;
315
+ }
316
+ &.ov-y--hidden {
317
+ & > .vxe-list--virtual-wrapper {
318
+ overflow-y: hidden;
303
319
  }
304
320
  }
305
- }
306
-
307
- .vxe-list {
308
321
  &.is--virtual-scrollbar {
309
322
  &.ov-x--auto-hide {
310
323
  &:hover {
@@ -337,4 +350,16 @@
337
350
  }
338
351
  }
339
352
  }
353
+ & > .vxe-scrollbar {
354
+ position: unset;
355
+ }
356
+ &.is--virtual-scrollbar {
357
+ & > .vxe-list--virtual-wrapper {
358
+ scrollbar-width: none;
359
+ -ms-overflow-style: none;
360
+ }
361
+ & > .vxe-list--virtual-wrapper::-webkit-scrollbar {
362
+ display: none;
363
+ }
364
+ }
340
365
  }
@@ -308,3 +308,79 @@
308
308
  width: 0;
309
309
  float: left;
310
310
  }
311
+
312
+ // 滚动条
313
+ .vxe-tree {
314
+ &.ov-padding {
315
+ &.overflow-x {
316
+ &.sx-pos--top {
317
+ padding-top: var(--vxe-ui-scrollbar-x-height);
318
+ }
319
+ &.sx-pos--bottom {
320
+ padding-bottom: var(--vxe-ui-scrollbar-x-height);
321
+ }
322
+ }
323
+ &.overflow-y {
324
+ &.sy-pos--left {
325
+ padding-left: var(--vxe-ui-scrollbar-y-width);
326
+ }
327
+ &.sy-pos--right {
328
+ padding-right: var(--vxe-ui-scrollbar-y-width);
329
+ }
330
+ }
331
+ }
332
+ &.ov-x--hidden {
333
+ & > .vxe-tree--node-list-wrapper {
334
+ overflow-x: hidden;
335
+ }
336
+ }
337
+ &.ov-y--hidden {
338
+ & > .vxe-tree--node-list-wrapper {
339
+ overflow-y: hidden;
340
+ }
341
+ }
342
+ &.is--virtual-scrollbar {
343
+ &.ov-x--auto-hide {
344
+ &:hover {
345
+ & > .vxe-scrollbar {
346
+ & > .vxe-scrollbar--track-x {
347
+ opacity: 1;
348
+ }
349
+ }
350
+ }
351
+ & > .vxe-scrollbar {
352
+ & > .vxe-scrollbar--track-x {
353
+ opacity: 0;
354
+ @include baseMixin.createAnimationTransition(opacity, 0.8s);
355
+ }
356
+ }
357
+ }
358
+ &.ov-y--auto-hide {
359
+ &:hover {
360
+ & > .vxe-scrollbar {
361
+ & > .vxe-scrollbar--track-y {
362
+ opacity: 1;
363
+ }
364
+ }
365
+ }
366
+ & > .vxe-scrollbar {
367
+ & > .vxe-scrollbar--track-y {
368
+ opacity: 0;
369
+ @include baseMixin.createAnimationTransition(opacity, 0.8s);
370
+ }
371
+ }
372
+ }
373
+ }
374
+ & > .vxe-scrollbar {
375
+ position: unset;
376
+ }
377
+ &.is--virtual-scrollbar {
378
+ & > .vxe-tree--node-list-wrapper {
379
+ scrollbar-width: none;
380
+ -ms-overflow-style: none;
381
+ }
382
+ & > .vxe-tree--node-list-wrapper::-webkit-scrollbar {
383
+ display: none;
384
+ }
385
+ }
386
+ }
@@ -27,7 +27,16 @@ export namespace VxeCardPropTypes {
27
27
  export type Padding = boolean
28
28
  export type Size = VxeComponentSizeType
29
29
  export type UseScrollbar = boolean
30
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'xConfig' | 'yConfig' | 'padding' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
30
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
31
+ /**
32
+ * 滚动条宽度
33
+ */
34
+ width?: number | string
35
+ /**
36
+ * 滚动条高度
37
+ */
38
+ height?: number | string
39
+ }
31
40
  }
32
41
 
33
42
  export type VxeCardProps = {
@@ -30,7 +30,16 @@ export namespace VxeLayoutAsidePropTypes {
30
30
  animation?: boolean
31
31
  }
32
32
  export type UseScrollbar = boolean
33
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'yConfig' | 'padding' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
33
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
34
+ /**
35
+ * 滚动条宽度
36
+ */
37
+ width?: number | string
38
+ /**
39
+ * 滚动条高度
40
+ */
41
+ height?: number | string
42
+ }
34
43
  }
35
44
 
36
45
  export interface VxeLayoutAsideProps {
@@ -25,7 +25,16 @@ export namespace VxeLayoutBodyPropTypes {
25
25
  export type ShowBacktop = boolean
26
26
  export interface BacktopConfig extends Omit<VxeBacktopProps, 'target'> {}
27
27
  export type UseScrollbar = boolean
28
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'xConfig' | 'yConfig' | 'padding' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
28
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
29
+ /**
30
+ * 滚动条宽度
31
+ */
32
+ width?: number | string
33
+ /**
34
+ * 滚动条高度
35
+ */
36
+ height?: number | string
37
+ }
29
38
  }
30
39
  export interface VxeLayoutBodyProps {
31
40
  size?: VxeLayoutBodyPropTypes.Size
@@ -220,7 +220,16 @@ export namespace VxeListPropTypes {
220
220
  enabled?: boolean
221
221
  }
222
222
  export type UseScrollbar = boolean
223
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding'> {}
223
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible'> {
224
+ /**
225
+ * 滚动条宽度
226
+ */
227
+ width?: number | string
228
+ /**
229
+ * 滚动条高度
230
+ */
231
+ height?: number | string
232
+ }
224
233
  }
225
234
 
226
235
  export interface VxeListProps<D = any> {
@@ -28,6 +28,8 @@ export namespace VxeScrollbarPropTypes {
28
28
  export type Loading = boolean
29
29
  export type Native = boolean
30
30
  export type Padding = boolean
31
+ export type AutoHide = boolean
32
+ export type Visible = boolean
31
33
  export interface XConfig {
32
34
  height?: number | string
33
35
  // showArrows?: boolean
@@ -39,7 +41,7 @@ export namespace VxeScrollbarPropTypes {
39
41
  * 滚动条显示位置
40
42
  */
41
43
  position?: 'top' | 'bottom' | ''
42
- visible?: 'auto' | 'hidden' | 'visible' | ''
44
+ visible?: boolean
43
45
  /**
44
46
  * 滚动到边界触发的阈值会触发 scroll-boundary 事件
45
47
  */
@@ -56,7 +58,7 @@ export namespace VxeScrollbarPropTypes {
56
58
  * 滚动条显示位置
57
59
  */
58
60
  position?: 'left' | 'right' | ''
59
- visible?: 'auto' | 'hidden' | 'visible' | ''
61
+ visible?: boolean
60
62
  /**
61
63
  * 滚动到边界触发的阈值会触发 scroll-boundary 事件
62
64
  */
@@ -75,6 +77,10 @@ export interface VxeScrollbarProps {
75
77
  * ID
76
78
  */
77
79
  id?: VxeScrollbarPropTypes.Id
80
+ /**
81
+ * View ID
82
+ */
83
+ viewId?: VxeScrollbarPropTypes.ViewId
78
84
  /**
79
85
  * 容器宽度
80
86
  */
@@ -111,6 +117,14 @@ export interface VxeScrollbarProps {
111
117
  * 滚动条是否需要边距
112
118
  */
113
119
  padding?: VxeScrollbarPropTypes.Padding
120
+ /**
121
+ * 是否自动隐藏
122
+ */
123
+ autoHide?: VxeScrollbarPropTypes.AutoHide
124
+ /**
125
+ * 是否显示
126
+ */
127
+ visible?: VxeScrollbarPropTypes.Visible
114
128
  /**
115
129
  * 纵向滚动条宽度
116
130
  */
@@ -2940,33 +2940,52 @@ export namespace VxeTablePropTypes {
2940
2940
  }
2941
2941
 
2942
2942
  export interface ScrollbarXConfig {
2943
+ /**
2944
+ * 滚动条高度
2945
+ */
2946
+ height?: number
2943
2947
  /**
2944
2948
  * 滚动条显示位置
2945
2949
  */
2946
2950
  position?: 'top' | 'bottom' | ''
2947
2951
  /**
2948
- * 滚动条显示方式
2952
+ * 是否显示
2949
2953
  */
2950
2954
  visible?: 'auto' | 'visible' | 'hidden' | boolean
2955
+ /**
2956
+ * 是否自动隐藏滚动条
2957
+ */
2958
+ autoHide?: boolean
2951
2959
  /**
2952
2960
  * 滚动行为
2961
+ * @deprecated
2953
2962
  */
2954
2963
  overscrollBehavior?: 'contain' | 'none' | ''
2955
2964
  }
2956
2965
  export interface ScrollbarYConfig {
2966
+ /**
2967
+ * 滚动条宽度
2968
+ */
2969
+ width?: number
2957
2970
  /**
2958
2971
  * 滚动条显示位置
2959
2972
  */
2960
2973
  position?: 'left' | 'right' | ''
2961
2974
  /**
2962
- * 滚动条显示方式
2975
+ * 是否显示
2963
2976
  */
2964
2977
  visible?: 'auto' | 'visible' | 'hidden' | boolean
2978
+ /**
2979
+ * 是否自动隐藏滚动条
2980
+ */
2981
+ autoHide?: boolean
2965
2982
  /**
2966
2983
  * 滚动行为
2984
+ * @deprecated
2967
2985
  */
2968
2986
  overscrollBehavior?: 'contain' | 'none' | ''
2969
2987
  }
2988
+ export type UseScrollbar = boolean
2970
2989
  /**
2971
2990
  * 滚动条配置项
2972
2991
  */
@@ -2979,18 +2998,38 @@ export namespace VxeTablePropTypes {
2979
2998
  * 滚动条高度
2980
2999
  */
2981
3000
  height?: number
3001
+ padding?: boolean
3002
+ /**
3003
+ * 是否自动隐藏滚动条
3004
+ */
3005
+ autoHide?: boolean
3006
+ /**
3007
+ * 是否显示
3008
+ */
3009
+ visible?: boolean
2982
3010
  /**
2983
3011
  * 滚动行为
3012
+ * @deprecated
2984
3013
  */
2985
3014
  overscrollBehavior?: 'contain' | 'none' | ''
2986
3015
  /**
2987
- * 横向滚动条
3016
+ * 已废弃,请使用 xConfig
3017
+ * @deprecated
2988
3018
  */
2989
3019
  x?: ScrollbarXConfig
2990
3020
  /**
2991
- * 纵向滚动条
3021
+ * 横向滚动条
3022
+ */
3023
+ xConfig?: ScrollbarXConfig
3024
+ /**
3025
+ * 已废弃,请使用 yConfig
3026
+ * @deprecated
2992
3027
  */
2993
3028
  y?: ScrollbarYConfig
3029
+ /**
3030
+ * 纵向滚动条
3031
+ */
3032
+ yConfig?: ScrollbarYConfig
2994
3033
  }
2995
3034
 
2996
3035
  /**
@@ -3839,6 +3878,10 @@ export interface VxeTableProps<D = any> {
3839
3878
  * 纵向虚拟滚动配置
3840
3879
  */
3841
3880
  virtualYConfig?: VxeTablePropTypes.VirtualYConfig
3881
+ /**
3882
+ * 使用虚拟滚动条
3883
+ */
3884
+ useScrollbar?: VxeTablePropTypes.UseScrollbar
3842
3885
  /**
3843
3886
  * 滚动条配置项
3844
3887
  */
@@ -107,7 +107,16 @@ export namespace VxeTabsPropTypes {
107
107
  }) => boolean
108
108
  }
109
109
  export type UseScrollbar = boolean
110
- export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'native' | 'xConfig' | 'yConfig' | 'padding' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {}
110
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible' | 'className' | 'viewAttrs' | 'viewClassName' | 'viewInnerClassName'> {
111
+ /**
112
+ * 滚动条宽度
113
+ */
114
+ width?: number | string
115
+ /**
116
+ * 滚动条高度
117
+ */
118
+ height?: number | string
119
+ }
111
120
  }
112
121
 
113
122
  export type VxeTabsProps = {
@@ -1,6 +1,7 @@
1
1
  import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, ValueOf } from '@vxe-ui/core'
2
2
  import { VxeContextMenuPropTypes, VxeContextMenuDefines } from './context-menu'
3
3
  import { VxeTooltipPropTypes } from './tooltip'
4
+ import { VxeScrollbarProps } from './scrollbar'
4
5
 
5
6
  /* eslint-disable no-use-before-define,@typescript-eslint/ban-types,@typescript-eslint/no-unused-vars */
6
7
 
@@ -324,6 +325,17 @@ export namespace VxeTreePropTypes {
324
325
  */
325
326
  enabled?: boolean
326
327
  }
328
+ export type UseScrollbar = boolean
329
+ export interface ScrollbarConfig extends Pick<VxeScrollbarProps, 'xConfig' | 'yConfig' | 'padding' | 'autoHide' | 'visible'> {
330
+ /**
331
+ * 滚动条宽度
332
+ */
333
+ width?: number | string
334
+ /**
335
+ * 滚动条高度
336
+ */
337
+ height?: number | string
338
+ }
327
339
  }
328
340
 
329
341
  export interface VxeTreeProps<D = any> {
@@ -403,6 +415,14 @@ export interface VxeTreeProps<D = any> {
403
415
  iconLoaded?: VxeTreePropTypes.IconLoaded
404
416
  size?: VxeTreePropTypes.Size
405
417
  virtualYConfig?: VxeTreePropTypes.VirtualYConfig
418
+ /**
419
+ * 使用虚拟滚动条
420
+ */
421
+ useScrollbar?: VxeTreePropTypes.UseScrollbar
422
+ /**
423
+ * 滚动条配置项
424
+ */
425
+ scrollbarConfig?: VxeTreePropTypes.ScrollbarConfig
406
426
  }
407
427
 
408
428
  export interface TreePrivateComputed<D = any> {
@@ -431,6 +451,10 @@ export interface TreeReactData {
431
451
  updateExpandedFlag: number
432
452
  updateCheckboxFlag: number
433
453
 
454
+ // 滚动条
455
+ yThumbHeight: number
456
+ xThumbWidth: number
457
+
434
458
  insertNodeFlag: number
435
459
  removeNodeFlag: number
436
460
 
@@ -446,7 +470,6 @@ export interface TreeReactData {
446
470
 
447
471
  export interface TreeInternalData {
448
472
  initialized?: boolean
449
- resizeObserver?: ResizeObserver
450
473
  lastFilterValue?: string
451
474
  afterTreeList: any[]
452
475
  treeFullData: any[]
@@ -456,8 +479,16 @@ export interface TreeInternalData {
456
479
  selectCheckboxMaps: Record<string, any>
457
480
  treeExpandedMaps: Record<string, boolean>
458
481
  treeExpandLazyLoadedMaps: Record<string, boolean>
459
- lastScrollLeft: number
482
+
483
+ // 滚动条
484
+ resizeObserver?: ResizeObserver
485
+ isThumbDrag?: boolean
486
+ thumbDragOffset: number
487
+ yThumbTop: number
488
+ xThumbLeft: number
460
489
  lastScrollTop: number
490
+ lastScrollLeft: number
491
+
461
492
  scrollYStore: {
462
493
  startIndex: number
463
494
  endIndex: number