vxe-pc-ui 4.18.23 → 4.19.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.
Files changed (138) hide show
  1. package/dist/all.esm.js +1039 -988
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/calendar/src/calendar.js +1 -1
  5. package/es/card/src/card.js +1 -1
  6. package/es/carousel/src/carousel.js +1 -1
  7. package/es/countdown/src/countdown.js +1 -1
  8. package/es/date-picker/src/date-picker.js +3 -3
  9. package/es/icon/style.css +1 -1
  10. package/es/icon-picker/src/icon-picker.js +1 -1
  11. package/es/layout-aside/src/layout-aside.js +22 -10
  12. package/es/layout-aside/style.css +2 -4
  13. package/es/layout-aside/style.min.css +1 -1
  14. package/es/layout-body/src/layout-body.js +19 -12
  15. package/es/layout-body/style.css +2 -3
  16. package/es/layout-body/style.min.css +1 -1
  17. package/es/list/src/list.js +1 -1
  18. package/es/menu/src/menu.js +10 -4
  19. package/es/menu/style.css +10 -2
  20. package/es/menu/style.min.css +1 -1
  21. package/es/scrollbar/src/scrollbar.js +38 -17
  22. package/es/scrollbar/style.css +16 -13
  23. package/es/scrollbar/style.min.css +1 -1
  24. package/es/select/src/select.js +2 -2
  25. package/es/style.css +1 -1
  26. package/es/style.min.css +1 -1
  27. package/es/tabs/src/tabs.js +1 -1
  28. package/es/text-ellipsis/style.css +29 -10
  29. package/es/text-ellipsis/style.min.css +1 -1
  30. package/es/ui/index.js +8 -2
  31. package/es/ui/src/log.js +1 -1
  32. package/es/upload/src/upload.js +1 -1
  33. package/es/vxe-layout-aside/style.css +2 -4
  34. package/es/vxe-layout-aside/style.min.css +1 -1
  35. package/es/vxe-layout-body/style.css +2 -3
  36. package/es/vxe-layout-body/style.min.css +1 -1
  37. package/es/vxe-menu/style.css +10 -2
  38. package/es/vxe-menu/style.min.css +1 -1
  39. package/es/vxe-scrollbar/style.css +16 -13
  40. package/es/vxe-scrollbar/style.min.css +1 -1
  41. package/es/vxe-text-ellipsis/style.css +29 -10
  42. package/es/vxe-text-ellipsis/style.min.css +1 -1
  43. package/lib/calendar/src/calendar.js +1 -1
  44. package/lib/calendar/src/calendar.min.js +1 -1
  45. package/lib/card/src/card.js +1 -1
  46. package/lib/card/src/card.min.js +1 -1
  47. package/lib/carousel/src/carousel.js +1 -1
  48. package/lib/carousel/src/carousel.min.js +1 -1
  49. package/lib/countdown/src/countdown.js +1 -1
  50. package/lib/countdown/src/countdown.min.js +1 -1
  51. package/lib/date-picker/src/date-picker.js +3 -3
  52. package/lib/date-picker/src/date-picker.min.js +1 -1
  53. package/lib/icon/style/style.css +1 -1
  54. package/lib/icon/style/style.min.css +1 -1
  55. package/lib/icon-picker/src/icon-picker.js +1 -1
  56. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  57. package/lib/index.umd.js +1420 -1337
  58. package/lib/index.umd.min.js +1 -1
  59. package/lib/layout-aside/src/layout-aside.js +29 -10
  60. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  61. package/lib/layout-aside/style/style.css +2 -4
  62. package/lib/layout-aside/style/style.min.css +1 -1
  63. package/lib/layout-body/src/layout-body.js +29 -12
  64. package/lib/layout-body/src/layout-body.min.js +1 -1
  65. package/lib/layout-body/style/style.css +2 -3
  66. package/lib/layout-body/style/style.min.css +1 -1
  67. package/lib/list/src/list.js +1 -1
  68. package/lib/list/src/list.min.js +1 -1
  69. package/lib/menu/src/menu.js +11 -3
  70. package/lib/menu/src/menu.min.js +1 -1
  71. package/lib/menu/style/style.css +10 -2
  72. package/lib/menu/style/style.min.css +1 -1
  73. package/lib/scrollbar/src/scrollbar.js +38 -8
  74. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  75. package/lib/scrollbar/style/style.css +16 -13
  76. package/lib/scrollbar/style/style.min.css +1 -1
  77. package/lib/select/src/select.js +2 -2
  78. package/lib/select/src/select.min.js +1 -1
  79. package/lib/style.css +1 -1
  80. package/lib/style.min.css +1 -1
  81. package/lib/tabs/src/tabs.js +1 -1
  82. package/lib/tabs/src/tabs.min.js +1 -1
  83. package/lib/text-ellipsis/style/style.css +29 -10
  84. package/lib/text-ellipsis/style/style.min.css +1 -1
  85. package/lib/ui/index.js +8 -2
  86. package/lib/ui/index.min.js +1 -1
  87. package/lib/ui/src/log.js +1 -1
  88. package/lib/ui/src/log.min.js +1 -1
  89. package/lib/upload/src/upload.js +1 -1
  90. package/lib/upload/src/upload.min.js +1 -1
  91. package/lib/vxe-layout-aside/style/style.css +2 -4
  92. package/lib/vxe-layout-aside/style/style.min.css +1 -1
  93. package/lib/vxe-layout-body/style/style.css +2 -3
  94. package/lib/vxe-layout-body/style/style.min.css +1 -1
  95. package/lib/vxe-menu/style/style.css +10 -2
  96. package/lib/vxe-menu/style/style.min.css +1 -1
  97. package/lib/vxe-scrollbar/style/style.css +16 -13
  98. package/lib/vxe-scrollbar/style/style.min.css +1 -1
  99. package/lib/vxe-text-ellipsis/style/style.css +29 -10
  100. package/lib/vxe-text-ellipsis/style/style.min.css +1 -1
  101. package/package.json +2 -2
  102. package/packages/calendar/src/calendar.ts +1 -1
  103. package/packages/card/src/card.ts +1 -1
  104. package/packages/carousel/src/carousel.ts +1 -1
  105. package/packages/countdown/src/countdown.ts +1 -1
  106. package/packages/date-picker/src/date-picker.ts +3 -3
  107. package/packages/icon-picker/src/icon-picker.ts +1 -1
  108. package/packages/layout-aside/src/layout-aside.ts +23 -10
  109. package/packages/layout-body/src/layout-body.ts +23 -12
  110. package/packages/list/src/list.ts +1 -1
  111. package/packages/menu/src/menu.ts +14 -4
  112. package/packages/scrollbar/src/scrollbar.ts +41 -14
  113. package/packages/select/src/select.ts +2 -2
  114. package/packages/tabs/src/tabs.ts +1 -1
  115. package/packages/ui/index.ts +8 -3
  116. package/packages/upload/src/upload.ts +1 -1
  117. package/styles/components/layout-aside.scss +2 -4
  118. package/styles/components/layout-body.scss +2 -3
  119. package/styles/components/menu.scss +11 -2
  120. package/styles/components/scrollbar.scss +24 -17
  121. package/styles/components/text-ellipsis.scss +23 -64
  122. package/styles/theme/base.scss +2 -0
  123. package/types/components/layout-aside.d.ts +3 -0
  124. package/types/components/layout-body.d.ts +3 -1
  125. package/types/components/menu.d.ts +3 -0
  126. package/types/components/scrollbar.d.ts +15 -0
  127. /package/es/icon/{iconfont.1791517860186.ttf → iconfont.1791539010382.ttf} +0 -0
  128. /package/es/icon/{iconfont.1791517860186.woff → iconfont.1791539010382.woff} +0 -0
  129. /package/es/icon/{iconfont.1791517860186.woff2 → iconfont.1791539010382.woff2} +0 -0
  130. /package/es/{iconfont.1791517860186.ttf → iconfont.1791539010382.ttf} +0 -0
  131. /package/es/{iconfont.1791517860186.woff → iconfont.1791539010382.woff} +0 -0
  132. /package/es/{iconfont.1791517860186.woff2 → iconfont.1791539010382.woff2} +0 -0
  133. /package/lib/icon/style/{iconfont.1791517860186.ttf → iconfont.1791539010382.ttf} +0 -0
  134. /package/lib/icon/style/{iconfont.1791517860186.woff → iconfont.1791539010382.woff} +0 -0
  135. /package/lib/icon/style/{iconfont.1791517860186.woff2 → iconfont.1791539010382.woff2} +0 -0
  136. /package/lib/{iconfont.1791517860186.ttf → iconfont.1791539010382.ttf} +0 -0
  137. /package/lib/{iconfont.1791517860186.woff → iconfont.1791539010382.woff} +0 -0
  138. /package/lib/{iconfont.1791517860186.woff2 → iconfont.1791539010382.woff2} +0 -0
