vxe-pc-ui 3.19.8 → 3.20.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 (57) hide show
  1. package/es/icon/style.css +1 -1
  2. package/es/list/src/list.js +354 -17
  3. package/es/list/style.css +26 -0
  4. package/es/list/style.min.css +1 -1
  5. package/es/scrollbar/style.css +1 -0
  6. package/es/style.css +1 -1
  7. package/es/style.min.css +1 -1
  8. package/es/ui/index.js +1 -1
  9. package/es/ui/src/log.js +1 -1
  10. package/es/ui/src/utils.js +9 -0
  11. package/es/vxe-list/style.css +26 -0
  12. package/es/vxe-list/style.min.css +1 -1
  13. package/es/vxe-scrollbar/style.css +1 -0
  14. package/lib/icon/style/style.css +1 -1
  15. package/lib/icon/style/style.min.css +1 -1
  16. package/lib/index.umd.js +348 -19
  17. package/lib/index.umd.min.js +1 -1
  18. package/lib/list/src/list.js +340 -20
  19. package/lib/list/src/list.min.js +1 -1
  20. package/lib/list/style/style.css +26 -0
  21. package/lib/list/style/style.min.css +1 -1
  22. package/lib/scrollbar/style/style.css +1 -0
  23. package/lib/style.css +1 -1
  24. package/lib/style.min.css +1 -1
  25. package/lib/ui/index.js +1 -1
  26. package/lib/ui/index.min.js +1 -1
  27. package/lib/ui/src/log.js +1 -1
  28. package/lib/ui/src/log.min.js +1 -1
  29. package/lib/ui/src/utils.js +10 -0
  30. package/lib/ui/src/utils.min.js +1 -1
  31. package/lib/vxe-list/style/style.css +26 -0
  32. package/lib/vxe-list/style/style.min.css +1 -1
  33. package/lib/vxe-scrollbar/style/style.css +1 -0
  34. package/package.json +1 -1
  35. package/packages/list/src/list.ts +382 -19
  36. package/packages/ui/src/utils.ts +10 -0
  37. package/styles/components/list.scss +51 -0
  38. package/styles/components/scrollbar.scss +3 -0
  39. package/types/components/card.d.ts +1 -1
  40. package/types/components/layout-aside.d.ts +1 -1
  41. package/types/components/layout-body.d.ts +1 -1
  42. package/types/components/list.d.ts +24 -2
  43. package/types/components/table-plugins/extend-cell-area.d.ts +1 -1
  44. package/types/components/table.d.ts +24 -0
  45. package/types/components/tabs.d.ts +1 -1
  46. /package/es/icon/{iconfont.1791862954819.ttf → iconfont.1791880407207.ttf} +0 -0
  47. /package/es/icon/{iconfont.1791862954819.woff → iconfont.1791880407207.woff} +0 -0
  48. /package/es/icon/{iconfont.1791862954819.woff2 → iconfont.1791880407207.woff2} +0 -0
  49. /package/es/{iconfont.1791862954819.ttf → iconfont.1791880407207.ttf} +0 -0
  50. /package/es/{iconfont.1791862954819.woff → iconfont.1791880407207.woff} +0 -0
  51. /package/es/{iconfont.1791862954819.woff2 → iconfont.1791880407207.woff2} +0 -0
  52. /package/lib/icon/style/{iconfont.1791862954819.ttf → iconfont.1791880407207.ttf} +0 -0
  53. /package/lib/icon/style/{iconfont.1791862954819.woff → iconfont.1791880407207.woff} +0 -0
  54. /package/lib/icon/style/{iconfont.1791862954819.woff2 → iconfont.1791880407207.woff2} +0 -0
  55. /package/lib/{iconfont.1791862954819.ttf → iconfont.1791880407207.ttf} +0 -0
  56. /package/lib/{iconfont.1791862954819.woff → iconfont.1791880407207.woff} +0 -0
  57. /package/lib/{iconfont.1791862954819.woff2 → iconfont.1791880407207.woff2} +0 -0
@@ -1,12 +1,13 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import XEUtils from 'xe-utils';
3
- import { VxeUI, getConfig, getIcon, getI18n, menus, globalEvents, globalResize, createEvent, globalMixins, renderEmptyElement } from '../../ui';
3
+ import { VxeUI, getConfig, getIcon, getI18n, domUtils, menus, globalEvents, globalResize, createEvent, globalMixins, renderEmptyElement } from '../../ui';
4
4
  import { crossListDragRowGlobal, getCrossListDragRowInfo } from './store';
5
5
  import { addClass, getTpImg, hasClass, isScale, removeClass, toCssUnit } from '../../ui/src/dom';
6
6
  import { isEnableConf, getText, enModelValue, deModelValue } from '../../ui/src/utils';
7
7
  import { getSlotVNs } from '../../ui/src/vn';
8
8
  import { createComponentLog } from '../../ui/src/log';
9
9
  import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime';
10
+ import { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } from '../../scrollbar/src/util';
10
11
  import { getItemCacheObj } from './util';
11
12
  import VxeLoadingComponent from '../../loading';
12
13
  const { warnLog, errLog } = createComponentLog('tree');
