vxe-pc-ui 3.20.9 → 3.20.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/es/date-panel/src/date-panel.js +70 -39
  2. package/es/date-panel/style.css +22 -20
  3. package/es/date-panel/style.min.css +1 -1
  4. package/es/icon/style.css +1 -1
  5. package/es/icon-picker/src/icon-picker.js +11 -3
  6. package/es/icon-picker/style.css +9 -3
  7. package/es/icon-picker/style.min.css +1 -1
  8. package/es/list/src/list.js +8 -182
  9. package/es/scrollbar/src/scrollbar.js +24 -188
  10. package/es/select/src/select.js +273 -8
  11. package/es/select/style.css +44 -0
  12. package/es/select/style.min.css +1 -1
  13. package/es/style.css +1 -1
  14. package/es/style.min.css +1 -1
  15. package/es/tooltip/src/tooltip.js +2 -4
  16. package/es/tooltip/style.css +2 -0
  17. package/es/tooltip/style.min.css +1 -1
  18. package/es/tree/src/tree.js +17 -190
  19. package/es/ui/index.js +1 -1
  20. package/es/ui/src/log.js +1 -1
  21. package/es/vxe-date-panel/style.css +22 -20
  22. package/es/vxe-date-panel/style.min.css +1 -1
  23. package/es/vxe-icon-picker/style.css +9 -3
  24. package/es/vxe-icon-picker/style.min.css +1 -1
  25. package/es/vxe-select/style.css +44 -0
  26. package/es/vxe-select/style.min.css +1 -1
  27. package/es/vxe-tooltip/style.css +2 -0
  28. package/es/vxe-tooltip/style.min.css +1 -1
  29. package/lib/date-panel/src/date-panel.js +74 -43
  30. package/lib/date-panel/src/date-panel.min.js +1 -1
  31. package/lib/date-panel/style/style.css +22 -20
  32. package/lib/date-panel/style/style.min.css +1 -1
  33. package/lib/icon/style/style.css +1 -1
  34. package/lib/icon/style/style.min.css +1 -1
  35. package/lib/icon-picker/src/icon-picker.js +56 -38
  36. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  37. package/lib/icon-picker/style/style.css +9 -3
  38. package/lib/icon-picker/style/style.min.css +1 -1
  39. package/lib/index.umd.js +715 -741
  40. package/lib/index.umd.min.js +1 -1
  41. package/lib/list/src/list.js +6 -188
  42. package/lib/list/src/list.min.js +1 -1
  43. package/lib/scrollbar/src/scrollbar.js +21 -192
  44. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  45. package/lib/select/src/select.js +322 -69
  46. package/lib/select/src/select.min.js +1 -1
  47. package/lib/select/style/style.css +44 -0
  48. package/lib/select/style/style.min.css +1 -1
  49. package/lib/style.css +1 -1
  50. package/lib/style.min.css +1 -1
  51. package/lib/tooltip/src/tooltip.js +2 -4
  52. package/lib/tooltip/src/tooltip.min.js +1 -1
  53. package/lib/tooltip/style/style.css +2 -0
  54. package/lib/tooltip/style/style.min.css +1 -1
  55. package/lib/tree/src/tree.js +16 -196
  56. package/lib/tree/src/tree.min.js +1 -1
  57. package/lib/ui/index.js +1 -1
  58. package/lib/ui/index.min.js +1 -1
  59. package/lib/ui/src/log.js +1 -1
  60. package/lib/ui/src/log.min.js +1 -1
  61. package/lib/vxe-date-panel/style/style.css +22 -20
  62. package/lib/vxe-date-panel/style/style.min.css +1 -1
  63. package/lib/vxe-icon-picker/style/style.css +9 -3
  64. package/lib/vxe-icon-picker/style/style.min.css +1 -1
  65. package/lib/vxe-select/style/style.css +44 -0
  66. package/lib/vxe-select/style/style.min.css +1 -1
  67. package/lib/vxe-tooltip/style/style.css +2 -0
  68. package/lib/vxe-tooltip/style/style.min.css +1 -1
  69. package/package.json +2 -2
  70. package/packages/date-panel/src/date-panel.ts +70 -39
  71. package/packages/icon-picker/src/icon-picker.ts +12 -3
  72. package/packages/list/src/list.ts +11 -202
  73. package/packages/scrollbar/src/scrollbar.ts +24 -199
  74. package/packages/select/src/select.ts +304 -11
  75. package/packages/tabs/src/tabs.ts +2 -4
  76. package/packages/tooltip/src/tooltip.ts +2 -4
  77. package/packages/tree/src/tree.ts +20 -211
  78. package/styles/components/date-panel.scss +31 -29
  79. package/styles/components/icon-picker.scss +9 -3
  80. package/styles/components/select.scss +77 -0
  81. package/styles/components/tooltip.scss +1 -0
  82. package/types/components/gantt-module/gantt-view.d.ts +8 -17
  83. package/types/components/icon-picker.d.ts +21 -1
  84. package/types/components/list.d.ts +4 -0
  85. package/types/components/scrollbar.d.ts +7 -14
  86. package/types/components/select.d.ts +28 -3
  87. package/types/components/table.d.ts +20 -20
  88. package/types/components/tree.d.ts +7 -16
  89. /package/es/icon/{iconfont.1792139429655.ttf → iconfont.1792219842866.ttf} +0 -0
  90. /package/es/icon/{iconfont.1792139429655.woff → iconfont.1792219842866.woff} +0 -0
  91. /package/es/icon/{iconfont.1792139429655.woff2 → iconfont.1792219842866.woff2} +0 -0
  92. /package/es/{iconfont.1792139429655.ttf → iconfont.1792219842866.ttf} +0 -0
  93. /package/es/{iconfont.1792139429655.woff → iconfont.1792219842866.woff} +0 -0
  94. /package/es/{iconfont.1792139429655.woff2 → iconfont.1792219842866.woff2} +0 -0
  95. /package/lib/icon/style/{iconfont.1792139429655.ttf → iconfont.1792219842866.ttf} +0 -0
  96. /package/lib/icon/style/{iconfont.1792139429655.woff → iconfont.1792219842866.woff} +0 -0
  97. /package/lib/icon/style/{iconfont.1792139429655.woff2 → iconfont.1792219842866.woff2} +0 -0
  98. /package/lib/{iconfont.1792139429655.ttf → iconfont.1792219842866.ttf} +0 -0
  99. /package/lib/{iconfont.1792139429655.woff → iconfont.1792219842866.woff} +0 -0
  100. /package/lib/{iconfont.1792139429655.woff2 → iconfont.1792219842866.woff2} +0 -0