@@ -5,8 +5,6 @@
5
5
  .vxe-scrollbar.is--virtual > .vxe-scrollbar--view {
6
6
  scrollbar-width: none;
7
7
  -ms-overflow-style: none;
8
- overflow-x: auto;
9
- overflow-y: auto;
10
8
  }
11
9
  .vxe-scrollbar.is--virtual > .vxe-scrollbar--view::-webkit-scrollbar {
12
10
  display: none;
@@ -25,16 +23,6 @@
25
23
  opacity: 0;
26
24
  transition: opacity 0.8s ease-in-out;
27
25
  }
28
- .vxe-scrollbar.is--native > .vxe-scrollbar--view {
29
- overflow-x: auto;
30
- overflow-y: auto;
31
- }
32
- .vxe-scrollbar.is--native.ov-x--hidden > .vxe-scrollbar--view {
33
- overflow-x: hidden;
34
- }
35
- .vxe-scrollbar.is--native.ov-y--hidden > .vxe-scrollbar--view {
36
- overflow-y: hidden;
37
- }
38
26
  .vxe-scrollbar.is--native > .vxe-scrollbar--view::-webkit-scrollbar {
39
27
  width: var(--vxe-ui-scrollbar-y-width);
40
28
  height: var(--vxe-ui-scrollbar-x-height);
@@ -49,14 +37,23 @@
49
37
  .vxe-scrollbar.is--native > .vxe-scrollbar--view::-webkit-scrollbar-thumb:active {
50
38
  background-color: var(--vxe-ui-scrollbar-thumb-active-background-color);
51
39
  }
40
+ .vxe-scrollbar.ov-x--hidden > .vxe-scrollbar--view {
41
+ overflow-x: hidden;
42
+ }
43
+ .vxe-scrollbar.ov-y--hidden > .vxe-scrollbar--view {
44
+ overflow-y: hidden;
45
+ }
52
46
 
53
47
  .vxe-scrollbar--view {
54
48
  height: 100%;
55
49
  width: 100%;
50
+ overflow-x: auto;
51
+ overflow-y: auto;
56
52
  }
57
53
 
58
54
  .vxe-scrollbar--track-x,
59
55
  .vxe-scrollbar--track-y {
56
+ display: none;
60
57
  position: absolute;
61
58
  background-color: var(--vxe-ui-scrollbar-track-background-color);
62
59
  -webkit-user-select: none;
@@ -64,11 +61,16 @@
64
61
  user-select: none;
65
62
  }
66
63
 
64
+ .vxe-scrollbar.overflow-y > .vxe-scrollbar--track-x, .vxe-scrollbar.overflow-y > .vxe-scrollbar--track-y {
65
+ display: block;
66
+ }
67
+
67
68
  .vxe-scrollbar--track-x {
68
69
  width: 100%;
69
70
  bottom: 0;
70
71
  left: 0;
71
72
  height: var(--vxe-ui-scrollbar-x-height);
73
+ padding: var(--vxe-ui-scrollbar-track-padding) 0;
72
74
  }
73
75
 
74
76
  .vxe-scrollbar--track-y {
@@ -76,6 +78,7 @@
76
78
  right: 0;
77
79
  top: 0;
78
80
  width: var(--vxe-ui-scrollbar-y-width);
81
+ padding: 0 var(--vxe-ui-scrollbar-track-padding);
79
82
  }
80
83
 
81
84
  .vxe-scrollbar--thumb-y {
@@ -88,7 +91,7 @@
88
91
 
89
92
  .vxe-scrollbar--thumb-x,
90
93
  .vxe-scrollbar--thumb-y {
91
- border-radius: var(--vxe-ui-base-border-radius);
94
+ border-radius: var(--vxe-ui-scrollbar-thumb-border-radius);
92
95
  background-color: var(--vxe-ui-scrollbar-thumb-background-color);
93
96
  }
94
97
  .vxe-scrollbar--thumb-x:hover,
@@ -1 +1 @@
1
- .vxe-scrollbar{width:100%;position:relative}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view{scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto;overflow-y:auto}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view::-webkit-scrollbar{display:none}.vxe-scrollbar.is--virtual.ov-x--auto-hide:hover>.vxe-scrollbar--track-x{opacity:1}.vxe-scrollbar.is--virtual.ov-x--auto-hide>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--virtual.ov-y--auto-hide:hover>.vxe-scrollbar--track-y{opacity:1}.vxe-scrollbar.is--virtual.ov-y--auto-hide>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--native>.vxe-scrollbar--view{overflow-x:auto;overflow-y:auto}.vxe-scrollbar.is--native.ov-x--hidden>.vxe-scrollbar--view{overflow-x:hidden}.vxe-scrollbar.is--native.ov-y--hidden>.vxe-scrollbar--view{overflow-y:hidden}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar{width:var(--vxe-ui-scrollbar-y-width);height:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb{border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}.vxe-scrollbar--view{height:100%;width:100%}.vxe-scrollbar--track-x,.vxe-scrollbar--track-y{position:absolute;background-color:var(--vxe-ui-scrollbar-track-background-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-scrollbar--track-x{width:100%;bottom:0;left:0;height:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar--track-y{height:100%;right:0;top:0;width:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar--thumb-y{width:100%}.vxe-scrollbar--thumb-x{height:100%}.vxe-scrollbar--thumb-x,.vxe-scrollbar--thumb-y{border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar--thumb-x:hover,.vxe-scrollbar--thumb-y:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar--thumb-x:active,.vxe-scrollbar--thumb-y:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}
1
+ .vxe-scrollbar{width:100%;position:relative}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view{scrollbar-width:none;-ms-overflow-style:none}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view::-webkit-scrollbar{display:none}.vxe-scrollbar.is--virtual.ov-x--auto-hide:hover>.vxe-scrollbar--track-x{opacity:1}.vxe-scrollbar.is--virtual.ov-x--auto-hide>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--virtual.ov-y--auto-hide:hover>.vxe-scrollbar--track-y{opacity:1}.vxe-scrollbar.is--virtual.ov-y--auto-hide>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar{width:var(--vxe-ui-scrollbar-y-width);height:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb{border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}.vxe-scrollbar.ov-x--hidden>.vxe-scrollbar--view{overflow-x:hidden}.vxe-scrollbar.ov-y--hidden>.vxe-scrollbar--view{overflow-y:hidden}.vxe-scrollbar--view{height:100%;width:100%;overflow-x:auto;overflow-y:auto}.vxe-scrollbar--track-x,.vxe-scrollbar--track-y{display:none;position:absolute;background-color:var(--vxe-ui-scrollbar-track-background-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-scrollbar.overflow-y>.vxe-scrollbar--track-x,.vxe-scrollbar.overflow-y>.vxe-scrollbar--track-y{display:block}.vxe-scrollbar--track-x{width:100%;bottom:0;left:0;height:var(--vxe-ui-scrollbar-x-height);padding:var(--vxe-ui-scrollbar-track-padding) 0}.vxe-scrollbar--track-y{height:100%;right:0;top:0;width:var(--vxe-ui-scrollbar-y-width);padding:0 var(--vxe-ui-scrollbar-track-padding)}.vxe-scrollbar--thumb-y{width:100%}.vxe-scrollbar--thumb-x{height:100%}.vxe-scrollbar--thumb-x,.vxe-scrollbar--thumb-y{border-radius:var(--vxe-ui-scrollbar-thumb-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar--thumb-x:hover,.vxe-scrollbar--thumb-y:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar--thumb-x:active,.vxe-scrollbar--thumb-y:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}
@@ -1,7 +1,27 @@
1
+ .vxe-text-ellipsis {
2
+ --vxe-ui-text-ellipsis-current-font-size: inherit;
3
+ }
4
+ .vxe-text-ellipsis.size--xlarge {
5
+ --vxe-ui-text-ellipsis-current-font-size: var(--vxe-ui-font-size-xlarge);
6
+ }
7
+ .vxe-text-ellipsis.size--large {
8
+ --vxe-ui-text-ellipsis-current-font-size: var(--vxe-ui-font-size-large);
9
+ }
10
+ .vxe-text-ellipsis.size--medium {
11
+ --vxe-ui-text-ellipsis-current-font-size: var(--vxe-ui-font-size-medium);
12
+ }
13
+ .vxe-text-ellipsis.size--small {
14
+ --vxe-ui-text-ellipsis-current-font-size: var(--vxe-ui-font-size-small);
15
+ }
16
+ .vxe-text-ellipsis.size--mini {
17
+ --vxe-ui-text-ellipsis-current-font-size: var(--vxe-ui-font-size-mini);
18
+ }
19
+
1
20
  .vxe-text-ellipsis {
2
21
  display: block;
3
22
  overflow: hidden;
4
23
  white-space: normal;
24
+ font-size: var(--vxe-ui-text-ellipsis-current-font-size);
5
25
  }
6
26
  .vxe-text-ellipsis.theme--primary {
7
27
  color: var(--vxe-ui-font-primary-color);
@@ -57,6 +77,15 @@
57
77
  .vxe-text-ellipsis.theme--error > .vxe-text-ellipsis--link:hover {
58
78
  color: var(--vxe-ui-status-error-lighten-color);
59
79
  }
80
+ .vxe-text-ellipsis.theme--perfect {
81
+ color: var(--vxe-ui-table-header-background-color);
82
+ }
83
+ .vxe-text-ellipsis.theme--perfect > .vxe-text-ellipsis--link:focus {
84
+ color: var(--vxe-ui-table-header-background-color);
85
+ }
86
+ .vxe-text-ellipsis.theme--perfect > .vxe-text-ellipsis--link:hover {
87
+ color: var(--vxe-ui-table-header-background-color);
88
+ }
60
89
  .vxe-text-ellipsis.is--underline:hover .vxe-text-ellipsis--link {
61
90
  text-decoration: underline;
62
91
  }
@@ -101,14 +130,4 @@
101
130
  .vxe-text-ellipsis--link {
102
131
  text-decoration: none;
103
132
  color: inherit;
104
- }
105
-
106
- .vxe-text-ellipsis.size--medium {
107
- font-size: var(--vxe-ui-font-size-medium);
108
- }
109
- .vxe-text-ellipsis.size--small {
110
- font-size: var(--vxe-ui-font-size-small);
111
- }
112
- .vxe-text-ellipsis.size--mini {
113
- font-size: var(--vxe-ui-font-size-mini);
114
133
  }
@@ -1 +1 @@
1
- .vxe-text-ellipsis{display:block;overflow:hidden;white-space:normal}.vxe-text-ellipsis.theme--primary{color:var(--vxe-ui-font-primary-color)}.vxe-text-ellipsis.theme--primary>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-font-primary-darken-color)}.vxe-text-ellipsis.theme--primary>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-font-primary-lighten-color)}.vxe-text-ellipsis.theme--success{color:var(--vxe-ui-status-success-color)}.vxe-text-ellipsis.theme--success>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-status-success-darken-color)}.vxe-text-ellipsis.theme--success>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-status-success-lighten-color)}.vxe-text-ellipsis.theme--info{color:var(--vxe-ui-status-info-color)}.vxe-text-ellipsis.theme--info>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-status-info-darken-color)}.vxe-text-ellipsis.theme--info>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-status-info-lighten-color)}.vxe-text-ellipsis.theme--warning{color:var(--vxe-ui-status-warning-color)}.vxe-text-ellipsis.theme--warning>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-status-warning-darken-color)}.vxe-text-ellipsis.theme--warning>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-status-warning-lighten-color)}.vxe-text-ellipsis.theme--danger{color:var(--vxe-ui-status-danger-color)}.vxe-text-ellipsis.theme--danger>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-status-danger-darken-color)}.vxe-text-ellipsis.theme--danger>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-status-danger-lighten-color)}.vxe-text-ellipsis.theme--error{color:var(--vxe-ui-status-error-color)}.vxe-text-ellipsis.theme--error>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-status-error-darken-color)}.vxe-text-ellipsis.theme--error>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-status-error-lighten-color)}.vxe-text-ellipsis.is--underline:hover .vxe-text-ellipsis--link{text-decoration:underline}.vxe-text-ellipsis.is--single{text-overflow:ellipsis;white-space:nowrap}.vxe-text-ellipsis.is--multi{word-wrap:break-word;word-break:break-all}.vxe-text-ellipsis.is--copy>.vxe-text-ellipsis--icon{cursor:pointer}.vxe-text-ellipsis.is--copy>.vxe-text-ellipsis--icon:focus{color:var(--vxe-ui-font-darken-color)}.vxe-text-ellipsis.is--copy>.vxe-text-ellipsis--icon:hover{color:var(--vxe-ui-font-primary-lighten-color)}.vxe-text-ellipsis.is--copy>.vxe-text-ellipsis--icon:active{color:var(--vxe-ui-font-primary-darken-color)}.vxe-text-ellipsis .vxe-text-ellipsis--reality{display:none;z-index:-1;pointer-events:none}.vxe-text-ellipsis--icon{padding:0 .1em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-text-ellipsis--content,.vxe-text-ellipsis--link{padding:0 .1em}.vxe-text-ellipsis--link{text-decoration:none;color:inherit}.vxe-text-ellipsis.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-text-ellipsis.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-text-ellipsis.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ .vxe-text-ellipsis{--vxe-ui-text-ellipsis-current-font-size:inherit}.vxe-text-ellipsis.size--xlarge{--vxe-ui-text-ellipsis-current-font-size:var(--vxe-ui-font-size-xlarge)}.vxe-text-ellipsis.size--large{--vxe-ui-text-ellipsis-current-font-size:var(--vxe-ui-font-size-large)}.vxe-text-ellipsis.size--medium{--vxe-ui-text-ellipsis-current-font-size:var(--vxe-ui-font-size-medium)}.vxe-text-ellipsis.size--small{--vxe-ui-text-ellipsis-current-font-size:var(--vxe-ui-font-size-small)}.vxe-text-ellipsis.size--mini{--vxe-ui-text-ellipsis-current-font-size:var(--vxe-ui-font-size-mini)}.vxe-text-ellipsis{display:block;overflow:hidden;white-space:normal;font-size:var(--vxe-ui-text-ellipsis-current-font-size)}.vxe-text-ellipsis.theme--primary{color:var(--vxe-ui-font-primary-color)}.vxe-text-ellipsis.theme--primary>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-font-primary-darken-color)}.vxe-text-ellipsis.theme--primary>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-font-primary-lighten-color)}.vxe-text-ellipsis.theme--success{color:var(--vxe-ui-status-success-color)}.vxe-text-ellipsis.theme--success>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-status-success-darken-color)}.vxe-text-ellipsis.theme--success>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-status-success-lighten-color)}.vxe-text-ellipsis.theme--info{color:var(--vxe-ui-status-info-color)}.vxe-text-ellipsis.theme--info>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-status-info-darken-color)}.vxe-text-ellipsis.theme--info>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-status-info-lighten-color)}.vxe-text-ellipsis.theme--warning{color:var(--vxe-ui-status-warning-color)}.vxe-text-ellipsis.theme--warning>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-status-warning-darken-color)}.vxe-text-ellipsis.theme--warning>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-status-warning-lighten-color)}.vxe-text-ellipsis.theme--danger{color:var(--vxe-ui-status-danger-color)}.vxe-text-ellipsis.theme--danger>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-status-danger-darken-color)}.vxe-text-ellipsis.theme--danger>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-status-danger-lighten-color)}.vxe-text-ellipsis.theme--error{color:var(--vxe-ui-status-error-color)}.vxe-text-ellipsis.theme--error>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-status-error-darken-color)}.vxe-text-ellipsis.theme--error>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-status-error-lighten-color)}.vxe-text-ellipsis.theme--perfect{color:var(--vxe-ui-table-header-background-color)}.vxe-text-ellipsis.theme--perfect>.vxe-text-ellipsis--link:focus{color:var(--vxe-ui-table-header-background-color)}.vxe-text-ellipsis.theme--perfect>.vxe-text-ellipsis--link:hover{color:var(--vxe-ui-table-header-background-color)}.vxe-text-ellipsis.is--underline:hover .vxe-text-ellipsis--link{text-decoration:underline}.vxe-text-ellipsis.is--single{text-overflow:ellipsis;white-space:nowrap}.vxe-text-ellipsis.is--multi{word-wrap:break-word;word-break:break-all}.vxe-text-ellipsis.is--copy>.vxe-text-ellipsis--icon{cursor:pointer}.vxe-text-ellipsis.is--copy>.vxe-text-ellipsis--icon:focus{color:var(--vxe-ui-font-darken-color)}.vxe-text-ellipsis.is--copy>.vxe-text-ellipsis--icon:hover{color:var(--vxe-ui-font-primary-lighten-color)}.vxe-text-ellipsis.is--copy>.vxe-text-ellipsis--icon:active{color:var(--vxe-ui-font-primary-darken-color)}.vxe-text-ellipsis .vxe-text-ellipsis--reality{display:none;z-index:-1;pointer-events:none}.vxe-text-ellipsis--icon{padding:0 .1em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-text-ellipsis--content,.vxe-text-ellipsis--link{padding:0 .1em}.vxe-text-ellipsis--link{text-decoration:none;color:inherit}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-pc-ui",
3
- "version": "4.18.23",
3
+ "version": "4.19.0",
4
4
  "description": "A vue based PC component library",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -27,7 +27,7 @@
27
27
  "style": "lib/style.css",
28
28
  "typings": "types/index.d.ts",
29
29
  "dependencies": {
30
- "@vxe-ui/core": "^4.4.27"
30
+ "@vxe-ui/core": "^4.4.28"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@rollup/plugin-commonjs": "^29.0.0",
@@ -5,7 +5,7 @@ import { getDateQuarter } from '../../date-panel/src/util'
5
5
  import { toCssUnit } from '../../ui/src/dom'
6
6
  import { isEnableConf } from '../../ui/src/utils'
7
7
  import { createComponentLog } from '../../ui/src/log'
8
- import VxeButtonComponent from '../../button/src/button'
8
+ import VxeButtonComponent from '../../button'
9
9
  import XEUtils from 'xe-utils'
10
10
 
11
11
  import type { VxeCalendarConstructor, VxeCalendarEmits, CalendarInternalData, CalendarReactData, CalendarMethods, VxeCalendarPropTypes, CalendarPrivateRef, VxeDatePanelDefines, ValueOf } from '../../../types'
@@ -3,7 +3,7 @@ import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import { getSlotVNs } from '../../ui/src/vn'
4
4
  import { getConfig, createEvent, useSize, renderEmptyElement } from '../../ui'
5
5
  import { toCssUnit } from '../../ui/src/dom'
6
- import VxeLoadingComponent from '../../loading/src/loading'
6
+ import VxeLoadingComponent from '../../loading'
7
7
  import XEUtils from 'xe-utils'
8
8
 
9
9
  import type { CardReactData, VxeCardEmits, VxeCardPropTypes, CardPrivateRef, ValueOf, CardMethods, CardPrivateMethods, VxeCardPrivateComputed, VxeCardConstructor, VxeCardPrivateMethods } from '../../../types'
@@ -3,7 +3,7 @@ import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import { getConfig, getIcon, createEvent, renderEmptyElement } from '../../ui'
4
4
  import { getSlotVNs } from '../../ui/src/vn'
5
5
  import { toCssUnit } from '../../ui/src/dom'
6
- import VxeLoadingComponent from '../../loading/src/loading'
6
+ import VxeLoadingComponent from '../../loading'
7
7
  import XEUtils from 'xe-utils'
8
8
 
9
9
  import type { CarouselReactData, CarouselPrivateRef, VxeCarouselPropTypes, CarouselInternalData, CarouselMethods, CarouselPrivateMethods, VxeCarouselEmits, VxeCarouselDefines, VxeCarouselPrivateComputed, VxeCarouselConstructor, ValueOf, VxeCarouselPrivateMethods } from '../../../types'
@@ -2,7 +2,7 @@ import { ref, h, reactive, watch, computed, PropType, onUnmounted, onMounted } f
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import { getConfig, getI18n, createEvent, useSize, renderEmptyElement } from '../../ui'
4
4
  import { getSlotVNs } from '../../ui/src/vn'
5
- import VxeTextComponent from '../../text/src/text'
5
+ import VxeTextComponent from '../../text'
6
6
  import XEUtils from 'xe-utils'
7
7
 
8
8
  import type { VxeCountdownPropTypes, CountdownReactData, CountdownInternalData, CountdownPrivateRef, VxeCountdownEmits, VxeCountdownPrivateComputed, VxeCountdownConstructor, VxeCountdownPrivateMethods, ValueOf, CountdownMethods, CountdownPrivateMethods } from '../../../types'
@@ -7,9 +7,9 @@ import { updatePanelPlacement, getEventTargetNode, hasControlKey, getPopupContai
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import { parseDateObj, parseDateValue, getDateByCode, handleValueFormat, hasDateValueType, hasTimestampValueType, isAllSameChar, getChunkDefaultNum, checkDateInputFormat } from '../../date-panel/src/util'
9
9
  import { createComponentLog } from '../../ui/src/log'
10
- import VxeDatePanelComponent from '../../date-panel/src/date-panel'
11
- import VxeButtonComponent from '../../button/src/button'
12
- import VxeButtonGroupComponent from '../../button/src/button-group'
10
+ import VxeDatePanelComponent from '../../date-panel'
11
+ import VxeButtonComponent from '../../button'
12
+ import VxeButtonGroupComponent from '../../button-group'
13
13
 
14
14
  import type { VxeDatePickerConstructor, VxeDatePickerEmits, DatePickerInternalData, DatePickerReactData, DatePickerMethods, VxeDatePanelDefines, VxeDatePickerPropTypes, DatePickerPrivateRef, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines, ValueOf, VxeModalConstructor, VxeDrawerConstructor, VxeModalMethods, VxeDrawerMethods, VxeDatePickerDefines, VxeButtonGroupEvents, VxeDatePanelConstructor, VxeCardConstructor, VxeCardPrivateMethods, VxeComponentStyleType } from '../../../types'
15
15
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
@@ -5,7 +5,7 @@ import { getConfig, getIcon, getI18n, globalEvents, createEvent, renderer, useSi
5
5
  import { getEventTargetNode, getPopupContainer, toCssUnit, updatePanelPlacement } from '../../ui/src/dom'
6
6
  import { getLastZIndex, nextZIndex, getFuncText } from '../../ui/src/utils'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
- import VxeInputComponent from '../../input/src/input'
8
+ import VxeInputComponent from '../../input'
9
9
 
10
10
  import type { VxeIconPickerPropTypes, VxeIconPickerConstructor, IconPickerInternalData, VxeInputConstructor, ValueOf, IconPickerReactData, VxeIconPickerEmits, IconPickerMethods, IconPickerPrivateRef, VxeIconPickerMethods, VxeIconPickerDefines, VxeDrawerConstructor, VxeDrawerMethods, VxeFormDefines, VxeFormConstructor, VxeFormPrivateMethods, VxeModalConstructor, VxeModalMethods, VxeComponentStyleType } from '../../../types'
11
11
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
@@ -2,8 +2,8 @@ import { ref, h, reactive, computed, provide, PropType } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import { toCssUnit } from '../../ui/src/dom'
4
4
  import { getConfig, useSize, createEvent } from '../../ui'
5
- import VxeLoadingComponent from '../../loading'
6
5
  import XEUtils from 'xe-utils'
6
+ import VxeScrollbarComponent from '../../scrollbar'
7
7
 
8
8
  import type { VxeLayoutAsidePropTypes, LayoutAsideReactData, VxeLayoutAsideEmits, LayoutAsidePrivateRef, LayoutAsideMethods, LayoutAsidePrivateMethods, VxeLayoutAsidePrivateComputed, VxeLayoutAsideConstructor, VxeLayoutAsidePrivateMethods, ValueOf, VxeComponentStyleType } from '../../../types'
9
9
 
@@ -16,6 +16,7 @@ export default defineVxeComponent({
16
16
  loading: Boolean as PropType<VxeLayoutAsidePropTypes.Loading>,
17
17
  padding: Boolean as PropType<VxeLayoutAsidePropTypes.Padding>,
18
18
  collapseConfig: Object as PropType<VxeLayoutAsidePropTypes.CollapseConfig>,
19
+ scrollbarConfig: Object as PropType<VxeLayoutAsidePropTypes.ScrollbarConfig>,
19
20
  size: {
20
21
  type: String as PropType<VxeLayoutAsidePropTypes.Size>,
21
22
  default: () => getConfig().layoutAside.size || getConfig().size
@@ -41,6 +42,10 @@ export default defineVxeComponent({
41
42
  return Object.assign({}, getConfig().layoutAside.collapseConfig, props.collapseConfig)
42
43
  })
43
44
 
45
+ const computeScrollbarOpts = computed(() => {
46
+ return Object.assign({}, getConfig().layoutAside.scrollbarConfig, props.scrollbarConfig)
47
+ })
48
+
44
49
  const computeVarStyle = computed(() => {
45
50
  const { width, collapseWidth } = props
46
51
  const stys: VxeComponentStyleType = {}
@@ -86,6 +91,8 @@ export default defineVxeComponent({
86
91
  const varStyle = computeVarStyle.value
87
92
  const vSize = computeSize.value
88
93
  const collapseOpts = computeCollapseOpts.value
94
+ const scrollbarOpts = computeScrollbarOpts.value
95
+ const { native, yConfig, className, viewAttrs, viewClassName, viewInnerClassName } = scrollbarOpts
89
96
  const defaultSlot = slots.default
90
97
 
91
98
  return h('aside', {
@@ -99,15 +106,21 @@ export default defineVxeComponent({
99
106
  }],
100
107
  style: varStyle
101
108
  }, [
102
- h('div', {
103
- class: 'vxe-layout-aside--inner'
104
- }, defaultSlot ? defaultSlot({}) : []),
105
- /**
106
- * 加载中
107
- */
108
- h(VxeLoadingComponent, {
109
- class: 'vxe-list-view--loading',
110
- modelValue: loading
109
+ h(VxeScrollbarComponent, {
110
+ loading,
111
+ native,
112
+ xConfig: {
113
+ visible: 'hidden'
114
+ },
115
+ yConfig,
116
+ className: 'vxe-layout-aside--scrollbar' + (className ? (' ' + className) : ''),
117
+ viewAttrs,
118
+ viewClassName: 'vxe-layout-aside--view' + (viewClassName ? (' ' + viewClassName) : ''),
119
+ viewInnerClassName: 'vxe-layout-aside--inner' + (viewInnerClassName ? (' ' + viewInnerClassName) : '')
120
+ }, {
121
+ default: () => {
122
+ return defaultSlot ? defaultSlot({}) : []
123
+ }
111
124
  })
112
125
  ])
113
126
  }
@@ -1,9 +1,9 @@
1
1
  import { ref, h, reactive, PropType, computed } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import { getConfig, useSize, createEvent, renderEmptyElement } from '../../ui'
4
- import VxeLoadingComponent from '../../loading'
5
- import VxeUIBacktopComponent from '../../backtop'
6
4
  import XEUtils from 'xe-utils'
5
+ import VxeScrollbarComponent from '../../scrollbar'
6
+ import VxeUIBacktopComponent from '../../backtop'
7
7
 
8
8
  import type { LayoutBodyInternalData, VxeLayoutBodyPropTypes, LayoutBodyReactData, LayoutBodyPrivateRef, VxeLayoutBodyEmits, LayoutBodyMethods, LayoutBodyPrivateMethods, VxeLayoutBodyPrivateComputed, VxeLayoutBodyConstructor, VxeLayoutBodyPrivateMethods, ValueOf } from '../../../types'
9
9
 
@@ -25,6 +25,7 @@ export default defineVxeComponent({
25
25
  default: () => getConfig().layoutBody.showBacktop
26
26
  },
27
27
  backtopConfig: Object as PropType<VxeLayoutBodyPropTypes.BacktopConfig>,
28
+ scrollbarConfig: Object as PropType<VxeLayoutBodyPropTypes.ScrollbarConfig>,
28
29
  size: {
29
30
  type: String as PropType<VxeLayoutBodyPropTypes.Size>,
30
31
  default: () => getConfig().layoutBody.size || getConfig().size
@@ -54,6 +55,10 @@ export default defineVxeComponent({
54
55
  })
55
56
  })
56
57
 
58
+ const computeScrollbarOpts = computed(() => {
59
+ return Object.assign({}, getConfig().layoutBody.scrollbarConfig, props.scrollbarConfig)
60
+ })
61
+
57
62
  const computeMaps: VxeLayoutBodyPrivateComputed = {
58
63
  computeSize
59
64
  }
@@ -85,6 +90,8 @@ export default defineVxeComponent({
85
90
  const renderVN = () => {
86
91
  const { loading, padding, showBacktop } = props
87
92
  const backtopOpts = computeBacktopOpts.value
93
+ const scrollbarOpts = computeScrollbarOpts.value
94
+ const { native, xConfig, yConfig, className, viewAttrs, viewClassName, viewInnerClassName } = scrollbarOpts
88
95
  const vSize = computeSize.value
89
96
  const defaultSlot = slots.default
90
97
  const backtopSlot = slots.backtop
@@ -112,16 +119,20 @@ export default defineVxeComponent({
112
119
  'is--padding': padding
113
120
  }]
114
121
  }, [
115
- h('div', {
116
- id: showBacktop ? backtopId : '',
117
- class: 'vxe-layout-body--inner'
118
- }, defaultSlot ? defaultSlot({}) : []),
119
- /**
120
- * 加载中
121
- */
122
- h(VxeLoadingComponent, {
123
- class: 'vxe-list-view--loading',
124
- modelValue: loading
122
+ h(VxeScrollbarComponent, {
123
+ loading,
124
+ native,
125
+ xConfig,
126
+ yConfig,
127
+ className: 'vxe-layout-body--scrollbar' + (className ? (' ' + className) : ''),
128
+ viewAttrs: {
129
+ ...viewAttrs,
130
+ id: showBacktop ? (backtopId || null) : null
131
+ },
132
+ viewClassName: 'vxe-layout-body--view' + (viewClassName ? (' ' + viewClassName) : ''),
133
+ viewInnerClassName: 'vxe-layout-body--inner' + (viewInnerClassName ? (' ' + viewInnerClassName) : '')
134
+ }, {
135
+ default: () => defaultSlot ? defaultSlot({}) : []
125
136
  }),
126
137
  /**
127
138
  * 回到顶部
@@ -8,7 +8,7 @@ import { isEnableConf, getText, enModelValue, deModelValue } from '../../ui/src/
8
8
  import { createComponentLog } from '../../ui/src/log'
9
9
  import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime'
10
10
  import { getItemCacheObj } from './util'
11
- import VxeLoadingComponent from '../../loading/src/loading'
11
+ import VxeLoadingComponent from '../../loading'
12
12
 
13
13
  import type { VxeListConstructor, VxeListPropTypes, VxeListEmits, ListReactData, VxeListPrivateMethods, ListInternalData, VxeListDefines, ValueOf, ListMethods, ListPrivateMethods, ListPrivateRef, VxeComponentStyleType } from '../../../types'
14
14
 
@@ -7,6 +7,7 @@ import { getLastZIndex, nextZIndex, isEnableConf } from '../../ui/src/utils'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import { createComponentLog } from '../../ui/src/log'
9
9
  import VxeLoadingComponent from '../../loading'
10
+ import VxeScrollbarComponent from '../../scrollbar'
10
11
 
11
12
  import type { VxeMenuDefines, VxeMenuPropTypes, MenuInternalData, MenuReactData, VxeMenuEmits, MenuMethods, VxeComponentSlotType, MenuPrivateMethods, MenuPrivateRef, VxeMenuPrivateComputed, VxeMenuConstructor, VxeMenuPrivateMethods, ValueOf, VxeLayoutAsideConstructor, VxeLayoutAsidePrivateMethods } from '../../../types'
12
13
 
@@ -71,6 +72,7 @@ export default defineVxeComponent({
71
72
  default: () => getConfig().menu.size || getConfig().size
72
73
  },
73
74
  menuConfig: Object as PropType<VxeMenuPropTypes.MenuConfig>,
75
+ scrollbarConfig: Object as PropType<VxeMenuPropTypes.ScrollbarConfig>,
74
76
  appendTo: {
75
77
  type: [String, Function] as PropType<VxeMenuPropTypes.AppendTo>,
76
78
  default: () => getConfig().menu.appendTo
@@ -134,6 +136,10 @@ export default defineVxeComponent({
134
136
  return propsOpts.routerLink || 'routerLink'
135
137
  })
136
138
 
139
+ const computeScrollbarOpts = computed(() => {
140
+ return Object.assign({}, getConfig().menu.scrollbarConfig, props.scrollbarConfig)
141
+ })
142
+
137
143
  const computeCurrBorder = computed(() => {
138
144
  const { border } = props
139
145
  if (border) {
@@ -682,6 +688,7 @@ export default defineVxeComponent({
682
688
  const isCollapsed = computeIsCollapsed.value
683
689
  const currBorder = computeCurrBorder.value
684
690
  const varStyle = computeVarStyle.value
691
+ const scrollbarOpts = computeScrollbarOpts.value
685
692
  const headerSlot = slots.header
686
693
  const footerSlot = slots.footer
687
694
  let ons: Record<string, any> = {}
@@ -735,9 +742,12 @@ export default defineVxeComponent({
735
742
  class: 'vxe-menu--header'
736
743
  }, headerSlot(stParams))
737
744
  : renderEmptyElement($xeMenu),
738
- h('div', {
739
- class: 'vxe-menu--body'
740
- }, menuList.map(child => renderDefaultChildren(child, menuList))),
745
+ h(VxeScrollbarComponent, {
746
+ class: 'vxe-menu--body',
747
+ ...scrollbarOpts
748
+ }, {
749
+ default: () => menuList.map(child => renderDefaultChildren(child, menuList))
750
+ }),
741
751
  footerSlot
742
752
  ? h('div', {
743
753
  class: 'vxe-menu--footer'
@@ -750,7 +760,7 @@ export default defineVxeComponent({
750
760
  * 加载中
751
761
  */
752
762
  h(VxeLoadingComponent, {
753
- class: 'vxe-list-view--loading',
763
+ class: 'vxe-menu-view--loading',
754
764
  modelValue: loading
755
765
  })
756
766
  ])
@@ -32,6 +32,7 @@ function createInternalData (): ScrollbarInternalData {
32
32
  export default defineVxeComponent({
33
33
  name: 'VxeScrollbar',
34
34
  props: {
35
+ id: [String, Number] as PropType<VxeScrollbarPropTypes.Id>,
35
36
  width: [String, Number] as PropType<VxeScrollbarPropTypes.Width>,
36
37
  height: [String, Number] as PropType<VxeScrollbarPropTypes.Height>,
37
38
  minWidth: [String, Number] as PropType<VxeScrollbarPropTypes.MinWidth>,
@@ -45,8 +46,22 @@ export default defineVxeComponent({
45
46
  },
46
47
  xConfig: Object as PropType<VxeScrollbarPropTypes.XConfig>,
47
48
  yConfig: Object as PropType<VxeScrollbarPropTypes.YConfig>,
48
- className: String as PropType<VxeScrollbarPropTypes.ClassName>,
49
- viewClassName: String as PropType<VxeScrollbarPropTypes.ViewClassName>,
49
+ className: {
50
+ type: String as PropType<VxeScrollbarPropTypes.ClassName>,
51
+ default: () => getConfig().scrollbar.className
52
+ },
53
+ viewAttrs: {
54
+ type: Object as PropType<VxeScrollbarPropTypes.ViewAttrs>,
55
+ default: () => getConfig().scrollbar.viewAttrs
56
+ },
57
+ viewClassName: {
58
+ type: String as PropType<VxeScrollbarPropTypes.ViewClassName>,
59
+ default: () => getConfig().scrollbar.viewClassName
60
+ },
61
+ viewInnerClassName: {
62
+ type: String as PropType<VxeScrollbarPropTypes.ViewInnerClassName>,
63
+ default: () => getConfig().scrollbar.viewInnerClassName
64
+ },
50
65
  autoResize: {
51
66
  type: Boolean as PropType<VxeScrollbarPropTypes.AutoResize>,
52
67
  default: () => getConfig().scrollbar.autoResize
@@ -108,6 +123,7 @@ export default defineVxeComponent({
108
123
 
109
124
  const computeWrapperClss = computed(() => {
110
125
  const { native, className } = props
126
+ const { yThumbHeight, xThumbWidth } = reactData
111
127
  const xOpts = computeXOpts.value
112
128
  const yOpts = computeYOpts.value
113
129
  return domUtils.buildClass([
@@ -118,7 +134,9 @@ export default defineVxeComponent({
118
134
  className
119
135
  ], {
120
136
  'ov-x--auto-hide': xOpts.autoHide,
121
- 'ov-y--auto-hide': yOpts.autoHide
137
+ 'ov-y--auto-hide': yOpts.autoHide,
138
+ 'overflow-y': yThumbHeight,
139
+ 'overflow-x': xThumbWidth
122
140
  })
123
141
  })
124
142
 
@@ -130,6 +148,14 @@ export default defineVxeComponent({
130
148
  ])
131
149
  })
132
150
 
151
+ const computeViewInnerClss = computed(() => {
152
+ const { viewInnerClassName } = props
153
+ return domUtils.buildClass([
154
+ 'vxe-scrollbar--view-inner',
155
+ viewInnerClassName
156
+ ])
157
+ })
158
+
133
159
  const computeXOpts = computed(() => {
134
160
  return Object.assign({}, getConfig().scrollbar.xConfig, props.xConfig)
135
161
  })
@@ -427,31 +453,32 @@ export default defineVxeComponent({
427
453
  Object.assign($xeScrollbar, scrollbarMethods, scrollbarPrivateMethods)
428
454
 
429
455
  const renderVN = () => {
430
- const { native, loading, autoResize } = props
456
+ const { id, native, loading, viewAttrs } = props
431
457
  const wrapperStyle = computeWrapperStyle.value
432
458
  const wrapperClss = computeWrapperClss.value
433
459
  const viewClss = computeViewClss.value
460
+ const viewInnerClss = computeViewInnerClss.value
434
461
  const xOpts = computeXOpts.value
435
462
  const yOpts = computeYOpts.value
436
463
  const defaultSlot = slots.default
437
464
  return h('div', {
438
465
  ref: refElem,
466
+ id: id || null,
439
467
  class: wrapperClss,
440
468
  style: wrapperStyle
441
469
  }, [
442
470
  h('div', {
443
471
  ref: refViewElem,
444
472
  class: viewClss,
445
- onScroll: scrollEvent
446
- }, autoResize
447
- ? [
448
- h('div', {
449
- key: 'vi',
450
- ref: refViewInnerElem,
451
- class: 'vxe-scrollbar--view-inner'
452
- }, defaultSlot ? defaultSlot({}) : [])
453
- ]
454
- : defaultSlot ? defaultSlot({}) : []),
473
+ onScroll: scrollEvent,
474
+ ...viewAttrs
475
+ }, [
476
+ h('div', {
477
+ key: 'vi',
478
+ ref: refViewInnerElem,
479
+ class: viewInnerClss
480
+ }, defaultSlot ? defaultSlot({}) : [])
481
+ ]),
455
482
  native || xOpts.visible === 'hidden'
456
483
  ? renderEmptyElement($xeScrollbar)
457
484
  : h('div', {
@@ -6,8 +6,8 @@ import { getEventTargetNode, getPopupContainer, toCssUnit, updatePanelPlacement
6
6
  import { getLastZIndex, nextZIndex, getFuncText, eqEmptyValue } from '../../ui/src/utils'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import { createComponentLog } from '../../ui/src/log'
9
- import VxeInputComponent from '../../input/src/input'
10
- import VxeButtonComponent from '../../button/src/button'
9
+ import VxeInputComponent from '../../input'
10
+ import VxeButtonComponent from '../../button'
11
11
 
12
12
  import type { VxeSelectPropTypes, VxeSelectConstructor, SelectInternalData, SelectReactData, VxeSelectDefines, VxeButtonEvents, ValueOf, VxeSelectEmits, VxeComponentSlotType, VxeInputConstructor, SelectMethods, SelectPrivateRef, VxeSelectMethods, VxeOptionProps, VxeDrawerConstructor, VxeDrawerMethods, VxeFormDefines, VxeFormConstructor, VxeFormPrivateMethods, VxeModalConstructor, VxeModalMethods, VxeInputEvents, VxeComponentStyleType, VxeCardConstructor, VxeCardPrivateMethods } from '../../../types'
13
13
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
@@ -6,7 +6,7 @@ import { toCssUnit, addClass, removeClass } from '../../ui/src/dom'
6
6
  import { isEnableConf } from '../../ui/src/utils'
7
7
  import { createComponentLog } from '../../ui/src/log'
8
8
  import XEUtils from 'xe-utils'
9
- import VxeLoadingComponent from '../../loading/src/loading'
9
+ import VxeLoadingComponent from '../../loading'
10
10
 
11
11
  import type { VxeTabsPropTypes, VxeTabPaneProps, VxeTabsEmits, TabsInternalData, TabsReactData, TabsPrivateRef, VxeTabsPrivateComputed, VxeTabsConstructor, VxeTabsPrivateMethods, VxeTabPaneDefines, ValueOf, TabsMethods, TabsPrivateMethods, VxeComponentStyleType } from '../../../types'
12
12
 
@@ -221,11 +221,16 @@ setConfig({
221
221
  digits: 2,
222
222
  controls: true
223
223
  },
224
- layoutAside: {},
225
- layoutBody: {
226
- backtopConfig: {
224
+ layoutAside: {
225
+ scrollbarConfig: {
226
+ yConfig: {
227
+ autoHide: true
228
+ }
227
229
  }
228
230
  },
231
+ layoutBody: {
232
+ backtopConfig: {}
233
+ },
229
234
  layoutContainer: {},
230
235
  layoutFooter: {},
231
236
  layoutHeader: {},
@@ -6,7 +6,7 @@ import { getSlotVNs } from '../../ui/src/vn'
6
6
  import { createComponentLog } from '../../ui/src/log'
7
7
  import { initTpImg, getTpImg, getEventTargetNode, toCssUnit } from '../../ui/src/dom'
8
8
  import { readLocalFile } from './util'
9
- import VxeButtonComponent from '../../button/src/button'
9
+ import VxeButtonComponent from '../../button'
10
10
 
11
11
  import type { VxeUploadDefines, VxeUploadPropTypes, UploadReactData, UploadInternalData, UploadPrivateMethods, UploadMethods, VxeUploadEmits, UploadPrivateRef, VxeUploadPrivateComputed, VxeUploadConstructor, VxeUploadPrivateMethods, VxeFormDefines, VxeFormConstructor, VxeFormPrivateMethods, ValueOf, VxeComponentEventParams } from '../../../types'
12
12
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
@@ -15,9 +15,7 @@
15
15
  padding: var(--vxe-ui-layout-padding-default);
16
16
  }
17
17
  }
18
- .vxe-layout-aside--inner {
18
+ .vxe-layout-aside--scrollbar {
19
19
  flex-grow: 1;
20
- overflow-y: auto;
21
- overflow-x: hidden;
22
- outline: 0;
20
+ overflow: hidden;
23
21
  }