vxe-pc-ui 3.20.9 → 3.20.11

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 +12 -183
  9. package/es/scrollbar/src/scrollbar.js +24 -188
  10. package/es/select/src/select.js +276 -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 +21 -191
  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 +726 -743
  40. package/lib/index.umd.min.js +1 -1
  41. package/lib/list/src/list.js +10 -189
  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 +325 -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 +20 -197
  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 +15 -203
  73. package/packages/scrollbar/src/scrollbar.ts +24 -199
  74. package/packages/select/src/select.ts +307 -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 +24 -212
  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 +17 -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 +30 -20
  88. package/types/components/tree.d.ts +7 -16
  89. /package/es/icon/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
  90. /package/es/icon/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
  91. /package/es/icon/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
  92. /package/es/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
  93. /package/es/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
  94. /package/es/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
  95. /package/lib/icon/style/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
  96. /package/lib/icon/style/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
  97. /package/lib/icon/style/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
  98. /package/lib/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
  99. /package/lib/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
  100. /package/lib/{iconfont.1792139429655.woff2 → iconfont.1792226835421.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,10 @@ export default {
1502
1620
  const scrollBodyElem = evnt.target;
1503
1621
  const scrollTop = scrollBodyElem.scrollTop;
1504
1622
  const scrollLeft = scrollBodyElem.scrollLeft;
1623
+ const isVScrollbar = $xeSelect.computeIsVScrollbar;
1624
+ if (isVScrollbar) {
1625
+ $xeSelect.updateThumbOffset();
1626
+ }
1505
1627
  const isX = scrollLeft !== internalData.lastScrollLeft;
1506
1628
  const isY = scrollTop !== internalData.lastScrollTop;
1507
1629
  internalData.lastScrollTop = scrollTop;
@@ -1591,6 +1713,29 @@ export default {
1591
1713
  const { optGroupKeyMaps } = internalData;
1592
1714
  return !!optGroupKeyMaps[optid];
1593
1715
  },
1716
+ // 滚动条
1717
+ bindScrollbarResize() {
1718
+ const $xeSelect = this;
1719
+ const internalData = $xeSelect.internalData;
1720
+ const isVScrollbar = $xeSelect.computeIsVScrollbar;
1721
+ const { scrollObserver } = internalData;
1722
+ if (isVScrollbar) {
1723
+ if (!scrollObserver) {
1724
+ const el = $xeSelect.$refs.refElem;
1725
+ const viewInnerEl = $xeSelect.$refs.refVirtualSpaceElem;
1726
+ const scrollObserver = globalResize.create(() => {
1727
+ $xeSelect.reScrollFlag++;
1728
+ });
1729
+ if (el) {
1730
+ scrollObserver.observe(el);
1731
+ }
1732
+ if (viewInnerEl) {
1733
+ scrollObserver.observe(viewInnerEl);
1734
+ }
1735
+ internalData.scrollObserver = scrollObserver;
1736
+ }
1737
+ }
1738
+ },
1594
1739
  //
1595
1740
  // Render
1596
1741
  //
@@ -1797,8 +1942,9 @@ export default {
1797
1942
  const slots = $xeSelect.$scopedSlots;
1798
1943
  const reactData = $xeSelect.reactData;
1799
1944
  const { className, multiple, loading, filterable, showTotalButton, showCheckedButton, showClearButton, showCloseButton } = props;
1800
- const { initialized, isActivated, isAniVisible, optList, visiblePanel, bodyHeight, topSpaceHeight } = reactData;
1945
+ const { initialized, isActivated, isAniVisible, optList, visiblePanel, bodyHeight, topSpaceHeight, xThumbWidth, yThumbHeight } = reactData;
1801
1946
  const vSize = $xeSelect.computeSize;
1947
+ const isVScrollbar = $xeSelect.computeIsVScrollbar;
1802
1948
  const isDisabled = $xeSelect.computeIsDisabled;
1803
1949
  const selectLabel = $xeSelect.computeSelectLabel;
1804
1950
  const fullLabel = $xeSelect.computeFullLabel;
@@ -1831,6 +1977,14 @@ export default {
1831
1977
  const footerSlot = slots.footer;
1832
1978
  const prefixSlot = slots.prefix;
1833
1979
  const ppClassName = popupOpts.className || props.popupClassName;
1980
+ const scrollbarOpts = $xeSelect.computeScrollbarOpts;
1981
+ const scrollXVisible = $xeSelect.computeScrollXVisible;
1982
+ const scrollYVisible = $xeSelect.computeScrollYVisible;
1983
+ const scrollbarXToTop = $xeSelect.computeScrollbarXToTop;
1984
+ const scrollbarYToLeft = $xeSelect.computeScrollbarYToLeft;
1985
+ const scrollXAutoHide = $xeSelect.computeScrollXAutoHide;
1986
+ const scrollYAutoHide = $xeSelect.computeScrollYAutoHide;
1987
+ const scrollbarWrapperClss = $xeSelect.computeScrollbarWrapperClss;
1834
1988
  return h('div', {
1835
1989
  ref: 'refElem',
1836
1990
  class: ['vxe-select', className ? (XEUtils.isFunction(className) ? className({ $select: $xeSelect }) : className) : '', {
@@ -1956,7 +2110,21 @@ export default {
1956
2110
  ])
1957
2111
  : renderEmptyElement($xeSelect),
1958
2112
  h('div', {
1959
- class: 'vxe-select--panel-body'
2113
+ class: [
2114
+ 'vxe-select--panel-body',
2115
+ isVScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
2116
+ isVScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
2117
+ isVScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
2118
+ isVScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
2119
+ {
2120
+ 'is--virtual-scrollbar': isVScrollbar,
2121
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
2122
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
2123
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
2124
+ 'overflow-y': yThumbHeight,
2125
+ 'overflow-x': xThumbWidth
2126
+ }
2127
+ ]
1960
2128
  }, [
1961
2129
  h('div', {
1962
2130
  ref: 'refVirtualWrapper',
@@ -1966,6 +2134,7 @@ export default {
1966
2134
  }
1967
2135
  }, [
1968
2136
  h('div', {
2137
+ ref: 'refVirtualSpaceElem',
1969
2138
  class: 'vxe-select--y-space',
1970
2139
  style: {
1971
2140
  height: bodyHeight ? `${bodyHeight}px` : ''
@@ -1978,7 +2147,58 @@ export default {
1978
2147
  transform: `translateY(${topSpaceHeight}px)`
1979
2148
  }
1980
2149
  }, $xeSelect.renderOpts(h))
1981
- ])
2150
+ ]),
2151
+ /**
2152
+ * 滚动条
2153
+ */
2154
+ isVScrollbar
2155
+ ? h('div', {
2156
+ class: scrollbarWrapperClss
2157
+ }, [
2158
+ scrollXVisible === false
2159
+ ? renderEmptyElement($xeSelect)
2160
+ : h('div', {
2161
+ ref: 'refTrackXElem',
2162
+ class: 'vxe-scrollbar--track-x',
2163
+ on: {
2164
+ click: $xeSelect.clickTrackXEvent
2165
+ }
2166
+ }, [
2167
+ h('div', {
2168
+ ref: 'refThumbXElem',
2169
+ class: 'vxe-scrollbar--thumb-x',
2170
+ on: {
2171
+ pointerdown: $xeSelect.pointerdownThumbXEvent,
2172
+ pointermove: $xeSelect.pointermoveThumbXEvent,
2173
+ pointerup: $xeSelect.cleatPointerThumbEvent,
2174
+ pointercancel: $xeSelect.cleatPointerThumbEvent,
2175
+ lostpointercapture: $xeSelect.cleatPointerThumbEvent
2176
+ }
2177
+ })
2178
+ ]),
2179
+ scrollYVisible === false
2180
+ ? renderEmptyElement($xeSelect)
2181
+ : h('div', {
2182
+ ref: 'refTrackYElem',
2183
+ class: 'vxe-scrollbar--track-y',
2184
+ on: {
2185
+ click: $xeSelect.clickTrackYEvent
2186
+ }
2187
+ }, [
2188
+ h('div', {
2189
+ ref: 'refThumbYElem',
2190
+ class: 'vxe-scrollbar--thumb-y',
2191
+ on: {
2192
+ pointerdown: $xeSelect.pointerdownThumbYEvent,
2193
+ pointermove: $xeSelect.pointermoveThumbYEvent,
2194
+ pointerup: $xeSelect.cleatPointerThumbEvent,
2195
+ pointercancel: $xeSelect.cleatPointerThumbEvent,
2196
+ lostpointercapture: $xeSelect.cleatPointerThumbEvent
2197
+ }
2198
+ })
2199
+ ])
2200
+ ])
2201
+ : renderEmptyElement($xeSelect)
1982
2202
  ]),
1983
2203
  footerSlot || showTotalButton || (showCloseButton && multiple)
1984
2204
  ? h('div', {
@@ -2030,6 +2250,47 @@ export default {
2030
2250
  optionGroups(val) {
2031
2251
  const $xeSelect = this;
2032
2252
  $xeSelect.loadData(val);
2253
+ },
2254
+ computeIsVScrollbar() {
2255
+ const $xeSelect = this;
2256
+ $xeSelect.$nextTick(() => {
2257
+ $xeSelect.bindScrollbarResize();
2258
+ $xeSelect.$nextTick(() => {
2259
+ $xeSelect.reLayoutFlag++;
2260
+ });
2261
+ });
2262
+ },
2263
+ computeScrollYWidth() {
2264
+ const $xeSelect = this;
2265
+ $xeSelect.reLayoutFlag++;
2266
+ },
2267
+ computeScrollXHeight() {
2268
+ const $xeSelect = this;
2269
+ $xeSelect.reLayoutFlag++;
2270
+ },
2271
+ computeScrollXVisible() {
2272
+ const $xeSelect = this;
2273
+ $xeSelect.$nextTick(() => {
2274
+ $xeSelect.reLayoutFlag++;
2275
+ });
2276
+ },
2277
+ computeScrollYVisible() {
2278
+ const $xeSelect = this;
2279
+ $xeSelect.$nextTick(() => {
2280
+ $xeSelect.reLayoutFlag++;
2281
+ });
2282
+ },
2283
+ reLayoutFlag() {
2284
+ const $xeSelect = this;
2285
+ $xeSelect.recalculate().then(() => {
2286
+ $xeSelect.recalculate();
2287
+ });
2288
+ },
2289
+ reScrollFlag() {
2290
+ const $xeSelect = this;
2291
+ $xeSelect.updateScrollbar().then(() => {
2292
+ $xeSelect.updateScrollbar();
2293
+ });
2033
2294
  }
2034
2295
  },
2035
2296
  created() {
@@ -2048,6 +2309,8 @@ export default {
2048
2309
  $xeSelect.loadData(options);
2049
2310
  }
2050
2311
  });
2312
+ $xeSelect.reLayoutFlag++;
2313
+ $xeSelect.bindScrollbarResize();
2051
2314
  globalEvents.on($xeSelect, 'mousedown', $xeSelect.handleGlobalMousedownEvent);
2052
2315
  globalEvents.on($xeSelect, 'keydown', $xeSelect.handleGlobalKeydownEvent);
2053
2316
  globalEvents.on($xeSelect, 'blur', $xeSelect.handleGlobalBlurEvent);
@@ -2056,10 +2319,15 @@ export default {
2056
2319
  },
2057
2320
  beforeDestroy() {
2058
2321
  const $xeSelect = this;
2322
+ const internalData = $xeSelect.internalData;
2323
+ const { scrollObserver } = internalData;
2059
2324
  const panelElem = $xeSelect.$refs.refOptionPanel;
2060
2325
  if (panelElem && panelElem.parentNode) {
2061
2326
  panelElem.parentNode.removeChild(panelElem);
2062
2327
  }
2328
+ if (scrollObserver) {
2329
+ scrollObserver.disconnect();
2330
+ }
2063
2331
  globalEvents.off($xeSelect, 'mousedown');
2064
2332
  globalEvents.off($xeSelect, 'keydown');
2065
2333
  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}