@@ -40,6 +41,9 @@ function createReactData() {
40
41
  updateCheckboxFlag: 1,
41
42
  isAllChecked: false,
42
43
  isAllIndeterminate: false,
44
+ // 滚动条
45
+ yThumbHeight: 0,
46
+ xThumbWidth: 0,
43
47
  insertRowFlag: 1,
44
48
  removeRowFlag: 1,
45
49
  dragRow: null,
@@ -49,13 +53,18 @@ function createReactData() {
49
53
  }
50
54
  function createInternalData() {
51
55
  return {
52
- resizeObserver: undefined,
53
56
  fullData: [],
54
57
  afterList: [],
55
58
  fullKeyMaps: {},
56
59
  rowMaps: {},
57
- lastScrollLeft: 0,
60
+ // 滚动条
61
+ // resizeObserver: undefined,
62
+ // isThumbDrag: false,
63
+ thumbDragOffset: 0,
64
+ yThumbTop: 0,
65
+ xThumbLeft: 0,
58
66
  lastScrollTop: 0,
67
+ lastScrollLeft: 0,
59
68
  scrollYStore: {
60
69
  startIndex: 0,
61
70
  endIndex: 0,
@@ -111,7 +120,12 @@ export default {
111
120
  dragConfig: Object,
112
121
  menuConfig: Object,
113
122
  virtualYConfig: Object,
114
- scrollY: Object
123
+ scrollY: Object,
124
+ useScrollbar: {
125
+ type: Boolean,
126
+ default: () => getConfig().list.useScrollbar
127
+ },
128
+ scrollbarConfig: Object
115
129
  },
116
130
  data() {
117
131
  const xID = XEUtils.uniqueId();
@@ -171,11 +185,19 @@ export default {
171
185
  computeWrapperStyles() {
172
186
  const $xeList = this;
173
187
  const rowHeight = $xeList.computeRowHeight;
174
- const style = {};
188
+ const scrollbarXOpts = $xeList.computeScrollbarXOpts;
189
+ const scrollbarYOpts = $xeList.computeScrollbarYOpts;
190
+ const stys = {};
175
191
  if (rowHeight) {
176
- style['--vxe-ui-list-row-height'] = toCssUnit(rowHeight);
192
+ stys['--vxe-ui-list-row-height'] = toCssUnit(rowHeight);
177
193
  }
178
- return style;
194
+ if (scrollbarYOpts.width) {
195
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(scrollbarYOpts.width);
196
+ }
197
+ if (scrollbarXOpts.height) {
198
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(scrollbarXOpts.height);
199
+ }
200
+ return stys;
179
201
  },
180
202
  computeVirtualStyles() {
181
203
  const $xeList = this;
@@ -192,6 +214,55 @@ export default {
192
214
  style.maxHeight = toCssUnit(Math.max(20, customMaxHeight - headHeight - footHeight));
193
215
  }
194
216
  return style;
217
+ },
218
+ computeScrollbarOpts() {
219
+ const $xeList = this;
220
+ const props = $xeList;
221
+ return Object.assign({}, getConfig().list.scrollbarConfig, props.scrollbarConfig);
222
+ },
223
+ computeScrollbarXOpts() {
224
+ const $xeList = this;
225
+ const scrollbarOpts = $xeList.computeScrollbarOpts;
226
+ return Object.assign({}, getConfig().scrollbar.xConfig, scrollbarOpts.xConfig);
227
+ },
228
+ computeScrollbarYOpts() {
229
+ const $xeList = this;
230
+ const scrollbarOpts = $xeList.computeScrollbarOpts;
231
+ return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
232
+ },
233
+ computeScrollbarWrapperClss() {
234
+ const $xeList = this;
235
+ const reactData = $xeList.reactData;
236
+ const scrollbarOpts = $xeList.computeScrollbarOpts;
237
+ const { padding } = scrollbarOpts;
238
+ const { yThumbHeight, xThumbWidth } = reactData;
239
+ const scrollbarXOpts = $xeList.computeScrollbarXOpts;
240
+ const scrollbarYOpts = $xeList.computeScrollbarYOpts;
241
+ const scrollbarXToTop = $xeList.computeScrollbarXToTop;
242
+ const scrollbarYToLeft = $xeList.computeScrollbarYToLeft;
243
+ return domUtils.buildClass([
244
+ 'vxe-scrollbar is--virtual',
245
+ `ov-x--${scrollbarXOpts.visible || 'visible'}`,
246
+ `ov-y--${scrollbarYOpts.visible || 'visible'}`,
247
+ `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`,
248
+ `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`
249
+ ], {
250
+ 'is--padding': padding,
251
+ 'ov-x--auto-hide': scrollbarXOpts.autoHide,
252
+ 'ov-y--auto-hide': scrollbarYOpts.autoHide,
253
+ 'overflow-y': yThumbHeight,
254
+ 'overflow-x': xThumbWidth
255
+ });
256
+ },
257
+ computeScrollbarXToTop() {
258
+ const $xeList = this;
259
+ const scrollbarXOpts = $xeList.computeScrollbarXOpts;
260
+ return scrollbarXOpts.position === 'top';
261
+ },
262
+ computeScrollbarYToLeft() {
263
+ const $xeList = this;
264
+ const scrollbarYOpts = $xeList.computeScrollbarYOpts;
265
+ return scrollbarYOpts.position === 'left';
195
266
  } }),
196
267
  methods: {
197
268
  //
@@ -518,6 +589,11 @@ export default {
518
589
  }
519
590
  });
520
591
  },
592
+ updateScrollbar() {
593
+ const $xeList = this;
594
+ $xeList.updateThumbSize();
595
+ $xeList.updateThumbOffset();
596
+ },
521
597
  /**
522
598
  * 重新计算列表
523
599
  */
@@ -537,6 +613,7 @@ export default {
537
613
  parentHeight = parentEl.clientHeight - Math.ceil(XEUtils.toNumber(parentStyle.paddingLeft) + XEUtils.toNumber(parentStyle.paddingRight));
538
614
  }
539
615
  reactData.parentHeight = parentHeight;
616
+ $xeList.updateScrollbar();
540
617
  $xeList.updateHeight();
541
618
  if (el.clientWidth && el.clientHeight) {
542
619
  return $xeList.computeScrollLoad();
@@ -571,6 +648,7 @@ export default {
571
648
  const scrollLeft = scrollBodyElem.scrollLeft;
572
649
  const isX = scrollLeft !== internalData.lastScrollLeft;
573
650
  const isY = scrollTop !== internalData.lastScrollTop;
651
+ $xeList.updateThumbOffset();
574
652
  internalData.lastScrollTop = scrollTop;
575
653
  internalData.lastScrollLeft = scrollLeft;
576
654
  if (reactData.scrollYLoad) {
@@ -1827,6 +1905,186 @@ export default {
1827
1905
  }
1828
1906
  $xeList.dispatchEvent('row-menu', { row }, evnt);
1829
1907
  },
1908
+ // 滚动条
1909
+ updateThumbSize() {
1910
+ const $xeList = this;
1911
+ const reactData = $xeList.reactData;
1912
+ const viewEl = $xeList.$refs.refVirtualWrapper;
1913
+ if (!viewEl) {
1914
+ return;
1915
+ }
1916
+ if (!viewEl.clientHeight || !viewEl.clientHeight) {
1917
+ return;
1918
+ }
1919
+ const trackXEl = $xeList.$refs.refTrackXElem;
1920
+ const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
1921
+ const thumbXElem = $xeList.$refs.refThumbXElem;
1922
+ if (thumbXElem) {
1923
+ thumbXElem.style.width = xThumbWidth + 'px';
1924
+ }
1925
+ reactData.xThumbWidth = xThumbWidth;
1926
+ const trackYEl = $xeList.$refs.refTrackYElem;
1927
+ const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
1928
+ const thumbYElem = $xeList.$refs.refThumbYElem;
1929
+ if (thumbYElem) {
1930
+ thumbYElem.style.height = yThumbHeight + 'px';
1931
+ }
1932
+ reactData.yThumbHeight = yThumbHeight;
1933
+ },
1934
+ updateThumbOffset() {
1935
+ const $xeList = this;
1936
+ const reactData = $xeList.reactData;
1937
+ const internalData = $xeList.internalData;
1938
+ const viewEl = $xeList.$refs.refVirtualWrapper;
1939
+ if (!viewEl) {
1940
+ return;
1941
+ }
1942
+ if (!viewEl.clientHeight || !viewEl.clientHeight) {
1943
+ return;
1944
+ }
1945
+ const { xThumbWidth, yThumbHeight } = reactData;
1946
+ const trackXEl = $xeList.$refs.refTrackXElem;
1947
+ const thumbXElem = $xeList.$refs.refThumbXElem;
1948
+ const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
1949
+ internalData.xThumbLeft = xThumbLeft;
1950
+ if (thumbXElem && xThumbWidth) {
1951
+ thumbXElem.style.width = xThumbWidth + 'px';
1952
+ thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
1953
+ }
1954
+ const trackYEl = $xeList.$refs.refTrackYElem;
1955
+ const thumbYElem = $xeList.$refs.refThumbYElem;
1956
+ const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
1957
+ internalData.yThumbTop = yThumbTop;
1958
+ if (thumbYElem && yThumbHeight) {
1959
+ thumbYElem.style.height = yThumbHeight + 'px';
1960
+ thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
1961
+ }
1962
+ },
1963
+ clickTrackXEvent(evnt) {
1964
+ const $xeList = this;
1965
+ const reactData = $xeList.reactData;
1966
+ const trackEl = evnt.currentTarget;
1967
+ if (trackEl !== evnt.target) {
1968
+ return;
1969
+ }
1970
+ const viewEl = $xeList.$refs.refVirtualWrapper;
1971
+ if (!viewEl) {
1972
+ return;
1973
+ }
1974
+ const { xThumbWidth } = reactData;
1975
+ const trackRect = trackEl.getBoundingClientRect();
1976
+ viewEl.scrollTo({
1977
+ left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
1978
+ behavior: 'auto'
1979
+ });
1980
+ },
1981
+ clickTrackYEvent(evnt) {
1982
+ const $xeList = this;
1983
+ const reactData = $xeList.reactData;
1984
+ const trackEl = evnt.currentTarget;
1985
+ if (trackEl !== evnt.target) {
1986
+ return;
1987
+ }
1988
+ const viewEl = $xeList.$refs.refVirtualWrapper;
1989
+ if (!viewEl) {
1990
+ return;
1991
+ }
1992
+ const { yThumbHeight } = reactData;
1993
+ const trackRect = trackEl.getBoundingClientRect();
1994
+ viewEl.scrollTo({
1995
+ top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
1996
+ behavior: 'auto'
1997
+ });
1998
+ },
1999
+ pointerdownThumbXEvent(evnt) {
2000
+ const $xeList = this;
2001
+ const reactData = $xeList.reactData;
2002
+ const internalData = $xeList.internalData;
2003
+ const thumbEl = evnt.currentTarget;
2004
+ internalData.isThumbDrag = true;
2005
+ thumbEl.setPointerCapture(evnt.pointerId);
2006
+ const viewEl = $xeList.$refs.refVirtualWrapper;
2007
+ if (!viewEl) {
2008
+ return;
2009
+ }
2010
+ const { xThumbWidth } = reactData;
2011
+ const trackEl = thumbEl.parentElement;
2012
+ const trackRect = trackEl.getBoundingClientRect();
2013
+ const pointerPosition = evnt.clientX - trackRect.left;
2014
+ // 记录 thumb 的偏移
2015
+ const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
2016
+ internalData.thumbDragOffset = pointerPosition - thumbOffset;
2017
+ },
2018
+ pointermoveThumbXEvent(evnt) {
2019
+ const $xeList = this;
2020
+ const reactData = $xeList.reactData;
2021
+ const internalData = $xeList.internalData;
2022
+ const thumbEl = evnt.currentTarget;
2023
+ if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
2024
+ return;
2025
+ }
2026
+ const { isThumbDrag, thumbDragOffset } = internalData;
2027
+ if (isThumbDrag) {
2028
+ const viewEl = $xeList.$refs.refVirtualWrapper;
2029
+ if (!viewEl) {
2030
+ return;
2031
+ }
2032
+ const { xThumbWidth } = reactData;
2033
+ const thumbEl = evnt.currentTarget;
2034
+ const trackEl = thumbEl.parentElement;
2035
+ const trackRect = trackEl.getBoundingClientRect();
2036
+ // 更新偏移
2037
+ viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
2038
+ }
2039
+ },
2040
+ cleatPointerThumbEvent(evnt) {
2041
+ const $xeList = this;
2042
+ const internalData = $xeList.internalData;
2043
+ const thumbEl = evnt.currentTarget;
2044
+ thumbEl.releasePointerCapture(evnt.pointerId);
2045
+ internalData.isThumbDrag = false;
2046
+ },
2047
+ pointerdownThumbYEvent(evnt) {
2048
+ const $xeList = this;
2049
+ const reactData = $xeList.reactData;
2050
+ const internalData = $xeList.internalData;
2051
+ const thumbEl = evnt.currentTarget;
2052
+ internalData.isThumbDrag = true;
2053
+ thumbEl.setPointerCapture(evnt.pointerId);
2054
+ const viewEl = $xeList.$refs.refVirtualWrapper;
2055
+ if (!viewEl) {
2056
+ return;
2057
+ }
2058
+ const { yThumbHeight } = reactData;
2059
+ const trackEl = thumbEl.parentElement;
2060
+ const trackRect = trackEl.getBoundingClientRect();
2061
+ const pointerPosition = evnt.clientY - trackRect.top;
2062
+ // 记录 thumb 的偏移
2063
+ const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
2064
+ internalData.thumbDragOffset = pointerPosition - thumbOffset;
2065
+ },
2066
+ pointermoveThumbYEvent(evnt) {
2067
+ const $xeList = this;
2068
+ const reactData = $xeList.reactData;
2069
+ const internalData = $xeList.internalData;
2070
+ const thumbEl = evnt.currentTarget;
2071
+ if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
2072
+ return;
2073
+ }
2074
+ const { isThumbDrag, thumbDragOffset } = internalData;
2075
+ if (isThumbDrag) {
2076
+ const viewEl = $xeList.$refs.refVirtualWrapper;
2077
+ if (!viewEl) {
2078
+ return;
2079
+ }
2080
+ const { yThumbHeight } = reactData;
2081
+ const thumbEl = evnt.currentTarget;
2082
+ const trackEl = thumbEl.parentElement;
2083
+ const trackRect = trackEl.getBoundingClientRect();
2084
+ // 更新偏移
2085
+ viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
2086
+ }
2087
+ },
1830
2088
  //
1831
2089
  // Render
1832
2090
  //
@@ -2056,7 +2314,7 @@ export default {
2056
2314
  const props = $xeList;
2057
2315
  const reactData = $xeList.reactData;
2058
2316
  const slots = $xeList.$scopedSlots;
2059
- const { showCheckbox, className, loading } = props;
2317
+ const { showCheckbox, className, loading, useScrollbar } = props;
2060
2318
  const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate } = reactData;
2061
2319
  const defaultSlot = slots.default;
2062
2320
  const headerSlot = slots.header;
@@ -2070,6 +2328,10 @@ export default {
2070
2328
  const { trigger, isCrossListDrag } = dragOpts;
2071
2329
  const rowOpts = $xeList.computeRowOpts;
2072
2330
  const { isHover, padding } = rowOpts;
2331
+ const isDrag = $xeList.computeIsDrag;
2332
+ const scrollbarXOpts = $xeList.computeScrollbarXOpts;
2333
+ const scrollbarYOpts = $xeList.computeScrollbarYOpts;
2334
+ const scrollbarWrapperClss = $xeList.computeScrollbarWrapperClss;
2073
2335
  const showDefChekboxHead = showCheckbox && checkboxOpts.showHeader !== false;
2074
2336
  const leOns = {};
2075
2337
  if (isCrossListDrag && !rowList.length) {
@@ -2079,6 +2341,10 @@ export default {
2079
2341
  ref: 'refElem',
2080
2342
  class: ['vxe-list', className ? (XEUtils.isFunction(className) ? className({ $list: $xeList }) : className) : '', {
2081
2343
  [`size--${vSize}`]: vSize,
2344
+ 'is--virtual-scrollbar': useScrollbar,
2345
+ 'ov-x--auto-hide': useScrollbar && scrollbarXOpts.autoHide,
2346
+ 'ov-y--auto-hide': useScrollbar && scrollbarYOpts.autoHide,
2347
+ 'is--drag': isDrag,
2082
2348
  'is--loading': loading
2083
2349
  }],
2084
2350
  on: leOns,
@@ -2141,7 +2407,15 @@ export default {
2141
2407
  style: {
2142
2408
  marginTop: topSpaceHeight ? `${topSpaceHeight}px` : ''
2143
2409
  }
2144
- }, defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => $xeList.renderRow(h, row, i)))
2410
+ }, useScrollbar
2411
+ ? (defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => $xeList.renderRow(h, row, i)))
2412
+ : [
2413
+ h('div', {
2414
+ key: 'vi',
2415
+ ref: 'refViewInnerElem',
2416
+ class: 'vxe-scrollbar--view-inner'
2417
+ }, defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => $xeList.renderRow(h, row, i)))
2418
+ ])
2145
2419
  ]),