@@ -1,12 +1,14 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import XEUtils from 'xe-utils';
3
- import { VxeUI, getConfig, getIcon, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent, globalMixins, renderEmptyElement } from '../../ui';
3
+ import { VxeUI, globalMixins } from '../../ui';
4
4
  import { getEventTargetNode, getPopupAppendElement, toCssUnit, updatePanelPlacement } from '../../ui/src/dom';
5
5
  import { getLastZIndex, nextZIndex, getFuncText, eqEmptyValue } from '../../ui/src/utils';
6
6
  import { getSlotVNs } from '../../ui/src/vn';
7
7
  import { createComponentLog } from '../../ui/src/log';
8
8
  import VxeInputComponent from '../../input';
9
9
  import VxeButtonComponent from '../../button';
10
+ const { getConfig, getIcon, getI18n, baseUtils, domUtils, globalEvents, GLOBAL_EVENT_KEYS, globalResize, createEvent, renderEmptyElement } = VxeUI;
11
+ const { getDefVal } = baseUtils;
10
12
  const { errLog } = createComponentLog('select');
11
13
  function isOptionVisible(option) {
12
14
  return option.visible !== false;
@@ -26,6 +28,9 @@ function createReactData() {
26
28
  currentOption: null,
27
29
  searchValue: '',
28
30
  searchLoading: false,
31
+ // 滚动条
32
+ yThumbHeight: 0,
33
+ xThumbWidth: 0,
29
34
  panelIndex: 0,
30
35
  panelStyle: {},
31
36
  panelPlacement: null,
@@ -45,8 +50,14 @@ function createInternalData() {
45
50
  optGroupKeyMaps: {},
46
51
  optFullValMaps: {},
47
52
  remoteValMaps: {},
48
- lastScrollLeft: 0,
53
+ // 滚动条
54
+ // scrollObserver: undefined,
55
+ // isThumbDrag: false,
56
+ thumbDragOffset: 0,
57
+ yThumbTop: 0,
58
+ xThumbLeft: 0,
49
59
  lastScrollTop: 0,
60
+ lastScrollLeft: 0,
50
61
  scrollYStore: {
51
62
  startIndex: 0,
52
63
  endIndex: 0,
@@ -61,7 +72,9 @@ function createInternalData() {
61
72
  export default {
62
73
  name: 'VxeSelect',
63
74
  mixins: [
64
- globalMixins.sizeMixin
75
+ globalMixins.sizeMixin,
76
+ globalMixins.vScrollbarMixin,
77
+ globalMixins.initVScrollbarMixin
65
78
  ],
66
79
  model: {
67
80
  prop: 'value',
@@ -176,6 +189,11 @@ export default {
176
189
  popupConfig: Object,
177
190
  virtualYConfig: Object,
178
191
  scrollY: Object,
192
+ useScrollbar: {
193
+ type: Boolean,
194
+ default: () => getDefVal(getConfig().select.useScrollbar, getConfig().useScrollbar)
195
+ },
196
+ scrollbarConfig: Object,
179
197
  /**
180
198
  * 已废弃,被 remote-config.queryMethod 替换
181
199
  * @deprecated
@@ -223,7 +241,7 @@ export default {
223
241
  const xID = XEUtils.uniqueId();
224
242
  const reactData = createReactData();
225
243
  return Object.assign(Object.assign({}, {}), { xID,
226
- reactData });
244
+ reactData, reLayoutFlag: 0, reScrollFlag: 0 });
227
245
  },
228
246
  computed: Object.assign(Object.assign({}, {}), { computeFormReadonly() {
229
247
  const $xeSelect = this;
@@ -445,6 +463,88 @@ export default {
445
463
  return `${labels.slice(0, multiMaxCharNum)}...`;
446
464
  }
447
465
  return labels.join(', ');
466
+ },
467
+ computeScrollbarOpts() {
468
+ const $xeSelect = this;
469
+ const props = $xeSelect;
470
+ return Object.assign({}, getConfig().tree.scrollbarConfig, props.scrollbarConfig);
471
+ },
472
+ computeScrollbarXOpts() {
473
+ const $xeSelect = this;
474
+ const scrollbarOpts = $xeSelect.computeScrollbarOpts;
475
+ return Object.assign({}, getConfig().scrollbar.xConfig, scrollbarOpts.xConfig, {
476
+ visible: false
477
+ });
478
+ },
479
+ computeScrollbarYOpts() {
480
+ const $xeSelect = this;
481
+ const scrollbarOpts = $xeSelect.computeScrollbarOpts;
482
+ return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
483
+ },
484
+ computeScrollXHeight() {
485
+ const $xeSelect = this;
486
+ const scrollbarOpts = $xeSelect.computeScrollbarOpts;
487
+ const scrollbarXOpts = $xeSelect.computeScrollbarXOpts;
488
+ return getDefVal(getDefVal(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
489
+ },
490
+ computeScrollYWidth() {
491
+ const $xeSelect = this;
492
+ const scrollbarOpts = $xeSelect.computeScrollbarOpts;
493
+ const scrollbarYOpts = $xeSelect.computeScrollbarYOpts;
494
+ return getDefVal(getDefVal(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
495
+ },
496
+ computeScrollXVisible() {
497
+ const $xeSelect = this;
498
+ const scrollbarOpts = $xeSelect.computeScrollbarOpts;
499
+ const scrollbarXOpts = $xeSelect.computeScrollbarXOpts;
500
+ return getDefVal(scrollbarXOpts.visible, scrollbarOpts.visible);
501
+ },
502
+ computeScrollYVisible() {
503
+ const $xeSelect = this;
504
+ const scrollbarOpts = $xeSelect.computeScrollbarOpts;
505
+ const scrollbarYOpts = $xeSelect.computeScrollbarYOpts;
506
+ return getDefVal(scrollbarYOpts.visible, scrollbarOpts.visible);
507
+ },
508
+ computeScrollXAutoHide() {
509
+ const $xeSelect = this;
510
+ const scrollbarOpts = $xeSelect.computeScrollbarOpts;
511
+ const scrollbarXOpts = $xeSelect.computeScrollbarXOpts;
512
+ return getDefVal(getDefVal(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
513
+ },
514
+ computeScrollYAutoHide() {
515
+ const $xeSelect = this;
516
+ const scrollbarOpts = $xeSelect.computeScrollbarOpts;
517
+ const scrollbarYOpts = $xeSelect.computeScrollbarYOpts;
518
+ return getDefVal(getDefVal(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
519
+ },
520
+ computeScrollbarWrapperClss() {
521
+ const $xeSelect = this;
522
+ const reactData = $xeSelect.reactData;
523
+ const { yThumbHeight, xThumbWidth } = reactData;
524
+ const scrollbarXToTop = $xeSelect.computeScrollbarXToTop;
525
+ const scrollbarYToLeft = $xeSelect.computeScrollbarYToLeft;
526
+ const scrollXVisible = $xeSelect.computeScrollXVisible;
527
+ const scrollYVisible = $xeSelect.computeScrollYVisible;
528
+ return domUtils.buildClass([
529
+ 'vxe-scrollbar is--virtual',
530
+ `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`,
531
+ `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`,
532
+ `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`,
533
+ `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`
534
+ ], {
535
+ 'overflow-y': yThumbHeight,
536
+ 'overflow-x': xThumbWidth
537
+ });
538
+ },
539
+ computeScrollbarXToTop() {
540
+ const $xeSelect = this;
541
+ const scrollbarXOpts = $xeSelect.computeScrollbarXOpts;
542
+ return scrollbarXOpts.position === 'top';
543
+ },
544
+ computeScrollbarYToLeft() {
545
+ const $xeSelect = this;
546
+ const scrollbarYOpts = $xeSelect.computeScrollbarYOpts;
547
+ return scrollbarYOpts.position === 'left';
448
548
  } }),
449
549
  methods: {
450
550
  //
@@ -469,6 +569,11 @@ export default {
469
569
  $xeSelect.emitModel(value);
470
570
  $xeSelect.dispatchEvent('default-change', { value }, null);
471
571
  },
572
+ getScrollViewElem() {
573
+ const $xeSelect = this;
574
+ const viewEl = $xeSelect.$refs.refVirtualWrapper;
575
+ return viewEl || null;
576
+ },
472
577
  isPanelVisible() {
473
578
  const $xeSelect = this;
474
579
  const reactData = $xeSelect.reactData;
@@ -1458,6 +1563,17 @@ export default {
1458
1563
  }
1459
1564
  });
1460
1565
  },
1566
+ updateScrollbar() {
1567
+ const $xeSelect = this;
1568
+ const isVScrollbar = $xeSelect.computeIsVScrollbar;
1569
+ if (isVScrollbar) {
1570
+ return $xeSelect.$nextTick().then(() => {
1571
+ $xeSelect.updateThumbSize();
1572
+ $xeSelect.updateThumbOffset();
1573
+ });
1574
+ }
1575
+ return Promise.resolve();
1576
+ },
1461
1577
  /**
1462
1578
  * 重新计算列表
1463
1579
  */
@@ -1465,7 +1581,9 @@ export default {
1465
1581
  const $xeSelect = this;
1466
1582
  const el = $xeSelect.$refs.refElem;
1467
1583
  if (el && el.clientWidth && el.clientHeight) {
1468
- return $xeSelect.computeScrollLoad();
1584
+ return $xeSelect.computeScrollLoad().then(() => {
1585
+ return $xeSelect.updateScrollbar();
1586
+ });
1469
1587
  }
1470
1588
  return Promise.resolve();
1471
1589
  },
@@ -1502,6 +1620,7 @@ export default {
1502
1620
  const scrollBodyElem = evnt.target;
1503
1621
  const scrollTop = scrollBodyElem.scrollTop;
1504
1622
  const scrollLeft = scrollBodyElem.scrollLeft;
1623
+ $xeSelect.updateThumbOffset();
1505
1624
  const isX = scrollLeft !== internalData.lastScrollLeft;
1506
1625
  const isY = scrollTop !== internalData.lastScrollTop;
1507
1626
  internalData.lastScrollTop = scrollTop;
@@ -1591,6 +1710,29 @@ export default {
1591
1710
  const { optGroupKeyMaps } = internalData;
1592
1711
  return !!optGroupKeyMaps[optid];
1593
1712
  },
1713
+ // 滚动条
1714
+ bindScrollbarResize() {
1715
+ const $xeSelect = this;
1716
+ const internalData = $xeSelect.internalData;
1717
+ const isVScrollbar = $xeSelect.computeIsVScrollbar;
1718
+ const { scrollObserver } = internalData;
1719
+ if (isVScrollbar) {
1720
+ if (!scrollObserver) {
1721
+ const el = $xeSelect.$refs.refElem;
1722
+ const viewInnerEl = $xeSelect.$refs.refVirtualSpaceElem;
1723
+ const scrollObserver = globalResize.create(() => {
1724
+ $xeSelect.reScrollFlag++;
1725
+ });
1726
+ if (el) {
1727
+ scrollObserver.observe(el);
1728
+ }
1729
+ if (viewInnerEl) {
1730
+ scrollObserver.observe(viewInnerEl);
1731
+ }
1732
+ internalData.scrollObserver = scrollObserver;
1733
+ }
1734
+ }
1735
+ },
1594
1736
  //
1595
1737
  // Render
1596
1738
  //
@@ -1797,8 +1939,9 @@ export default {
1797
1939
  const slots = $xeSelect.$scopedSlots;
1798
1940
  const reactData = $xeSelect.reactData;
1799
1941
  const { className, multiple, loading, filterable, showTotalButton, showCheckedButton, showClearButton, showCloseButton } = props;
1800
- const { initialized, isActivated, isAniVisible, optList, visiblePanel, bodyHeight, topSpaceHeight } = reactData;
1942
+ const { initialized, isActivated, isAniVisible, optList, visiblePanel, bodyHeight, topSpaceHeight, xThumbWidth, yThumbHeight } = reactData;
1801
1943
  const vSize = $xeSelect.computeSize;
1944
+ const isVScrollbar = $xeSelect.computeIsVScrollbar;
1802
1945
  const isDisabled = $xeSelect.computeIsDisabled;
1803
1946
  const selectLabel = $xeSelect.computeSelectLabel;
1804
1947
  const fullLabel = $xeSelect.computeFullLabel;
@@ -1831,6 +1974,14 @@ export default {
1831
1974
  const footerSlot = slots.footer;
1832
1975
  const prefixSlot = slots.prefix;
1833
1976
  const ppClassName = popupOpts.className || props.popupClassName;
1977
+ const scrollbarOpts = $xeSelect.computeScrollbarOpts;
1978
+ const scrollXVisible = $xeSelect.computeScrollXVisible;
1979
+ const scrollYVisible = $xeSelect.computeScrollYVisible;
1980
+ const scrollbarXToTop = $xeSelect.computeScrollbarXToTop;
1981
+ const scrollbarYToLeft = $xeSelect.computeScrollbarYToLeft;
1982
+ const scrollXAutoHide = $xeSelect.computeScrollXAutoHide;
1983
+ const scrollYAutoHide = $xeSelect.computeScrollYAutoHide;
1984
+ const scrollbarWrapperClss = $xeSelect.computeScrollbarWrapperClss;
1834
1985
  return h('div', {
1835
1986
  ref: 'refElem',
1836
1987
  class: ['vxe-select', className ? (XEUtils.isFunction(className) ? className({ $select: $xeSelect }) : className) : '', {
@@ -1956,7 +2107,21 @@ export default {
1956
2107
  ])
1957
2108
  : renderEmptyElement($xeSelect),
1958
2109
  h('div', {
1959
- class: 'vxe-select--panel-body'
2110
+ class: [
2111
+ 'vxe-select--panel-body',
2112
+ isVScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
2113
+ isVScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
2114
+ isVScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
2115
+ isVScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
2116
+ {
2117
+ 'is--virtual-scrollbar': isVScrollbar,
2118
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
2119
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
2120
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
2121
+ 'overflow-y': yThumbHeight,
2122
+ 'overflow-x': xThumbWidth
2123
+ }
2124
+ ]
1960
2125
  }, [
1961
2126
  h('div', {
1962
2127
  ref: 'refVirtualWrapper',
@@ -1966,6 +2131,7 @@ export default {
1966
2131
  }
1967
2132
  }, [
1968
2133
  h('div', {
2134
+ ref: 'refVirtualSpaceElem',
1969
2135
  class: 'vxe-select--y-space',
1970
2136
  style: {
1971
2137
  height: bodyHeight ? `${bodyHeight}px` : ''
@@ -1978,7 +2144,58 @@ export default {
1978
2144
  transform: `translateY(${topSpaceHeight}px)`
1979
2145
  }
1980
2146
  }, $xeSelect.renderOpts(h))
1981
- ])
2147
+ ]),
2148
+ /**
2149
+ * 滚动条
2150
+ */
2151
+ isVScrollbar
2152
+ ? h('div', {
2153
+ class: scrollbarWrapperClss
2154
+ }, [
2155
+ scrollXVisible === false
2156
+ ? renderEmptyElement($xeSelect)
2157
+ : h('div', {
2158
+ ref: 'refTrackXElem',
2159
+ class: 'vxe-scrollbar--track-x',
2160
+ on: {
2161
+ click: $xeSelect.clickTrackXEvent
2162
+ }
2163
+ }, [
2164
+ h('div', {
2165
+ ref: 'refThumbXElem',
2166
+ class: 'vxe-scrollbar--thumb-x',
2167
+ on: {
2168
+ pointerdown: $xeSelect.pointerdownThumbXEvent,
2169
+ pointermove: $xeSelect.pointermoveThumbXEvent,
2170
+ pointerup: $xeSelect.cleatPointerThumbEvent,
2171
+ pointercancel: $xeSelect.cleatPointerThumbEvent,
2172
+ lostpointercapture: $xeSelect.cleatPointerThumbEvent
2173
+ }
2174
+ })
2175
+ ]),
2176
+ scrollYVisible === false
2177
+ ? renderEmptyElement($xeSelect)
2178
+ : h('div', {
2179
+ ref: 'refTrackYElem',
2180
+ class: 'vxe-scrollbar--track-y',
2181
+ on: {
2182
+ click: $xeSelect.clickTrackYEvent
2183
+ }
2184
+ }, [
2185
+ h('div', {
2186
+ ref: 'refThumbYElem',
2187
+ class: 'vxe-scrollbar--thumb-y',
2188
+ on: {
2189
+ pointerdown: $xeSelect.pointerdownThumbYEvent,
2190
+ pointermove: $xeSelect.pointermoveThumbYEvent,
2191
+ pointerup: $xeSelect.cleatPointerThumbEvent,
2192
+ pointercancel: $xeSelect.cleatPointerThumbEvent,
2193
+ lostpointercapture: $xeSelect.cleatPointerThumbEvent
2194
+ }
2195
+ })
2196
+ ])
2197
+ ])
2198
+ : renderEmptyElement($xeSelect)
1982
2199
  ]),
1983
2200
  footerSlot || showTotalButton || (showCloseButton && multiple)
1984
2201
  ? h('div', {
@@ -2030,6 +2247,47 @@ export default {
2030
2247
  optionGroups(val) {
2031
2248
  const $xeSelect = this;
2032
2249
  $xeSelect.loadData(val);
2250
+ },
2251
+ computeIsVScrollbar() {
2252
+ const $xeSelect = this;
2253
+ $xeSelect.$nextTick(() => {
2254
+ $xeSelect.bindScrollbarResize();
2255
+ $xeSelect.$nextTick(() => {
2256
+ $xeSelect.reLayoutFlag++;
2257
+ });
2258
+ });
2259
+ },
2260
+ computeScrollYWidth() {
2261
+ const $xeSelect = this;
2262
+ $xeSelect.reLayoutFlag++;
2263
+ },
2264
+ computeScrollXHeight() {
2265
+ const $xeSelect = this;
2266
+ $xeSelect.reLayoutFlag++;
2267
+ },
2268
+ computeScrollXVisible() {
2269
+ const $xeSelect = this;
2270
+ $xeSelect.$nextTick(() => {
2271
+ $xeSelect.reLayoutFlag++;
2272
+ });
2273
+ },
2274
+ computeScrollYVisible() {
2275
+ const $xeSelect = this;
2276
+ $xeSelect.$nextTick(() => {
2277
+ $xeSelect.reLayoutFlag++;
2278
+ });
2279
+ },
2280
+ reLayoutFlag() {
2281
+ const $xeSelect = this;
2282
+ $xeSelect.recalculate().then(() => {
2283
+ $xeSelect.recalculate();
2284
+ });
2285
+ },
2286
+ reScrollFlag() {
2287
+ const $xeSelect = this;
2288
+ $xeSelect.updateScrollbar().then(() => {
2289
+ $xeSelect.updateScrollbar();
2290
+ });
2033
2291
  }
2034
2292
  },
2035
2293
  created() {
@@ -2048,6 +2306,8 @@ export default {
2048
2306
  $xeSelect.loadData(options);
2049
2307
  }
2050
2308
  });
2309
+ $xeSelect.reLayoutFlag++;
2310
+ $xeSelect.bindScrollbarResize();
2051
2311
  globalEvents.on($xeSelect, 'mousedown', $xeSelect.handleGlobalMousedownEvent);
2052
2312
  globalEvents.on($xeSelect, 'keydown', $xeSelect.handleGlobalKeydownEvent);
2053
2313
  globalEvents.on($xeSelect, 'blur', $xeSelect.handleGlobalBlurEvent);
@@ -2056,10 +2316,15 @@ export default {
2056
2316
  },
2057
2317
  beforeDestroy() {
2058
2318
  const $xeSelect = this;
2319
+ const internalData = $xeSelect.internalData;
2320
+ const { scrollObserver } = internalData;
2059
2321
  const panelElem = $xeSelect.$refs.refOptionPanel;
2060
2322
  if (panelElem && panelElem.parentNode) {
2061
2323
  panelElem.parentNode.removeChild(panelElem);
2062
2324
  }
2325
+ if (scrollObserver) {
2326
+ scrollObserver.disconnect();
2327
+ }
2063
2328
  globalEvents.off($xeSelect, 'mousedown');
2064
2329
  globalEvents.off($xeSelect, 'keydown');
2065
2330
  globalEvents.off($xeSelect, 'blur');
@@ -144,6 +144,7 @@
144
144
  }
145
145
 
146
146
  .vxe-select--panel-body {
147
+ position: relative;
147
148
  display: flex;
148
149
  flex-direction: row;
149
150
  flex-grow: 1;
@@ -379,4 +380,47 @@
379
380
  .vxe-select--search-loading,
380
381
  .vxe-select--empty-placeholder {
381
382
  line-height: var(--vxe-ui-select-current-option-height);
383
+ }
384
+
385
+ .vxe-select--panel-body.ov-padding.overflow-x.sx-pos--top {
386
+ padding-top: var(--vxe-ui-scrollbar-x-height);
387
+ }
388
+ .vxe-select--panel-body.ov-padding.overflow-x.sx-pos--bottom {
389
+ padding-bottom: var(--vxe-ui-scrollbar-x-height);
390
+ }
391
+ .vxe-select--panel-body.ov-padding.overflow-y.sy-pos--left {
392
+ padding-left: var(--vxe-ui-scrollbar-y-width);
393
+ }
394
+ .vxe-select--panel-body.ov-padding.overflow-y.sy-pos--right {
395
+ padding-right: var(--vxe-ui-scrollbar-y-width);
396
+ }
397
+ .vxe-select--panel-body.ov-x--hidden > .vxe-select-option--wrapper {
398
+ overflow-x: hidden;
399
+ }
400
+ .vxe-select--panel-body.ov-y--hidden > .vxe-select-option--wrapper {
401
+ overflow-y: hidden;
402
+ }
403
+ .vxe-select--panel-body.is--virtual-scrollbar.ov-x--auto-hide:hover > .vxe-scrollbar > .vxe-scrollbar--track-x {
404
+ opacity: 1;
405
+ }
406
+ .vxe-select--panel-body.is--virtual-scrollbar.ov-x--auto-hide > .vxe-scrollbar > .vxe-scrollbar--track-x {
407
+ opacity: 0;
408
+ transition: opacity 0.8s ease-in-out;
409
+ }
410
+ .vxe-select--panel-body.is--virtual-scrollbar.ov-y--auto-hide:hover > .vxe-scrollbar > .vxe-scrollbar--track-y {
411
+ opacity: 1;
412
+ }
413
+ .vxe-select--panel-body.is--virtual-scrollbar.ov-y--auto-hide > .vxe-scrollbar > .vxe-scrollbar--track-y {
414
+ opacity: 0;
415
+ transition: opacity 0.8s ease-in-out;
416
+ }
417
+ .vxe-select--panel-body > .vxe-scrollbar {
418
+ position: unset;
419
+ }
420
+ .vxe-select--panel-body.is--virtual-scrollbar > .vxe-select-option--wrapper {
421
+ scrollbar-width: none;
422
+ -ms-overflow-style: none;
423
+ }
424
+ .vxe-select--panel-body.is--virtual-scrollbar > .vxe-select-option--wrapper::-webkit-scrollbar {
425
+ display: none;
382
426
  }
@@ -1 +1 @@
1
- .vxe-select,.vxe-select--panel{--vxe-ui-select-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-select-current-option-height:var(--vxe-ui-select-option-height-default)}.vxe-select--panel.size--xlarge,.vxe-select.size--xlarge{--vxe-ui-select-current-font-size:var(--vxe-ui-font-size-xlarge);--vxe-ui-select-current-option-height:var(--vxe-ui-select-option-height-xlarge)}.vxe-select--panel.size--large,.vxe-select.size--large{--vxe-ui-select-current-font-size:var(--vxe-ui-font-size-large);--vxe-ui-select-current-option-height:var(--vxe-ui-select-option-height-large)}.vxe-select--panel.size--medium,.vxe-select.size--medium{--vxe-ui-select-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-select-current-option-height:var(--vxe-ui-select-option-height-medium)}.vxe-select--panel.size--small,.vxe-select.size--small{--vxe-ui-select-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-select-current-option-height:var(--vxe-ui-select-option-height-small)}.vxe-select--panel.size--mini,.vxe-select.size--mini{--vxe-ui-select-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-select-current-option-height:var(--vxe-ui-select-option-height-mini)}.vxe-select,.vxe-select--panel{--vxe-ui-select-current-padding:var(--vxe-ui-layout-padding-default)}.vxe-select--panel.size--mini,.vxe-select--panel.size--small,.vxe-select.size--mini,.vxe-select.size--small{--vxe-ui-select-current-padding:var(--vxe-ui-layout-padding-half)}.vxe-select{position:relative;display:inline-block;width:180px;font-size:var(--vxe-ui-select-current-font-size);color:var(--vxe-ui-font-color);text-align:left}.vxe-select>.vxe-input .vxe-input--inner{cursor:pointer}.vxe-select.is--disabled>.vxe-input .vxe-input--inner{cursor:no-drop}.vxe-select.is--loading>.vxe-input .vxe-input--inner{cursor:progress}.vxe-select>.vxe-input{width:100%}.vxe-select>.vxe-input .vxe-input--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-select.is--active:not(.is--filter)>.vxe-input{border-color:var(--vxe-ui-font-primary-color)}.vxe-select--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-select-slots{display:none}.vxe-select--panel{font-size:var(--vxe-ui-select-current-font-size);display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-select--panel:not(.is--transfer){min-width:100%}.vxe-select--panel.is--transfer{position:fixed}.vxe-select--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-select--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-select--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-select--panel.ani--enter>div::after{display:none}.vxe-select--panel>div::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-select--panel-search{display:block;flex-shrink:0;padding:var(--vxe-ui-layout-padding-default)}.vxe-select--panel-search .vxe-select-search--input{width:100%}.vxe-select--panel-wrapper{display:flex;flex-direction:column;position:relative;max-height:18em;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color)}.vxe-select--panel-body{display:flex;flex-direction:row;flex-grow:1;overflow:hidden}.vxe-select--header-button{display:flex;flex-direction:row}.vxe-select--footer-button,.vxe-select--header-button{display:flex;flex-direction:row;white-space:nowrap;align-items:center;min-height:2em}.vxe-select--total-btns{padding-left:var(--vxe-ui-select-current-padding);flex-grow:1}.vxe-select--oper-btns,.vxe-select--total-btns{display:flex;flex-direction:row;align-items:center}.vxe-select--oper-btns{flex-shrink:0}.vxe-select--footer-button{display:flex;flex-direction:row}.vxe-select--panel-header{border-bottom:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-select--panel-footer{border-top:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-select--panel-footer,.vxe-select--panel-header{flex-shrink:0;padding:4px 0}.vxe-select-option--wrapper{flex-grow:1;position:relative;overflow-x:hidden;overflow-y:auto}.vxe-select--y-space{width:0;float:left}.vxe-select--body,.vxe-select-option--wrapper{padding:0;margin:0;border:0;outline:0}.vxe-select-option{position:relative;flex-direction:row;display:flex;padding:0 .6em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.vxe-select-option.is--add{padding-right:2em}.vxe-select-option.is--add:hover .vxe-select-option--add-icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option.is--add .vxe-select-option--add-icon{display:block}.vxe-select-option.is--selected{color:var(--vxe-ui-font-primary-color)}.vxe-select-option:not(.is--disabled).is--hover{background-color:var(--vxe-ui-select-option-hover-background-color)}.vxe-select-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-select-optgroup{color:var(--vxe-ui-select-title-color);font-size:12px;cursor:default}.vxe-select-option--label{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-select-option--add-icon{display:none;position:absolute;top:0;right:.6em}.vxe-select-option--checkbox{padding-right:.4em}.vxe-select-option--checkbox{cursor:pointer}.vxe-select-option--checkbox .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-select-option--checkbox .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-select-option--checkbox.is--checked,.vxe-select-option--checkbox.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--checkbox.is--checked .vxe-checkbox--icon,.vxe-select-option--checkbox.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--checkbox:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--checkbox.is--hidden{cursor:default}.vxe-select-option--checkbox.is--readonly{cursor:auto}.vxe-select-option--checkbox.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-select-option--checkbox.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-select-option--checkbox .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-select-option--radio{padding-right:.4em}.vxe-select-option--radio{cursor:pointer}.vxe-select-option--radio .vxe-radio--icon{font-size:1.26em;transition:all .2s ease-in-out}.vxe-select-option--radio .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-select-option--radio.is--checked{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--radio.is--checked .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--radio:not(.is--disabled):hover .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--radio.is--readonly{cursor:auto}.vxe-select-option--radio.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-select-option--radio.is--disabled .vxe-radio--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-select-option--radio .vxe-radio--label{padding-left:.4em;vertical-align:middle}.vxe-select--search-icon{margin-right:.5em}.vxe-select--empty-placeholder,.vxe-select--search-loading{padding:0 .6em;text-align:center;color:var(--vxe-ui-select-empty-color)}.vxe-select-option{height:var(--vxe-ui-select-current-option-height)}.vxe-select--empty-placeholder,.vxe-select--search-loading,.vxe-select-option{line-height:var(--vxe-ui-select-current-option-height)}
1
+ .vxe-select,.vxe-select--panel{--vxe-ui-select-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-select-current-option-height:var(--vxe-ui-select-option-height-default)}.vxe-select--panel.size--xlarge,.vxe-select.size--xlarge{--vxe-ui-select-current-font-size:var(--vxe-ui-font-size-xlarge);--vxe-ui-select-current-option-height:var(--vxe-ui-select-option-height-xlarge)}.vxe-select--panel.size--large,.vxe-select.size--large{--vxe-ui-select-current-font-size:var(--vxe-ui-font-size-large);--vxe-ui-select-current-option-height:var(--vxe-ui-select-option-height-large)}.vxe-select--panel.size--medium,.vxe-select.size--medium{--vxe-ui-select-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-select-current-option-height:var(--vxe-ui-select-option-height-medium)}.vxe-select--panel.size--small,.vxe-select.size--small{--vxe-ui-select-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-select-current-option-height:var(--vxe-ui-select-option-height-small)}.vxe-select--panel.size--mini,.vxe-select.size--mini{--vxe-ui-select-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-select-current-option-height:var(--vxe-ui-select-option-height-mini)}.vxe-select,.vxe-select--panel{--vxe-ui-select-current-padding:var(--vxe-ui-layout-padding-default)}.vxe-select--panel.size--mini,.vxe-select--panel.size--small,.vxe-select.size--mini,.vxe-select.size--small{--vxe-ui-select-current-padding:var(--vxe-ui-layout-padding-half)}.vxe-select{position:relative;display:inline-block;width:180px;font-size:var(--vxe-ui-select-current-font-size);color:var(--vxe-ui-font-color);text-align:left}.vxe-select>.vxe-input .vxe-input--inner{cursor:pointer}.vxe-select.is--disabled>.vxe-input .vxe-input--inner{cursor:no-drop}.vxe-select.is--loading>.vxe-input .vxe-input--inner{cursor:progress}.vxe-select>.vxe-input{width:100%}.vxe-select>.vxe-input .vxe-input--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-select.is--active:not(.is--filter)>.vxe-input{border-color:var(--vxe-ui-font-primary-color)}.vxe-select--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-select-slots{display:none}.vxe-select--panel{font-size:var(--vxe-ui-select-current-font-size);display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-select--panel:not(.is--transfer){min-width:100%}.vxe-select--panel.is--transfer{position:fixed}.vxe-select--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-select--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-select--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-select--panel.ani--enter>div::after{display:none}.vxe-select--panel>div::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-select--panel-search{display:block;flex-shrink:0;padding:var(--vxe-ui-layout-padding-default)}.vxe-select--panel-search .vxe-select-search--input{width:100%}.vxe-select--panel-wrapper{display:flex;flex-direction:column;position:relative;max-height:18em;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color)}.vxe-select--panel-body{position:relative;display:flex;flex-direction:row;flex-grow:1;overflow:hidden}.vxe-select--header-button{display:flex;flex-direction:row}.vxe-select--footer-button,.vxe-select--header-button{display:flex;flex-direction:row;white-space:nowrap;align-items:center;min-height:2em}.vxe-select--total-btns{padding-left:var(--vxe-ui-select-current-padding);flex-grow:1}.vxe-select--oper-btns,.vxe-select--total-btns{display:flex;flex-direction:row;align-items:center}.vxe-select--oper-btns{flex-shrink:0}.vxe-select--footer-button{display:flex;flex-direction:row}.vxe-select--panel-header{border-bottom:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-select--panel-footer{border-top:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-select--panel-footer,.vxe-select--panel-header{flex-shrink:0;padding:4px 0}.vxe-select-option--wrapper{flex-grow:1;position:relative;overflow-x:hidden;overflow-y:auto}.vxe-select--y-space{width:0;float:left}.vxe-select--body,.vxe-select-option--wrapper{padding:0;margin:0;border:0;outline:0}.vxe-select-option{position:relative;flex-direction:row;display:flex;padding:0 .6em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.vxe-select-option.is--add{padding-right:2em}.vxe-select-option.is--add:hover .vxe-select-option--add-icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option.is--add .vxe-select-option--add-icon{display:block}.vxe-select-option.is--selected{color:var(--vxe-ui-font-primary-color)}.vxe-select-option:not(.is--disabled).is--hover{background-color:var(--vxe-ui-select-option-hover-background-color)}.vxe-select-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-select-optgroup{color:var(--vxe-ui-select-title-color);font-size:12px;cursor:default}.vxe-select-option--label{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-select-option--add-icon{display:none;position:absolute;top:0;right:.6em}.vxe-select-option--checkbox{padding-right:.4em}.vxe-select-option--checkbox{cursor:pointer}.vxe-select-option--checkbox .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-select-option--checkbox .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-select-option--checkbox.is--checked,.vxe-select-option--checkbox.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--checkbox.is--checked .vxe-checkbox--icon,.vxe-select-option--checkbox.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--checkbox:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--checkbox.is--hidden{cursor:default}.vxe-select-option--checkbox.is--readonly{cursor:auto}.vxe-select-option--checkbox.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-select-option--checkbox.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-select-option--checkbox .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-select-option--radio{padding-right:.4em}.vxe-select-option--radio{cursor:pointer}.vxe-select-option--radio .vxe-radio--icon{font-size:1.26em;transition:all .2s ease-in-out}.vxe-select-option--radio .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-select-option--radio.is--checked{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--radio.is--checked .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--radio:not(.is--disabled):hover .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option--radio.is--readonly{cursor:auto}.vxe-select-option--radio.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-select-option--radio.is--disabled .vxe-radio--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-select-option--radio .vxe-radio--label{padding-left:.4em;vertical-align:middle}.vxe-select--search-icon{margin-right:.5em}.vxe-select--empty-placeholder,.vxe-select--search-loading{padding:0 .6em;text-align:center;color:var(--vxe-ui-select-empty-color)}.vxe-select-option{height:var(--vxe-ui-select-current-option-height)}.vxe-select--empty-placeholder,.vxe-select--search-loading,.vxe-select-option{line-height:var(--vxe-ui-select-current-option-height)}.vxe-select--panel-body.ov-padding.overflow-x.sx-pos--top{padding-top:var(--vxe-ui-scrollbar-x-height)}.vxe-select--panel-body.ov-padding.overflow-x.sx-pos--bottom{padding-bottom:var(--vxe-ui-scrollbar-x-height)}.vxe-select--panel-body.ov-padding.overflow-y.sy-pos--left{padding-left:var(--vxe-ui-scrollbar-y-width)}.vxe-select--panel-body.ov-padding.overflow-y.sy-pos--right{padding-right:var(--vxe-ui-scrollbar-y-width)}.vxe-select--panel-body.ov-x--hidden>.vxe-select-option--wrapper{overflow-x:hidden}.vxe-select--panel-body.ov-y--hidden>.vxe-select-option--wrapper{overflow-y:hidden}.vxe-select--panel-body.is--virtual-scrollbar.ov-x--auto-hide:hover>.vxe-scrollbar>.vxe-scrollbar--track-x{opacity:1}.vxe-select--panel-body.is--virtual-scrollbar.ov-x--auto-hide>.vxe-scrollbar>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-select--panel-body.is--virtual-scrollbar.ov-y--auto-hide:hover>.vxe-scrollbar>.vxe-scrollbar--track-y{opacity:1}.vxe-select--panel-body.is--virtual-scrollbar.ov-y--auto-hide>.vxe-scrollbar>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}.vxe-select--panel-body>.vxe-scrollbar{position:unset}.vxe-select--panel-body.is--virtual-scrollbar>.vxe-select-option--wrapper{scrollbar-width:none;-ms-overflow-style:none}.vxe-select--panel-body.is--virtual-scrollbar>.vxe-select-option--wrapper::-webkit-scrollbar{display:none}