2146
2420
  footerSlot
2147
2421
  ? h('div', {
@@ -2149,6 +2423,57 @@ export default {
2149
2423
  class: 'vxe-list--footer-wrapper'
2150
2424
  }, footerSlot({ items: rowList, $list: $xeList }))
2151
2425
  : renderEmptyElement($xeList),
2426
+ /**
2427
+ * 滚动条
2428
+ */
2429
+ useScrollbar
2430
+ ? h('div', {
2431
+ class: scrollbarWrapperClss
2432
+ }, [
2433
+ scrollbarXOpts.visible === 'hidden'
2434
+ ? renderEmptyElement($xeList)
2435
+ : h('div', {
2436
+ ref: 'refTrackXElem',
2437
+ class: 'vxe-scrollbar--track-x',
2438
+ on: {
2439
+ click: $xeList.clickTrackXEvent
2440
+ }
2441
+ }, [
2442
+ h('div', {
2443
+ ref: 'refThumbXElem',
2444
+ class: 'vxe-scrollbar--thumb-x',
2445
+ on: {
2446
+ pointerdown: $xeList.pointerdownThumbXEvent,
2447
+ pointermove: $xeList.pointermoveThumbXEvent,
2448
+ pointerup: $xeList.cleatPointerThumbEvent,
2449
+ pointercancel: $xeList.cleatPointerThumbEvent,
2450
+ lostpointercapture: $xeList.cleatPointerThumbEvent
2451
+ }
2452
+ })
2453
+ ]),
2454
+ scrollbarYOpts.visible === 'hidden'
2455
+ ? renderEmptyElement($xeList)
2456
+ : h('div', {
2457
+ ref: 'refTrackYElem',
2458
+ class: 'vxe-scrollbar--track-y',
2459
+ on: {
2460
+ click: $xeList.clickTrackYEvent
2461
+ }
2462
+ }, [
2463
+ h('div', {
2464
+ ref: 'refThumbYElem',
2465
+ class: 'vxe-scrollbar--thumb-y',
2466
+ on: {
2467
+ pointerdown: $xeList.pointerdownThumbYEvent,
2468
+ pointermove: $xeList.pointermoveThumbYEvent,
2469
+ pointerup: $xeList.cleatPointerThumbEvent,
2470
+ pointercancel: $xeList.cleatPointerThumbEvent,
2471
+ lostpointercapture: $xeList.cleatPointerThumbEvent
2472
+ }
2473
+ })
2474
+ ])
2475
+ ])
2476
+ : renderEmptyElement($xeList),
2152
2477
  /**
2153
2478
  * 拖拽提示
2154
2479
  */
@@ -2213,7 +2538,7 @@ export default {
2213
2538
  const $xeList = this;
2214
2539
  const props = $xeList;
2215
2540
  const internalData = $xeList.internalData;
2216
- const { showSeq, showRadio, showCheckbox } = props;
2541
+ const { showSeq, showRadio, showCheckbox, autoResize, useScrollbar } = props;
2217
2542
  const rowOpts = $xeList.computeRowOpts;
2218
2543
  const { useKey, keyField } = rowOpts;
2219
2544
  const isDrag = $xeList.computeIsDrag;
@@ -2234,21 +2559,33 @@ export default {
2234
2559
  if (useKey && !keyField) {
2235
2560
  errLog('vxe.error.reqSupportProp', ['row-config.useKey', 'row-config.keyField']);
2236
2561
  }
2237
- if (props.autoResize) {
2562
+ if (useScrollbar || autoResize) {
2238
2563
  const el = $xeList.$refs.refElem;
2239
- const resizeObserver = globalResize.create(() => $xeList.recalculate());
2564
+ const viewInnerEl = $xeList.$refs.refViewInnerElem;
2565
+ const resizeObserver = globalResize.create(() => {
2566
+ $xeList.reFlag++;
2567
+ });
2240
2568
  resizeObserver.observe(el);
2241
- if (el) {
2242
- resizeObserver.observe(el.parentElement);
2569
+ if (autoResize) {
2570
+ if (el) {
2571
+ resizeObserver.observe(el.parentElement);
2572
+ }
2573
+ }
2574
+ if (viewInnerEl) {
2575
+ resizeObserver.observe(viewInnerEl);
2243
2576
  }
2244
2577
  internalData.resizeObserver = resizeObserver;
2245
2578
  }
2246
- $xeList.recalculate();
2247
- globalEvents.on($xeList, 'resize', $xeList.recalculate);
2579
+ $xeList.reFlag++;
2580
+ globalEvents.on($xeList, 'resize', () => {
2581
+ $xeList.reFlag++;
2582
+ });
2248
2583
  },
2249
2584
  activated() {
2250
2585
  const $xeList = this;
2251
- $xeList.recalculate().then(() => $xeList.refreshScroll());
2586
+ $xeList.recalculate().then(() => {
2587
+ $xeList.refreshScroll();
2588
+ });
2252
2589
  },
2253
2590
  beforeDestroy() {
2254
2591
  const $xeList = this;
package/es/list/style.css CHANGED
@@ -379,4 +379,30 @@
379
379
  .vxe-list--radio-option .vxe-radio--label {
380
380
  padding-left: 0.4em;
381
381
  vertical-align: middle;
382
+ }
383
+
384
+ .vxe-list > .vxe-scrollbar {
385
+ position: unset;
386
+ }
387
+ .vxe-list.is--virtual-scrollbar > .vxe-list--virtual-wrapper {
388
+ scrollbar-width: none;
389
+ -ms-overflow-style: none;
390
+ }
391
+ .vxe-list.is--virtual-scrollbar > .vxe-list--virtual-wrapper::-webkit-scrollbar {
392
+ display: none;
393
+ }
394
+
395
+ .vxe-list.is--virtual-scrollbar.ov-x--auto-hide:hover > .vxe-scrollbar > .vxe-scrollbar--track-x {
396
+ opacity: 1;
397
+ }
398
+ .vxe-list.is--virtual-scrollbar.ov-x--auto-hide > .vxe-scrollbar > .vxe-scrollbar--track-x {
399
+ opacity: 0;
400
+ transition: opacity 0.8s ease-in-out;
401
+ }
402
+ .vxe-list.is--virtual-scrollbar.ov-y--auto-hide:hover > .vxe-scrollbar > .vxe-scrollbar--track-y {
403
+ opacity: 1;
404
+ }
405
+ .vxe-list.is--virtual-scrollbar.ov-y--auto-hide > .vxe-scrollbar > .vxe-scrollbar--track-y {
406
+ opacity: 0;
407
+ transition: opacity 0.8s ease-in-out;
382
408
  }
@@ -1 +1 @@
1
- @charset "UTF-8";.vxe-list{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-default)}.vxe-list.size--medium{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-medium)}.vxe-list.size--small{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-small)}.vxe-list.size--mini{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-mini)}.vxe-list{position:relative;display:block;padding:0;font-size:var(--vxe-ui-list-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);direction:ltr}.vxe-list .vxe-list--virtual-wrapper{position:relative;overflow-x:auto;overflow-y:auto;outline:0}.vxe-list .vxe-list--y-space{width:0;float:left}.vxe-list .vxe-list--body,.vxe-list .vxe-list--virtual-wrapper{padding:0;margin:0;border:0;outline:0}.vxe-list--header-wrapper{display:flex;flex-direction:row;align-items:center;min-height:var(--vxe-ui-list-row-height)}.vxe-list--header-left{display:flex;flex-direction:row;align-items:center;flex-shrink:0}.vxe-list--header-content{flex-grow:1;overflow:auto}.vxe-list--body.trigger--row>.vxe-list--row:not(.is--drag-disabled):active{cursor:grabbing}.vxe-list--body.is--padding>.vxe-list--row{padding:0 var(--vxe-ui-list-current-padding)}.vxe-list--body.checkbox--highlight .vxe-list--row.is-checkbox--checked{background-color:var(--vxe-ui-list-row-checkbox-checked-background-color)}.vxe-list--body.radio--highlight .vxe-list--row.is-radio--checked{background-color:var(--vxe-ui-list-row-radio-checked-background-color)}.vxe-list--body.row--hover .vxe-list--row:hover{background-color:var(--vxe-ui-list-row-hover-background-color)}.vxe-list--body.row--hover .vxe-list--row:hover.is--current{background-color:var(--vxe-ui-list-row-hover-current-background-color)}.vxe-list--body.row--hover.radio--highlight .vxe-list--row.is-radio--checked:hover{background-color:var(--vxe-ui-list-row-hover-radio-checked-background-color)}.vxe-list--body.row--hover.checkbox--highlight .vxe-list--row.is-checkbox--checked:hover{background-color:var(--vxe-ui-list-row-hover-checkbox-checked-background-color)}.vxe-list--row.is--current{background-color:var(--vxe-ui-list-row-current-background-color)}.vxe-list--virtual-wrapper{height:100px}.vxe-list--row{display:flex;flex-direction:row;align-items:center}.vxe-list--row-content,.vxe-list--row-drag,.vxe-list--row-extra{display:flex;flex-direction:row;align-items:center}.vxe-list--row-drag{flex-shrink:0;padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--row-content{flex-grow:1;height:var(--vxe-ui-list-row-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-list--row-extra{flex-shrink:0}.vxe-list--drag-handle:not(.is--disabled){cursor:grab}.vxe-list--drag-handle:not(.is--disabled):active{cursor:grabbing}.vxe-list--drag-handle:not(.is--disabled):hover{color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-handle.is--disabled{color:var(--vxe-ui-input-disabled-color);cursor:not-allowed}.vxe-list--row.row--drag-move{transition:transform .5s ease}.vxe-list--row.row--drag-origin{opacity:.3}.vxe-list--drag-row-line{display:none;position:absolute;top:0;left:0;z-index:11;pointer-events:none}.vxe-list--drag-row-line{width:100%;height:1px;border:2px solid transparent}.vxe-list--drag-row-line[drag-pos=top]{border-top-color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-row-line[drag-pos=bottom]{border-bottom-color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-row-line[drag-to-child=y]{border-top-color:transparent;border-bottom-color:transparent;border-left-color:var(--vxe-ui-status-success-color)}.vxe-list--drag-row-line.is--guides{background-color:var(--vxe-ui-list-drag-over-background-color)}.vxe-body--row-list-move{transition-property:transform;transition-duration:.35s}.vxe-list--drag-sort-tip{display:none;position:absolute;top:0;left:0;padding:.6em 1.4em;max-width:50%;min-width:100px;border-radius:var(--vxe-ui-border-radius);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;background-color:var(--vxe-ui-layout-background-color);box-shadow:0 0 10px 0 rgba(0,0,0,.2);z-index:33}.vxe-list--drag-sort-tip[drag-status=normal] .vxe-list--drag-sort-tip-normal-status{display:block}.vxe-list--drag-sort-tip[drag-status=sub] .vxe-list--drag-sort-tip-sub-status{display:block}.vxe-list--drag-sort-tip[drag-status=disabled] .vxe-list--drag-sort-tip-disabled-status{display:block}.vxe-list--drag-sort-tip-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-list--drag-sort-tip-status{padding-right:.4em}.vxe-list--drag-sort-tip-disabled-status{display:none;flex-shrink:0;color:var(--vxe-ui-status-error-color)}.vxe-list--drag-sort-tip-normal-status,.vxe-list--drag-sort-tip-sub-status{display:none}.vxe-list--drag-sort-tip-content{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-list--checkbox-header{padding-right:var(--vxe-ui-list-current-padding);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--checkbox-header{cursor:pointer}.vxe-list--checkbox-header .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-list--checkbox-header .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--checkbox-header.is--checked,.vxe-list--checkbox-header.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header.is--checked .vxe-checkbox--icon,.vxe-list--checkbox-header.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header.is--hidden{cursor:default}.vxe-list--checkbox-header.is--readonly{cursor:auto}.vxe-list--checkbox-header.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--checkbox-header.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--checkbox-header .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-list--checkbox-option{padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--checkbox-option{cursor:pointer}.vxe-list--checkbox-option .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-list--checkbox-option .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--checkbox-option.is--checked,.vxe-list--checkbox-option.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option.is--checked .vxe-checkbox--icon,.vxe-list--checkbox-option.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option.is--hidden{cursor:default}.vxe-list--checkbox-option.is--readonly{cursor:auto}.vxe-list--checkbox-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--checkbox-option.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--checkbox-option .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-list--radio-option{padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--radio-option{cursor:pointer}.vxe-list--radio-option .vxe-radio--icon{font-size:1.26em;transition:all .2s ease-in-out}.vxe-list--radio-option .vxe-radio--icon{color:var(--vxe-ui-input-border-color);border-radius:50%;vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--radio-option.is--checked{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option.is--checked .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option:not(.is--disabled):hover .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option.is--readonly{cursor:auto}.vxe-list--radio-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--radio-option.is--disabled .vxe-radio--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--radio-option .vxe-radio--label{padding-left:.4em;vertical-align:middle}
1
+ @charset "UTF-8";.vxe-list{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-default)}.vxe-list.size--medium{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-medium)}.vxe-list.size--small{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-small)}.vxe-list.size--mini{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-mini)}.vxe-list{position:relative;display:block;padding:0;font-size:var(--vxe-ui-list-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);direction:ltr}.vxe-list .vxe-list--virtual-wrapper{position:relative;overflow-x:auto;overflow-y:auto;outline:0}.vxe-list .vxe-list--y-space{width:0;float:left}.vxe-list .vxe-list--body,.vxe-list .vxe-list--virtual-wrapper{padding:0;margin:0;border:0;outline:0}.vxe-list--header-wrapper{display:flex;flex-direction:row;align-items:center;min-height:var(--vxe-ui-list-row-height)}.vxe-list--header-left{display:flex;flex-direction:row;align-items:center;flex-shrink:0}.vxe-list--header-content{flex-grow:1;overflow:auto}.vxe-list--body.trigger--row>.vxe-list--row:not(.is--drag-disabled):active{cursor:grabbing}.vxe-list--body.is--padding>.vxe-list--row{padding:0 var(--vxe-ui-list-current-padding)}.vxe-list--body.checkbox--highlight .vxe-list--row.is-checkbox--checked{background-color:var(--vxe-ui-list-row-checkbox-checked-background-color)}.vxe-list--body.radio--highlight .vxe-list--row.is-radio--checked{background-color:var(--vxe-ui-list-row-radio-checked-background-color)}.vxe-list--body.row--hover .vxe-list--row:hover{background-color:var(--vxe-ui-list-row-hover-background-color)}.vxe-list--body.row--hover .vxe-list--row:hover.is--current{background-color:var(--vxe-ui-list-row-hover-current-background-color)}.vxe-list--body.row--hover.radio--highlight .vxe-list--row.is-radio--checked:hover{background-color:var(--vxe-ui-list-row-hover-radio-checked-background-color)}.vxe-list--body.row--hover.checkbox--highlight .vxe-list--row.is-checkbox--checked:hover{background-color:var(--vxe-ui-list-row-hover-checkbox-checked-background-color)}.vxe-list--row.is--current{background-color:var(--vxe-ui-list-row-current-background-color)}.vxe-list--virtual-wrapper{height:100px}.vxe-list--row{display:flex;flex-direction:row;align-items:center}.vxe-list--row-content,.vxe-list--row-drag,.vxe-list--row-extra{display:flex;flex-direction:row;align-items:center}.vxe-list--row-drag{flex-shrink:0;padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--row-content{flex-grow:1;height:var(--vxe-ui-list-row-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-list--row-extra{flex-shrink:0}.vxe-list--drag-handle:not(.is--disabled){cursor:grab}.vxe-list--drag-handle:not(.is--disabled):active{cursor:grabbing}.vxe-list--drag-handle:not(.is--disabled):hover{color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-handle.is--disabled{color:var(--vxe-ui-input-disabled-color);cursor:not-allowed}.vxe-list--row.row--drag-move{transition:transform .5s ease}.vxe-list--row.row--drag-origin{opacity:.3}.vxe-list--drag-row-line{display:none;position:absolute;top:0;left:0;z-index:11;pointer-events:none}.vxe-list--drag-row-line{width:100%;height:1px;border:2px solid transparent}.vxe-list--drag-row-line[drag-pos=top]{border-top-color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-row-line[drag-pos=bottom]{border-bottom-color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-row-line[drag-to-child=y]{border-top-color:transparent;border-bottom-color:transparent;border-left-color:var(--vxe-ui-status-success-color)}.vxe-list--drag-row-line.is--guides{background-color:var(--vxe-ui-list-drag-over-background-color)}.vxe-body--row-list-move{transition-property:transform;transition-duration:.35s}.vxe-list--drag-sort-tip{display:none;position:absolute;top:0;left:0;padding:.6em 1.4em;max-width:50%;min-width:100px;border-radius:var(--vxe-ui-border-radius);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;background-color:var(--vxe-ui-layout-background-color);box-shadow:0 0 10px 0 rgba(0,0,0,.2);z-index:33}.vxe-list--drag-sort-tip[drag-status=normal] .vxe-list--drag-sort-tip-normal-status{display:block}.vxe-list--drag-sort-tip[drag-status=sub] .vxe-list--drag-sort-tip-sub-status{display:block}.vxe-list--drag-sort-tip[drag-status=disabled] .vxe-list--drag-sort-tip-disabled-status{display:block}.vxe-list--drag-sort-tip-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-list--drag-sort-tip-status{padding-right:.4em}.vxe-list--drag-sort-tip-disabled-status{display:none;flex-shrink:0;color:var(--vxe-ui-status-error-color)}.vxe-list--drag-sort-tip-normal-status,.vxe-list--drag-sort-tip-sub-status{display:none}.vxe-list--drag-sort-tip-content{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-list--checkbox-header{padding-right:var(--vxe-ui-list-current-padding);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--checkbox-header{cursor:pointer}.vxe-list--checkbox-header .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-list--checkbox-header .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--checkbox-header.is--checked,.vxe-list--checkbox-header.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header.is--checked .vxe-checkbox--icon,.vxe-list--checkbox-header.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header.is--hidden{cursor:default}.vxe-list--checkbox-header.is--readonly{cursor:auto}.vxe-list--checkbox-header.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--checkbox-header.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--checkbox-header .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-list--checkbox-option{padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--checkbox-option{cursor:pointer}.vxe-list--checkbox-option .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-list--checkbox-option .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--checkbox-option.is--checked,.vxe-list--checkbox-option.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option.is--checked .vxe-checkbox--icon,.vxe-list--checkbox-option.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option.is--hidden{cursor:default}.vxe-list--checkbox-option.is--readonly{cursor:auto}.vxe-list--checkbox-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--checkbox-option.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--checkbox-option .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-list--radio-option{padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--radio-option{cursor:pointer}.vxe-list--radio-option .vxe-radio--icon{font-size:1.26em;transition:all .2s ease-in-out}.vxe-list--radio-option .vxe-radio--icon{color:var(--vxe-ui-input-border-color);border-radius:50%;vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-list--radio-option.is--checked{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option.is--checked .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option:not(.is--disabled):hover .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option.is--readonly{cursor:auto}.vxe-list--radio-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--radio-option.is--disabled .vxe-radio--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--radio-option .vxe-radio--label{padding-left:.4em;vertical-align:middle}.vxe-list>.vxe-scrollbar{position:unset}.vxe-list.is--virtual-scrollbar>.vxe-list--virtual-wrapper{scrollbar-width:none;-ms-overflow-style:none}.vxe-list.is--virtual-scrollbar>.vxe-list--virtual-wrapper::-webkit-scrollbar{display:none}.vxe-list.is--virtual-scrollbar.ov-x--auto-hide:hover>.vxe-scrollbar>.vxe-scrollbar--track-x{opacity:1}.vxe-list.is--virtual-scrollbar.ov-x--auto-hide>.vxe-scrollbar>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-list.is--virtual-scrollbar.ov-y--auto-hide:hover>.vxe-scrollbar>.vxe-scrollbar--track-y{opacity:1}.vxe-list.is--virtual-scrollbar.ov-y--auto-hide>.vxe-scrollbar>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}
@@ -36,6 +36,7 @@
36
36
  .vxe-scrollbar.is--native > .vxe-scrollbar--view::-webkit-scrollbar-thumb:active {
37
37
  background-color: var(--vxe-ui-scrollbar-thumb-active-background-color);
38
38
  }
39
+
39
40
  .vxe-scrollbar.ov-x--hidden > .vxe-scrollbar--view {
40
41
  overflow-x: hidden;
41
42
  }