vxe-pc-ui 3.20.8 → 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 (141) hide show
  1. package/es/card/src/card.js +2 -1
  2. package/es/date-panel/src/date-panel.js +70 -39
  3. package/es/date-panel/style.css +22 -20
  4. package/es/date-panel/style.min.css +1 -1
  5. package/es/drawer/src/drawer.js +1 -0
  6. package/es/icon/style.css +1 -1
  7. package/es/icon-picker/src/icon-picker.js +11 -3
  8. package/es/icon-picker/style.css +9 -3
  9. package/es/icon-picker/style.min.css +1 -1
  10. package/es/layout-aside/src/layout-aside.js +2 -1
  11. package/es/layout-body/src/layout-body.js +2 -1
  12. package/es/layout-container/src/layout-container.js +9 -2
  13. package/es/list/src/list.js +80 -223
  14. package/es/menu/src/menu.js +1 -0
  15. package/es/modal/src/modal.js +1 -0
  16. package/es/scrollbar/src/scrollbar.js +32 -188
  17. package/es/select/src/select.js +273 -8
  18. package/es/select/style.css +44 -0
  19. package/es/select/style.min.css +1 -1
  20. package/es/style.css +1 -1
  21. package/es/style.min.css +1 -1
  22. package/es/tabs/src/tabs.js +2 -1
  23. package/es/tooltip/src/tooltip.js +7 -6
  24. package/es/tooltip/style.css +2 -0
  25. package/es/tooltip/style.min.css +1 -1
  26. package/es/tree/src/tree.js +85 -228
  27. package/es/ui/index.js +1 -1
  28. package/es/ui/src/log.js +1 -1
  29. package/es/vxe-date-panel/style.css +22 -20
  30. package/es/vxe-date-panel/style.min.css +1 -1
  31. package/es/vxe-icon-picker/style.css +9 -3
  32. package/es/vxe-icon-picker/style.min.css +1 -1
  33. package/es/vxe-select/style.css +44 -0
  34. package/es/vxe-select/style.min.css +1 -1
  35. package/es/vxe-tooltip/style.css +2 -0
  36. package/es/vxe-tooltip/style.min.css +1 -1
  37. package/lib/card/src/card.js +1 -1
  38. package/lib/card/src/card.min.js +1 -1
  39. package/lib/date-panel/src/date-panel.js +74 -43
  40. package/lib/date-panel/src/date-panel.min.js +1 -1
  41. package/lib/date-panel/style/style.css +22 -20
  42. package/lib/date-panel/style/style.min.css +1 -1
  43. package/lib/drawer/src/drawer.js +1 -1
  44. package/lib/drawer/src/drawer.min.js +1 -1
  45. package/lib/icon/style/style.css +1 -1
  46. package/lib/icon/style/style.min.css +1 -1
  47. package/lib/icon-picker/src/icon-picker.js +56 -38
  48. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  49. package/lib/icon-picker/style/style.css +9 -3
  50. package/lib/icon-picker/style/style.min.css +1 -1
  51. package/lib/index.umd.js +894 -816
  52. package/lib/index.umd.min.js +1 -1
  53. package/lib/layout-aside/src/layout-aside.js +1 -1
  54. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  55. package/lib/layout-body/src/layout-body.js +1 -1
  56. package/lib/layout-body/src/layout-body.min.js +1 -1
  57. package/lib/layout-container/src/layout-container.js +13 -3
  58. package/lib/layout-container/src/layout-container.min.js +1 -1
  59. package/lib/list/src/list.js +72 -225
  60. package/lib/list/src/list.min.js +1 -1
  61. package/lib/menu/src/menu.js +1 -1
  62. package/lib/menu/src/menu.min.js +1 -1
  63. package/lib/modal/src/modal.js +1 -1
  64. package/lib/modal/src/modal.min.js +1 -1
  65. package/lib/scrollbar/src/scrollbar.js +29 -192
  66. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  67. package/lib/select/src/select.js +322 -69
  68. package/lib/select/src/select.min.js +1 -1
  69. package/lib/select/style/style.css +44 -0
  70. package/lib/select/style/style.min.css +1 -1
  71. package/lib/style.css +1 -1
  72. package/lib/style.min.css +1 -1
  73. package/lib/tabs/src/tabs.js +1 -1
  74. package/lib/tabs/src/tabs.min.js +1 -1
  75. package/lib/tooltip/src/tooltip.js +5 -6
  76. package/lib/tooltip/src/tooltip.min.js +1 -1
  77. package/lib/tooltip/style/style.css +2 -0
  78. package/lib/tooltip/style/style.min.css +1 -1
  79. package/lib/tree/src/tree.js +77 -229
  80. package/lib/tree/src/tree.min.js +1 -1
  81. package/lib/ui/index.js +1 -1
  82. package/lib/ui/index.min.js +1 -1
  83. package/lib/ui/src/log.js +1 -1
  84. package/lib/ui/src/log.min.js +1 -1
  85. package/lib/vxe-date-panel/style/style.css +22 -20
  86. package/lib/vxe-date-panel/style/style.min.css +1 -1
  87. package/lib/vxe-icon-picker/style/style.css +9 -3
  88. package/lib/vxe-icon-picker/style/style.min.css +1 -1
  89. package/lib/vxe-select/style/style.css +44 -0
  90. package/lib/vxe-select/style/style.min.css +1 -1
  91. package/lib/vxe-tooltip/style/style.css +2 -0
  92. package/lib/vxe-tooltip/style/style.min.css +1 -1
  93. package/package.json +2 -2
  94. package/packages/card/src/card.ts +4 -2
  95. package/packages/date-panel/src/date-panel.ts +70 -39
  96. package/packages/drawer/src/drawer.ts +4 -2
  97. package/packages/icon-picker/src/icon-picker.ts +12 -3
  98. package/packages/layout-aside/src/layout-aside.ts +4 -2
  99. package/packages/layout-body/src/layout-body.ts +4 -2
  100. package/packages/layout-container/src/layout-container.ts +13 -3
  101. package/packages/list/src/list.ts +85 -241
  102. package/packages/menu/src/menu.ts +3 -1
  103. package/packages/modal/src/modal.ts +3 -1
  104. package/packages/scrollbar/src/scrollbar.ts +32 -199
  105. package/packages/select/src/select.ts +304 -11
  106. package/packages/tabs/src/tabs.ts +4 -4
  107. package/packages/tooltip/src/tooltip.ts +10 -8
  108. package/packages/tree/src/tree.ts +90 -247
  109. package/styles/components/date-panel.scss +31 -29
  110. package/styles/components/icon-picker.scss +9 -3
  111. package/styles/components/select.scss +77 -0
  112. package/styles/components/tooltip.scss +1 -0
  113. package/types/components/card.d.ts +2 -2
  114. package/types/components/drawer.d.ts +2 -2
  115. package/types/components/gantt-module/gantt-view.d.ts +8 -17
  116. package/types/components/grid.d.ts +3 -2
  117. package/types/components/icon-picker.d.ts +21 -1
  118. package/types/components/layout-aside.d.ts +2 -2
  119. package/types/components/layout-body.d.ts +2 -2
  120. package/types/components/layout-container.d.ts +3 -1
  121. package/types/components/list.d.ts +6 -2
  122. package/types/components/menu.d.ts +2 -2
  123. package/types/components/modal.d.ts +2 -2
  124. package/types/components/scrollbar.d.ts +17 -14
  125. package/types/components/select.d.ts +28 -3
  126. package/types/components/table.d.ts +26 -22
  127. package/types/components/tabs.d.ts +2 -2
  128. package/types/components/tooltip.d.ts +2 -2
  129. package/types/components/tree.d.ts +8 -17
  130. /package/es/icon/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
  131. /package/es/icon/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
  132. /package/es/icon/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
  133. /package/es/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
  134. /package/es/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
  135. /package/es/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
  136. /package/lib/icon/style/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
  137. /package/lib/icon/style/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
  138. /package/lib/icon/style/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
  139. /package/lib/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
  140. /package/lib/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
  141. /package/lib/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -11377,6 +11377,7 @@ __webpack_require__.d(__webpack_exports__, {
11377
11377
  handleCheckInfo: function() { return /* reexport */ handleCheckInfo; },
11378
11378
  hasComponent: function() { return /* reexport */ hasComponent; },
11379
11379
  hasLanguage: function() { return /* reexport */ hasLanguage; },
11380
+ initVScrollbarMixin: function() { return /* reexport */ initVScrollbarMixin; },
11380
11381
  install: function() { return /* reexport */ install; },
11381
11382
  interceptor: function() { return /* reexport */ interceptor; },
11382
11383
  loading: function() { return /* reexport */ components_loading; },
@@ -11402,6 +11403,7 @@ __webpack_require__.d(__webpack_exports__, {
11402
11403
  setup: function() { return /* reexport */ setup; },
11403
11404
  sizeMixin: function() { return /* reexport */ sizeMixin; },
11404
11405
  use: function() { return /* reexport */ use; },
11406
+ vScrollbarMixin: function() { return /* reexport */ vScrollbarMixin; },
11405
11407
  validators: function() { return /* reexport */ validators; },
11406
11408
  version: function() { return /* reexport */ ui_version; },
11407
11409
  watermark: function() { return /* reexport */ components_watermark; }
@@ -11634,6 +11636,7 @@ __webpack_require__.d(components_namespaceObject, {
11634
11636
  handleCheckInfo: function() { return handleCheckInfo; },
11635
11637
  hasComponent: function() { return hasComponent; },
11636
11638
  hasLanguage: function() { return hasLanguage; },
11639
+ initVScrollbarMixin: function() { return initVScrollbarMixin; },
11637
11640
  install: function() { return install; },
11638
11641
  interceptor: function() { return interceptor; },
11639
11642
  loading: function() { return components_loading; },
@@ -11659,6 +11662,7 @@ __webpack_require__.d(components_namespaceObject, {
11659
11662
  setup: function() { return setup; },
11660
11663
  sizeMixin: function() { return sizeMixin; },
11661
11664
  use: function() { return use; },
11665
+ vScrollbarMixin: function() { return vScrollbarMixin; },
11662
11666
  validators: function() { return validators; },
11663
11667
  version: function() { return ui_version; },
11664
11668
  watermark: function() { return components_watermark; }
@@ -11702,7 +11706,7 @@ var es_regexp_exec = __webpack_require__(7495);
11702
11706
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.match.js
11703
11707
  var es_string_match = __webpack_require__(1761);
11704
11708
  ;// ./node_modules/@vxe-ui/core/es/src/core.js
11705
- var coreVersion = "3.4.33";
11709
+ var coreVersion = "3.4.35";
11706
11710
  var VxeCore = {
11707
11711
  coreVersion: coreVersion,
11708
11712
  uiVersion: '',
@@ -12463,7 +12467,7 @@ function createLog(type, name) {
12463
12467
  return msg;
12464
12468
  };
12465
12469
  }
12466
- var version = "3.4.33";
12470
+ var version = "3.4.35";
12467
12471
  var log = {
12468
12472
  create: createLog,
12469
12473
  warn: createLog('warn', "v".concat(version)),
@@ -13394,6 +13398,26 @@ var popperUtils = {
13394
13398
  ;// ./node_modules/@vxe-ui/core/es/src/mixins.js
13395
13399
 
13396
13400
 
13401
+
13402
+
13403
+
13404
+ var getThumbOffsetSize = scrollbarUtils.getThumbOffsetSize,
13405
+ getThumbSize = scrollbarUtils.getThumbSize,
13406
+ getScrollFromClick = scrollbarUtils.getScrollFromClick,
13407
+ getScrollFromDrag = scrollbarUtils.getScrollFromDrag;
13408
+ function getVmInternalData($xeVm) {
13409
+ // 新版本 $xeVm.internalData
13410
+ // 老版本 $xeVm
13411
+ return $xeVm.internalData || $xeVm;
13412
+ }
13413
+ function getVmReactData($xeVm) {
13414
+ // 新版本 $xeVm.reactData
13415
+ // 老版本 $xeVm
13416
+ return $xeVm.reactData || $xeVm;
13417
+ }
13418
+ /**
13419
+ * 组件尺寸上下文
13420
+ */
13397
13421
  var sizeMixin = external_commonjs_vue_commonjs2_vue_root_Vue_default().extend({
13398
13422
  inject: {
13399
13423
  $xeSizeInfo: {
@@ -13418,6 +13442,9 @@ var sizeMixin = external_commonjs_vue_commonjs2_vue_root_Vue_default().extend({
13418
13442
  }
13419
13443
  }
13420
13444
  });
13445
+ /**
13446
+ * 权限码处理
13447
+ */
13421
13448
  var permissionMixin = external_commonjs_vue_commonjs2_vue_root_Vue_default().extend({
13422
13449
  computed: {
13423
13450
  computePermissionInfo: function computePermissionInfo() {
@@ -13425,9 +13452,216 @@ var permissionMixin = external_commonjs_vue_commonjs2_vue_root_Vue_default().ext
13425
13452
  }
13426
13453
  }
13427
13454
  });
13455
+ /**
13456
+ * 虚拟滚动条是否启用
13457
+ */
13458
+ var vScrollbarMixin = external_commonjs_vue_commonjs2_vue_root_Vue_default().extend({
13459
+ inject: {
13460
+ $xeVmInfo: {
13461
+ default: null
13462
+ }
13463
+ },
13464
+ provide: function provide() {
13465
+ var _this2 = this;
13466
+ return {
13467
+ $xeVmInfo: {
13468
+ getIsVScrollbar: function getIsVScrollbar() {
13469
+ return _this2.computeIsVScrollbar;
13470
+ }
13471
+ }
13472
+ };
13473
+ },
13474
+ computed: {
13475
+ computeIsVScrollbar: function computeIsVScrollbar() {
13476
+ var useScrollbar = this.useScrollbar;
13477
+ var $xeVmInfo = this.$xeVmInfo;
13478
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(useScrollbar) ? useScrollbar : $xeVmInfo ? $xeVmInfo.getIsVScrollbar() : null;
13479
+ }
13480
+ }
13481
+ });
13482
+ var initVScrollbarMixin = external_commonjs_vue_commonjs2_vue_root_Vue_default().extend(Object.assign(Object.assign({}, {}), {
13483
+ methods: {
13484
+ updateThumbSize: function updateThumbSize() {
13485
+ var $xeVm = this;
13486
+ var reactData = getVmReactData($xeVm);
13487
+ var viewEl = $xeVm.getScrollViewElem();
13488
+ if (!viewEl) {
13489
+ return;
13490
+ }
13491
+ if (!viewEl.clientHeight || !viewEl.clientHeight) {
13492
+ return;
13493
+ }
13494
+ var trackXEl = $xeVm.$refs.refTrackXElem;
13495
+ var xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
13496
+ var thumbXElem = $xeVm.$refs.refThumbXElem;
13497
+ if (thumbXElem) {
13498
+ thumbXElem.style.width = xThumbWidth + 'px';
13499
+ }
13500
+ reactData.xThumbWidth = xThumbWidth;
13501
+ var trackYEl = $xeVm.$refs.refTrackYElem;
13502
+ var yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
13503
+ var thumbYElem = $xeVm.$refs.refThumbYElem;
13504
+ if (thumbYElem) {
13505
+ thumbYElem.style.height = yThumbHeight + 'px';
13506
+ }
13507
+ reactData.yThumbHeight = yThumbHeight;
13508
+ },
13509
+ updateThumbOffset: function updateThumbOffset() {
13510
+ var $xeVm = this;
13511
+ var reactData = getVmReactData($xeVm);
13512
+ var internalData = getVmInternalData($xeVm);
13513
+ var viewEl = $xeVm.getScrollViewElem();
13514
+ if (!viewEl) {
13515
+ return;
13516
+ }
13517
+ if (!viewEl.clientHeight || !viewEl.clientHeight) {
13518
+ return;
13519
+ }
13520
+ var xThumbWidth = reactData.xThumbWidth,
13521
+ yThumbHeight = reactData.yThumbHeight;
13522
+ var trackXEl = $xeVm.$refs.refTrackXElem;
13523
+ var thumbXElem = $xeVm.$refs.refThumbXElem;
13524
+ var xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
13525
+ internalData.xThumbLeft = xThumbLeft;
13526
+ if (thumbXElem && xThumbWidth) {
13527
+ thumbXElem.style.width = xThumbWidth + 'px';
13528
+ thumbXElem.style.transform = "translateX(".concat(xThumbLeft, "px)");
13529
+ }
13530
+ var trackYEl = $xeVm.$refs.refTrackYElem;
13531
+ var thumbYElem = $xeVm.$refs.refThumbYElem;
13532
+ var yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
13533
+ internalData.yThumbTop = yThumbTop;
13534
+ if (thumbYElem && yThumbHeight) {
13535
+ thumbYElem.style.height = yThumbHeight + 'px';
13536
+ thumbYElem.style.transform = "translateY(".concat(yThumbTop, "px)");
13537
+ }
13538
+ },
13539
+ clickTrackXEvent: function clickTrackXEvent(evnt) {
13540
+ var $xeVm = this;
13541
+ var reactData = getVmReactData($xeVm);
13542
+ var trackEl = evnt.currentTarget;
13543
+ if (trackEl !== evnt.target) {
13544
+ return;
13545
+ }
13546
+ var viewEl = $xeVm.getScrollViewElem();
13547
+ if (!viewEl) {
13548
+ return;
13549
+ }
13550
+ var xThumbWidth = reactData.xThumbWidth;
13551
+ var trackRect = trackEl.getBoundingClientRect();
13552
+ viewEl.scrollTo({
13553
+ left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
13554
+ behavior: 'auto'
13555
+ });
13556
+ },
13557
+ clickTrackYEvent: function clickTrackYEvent(evnt) {
13558
+ var $xeVm = this;
13559
+ var reactData = getVmReactData($xeVm);
13560
+ var trackEl = evnt.currentTarget;
13561
+ if (trackEl !== evnt.target) {
13562
+ return;
13563
+ }
13564
+ var viewEl = $xeVm.getScrollViewElem();
13565
+ if (!viewEl) {
13566
+ return;
13567
+ }
13568
+ var yThumbHeight = reactData.yThumbHeight;
13569
+ var trackRect = trackEl.getBoundingClientRect();
13570
+ viewEl.scrollTo({
13571
+ top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
13572
+ behavior: 'auto'
13573
+ });
13574
+ },
13575
+ pointerdownThumbXEvent: function pointerdownThumbXEvent(evnt) {
13576
+ var $xeVm = this;
13577
+ var reactData = getVmReactData($xeVm);
13578
+ var internalData = getVmInternalData($xeVm);
13579
+ var thumbEl = evnt.currentTarget;
13580
+ internalData.isThumbDrag = true;
13581
+ thumbEl.setPointerCapture(evnt.pointerId);
13582
+ var viewEl = $xeVm.getScrollViewElem();
13583
+ if (!viewEl) {
13584
+ return;
13585
+ }
13586
+ var xThumbWidth = reactData.xThumbWidth;
13587
+ var trackEl = thumbEl.parentElement;
13588
+ var trackRect = trackEl.getBoundingClientRect();
13589
+ var pointerPosition = evnt.clientX - trackRect.left;
13590
+ // 记录 thumb 的偏移
13591
+ var thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
13592
+ internalData.thumbDragOffset = pointerPosition - thumbOffset;
13593
+ },
13594
+ pointermoveThumbXEvent: function pointermoveThumbXEvent(evnt) {
13595
+ var $xeVm = this;
13596
+ var reactData = getVmReactData($xeVm);
13597
+ var internalData = getVmInternalData($xeVm);
13598
+ var isThumbDrag = internalData.isThumbDrag,
13599
+ thumbDragOffset = internalData.thumbDragOffset;
13600
+ if (isThumbDrag) {
13601
+ var viewEl = $xeVm.getScrollViewElem();
13602
+ if (!viewEl) {
13603
+ return;
13604
+ }
13605
+ var xThumbWidth = reactData.xThumbWidth;
13606
+ var thumbEl = evnt.currentTarget;
13607
+ var trackEl = thumbEl.parentElement;
13608
+ var trackRect = trackEl.getBoundingClientRect();
13609
+ // 更新偏移
13610
+ viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
13611
+ }
13612
+ },
13613
+ cleatPointerThumbEvent: function cleatPointerThumbEvent(evnt) {
13614
+ var $xeVm = this;
13615
+ var internalData = getVmInternalData($xeVm);
13616
+ var thumbEl = evnt.currentTarget;
13617
+ thumbEl.releasePointerCapture(evnt.pointerId);
13618
+ internalData.isThumbDrag = false;
13619
+ },
13620
+ pointerdownThumbYEvent: function pointerdownThumbYEvent(evnt) {
13621
+ var $xeVm = this;
13622
+ var reactData = getVmReactData($xeVm);
13623
+ var internalData = getVmInternalData($xeVm);
13624
+ var thumbEl = evnt.currentTarget;
13625
+ internalData.isThumbDrag = true;
13626
+ thumbEl.setPointerCapture(evnt.pointerId);
13627
+ var viewEl = $xeVm.getScrollViewElem();
13628
+ if (!viewEl) {
13629
+ return;
13630
+ }
13631
+ var yThumbHeight = reactData.yThumbHeight;
13632
+ var trackEl = thumbEl.parentElement;
13633
+ var trackRect = trackEl.getBoundingClientRect();
13634
+ var pointerPosition = evnt.clientY - trackRect.top;
13635
+ // 记录 thumb 的偏移
13636
+ var thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
13637
+ internalData.thumbDragOffset = pointerPosition - thumbOffset;
13638
+ },
13639
+ pointermoveThumbYEvent: function pointermoveThumbYEvent(evnt) {
13640
+ var $xeVm = this;
13641
+ var reactData = getVmReactData($xeVm);
13642
+ var internalData = getVmInternalData($xeVm);
13643
+ var isThumbDrag = internalData.isThumbDrag,
13644
+ thumbDragOffset = internalData.thumbDragOffset;
13645
+ if (isThumbDrag) {
13646
+ var viewEl = $xeVm.getScrollViewElem();
13647
+ if (!viewEl) {
13648
+ return;
13649
+ }
13650
+ var yThumbHeight = reactData.yThumbHeight;
13651
+ var thumbEl = evnt.currentTarget;
13652
+ var trackEl = thumbEl.parentElement;
13653
+ var trackRect = trackEl.getBoundingClientRect();
13654
+ // 更新偏移
13655
+ viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
13656
+ }
13657
+ }
13658
+ }
13659
+ }));
13428
13660
  var globalMixins = {
13429
13661
  sizeMixin: sizeMixin,
13430
- permissionMixin: permissionMixin
13662
+ permissionMixin: permissionMixin,
13663
+ vScrollbarMixin: vScrollbarMixin,
13664
+ initVScrollbarMixin: initVScrollbarMixin
13431
13665
  };
13432
13666
  ;// ./node_modules/@vxe-ui/core/es/index.esm.js
13433
13667
 
@@ -13701,7 +13935,7 @@ var es_array_filter = __webpack_require__(2008);
13701
13935
 
13702
13936
 
13703
13937
  var log_log = VxeUI.log;
13704
- var uiVersion = "ui v".concat("3.20.8");
13938
+ var uiVersion = "ui v".concat("3.20.10");
13705
13939
  function createComponentLog(name) {
13706
13940
  var tableVersion = VxeUI.tableVersion ? "table v".concat(VxeUI.tableVersion) : '';
13707
13941
  var ganttVersion = VxeUI.ganttVersion ? "gantt v".concat(VxeUI.ganttVersion) : '';
@@ -13721,7 +13955,7 @@ var errLog = log_log.create('error', uiVersion);
13721
13955
 
13722
13956
 
13723
13957
 
13724
- var ui_version = "3.20.8";
13958
+ var ui_version = "3.20.10";
13725
13959
  VxeUI.uiVersion = ui_version;
13726
13960
  VxeUI.dynamicApp = dynamicApp;
13727
13961
  function config(options) {
@@ -16846,14 +17080,9 @@ var Loading = VxeLoading;
16846
17080
  var scrollbar_getConfig = VxeUI.getConfig,
16847
17081
  scrollbar_createEvent = VxeUI.createEvent,
16848
17082
  scrollbar_domUtils = VxeUI.domUtils,
16849
- scrollbar_scrollbarUtils = VxeUI.scrollbarUtils,
16850
17083
  scrollbar_globalResize = VxeUI.globalResize,
16851
17084
  scrollbar_globalEvents = VxeUI.globalEvents,
16852
17085
  scrollbar_renderEmptyElement = VxeUI.renderEmptyElement;
16853
- var getThumbOffsetSize = scrollbar_scrollbarUtils.getThumbOffsetSize,
16854
- getThumbSize = scrollbar_scrollbarUtils.getThumbSize,
16855
- getScrollFromClick = scrollbar_scrollbarUtils.getScrollFromClick,
16856
- getScrollFromDrag = scrollbar_scrollbarUtils.getScrollFromDrag;
16857
17086
  function createReactData() {
16858
17087
  return {
16859
17088
  yThumbHeight: 0,
@@ -16862,7 +17091,7 @@ function createReactData() {
16862
17091
  }
16863
17092
  function createInternalData() {
16864
17093
  return {
16865
- // resizeObserver: undefined,
17094
+ // scrollObserver: undefined,
16866
17095
  // isThumbDrag: false,
16867
17096
  thumbDragOffset: 0,
16868
17097
  yThumbTop: 0,
@@ -16873,6 +17102,7 @@ function createInternalData() {
16873
17102
  }
16874
17103
  /* harmony default export */ var scrollbar = (/* define-vxe-component start */defineVxeComponent({
16875
17104
  name: 'VxeScrollbar',
17105
+ mixins: [globalMixins.sizeMixin, globalMixins.initVScrollbarMixin],
16876
17106
  props: {
16877
17107
  id: [String, Number],
16878
17108
  viewId: [String, Number],
@@ -16945,12 +17175,26 @@ function createInternalData() {
16945
17175
  return scrollbar_getConfig().scrollbar.viewInnerClassName;
16946
17176
  }
16947
17177
  },
17178
+ size: {
17179
+ type: String,
17180
+ default: function _default() {
17181
+ return scrollbar_getConfig().scrollbar.size || scrollbar_getConfig().size;
17182
+ }
17183
+ },
17184
+ /**
17185
+ * 已废弃
17186
+ * @deprecated
17187
+ */
16948
17188
  autoResize: {
16949
17189
  type: Boolean,
16950
17190
  default: function _default() {
16951
17191
  return scrollbar_getConfig().scrollbar.autoResize;
16952
17192
  }
16953
17193
  },
17194
+ /**
17195
+ * 已废弃
17196
+ * @deprecated
17197
+ */
16954
17198
  syncResize: [Boolean, String, Number]
16955
17199
  },
16956
17200
  data: function data() {
@@ -16962,7 +17206,7 @@ function createInternalData() {
16962
17206
  reFlag: 0
16963
17207
  });
16964
17208
  },
16965
- computed: {
17209
+ computed: _objectSpread2(_objectSpread2({}, {}), {}, {
16966
17210
  computeWrapperStyle: function computeWrapperStyle() {
16967
17211
  var $xeScrollbar = this;
16968
17212
  var props = $xeScrollbar;
@@ -17047,13 +17291,14 @@ function createInternalData() {
17047
17291
  padding = props.padding;
17048
17292
  var yThumbHeight = reactData.yThumbHeight,
17049
17293
  xThumbWidth = reactData.xThumbWidth;
17294
+ var vSize = $xeScrollbar.computeSize;
17050
17295
  var xToTop = $xeScrollbar.computeXToTop;
17051
17296
  var yToLeft = $xeScrollbar.computeYToLeft;
17052
17297
  var xVisible = $xeScrollbar.computeXVisible;
17053
17298
  var yVisible = $xeScrollbar.computeYVisible;
17054
17299
  var xAutoHide = $xeScrollbar.computeXAutoHide;
17055
17300
  var yAutoHide = $xeScrollbar.computeYAutoHide;
17056
- return scrollbar_domUtils.buildClass(['vxe-scrollbar', theme ? "theme--".concat(theme) : '', "ov-x--".concat(xVisible === false ? 'hidden' : 'visible'), "ov-y--".concat(yVisible === false ? 'hidden' : 'visible'), "sx-pos--".concat(xToTop ? 'top' : 'bottom'), "sy-pos--".concat(yToLeft ? 'left' : 'right'), native ? 'is--native' : 'is--virtual', className], {
17301
+ return scrollbar_domUtils.buildClass(['vxe-scrollbar', vSize ? "size--".concat(vSize) : '', theme ? "theme--".concat(theme) : '', "ov-x--".concat(xVisible === false ? 'hidden' : 'visible'), "ov-y--".concat(yVisible === false ? 'hidden' : 'visible'), "sx-pos--".concat(xToTop ? 'top' : 'bottom'), "sy-pos--".concat(yToLeft ? 'left' : 'right'), native ? 'is--native' : 'is--virtual', className], {
17057
17302
  'is--padding': padding,
17058
17303
  'ov-x--auto-hide': xAutoHide,
17059
17304
  'ov-y--auto-hide': yAutoHide,
@@ -17093,7 +17338,7 @@ function createInternalData() {
17093
17338
  var yOpts = $xeScrollbar.computeYOpts;
17094
17339
  return yOpts.position === 'left';
17095
17340
  }
17096
- },
17341
+ }),
17097
17342
  methods: {
17098
17343
  //
17099
17344
  // Method
@@ -17104,12 +17349,12 @@ function createInternalData() {
17104
17349
  $scrollbar: $xeScrollbar
17105
17350
  }, params));
17106
17351
  },
17107
- getViewElem: function getViewElem() {
17352
+ getScrollViewElem: function getScrollViewElem() {
17108
17353
  var $xeScrollbar = this;
17109
17354
  var viewEl = $xeScrollbar.$refs.refViewElem;
17110
17355
  return viewEl || null;
17111
17356
  },
17112
- getViewInnerElem: function getViewInnerElem() {
17357
+ getScrollViewInnerElem: function getScrollViewInnerElem() {
17113
17358
  var $xeScrollbar = this;
17114
17359
  var viewInnerEl = $xeScrollbar.$refs.refViewInnerElem;
17115
17360
  return viewInnerEl || null;
@@ -17176,60 +17421,6 @@ function createInternalData() {
17176
17421
  $xeScrollbar.updateThumbOffset();
17177
17422
  return $xeScrollbar.$nextTick();
17178
17423
  },
17179
- updateThumbSize: function updateThumbSize() {
17180
- var $xeScrollbar = this;
17181
- var reactData = $xeScrollbar.reactData;
17182
- var viewEl = $xeScrollbar.$refs.refViewElem;
17183
- if (!viewEl) {
17184
- return;
17185
- }
17186
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
17187
- return;
17188
- }
17189
- var trackXEl = $xeScrollbar.$refs.refTrackXElem;
17190
- var xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
17191
- var thumbXElem = $xeScrollbar.$refs.refThumbXElem;
17192
- if (thumbXElem) {
17193
- thumbXElem.style.width = xThumbWidth + 'px';
17194
- }
17195
- reactData.xThumbWidth = xThumbWidth;
17196
- var trackYEl = $xeScrollbar.$refs.refTrackYElem;
17197
- var yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
17198
- var thumbYElem = $xeScrollbar.$refs.refThumbYElem;
17199
- if (thumbYElem) {
17200
- thumbYElem.style.height = yThumbHeight + 'px';
17201
- }
17202
- reactData.yThumbHeight = yThumbHeight;
17203
- },
17204
- updateThumbOffset: function updateThumbOffset() {
17205
- var $xeScrollbar = this;
17206
- var reactData = $xeScrollbar.reactData;
17207
- var internalData = $xeScrollbar.internalData;
17208
- var viewEl = $xeScrollbar.$refs.refViewElem;
17209
- if (!viewEl) {
17210
- return;
17211
- // removed by dead control flow
17212
-
17213
- }
17214
- var xThumbWidth = reactData.xThumbWidth,
17215
- yThumbHeight = reactData.yThumbHeight;
17216
- var trackXEl = $xeScrollbar.$refs.refTrackXElem;
17217
- var thumbXElem = $xeScrollbar.$refs.refThumbXElem;
17218
- var xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
17219
- internalData.xThumbLeft = xThumbLeft;
17220
- if (thumbXElem && xThumbWidth) {
17221
- thumbXElem.style.width = xThumbWidth + 'px';
17222
- thumbXElem.style.transform = "translateX(".concat(xThumbLeft, "px)");
17223
- }
17224
- var trackYEl = $xeScrollbar.$refs.refTrackYElem;
17225
- var thumbYElem = $xeScrollbar.$refs.refThumbYElem;
17226
- var yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
17227
- internalData.yThumbTop = yThumbTop;
17228
- if (thumbYElem && yThumbHeight) {
17229
- thumbYElem.style.height = yThumbHeight + 'px';
17230
- thumbYElem.style.transform = "translateY(".concat(yThumbTop, "px)");
17231
- }
17232
- },
17233
17424
  scrollEvent: function scrollEvent(evnt) {
17234
17425
  var $xeScrollbar = this;
17235
17426
  var reactData = $xeScrollbar.reactData;
@@ -17312,125 +17503,6 @@ function createInternalData() {
17312
17503
  scrollWidth: scrollWidth
17313
17504
  }, evnt);
17314
17505
  },
17315
- clickTrackXEvent: function clickTrackXEvent(evnt) {
17316
- var $xeScrollbar = this;
17317
- var reactData = $xeScrollbar.reactData;
17318
- var trackEl = evnt.currentTarget;
17319
- if (trackEl !== evnt.target) {
17320
- return;
17321
- }
17322
- var viewEl = $xeScrollbar.$refs.refViewElem;
17323
- if (!viewEl) {
17324
- return;
17325
- }
17326
- var xThumbWidth = reactData.xThumbWidth;
17327
- var trackRect = trackEl.getBoundingClientRect();
17328
- viewEl.scrollTo({
17329
- left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
17330
- behavior: 'auto'
17331
- });
17332
- },
17333
- clickTrackYEvent: function clickTrackYEvent(evnt) {
17334
- var $xeScrollbar = this;
17335
- var reactData = $xeScrollbar.reactData;
17336
- var trackEl = evnt.currentTarget;
17337
- if (trackEl !== evnt.target) {
17338
- return;
17339
- }
17340
- var viewEl = $xeScrollbar.$refs.refViewElem;
17341
- if (!viewEl) {
17342
- return;
17343
- }
17344
- var yThumbHeight = reactData.yThumbHeight;
17345
- var trackRect = trackEl.getBoundingClientRect();
17346
- viewEl.scrollTo({
17347
- top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
17348
- behavior: 'auto'
17349
- });
17350
- },
17351
- pointerdownThumbXEvent: function pointerdownThumbXEvent(evnt) {
17352
- var $xeScrollbar = this;
17353
- var reactData = $xeScrollbar.reactData;
17354
- var internalData = $xeScrollbar.internalData;
17355
- var thumbEl = evnt.currentTarget;
17356
- internalData.isThumbDrag = true;
17357
- thumbEl.setPointerCapture(evnt.pointerId);
17358
- var viewEl = $xeScrollbar.$refs.refViewElem;
17359
- if (!viewEl) {
17360
- return;
17361
- }
17362
- var xThumbWidth = reactData.xThumbWidth;
17363
- var trackEl = thumbEl.parentElement;
17364
- var trackRect = trackEl.getBoundingClientRect();
17365
- var pointerPosition = evnt.clientX - trackRect.left;
17366
- // 记录 thumb 的偏移
17367
- var thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
17368
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
17369
- },
17370
- pointermoveThumbXEvent: function pointermoveThumbXEvent(evnt) {
17371
- var $xeScrollbar = this;
17372
- var reactData = $xeScrollbar.reactData;
17373
- var internalData = $xeScrollbar.internalData;
17374
- var isThumbDrag = internalData.isThumbDrag,
17375
- thumbDragOffset = internalData.thumbDragOffset;
17376
- if (isThumbDrag) {
17377
- var viewEl = $xeScrollbar.$refs.refViewElem;
17378
- if (!viewEl) {
17379
- return;
17380
- }
17381
- var xThumbWidth = reactData.xThumbWidth;
17382
- var thumbEl = evnt.currentTarget;
17383
- var trackEl = thumbEl.parentElement;
17384
- var trackRect = trackEl.getBoundingClientRect();
17385
- // 更新偏移
17386
- viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
17387
- }
17388
- },
17389
- cleatPointerThumbEvent: function cleatPointerThumbEvent(evnt) {
17390
- var $xeScrollbar = this;
17391
- var internalData = $xeScrollbar.internalData;
17392
- var thumbEl = evnt.currentTarget;
17393
- thumbEl.releasePointerCapture(evnt.pointerId);
17394
- internalData.isThumbDrag = false;
17395
- },
17396
- pointerdownThumbYEvent: function pointerdownThumbYEvent(evnt) {
17397
- var $xeScrollbar = this;
17398
- var reactData = $xeScrollbar.reactData;
17399
- var internalData = $xeScrollbar.internalData;
17400
- var thumbEl = evnt.currentTarget;
17401
- internalData.isThumbDrag = true;
17402
- thumbEl.setPointerCapture(evnt.pointerId);
17403
- var viewEl = $xeScrollbar.$refs.refViewElem;
17404
- if (!viewEl) {
17405
- return;
17406
- }
17407
- var yThumbHeight = reactData.yThumbHeight;
17408
- var trackEl = thumbEl.parentElement;
17409
- var trackRect = trackEl.getBoundingClientRect();
17410
- var pointerPosition = evnt.clientY - trackRect.top;
17411
- // 记录 thumb 的偏移
17412
- var thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
17413
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
17414
- },
17415
- pointermoveThumbYEvent: function pointermoveThumbYEvent(evnt) {
17416
- var $xeScrollbar = this;
17417
- var reactData = $xeScrollbar.reactData;
17418
- var internalData = $xeScrollbar.internalData;
17419
- var isThumbDrag = internalData.isThumbDrag,
17420
- thumbDragOffset = internalData.thumbDragOffset;
17421
- if (isThumbDrag) {
17422
- var viewEl = $xeScrollbar.$refs.refViewElem;
17423
- if (!viewEl) {
17424
- return;
17425
- }
17426
- var yThumbHeight = reactData.yThumbHeight;
17427
- var thumbEl = evnt.currentTarget;
17428
- var trackEl = thumbEl.parentElement;
17429
- var trackRect = trackEl.getBoundingClientRect();
17430
- // 更新偏移
17431
- viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
17432
- }
17433
- },
17434
17506
  //
17435
17507
  // Render
17436
17508
  //
@@ -17584,18 +17656,18 @@ function createInternalData() {
17584
17656
  var viewEl = $xeScrollbar.$refs.refViewElem;
17585
17657
  var viewInnerEl = $xeScrollbar.$refs.refViewInnerElem;
17586
17658
  if (autoResize) {
17587
- var resizeObserver = scrollbar_globalResize.create(function () {
17659
+ var scrollObserver = scrollbar_globalResize.create(function () {
17588
17660
  if (props.autoResize) {
17589
17661
  $xeScrollbar.reFlag++;
17590
17662
  }
17591
17663
  });
17592
17664
  if (viewEl) {
17593
- resizeObserver.observe(viewEl);
17665
+ scrollObserver.observe(viewEl);
17594
17666
  }
17595
17667
  if (viewInnerEl) {
17596
- resizeObserver.observe(viewInnerEl);
17668
+ scrollObserver.observe(viewInnerEl);
17597
17669
  }
17598
- internalData.resizeObserver = resizeObserver;
17670
+ internalData.scrollObserver = scrollObserver;
17599
17671
  }
17600
17672
  $xeScrollbar.reFlag++;
17601
17673
  scrollbar_globalEvents.on($xeScrollbar, 'resize', function () {
@@ -17605,9 +17677,9 @@ function createInternalData() {
17605
17677
  beforeDestroy: function beforeDestroy() {
17606
17678
  var $xeScrollbar = this;
17607
17679
  var internalData = $xeScrollbar.internalData;
17608
- var resizeObserver = internalData.resizeObserver;
17609
- if (resizeObserver) {
17610
- resizeObserver.disconnect();
17680
+ var scrollObserver = internalData.scrollObserver;
17681
+ if (scrollObserver) {
17682
+ scrollObserver.disconnect();
17611
17683
  }
17612
17684
  scrollbar_globalEvents.off($xeScrollbar, 'resize');
17613
17685
  },
@@ -17682,7 +17754,7 @@ function tooltip_createInternalData() {
17682
17754
  }
17683
17755
  /* harmony default export */ var tooltip = (/* define-vxe-component start */defineVxeComponent({
17684
17756
  name: 'VxeTooltip',
17685
- mixins: [globalMixins.sizeMixin],
17757
+ mixins: [globalMixins.sizeMixin, globalMixins.vScrollbarMixin],
17686
17758
  props: {
17687
17759
  value: Boolean,
17688
17760
  size: {
@@ -17966,8 +18038,7 @@ function tooltip_createInternalData() {
17966
18038
  },
17967
18039
  updatePlacement: function updatePlacement() {
17968
18040
  var $xeTooltip = this;
17969
- $xeTooltip.updateTipStyle();
17970
- return $xeTooltip.$nextTick().then(function () {
18041
+ return $xeTooltip.updateTipStyle().then(function () {
17971
18042
  return $xeTooltip.updateTipStyle();
17972
18043
  }).then(function () {
17973
18044
  return $xeTooltip.updateTipStyle();
@@ -18173,9 +18244,9 @@ function tooltip_createInternalData() {
18173
18244
  var reactData = $xeTooltip.reactData;
18174
18245
  var useHtml = props.useHtml,
18175
18246
  theme = props.theme,
18176
- useScrollbar = props.useScrollbar,
18177
18247
  useHTML = props.useHTML;
18178
18248
  var tipContent = reactData.tipContent;
18249
+ var isVScrollbar = $xeTooltip.computeIsVScrollbar;
18179
18250
  var wrapperStyle = $xeTooltip.computeWrapperStyle;
18180
18251
  var contentSlot = slots.content;
18181
18252
  var contVNs = [];
@@ -18195,7 +18266,7 @@ function tooltip_createInternalData() {
18195
18266
  key: 'cd'
18196
18267
  }, "".concat(tipContent)));
18197
18268
  }
18198
- if (useScrollbar) {
18269
+ if (isVScrollbar) {
18199
18270
  return h(packages_scrollbar, {
18200
18271
  key: 5,
18201
18272
  ref: 'contentScrollbar',
@@ -18295,7 +18366,7 @@ function tooltip_createInternalData() {
18295
18366
  var internalData = $xeTooltip.internalData;
18296
18367
  var $scrollbar = $xeTooltip.$refs.contentScrollbar;
18297
18368
  if ($scrollbar) {
18298
- var viewEl = $scrollbar.getViewElem();
18369
+ var viewEl = $scrollbar.getScrollViewElem();
18299
18370
  if (viewEl) {
18300
18371
  viewEl.addEventListener('wheel', $xeTooltip.wheelEvent, {
18301
18372
  passive: false
@@ -22049,7 +22120,7 @@ var Calendar = VxeCalendar;
22049
22120
 
22050
22121
  /* harmony default export */ var card = (/* define-vxe-component start */defineVxeComponent({
22051
22122
  name: 'VxeCard',
22052
- mixins: [globalMixins.sizeMixin],
22123
+ mixins: [globalMixins.sizeMixin, globalMixins.vScrollbarMixin],
22053
22124
  props: {
22054
22125
  title: String,
22055
22126
  showTitleOverflow: {
@@ -23060,14 +23131,9 @@ var list_getConfig = VxeUI.getConfig,
23060
23131
  list_getIcon = VxeUI.getIcon,
23061
23132
  list_getI18n = VxeUI.getI18n,
23062
23133
  list_domUtils = VxeUI.domUtils,
23063
- list_scrollbarUtils = VxeUI.scrollbarUtils,
23064
23134
  list_menus = VxeUI.menus,
23065
23135
  list_globalEvents = VxeUI.globalEvents,
23066
23136
  list_globalResize = VxeUI.globalResize;
23067
- var list_getThumbOffsetSize = list_scrollbarUtils.getThumbOffsetSize,
23068
- list_getThumbSize = list_scrollbarUtils.getThumbSize,
23069
- list_getScrollFromClick = list_scrollbarUtils.getScrollFromClick,
23070
- list_getScrollFromDrag = list_scrollbarUtils.getScrollFromDrag;
23071
23137
  var list_createComponentLog = createComponentLog('tree'),
23072
23138
  list_warnLog = list_createComponentLog.warnLog,
23073
23139
  list_errLog = list_createComponentLog.errLog;
@@ -23143,7 +23209,7 @@ function list_createInternalData() {
23143
23209
  }
23144
23210
  /* harmony default export */ var list = (/* define-vxe-component start */defineVxeComponent({
23145
23211
  name: 'VxeList',
23146
- mixins: [globalMixins.sizeMixin],
23212
+ mixins: [globalMixins.sizeMixin, globalMixins.vScrollbarMixin, globalMixins.initVScrollbarMixin],
23147
23213
  props: {
23148
23214
  data: Array,
23149
23215
  height: [Number, String],
@@ -23205,7 +23271,8 @@ function list_createInternalData() {
23205
23271
  xID: xID,
23206
23272
  reactData: reactData,
23207
23273
  crossListDragRowInfo: crossListDragRowGlobal,
23208
- reFlag: 0
23274
+ reLayoutFlag: 0,
23275
+ reScrollFlag: 0
23209
23276
  });
23210
23277
  },
23211
23278
  computed: _objectSpread2(_objectSpread2({}, {}), {}, {
@@ -23403,6 +23470,11 @@ function list_createInternalData() {
23403
23470
  }
23404
23471
  return [];
23405
23472
  },
23473
+ getScrollViewElem: function getScrollViewElem() {
23474
+ var $xeList = this;
23475
+ var viewEl = $xeList.$refs.refVirtualWrapper;
23476
+ return viewEl || null;
23477
+ },
23406
23478
  getRowId: function getRowId(row) {
23407
23479
  var $xeList = this;
23408
23480
  var keyField = $xeList.computeKeyField;
@@ -23715,8 +23787,14 @@ function list_createInternalData() {
23715
23787
  },
23716
23788
  updateScrollbar: function updateScrollbar() {
23717
23789
  var $xeList = this;
23718
- $xeList.updateThumbSize();
23719
- $xeList.updateThumbOffset();
23790
+ var isVScrollbar = $xeList.computeIsVScrollbar;
23791
+ if (isVScrollbar) {
23792
+ return $xeList.$nextTick().then(function () {
23793
+ $xeList.updateThumbSize();
23794
+ $xeList.updateThumbOffset();
23795
+ });
23796
+ }
23797
+ return Promise.resolve();
23720
23798
  },
23721
23799
  /**
23722
23800
  * 重新计算列表
@@ -23737,10 +23815,11 @@ function list_createInternalData() {
23737
23815
  parentHeight = parentEl.clientHeight - Math.ceil(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(parentStyle.paddingLeft) + external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(parentStyle.paddingRight));
23738
23816
  }
23739
23817
  reactData.parentHeight = parentHeight;
23740
- $xeList.updateScrollbar();
23741
23818
  $xeList.updateHeight();
23742
23819
  if (el.clientWidth && el.clientHeight) {
23743
- return $xeList.computeScrollLoad();
23820
+ return $xeList.computeScrollLoad().then(function () {
23821
+ $xeList.updateScrollbar();
23822
+ });
23744
23823
  }
23745
23824
  }
23746
23825
  return $xeList.$nextTick();
@@ -23754,7 +23833,7 @@ function list_createInternalData() {
23754
23833
  visibleSize = scrollYStore.visibleSize,
23755
23834
  offsetSize = scrollYStore.offsetSize,
23756
23835
  rowHeight = scrollYStore.rowHeight;
23757
- var scrollBodyElem = evnt.target;
23836
+ var scrollBodyElem = evnt.currentTarget;
23758
23837
  var scrollTop = scrollBodyElem.scrollTop;
23759
23838
  var toVisibleIndex = Math.floor(scrollTop / rowHeight);
23760
23839
  var offsetStartIndex = Math.max(0, toVisibleIndex - 1 - offsetSize);
@@ -23771,7 +23850,7 @@ function list_createInternalData() {
23771
23850
  var $xeList = this;
23772
23851
  var reactData = $xeList.reactData;
23773
23852
  var internalData = $xeList.internalData;
23774
- var scrollBodyElem = evnt.target;
23853
+ var scrollBodyElem = evnt.currentTarget;
23775
23854
  var scrollTop = scrollBodyElem.scrollTop;
23776
23855
  var scrollLeft = scrollBodyElem.scrollLeft;
23777
23856
  var isX = scrollLeft !== internalData.lastScrollLeft;
@@ -25137,186 +25216,26 @@ function list_createInternalData() {
25137
25216
  }, evnt);
25138
25217
  },
25139
25218
  // 滚动条
25140
- updateThumbSize: function updateThumbSize() {
25141
- var $xeList = this;
25142
- var reactData = $xeList.reactData;
25143
- var viewEl = $xeList.$refs.refVirtualWrapper;
25144
- if (!viewEl) {
25145
- return;
25146
- }
25147
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
25148
- return;
25149
- }
25150
- var trackXEl = $xeList.$refs.refTrackXElem;
25151
- var xThumbWidth = trackXEl ? list_getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
25152
- var thumbXElem = $xeList.$refs.refThumbXElem;
25153
- if (thumbXElem) {
25154
- thumbXElem.style.width = xThumbWidth + 'px';
25155
- }
25156
- reactData.xThumbWidth = xThumbWidth;
25157
- var trackYEl = $xeList.$refs.refTrackYElem;
25158
- var yThumbHeight = trackYEl ? list_getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
25159
- var thumbYElem = $xeList.$refs.refThumbYElem;
25160
- if (thumbYElem) {
25161
- thumbYElem.style.height = yThumbHeight + 'px';
25162
- }
25163
- reactData.yThumbHeight = yThumbHeight;
25164
- },
25165
- updateThumbOffset: function updateThumbOffset() {
25166
- var $xeList = this;
25167
- var reactData = $xeList.reactData;
25168
- var internalData = $xeList.internalData;
25169
- var viewEl = $xeList.$refs.refVirtualWrapper;
25170
- if (!viewEl) {
25171
- return;
25172
- }
25173
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
25174
- return;
25175
- }
25176
- var xThumbWidth = reactData.xThumbWidth,
25177
- yThumbHeight = reactData.yThumbHeight;
25178
- var trackXEl = $xeList.$refs.refTrackXElem;
25179
- var thumbXElem = $xeList.$refs.refThumbXElem;
25180
- var xThumbLeft = trackXEl && xThumbWidth ? list_getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
25181
- internalData.xThumbLeft = xThumbLeft;
25182
- if (thumbXElem && xThumbWidth) {
25183
- thumbXElem.style.width = xThumbWidth + 'px';
25184
- thumbXElem.style.transform = "translateX(".concat(xThumbLeft, "px)");
25185
- }
25186
- var trackYEl = $xeList.$refs.refTrackYElem;
25187
- var thumbYElem = $xeList.$refs.refThumbYElem;
25188
- var yThumbTop = trackYEl && yThumbHeight ? list_getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
25189
- internalData.yThumbTop = yThumbTop;
25190
- if (thumbYElem && yThumbHeight) {
25191
- thumbYElem.style.height = yThumbHeight + 'px';
25192
- thumbYElem.style.transform = "translateY(".concat(yThumbTop, "px)");
25193
- }
25194
- },
25195
- clickTrackXEvent: function clickTrackXEvent(evnt) {
25196
- var $xeList = this;
25197
- var reactData = $xeList.reactData;
25198
- var trackEl = evnt.currentTarget;
25199
- if (trackEl !== evnt.target) {
25200
- return;
25201
- }
25202
- var viewEl = $xeList.$refs.refVirtualWrapper;
25203
- if (!viewEl) {
25204
- return;
25205
- }
25206
- var xThumbWidth = reactData.xThumbWidth;
25207
- var trackRect = trackEl.getBoundingClientRect();
25208
- viewEl.scrollTo({
25209
- left: list_getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
25210
- behavior: 'auto'
25211
- });
25212
- },
25213
- clickTrackYEvent: function clickTrackYEvent(evnt) {
25214
- var $xeList = this;
25215
- var reactData = $xeList.reactData;
25216
- var trackEl = evnt.currentTarget;
25217
- if (trackEl !== evnt.target) {
25218
- return;
25219
- }
25220
- var viewEl = $xeList.$refs.refVirtualWrapper;
25221
- if (!viewEl) {
25222
- return;
25223
- }
25224
- var yThumbHeight = reactData.yThumbHeight;
25225
- var trackRect = trackEl.getBoundingClientRect();
25226
- viewEl.scrollTo({
25227
- top: list_getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
25228
- behavior: 'auto'
25229
- });
25230
- },
25231
- pointerdownThumbXEvent: function pointerdownThumbXEvent(evnt) {
25232
- var $xeList = this;
25233
- var reactData = $xeList.reactData;
25234
- var internalData = $xeList.internalData;
25235
- var thumbEl = evnt.currentTarget;
25236
- internalData.isThumbDrag = true;
25237
- thumbEl.setPointerCapture(evnt.pointerId);
25238
- var viewEl = $xeList.$refs.refVirtualWrapper;
25239
- if (!viewEl) {
25240
- return;
25241
- }
25242
- var xThumbWidth = reactData.xThumbWidth;
25243
- var trackEl = thumbEl.parentElement;
25244
- var trackRect = trackEl.getBoundingClientRect();
25245
- var pointerPosition = evnt.clientX - trackRect.left;
25246
- // 记录 thumb 的偏移
25247
- var thumbOffset = list_getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
25248
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
25249
- },
25250
- pointermoveThumbXEvent: function pointermoveThumbXEvent(evnt) {
25251
- var $xeList = this;
25252
- var reactData = $xeList.reactData;
25253
- var internalData = $xeList.internalData;
25254
- var thumbEl = evnt.currentTarget;
25255
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
25256
- return;
25257
- }
25258
- var isThumbDrag = internalData.isThumbDrag,
25259
- thumbDragOffset = internalData.thumbDragOffset;
25260
- if (isThumbDrag) {
25261
- var viewEl = $xeList.$refs.refVirtualWrapper;
25262
- if (!viewEl) {
25263
- return;
25264
- }
25265
- var xThumbWidth = reactData.xThumbWidth;
25266
- var _thumbEl = evnt.currentTarget;
25267
- var trackEl = _thumbEl.parentElement;
25268
- var trackRect = trackEl.getBoundingClientRect();
25269
- // 更新偏移
25270
- viewEl.scrollLeft = list_getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
25271
- }
25272
- },
25273
- cleatPointerThumbEvent: function cleatPointerThumbEvent(evnt) {
25274
- var $xeList = this;
25275
- var internalData = $xeList.internalData;
25276
- var thumbEl = evnt.currentTarget;
25277
- thumbEl.releasePointerCapture(evnt.pointerId);
25278
- internalData.isThumbDrag = false;
25279
- },
25280
- pointerdownThumbYEvent: function pointerdownThumbYEvent(evnt) {
25281
- var $xeList = this;
25282
- var reactData = $xeList.reactData;
25283
- var internalData = $xeList.internalData;
25284
- var thumbEl = evnt.currentTarget;
25285
- internalData.isThumbDrag = true;
25286
- thumbEl.setPointerCapture(evnt.pointerId);
25287
- var viewEl = $xeList.$refs.refVirtualWrapper;
25288
- if (!viewEl) {
25289
- return;
25290
- }
25291
- var yThumbHeight = reactData.yThumbHeight;
25292
- var trackEl = thumbEl.parentElement;
25293
- var trackRect = trackEl.getBoundingClientRect();
25294
- var pointerPosition = evnt.clientY - trackRect.top;
25295
- // 记录 thumb 的偏移
25296
- var thumbOffset = list_getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
25297
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
25298
- },
25299
- pointermoveThumbYEvent: function pointermoveThumbYEvent(evnt) {
25219
+ bindScrollbarResize: function bindScrollbarResize() {
25300
25220
  var $xeList = this;
25301
- var reactData = $xeList.reactData;
25302
25221
  var internalData = $xeList.internalData;
25303
- var thumbEl = evnt.currentTarget;
25304
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
25305
- return;
25306
- }
25307
- var isThumbDrag = internalData.isThumbDrag,
25308
- thumbDragOffset = internalData.thumbDragOffset;
25309
- if (isThumbDrag) {
25310
- var viewEl = $xeList.$refs.refVirtualWrapper;
25311
- if (!viewEl) {
25312
- return;
25222
+ var scrollObserver = internalData.scrollObserver;
25223
+ var isVScrollbar = $xeList.computeIsVScrollbar;
25224
+ if (isVScrollbar) {
25225
+ if (!scrollObserver) {
25226
+ var el = $xeList.$refs.refElem;
25227
+ var viewInnerEl = $xeList.$refs.refVirtualSpaceElem;
25228
+ var _scrollObserver = list_globalResize.create(function () {
25229
+ $xeList.reScrollFlag++;
25230
+ });
25231
+ if (el) {
25232
+ _scrollObserver.observe(el);
25233
+ }
25234
+ if (viewInnerEl) {
25235
+ _scrollObserver.observe(viewInnerEl);
25236
+ }
25237
+ internalData.scrollObserver = _scrollObserver;
25313
25238
  }
25314
- var yThumbHeight = reactData.yThumbHeight;
25315
- var _thumbEl2 = evnt.currentTarget;
25316
- var trackEl = _thumbEl2.parentElement;
25317
- var trackRect = trackEl.getBoundingClientRect();
25318
- // 更新偏移
25319
- viewEl.scrollTop = list_getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
25320
25239
  }
25321
25240
  },
25322
25241
  //
@@ -25555,8 +25474,7 @@ function list_createInternalData() {
25555
25474
  var slots = $xeList.$scopedSlots;
25556
25475
  var showCheckbox = props.showCheckbox,
25557
25476
  className = props.className,
25558
- loading = props.loading,
25559
- useScrollbar = props.useScrollbar;
25477
+ loading = props.loading;
25560
25478
  var bodyHeight = reactData.bodyHeight,
25561
25479
  topSpaceHeight = reactData.topSpaceHeight,
25562
25480
  rowList = reactData.rowList,
@@ -25568,6 +25486,7 @@ function list_createInternalData() {
25568
25486
  var headerSlot = slots.header;
25569
25487
  var footerSlot = slots.footer;
25570
25488
  var vSize = $xeList.computeSize;
25489
+ var isVScrollbar = $xeList.computeIsVScrollbar;
25571
25490
  var wrapperStyles = $xeList.computeWrapperStyles;
25572
25491
  var virtualStyles = $xeList.computeVirtualStyles;
25573
25492
  var radioOpts = $xeList.computeRadioOpts;
@@ -25594,9 +25513,9 @@ function list_createInternalData() {
25594
25513
  }
25595
25514
  return h('div', {
25596
25515
  ref: 'refElem',
25597
- class: ['vxe-list', useScrollbar ? "ov-x--".concat(scrollXVisible === false ? 'hidden' : 'visible') : '', useScrollbar ? "ov-y--".concat(scrollYVisible === false ? 'hidden' : 'visible') : '', useScrollbar ? "sx-pos--".concat(scrollbarXToTop ? 'top' : 'bottom') : '', useScrollbar ? "sy-pos--".concat(scrollbarYToLeft ? 'left' : 'right') : '', className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className({
25516
+ class: ['vxe-list', isVScrollbar ? "ov-x--".concat(scrollXVisible === false ? 'hidden' : 'visible') : '', isVScrollbar ? "ov-y--".concat(scrollYVisible === false ? 'hidden' : 'visible') : '', isVScrollbar ? "sx-pos--".concat(scrollbarXToTop ? 'top' : 'bottom') : '', isVScrollbar ? "sy-pos--".concat(scrollbarYToLeft ? 'left' : 'right') : '', className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className({
25598
25517
  $list: $xeList
25599
- }) : className : '', _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--virtual-scrollbar', useScrollbar), 'ov-padding', useScrollbar && scrollbarOpts.padding), 'ov-x--auto-hide', useScrollbar && scrollXAutoHide), 'ov-y--auto-hide', useScrollbar && scrollYAutoHide), 'overflow-y', yThumbHeight), 'overflow-x', xThumbWidth), 'is--drag', isDrag), 'is--loading', loading)],
25518
+ }) : className : '', _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--virtual-scrollbar', isVScrollbar), 'ov-padding', isVScrollbar && scrollbarOpts.padding), 'ov-x--auto-hide', isVScrollbar && scrollXAutoHide), 'ov-y--auto-hide', isVScrollbar && scrollYAutoHide), 'overflow-y', yThumbHeight), 'overflow-x', xThumbWidth), 'is--drag', isDrag), 'is--loading', loading)],
25600
25519
  on: leOns,
25601
25520
  style: wrapperStyles
25602
25521
  }, [headerSlot || showDefChekboxHead ? h('div', {
@@ -25627,6 +25546,7 @@ function list_createInternalData() {
25627
25546
  scroll: $xeList.scrollEvent
25628
25547
  }
25629
25548
  }, [h('div', {
25549
+ ref: 'refVirtualSpaceElem',
25630
25550
  class: 'vxe-list--y-space',
25631
25551
  style: {
25632
25552
  height: bodyHeight ? "".concat(bodyHeight, "px") : ''
@@ -25658,7 +25578,7 @@ function list_createInternalData() {
25658
25578
  /**
25659
25579
  * 滚动条
25660
25580
  */
25661
- useScrollbar ? h('div', {
25581
+ isVScrollbar ? h('div', {
25662
25582
  class: scrollbarWrapperClss
25663
25583
  }, [scrollXVisible === false ? renderEmptyElement($xeList) : h('div', {
25664
25584
  ref: 'refTrackXElem',
@@ -25716,50 +25636,61 @@ function list_createInternalData() {
25716
25636
  },
25717
25637
  height: function height() {
25718
25638
  var $xeList = this;
25719
- $xeList.reFlag++;
25639
+ $xeList.reLayoutFlag++;
25720
25640
  },
25721
25641
  maxHeight: function maxHeight() {
25722
25642
  var $xeList = this;
25723
- $xeList.reFlag++;
25643
+ $xeList.reLayoutFlag++;
25724
25644
  },
25725
25645
  syncResize: function syncResize() {
25726
25646
  var $xeList = this;
25727
- $xeList.reFlag++;
25647
+ $xeList.reLayoutFlag++;
25728
25648
  },
25729
- useScrollbar: function useScrollbar() {
25649
+ computeIsVScrollbar: function computeIsVScrollbar() {
25730
25650
  var $xeList = this;
25731
- $xeList.reFlag++;
25651
+ $xeList.$nextTick(function () {
25652
+ $xeList.bindScrollbarResize();
25653
+ $xeList.$nextTick(function () {
25654
+ $xeList.reLayoutFlag++;
25655
+ });
25656
+ });
25732
25657
  },
25733
25658
  computeRowHeight: function computeRowHeight() {
25734
25659
  var $xeList = this;
25735
- $xeList.reFlag++;
25660
+ $xeList.reLayoutFlag++;
25736
25661
  },
25737
25662
  computeScrollYWidth: function computeScrollYWidth() {
25738
25663
  var $xeList = this;
25739
- $xeList.reFlag++;
25664
+ $xeList.reLayoutFlag++;
25740
25665
  },
25741
25666
  computeScrollXHeight: function computeScrollXHeight() {
25742
25667
  var $xeList = this;
25743
- $xeList.reFlag++;
25668
+ $xeList.reLayoutFlag++;
25744
25669
  },
25745
25670
  computeScrollXVisible: function computeScrollXVisible() {
25746
25671
  var $xeList = this;
25747
25672
  $xeList.$nextTick(function () {
25748
- $xeList.reFlag++;
25673
+ $xeList.reLayoutFlag++;
25749
25674
  });
25750
25675
  },
25751
25676
  computeScrollYVisible: function computeScrollYVisible() {
25752
25677
  var $xeList = this;
25753
25678
  $xeList.$nextTick(function () {
25754
- $xeList.reFlag++;
25679
+ $xeList.reLayoutFlag++;
25755
25680
  });
25756
25681
  },
25757
- reFlag: function reFlag() {
25682
+ reLayoutFlag: function reLayoutFlag() {
25758
25683
  var $xeList = this;
25759
25684
  $xeList.recalculate().then(function () {
25760
25685
  $xeList.recalculate();
25761
25686
  });
25762
25687
  },
25688
+ reScrollFlag: function reScrollFlag() {
25689
+ var $xeList = this;
25690
+ $xeList.updateScrollbar().then(function () {
25691
+ $xeList.updateScrollbar();
25692
+ });
25693
+ },
25763
25694
  checkRowKey: function checkRowKey() {
25764
25695
  var $xeList = this;
25765
25696
  $xeList.updateRadioModeValue();
@@ -25783,8 +25714,7 @@ function list_createInternalData() {
25783
25714
  var showSeq = props.showSeq,
25784
25715
  showRadio = props.showRadio,
25785
25716
  showCheckbox = props.showCheckbox,
25786
- autoResize = props.autoResize,
25787
- useScrollbar = props.useScrollbar;
25717
+ autoResize = props.autoResize;
25788
25718
  var rowOpts = $xeList.computeRowOpts;
25789
25719
  var useKey = rowOpts.useKey,
25790
25720
  keyField = rowOpts.keyField;
@@ -25806,25 +25736,12 @@ function list_createInternalData() {
25806
25736
  if (useKey && !keyField) {
25807
25737
  list_errLog('vxe.error.reqSupportProp', ['row-config.useKey', 'row-config.keyField']);
25808
25738
  }
25809
- var el = $xeList.$refs.refElem;
25810
- if (useScrollbar) {
25811
- var viewInnerEl = $xeList.$refs.refVirtualBody;
25812
- var scrollObserver = list_globalResize.create(function () {
25813
- $xeList.reFlag++;
25814
- });
25815
- if (el) {
25816
- scrollObserver.observe(el);
25817
- }
25818
- if (viewInnerEl) {
25819
- scrollObserver.observe(viewInnerEl);
25820
- }
25821
- internalData.scrollObserver = scrollObserver;
25822
- }
25823
25739
  if (autoResize) {
25740
+ var el = $xeList.$refs.refElem;
25824
25741
  var parentEl = $xeList.getParentElem();
25825
25742
  var resizeObserver = list_globalResize.create(function () {
25826
25743
  if (props.autoResize) {
25827
- $xeList.reFlag++;
25744
+ $xeList.reLayoutFlag++;
25828
25745
  }
25829
25746
  });
25830
25747
  if (el) {
@@ -25835,9 +25752,10 @@ function list_createInternalData() {
25835
25752
  }
25836
25753
  internalData.resizeObserver = resizeObserver;
25837
25754
  }
25838
- $xeList.reFlag++;
25755
+ $xeList.reLayoutFlag++;
25756
+ $xeList.bindScrollbarResize();
25839
25757
  list_globalEvents.on($xeList, 'resize', function () {
25840
- $xeList.reFlag++;
25758
+ $xeList.reLayoutFlag++;
25841
25759
  });
25842
25760
  },
25843
25761
  activated: function activated() {
@@ -37219,6 +37137,7 @@ var es_array_sort = __webpack_require__(6910);
37219
37137
 
37220
37138
 
37221
37139
 
37140
+
37222
37141
 
37223
37142
 
37224
37143
  var date_panel_createComponentLog = createComponentLog('date-panel'),
@@ -39200,52 +39119,82 @@ var date_panel_createComponentLog = createComponentLog('date-panel'),
39200
39119
  }, dateTimeLabel)]), h('div', {
39201
39120
  ref: 'refInputTimeBody',
39202
39121
  class: 'vxe-date-panel--time-body'
39203
- }, [h('ul', {
39204
- class: 'vxe-date-panel--time-hour-list'
39205
- }, hourList.map(function (item, index) {
39206
- return h('li', {
39207
- key: index,
39208
- class: {
39209
- 'is--disabled': item.disabled,
39210
- 'is--selected': datetimePanelValue && datetimePanelValue.getHours() === item.value
39211
- },
39212
- on: {
39213
- click: function click(evnt) {
39214
- return $xeDatePanel.dateHourEvent(evnt, item);
39215
- }
39122
+ }, [h(packages_scrollbar, {
39123
+ class: 'vxe-date-panel--time-hour-list',
39124
+ props: {
39125
+ autoHide: true,
39126
+ viewClassName: 'vxe-date-panel--time-list-view',
39127
+ viewInnerClassName: 'vxe-date-panel--time-list-inner'
39128
+ },
39129
+ scopedSlots: {
39130
+ default: function _default() {
39131
+ return hourList.map(function (item, index) {
39132
+ return h('div', {
39133
+ key: index,
39134
+ class: ['vxe-date-panel--time-item', {
39135
+ 'is--disabled': item.disabled,
39136
+ 'is--selected': datetimePanelValue && datetimePanelValue.getHours() === item.value
39137
+ }],
39138
+ on: {
39139
+ click: function click(evnt) {
39140
+ return $xeDatePanel.dateHourEvent(evnt, item);
39141
+ }
39142
+ }
39143
+ }, item.label);
39144
+ });
39216
39145
  }
39217
- }, item.label);
39218
- })), hasTimeMinute ? h('ul', {
39219
- class: 'vxe-date-panel--time-minute-list'
39220
- }, minuteList.map(function (item, index) {
39221
- return h('li', {
39222
- key: index,
39223
- class: {
39224
- 'is--disabled': item.disabled,
39225
- 'is--selected': datetimePanelValue && datetimePanelValue.getMinutes() === item.value
39226
- },
39227
- on: {
39228
- click: function click(evnt) {
39229
- return $xeDatePanel.dateMinuteEvent(evnt, item);
39230
- }
39146
+ }
39147
+ }), hasTimeMinute ? h(packages_scrollbar, {
39148
+ class: 'vxe-date-panel--time-minute-list',
39149
+ props: {
39150
+ autoHide: true,
39151
+ viewClassName: 'vxe-date-panel--time-list-view',
39152
+ viewInnerClassName: 'vxe-date-panel--time-list-inner'
39153
+ },
39154
+ scopedSlots: {
39155
+ default: function _default() {
39156
+ return minuteList.map(function (item, index) {
39157
+ return h('div', {
39158
+ key: index,
39159
+ class: ['vxe-date-panel--time-item', {
39160
+ 'is--disabled': item.disabled,
39161
+ 'is--selected': datetimePanelValue && datetimePanelValue.getMinutes() === item.value
39162
+ }],
39163
+ on: {
39164
+ click: function click(evnt) {
39165
+ return $xeDatePanel.dateMinuteEvent(evnt, item);
39166
+ }
39167
+ }
39168
+ }, item.label);
39169
+ });
39231
39170
  }
39232
- }, item.label);
39233
- })) : renderEmptyElement($xeDatePanel), hasTimeMinute && hasTimeSecond ? h('ul', {
39234
- class: 'vxe-date-panel--time-second-list'
39235
- }, secondList.map(function (item, index) {
39236
- return h('li', {
39237
- key: index,
39238
- class: {
39239
- 'is--disabled': item.disabled,
39240
- 'is--selected': datetimePanelValue && datetimePanelValue.getSeconds() === item.value
39241
- },
39242
- on: {
39243
- click: function click(evnt) {
39244
- return $xeDatePanel.dateSecondEvent(evnt, item);
39245
- }
39171
+ }
39172
+ }) : renderEmptyElement($xeDatePanel), hasTimeMinute && hasTimeSecond ? h(packages_scrollbar, {
39173
+ class: 'vxe-date-panel--time-second-list',
39174
+ props: {
39175
+ autoHide: true,
39176
+ viewClassName: 'vxe-date-panel--time-list-view',
39177
+ viewInnerClassName: 'vxe-date-panel--time-list-inner'
39178
+ },
39179
+ scopedSlots: {
39180
+ default: function _default() {
39181
+ return secondList.map(function (item, index) {
39182
+ return h('div', {
39183
+ key: index,
39184
+ class: ['vxe-date-panel--time-item', {
39185
+ 'is--disabled': item.disabled,
39186
+ 'is--selected': datetimePanelValue && datetimePanelValue.getSeconds() === item.value
39187
+ }],
39188
+ on: {
39189
+ click: function click(evnt) {
39190
+ return $xeDatePanel.dateSecondEvent(evnt, item);
39191
+ }
39192
+ }
39193
+ }, item.label);
39194
+ });
39246
39195
  }
39247
- }, item.label);
39248
- })) : renderEmptyElement($xeDatePanel)])];
39196
+ }
39197
+ }) : renderEmptyElement($xeDatePanel)])];
39249
39198
  },
39250
39199
  renderPickerPanel: function renderPickerPanel(h) {
39251
39200
  var $xeDatePanel = this;
@@ -43178,7 +43127,7 @@ var allActiveDrawers = [];
43178
43127
 
43179
43128
  /* harmony default export */ var drawer = (/* define-vxe-component start */defineVxeComponent({
43180
43129
  name: 'VxeDrawer',
43181
- mixins: [globalMixins.sizeMixin, globalMixins.permissionMixin],
43130
+ mixins: [globalMixins.sizeMixin, globalMixins.vScrollbarMixin, globalMixins.permissionMixin],
43182
43131
  props: {
43183
43132
  value: Boolean,
43184
43133
  id: String,
@@ -47282,6 +47231,17 @@ var FormItem = VxeFormItem;
47282
47231
 
47283
47232
 
47284
47233
 
47234
+ var icon_picker_getConfig = VxeUI.getConfig,
47235
+ icon_picker_getIcon = VxeUI.getIcon,
47236
+ icon_picker_getI18n = VxeUI.getI18n,
47237
+ icon_picker_baseUtils = VxeUI.baseUtils,
47238
+ icon_picker_globalEvents = VxeUI.globalEvents,
47239
+ icon_picker_createEvent = VxeUI.createEvent,
47240
+ icon_picker_renderer = VxeUI.renderer,
47241
+ icon_picker_globalMixins = VxeUI.globalMixins,
47242
+ icon_picker_GLOBAL_EVENT_KEYS = VxeUI.GLOBAL_EVENT_KEYS,
47243
+ icon_picker_renderEmptyElement = VxeUI.renderEmptyElement;
47244
+ var icon_picker_getDefVal = icon_picker_baseUtils.getDefVal;
47285
47245
  function icon_picker_createReactData() {
47286
47246
  return {
47287
47247
  initialized: false,
@@ -47304,7 +47264,7 @@ function icon_picker_createInternalData() {
47304
47264
  }
47305
47265
  /* harmony default export */ var icon_picker = (/* define-vxe-component start */defineVxeComponent({
47306
47266
  name: 'VxeIconPicker',
47307
- mixins: [globalMixins.sizeMixin],
47267
+ mixins: [icon_picker_globalMixins.sizeMixin, icon_picker_globalMixins.vScrollbarMixin],
47308
47268
  model: {
47309
47269
  prop: 'value',
47310
47270
  event: 'modelValue'
@@ -47316,7 +47276,7 @@ function icon_picker_createInternalData() {
47316
47276
  size: {
47317
47277
  type: String,
47318
47278
  default: function _default() {
47319
- return getConfig().iconPicker.size || getConfig().size;
47279
+ return icon_picker_getConfig().iconPicker.size || icon_picker_getConfig().size;
47320
47280
  }
47321
47281
  },
47322
47282
  className: [String, Function],
@@ -47329,7 +47289,7 @@ function icon_picker_createInternalData() {
47329
47289
  showIconTitle: {
47330
47290
  type: Boolean,
47331
47291
  default: function _default() {
47332
- return getConfig().iconPicker.showIconTitle;
47292
+ return icon_picker_getConfig().iconPicker.showIconTitle;
47333
47293
  }
47334
47294
  },
47335
47295
  readonly: {
@@ -47343,7 +47303,7 @@ function icon_picker_createInternalData() {
47343
47303
  filterable: {
47344
47304
  type: Boolean,
47345
47305
  default: function _default() {
47346
- return getConfig().iconPicker.filterable;
47306
+ return icon_picker_getConfig().iconPicker.filterable;
47347
47307
  }
47348
47308
  },
47349
47309
  filterConfig: Object,
@@ -47353,7 +47313,14 @@ function icon_picker_createInternalData() {
47353
47313
  transfer: {
47354
47314
  type: Boolean,
47355
47315
  default: null
47356
- }
47316
+ },
47317
+ useScrollbar: {
47318
+ type: Boolean,
47319
+ default: function _default() {
47320
+ return icon_picker_getDefVal(icon_picker_getConfig().iconPicker.useScrollbar, icon_picker_getConfig().useScrollbar);
47321
+ }
47322
+ },
47323
+ scrollbarConfig: Object
47357
47324
  },
47358
47325
  inject: {
47359
47326
  $xeModal: {
@@ -47426,7 +47393,7 @@ function icon_picker_createInternalData() {
47426
47393
  return popupOpts.transfer;
47427
47394
  }
47428
47395
  if (transfer === null) {
47429
- var globalTransfer = getConfig().iconPicker.transfer;
47396
+ var globalTransfer = icon_picker_getConfig().iconPicker.transfer;
47430
47397
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(globalTransfer)) {
47431
47398
  return globalTransfer;
47432
47399
  }
@@ -47443,11 +47410,11 @@ function icon_picker_createInternalData() {
47443
47410
  if (placeholder) {
47444
47411
  return getFuncText(placeholder);
47445
47412
  }
47446
- var globalPlaceholder = getConfig().select.placeholder;
47413
+ var globalPlaceholder = icon_picker_getConfig().select.placeholder;
47447
47414
  if (globalPlaceholder) {
47448
47415
  return getFuncText(globalPlaceholder);
47449
47416
  }
47450
- return getI18n('vxe.base.pleaseSelect');
47417
+ return icon_picker_getI18n('vxe.base.pleaseSelect');
47451
47418
  },
47452
47419
  computeCurrStyle: function computeCurrStyle() {
47453
47420
  var $xeIconPicker = this;
@@ -47482,7 +47449,7 @@ function icon_picker_createInternalData() {
47482
47449
  var props = $xeIconPicker;
47483
47450
  var icons = props.icons;
47484
47451
  if (!icons || !icons.length) {
47485
- icons = getConfig().iconPicker.icons || [];
47452
+ icons = icon_picker_getConfig().iconPicker.icons || [];
47486
47453
  }
47487
47454
  return icons.map(function (item) {
47488
47455
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(item)) {
@@ -47501,12 +47468,12 @@ function icon_picker_createInternalData() {
47501
47468
  computeFilterOpts: function computeFilterOpts() {
47502
47469
  var $xeIconPicker = this;
47503
47470
  var props = $xeIconPicker;
47504
- return Object.assign({}, getConfig().iconPicker.filterConfig, props.filterConfig);
47471
+ return Object.assign({}, icon_picker_getConfig().iconPicker.filterConfig, props.filterConfig);
47505
47472
  },
47506
47473
  computePopupOpts: function computePopupOpts() {
47507
47474
  var $xeIconPicker = this;
47508
47475
  var props = $xeIconPicker;
47509
- return Object.assign({}, getConfig().iconPicker.popupConfig, props.popupConfig);
47476
+ return Object.assign({}, icon_picker_getConfig().iconPicker.popupConfig, props.popupConfig);
47510
47477
  },
47511
47478
  computeIconGroupList: function computeIconGroupList() {
47512
47479
  var $xeIconPicker = this;
@@ -47529,7 +47496,7 @@ function icon_picker_createInternalData() {
47529
47496
  //
47530
47497
  dispatchEvent: function dispatchEvent(type, params, evnt) {
47531
47498
  var $xeIconPicker = this;
47532
- $xeIconPicker.$emit(type, createEvent(evnt, {
47499
+ $xeIconPicker.$emit(type, icon_picker_createEvent(evnt, {
47533
47500
  $iconPicker: $xeIconPicker
47534
47501
  }, params));
47535
47502
  },
@@ -47793,13 +47760,13 @@ function icon_picker_createInternalData() {
47793
47760
  var visiblePanel = reactData.visiblePanel;
47794
47761
  var isDisabled = $xeIconPicker.computeIsDisabled;
47795
47762
  if (!isDisabled) {
47796
- var isTab = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.TAB);
47797
- var isEnter = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ENTER);
47798
- var isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
47799
- var isUpArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP);
47800
- var isDwArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_DOWN);
47801
- var isDel = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.DELETE);
47802
- var isSpacebar = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.SPACEBAR);
47763
+ var isTab = icon_picker_globalEvents.hasKey(evnt, icon_picker_GLOBAL_EVENT_KEYS.TAB);
47764
+ var isEnter = icon_picker_globalEvents.hasKey(evnt, icon_picker_GLOBAL_EVENT_KEYS.ENTER);
47765
+ var isEsc = icon_picker_globalEvents.hasKey(evnt, icon_picker_GLOBAL_EVENT_KEYS.ESCAPE);
47766
+ var isUpArrow = icon_picker_globalEvents.hasKey(evnt, icon_picker_GLOBAL_EVENT_KEYS.ARROW_UP);
47767
+ var isDwArrow = icon_picker_globalEvents.hasKey(evnt, icon_picker_GLOBAL_EVENT_KEYS.ARROW_DOWN);
47768
+ var isDel = icon_picker_globalEvents.hasKey(evnt, icon_picker_GLOBAL_EVENT_KEYS.DELETE);
47769
+ var isSpacebar = icon_picker_globalEvents.hasKey(evnt, icon_picker_GLOBAL_EVENT_KEYS.SPACEBAR);
47803
47770
  if (isTab) {
47804
47771
  reactData.isActivated = false;
47805
47772
  }
@@ -47905,7 +47872,7 @@ function icon_picker_createInternalData() {
47905
47872
  if (!iconList.length) {
47906
47873
  return h('div', {
47907
47874
  class: 'vxe-ico-picker--empty-placeholder'
47908
- }, getI18n('vxe.iconPicker.emptyText'));
47875
+ }, icon_picker_getI18n('vxe.iconPicker.emptyText'));
47909
47876
  }
47910
47877
  return h('div', {
47911
47878
  class: 'vxe-ico-picker--list-wrapper'
@@ -47913,7 +47880,7 @@ function icon_picker_createInternalData() {
47913
47880
  class: 'vxe-ico-picker--list'
47914
47881
  }, iconList.map(function (item) {
47915
47882
  var iconRender = item.iconRender;
47916
- var compConf = iconRender ? renderer.get(iconRender.name) : null;
47883
+ var compConf = iconRender ? icon_picker_renderer.get(iconRender.name) : null;
47917
47884
  var iconMethod = compConf ? compConf.renderIconPickerOptionIcon : null;
47918
47885
  return h('div', {
47919
47886
  class: ['vxe-ico-picker--item', {
@@ -47938,7 +47905,7 @@ function icon_picker_createInternalData() {
47938
47905
  class: item.icon || ''
47939
47906
  })]), showIconTitle ? h('div', {
47940
47907
  class: 'vxe-ico-picker--item-title'
47941
- }, "".concat(item.title || '')) : renderEmptyElement($xeIconPicker)])]);
47908
+ }, "".concat(item.title || '')) : icon_picker_renderEmptyElement($xeIconPicker)])]);
47942
47909
  }))]);
47943
47910
  },
47944
47911
  renderIconView: function renderIconView(h) {
@@ -47948,7 +47915,7 @@ function icon_picker_createInternalData() {
47948
47915
  var selectIconItem = $xeIconPicker.computeSelectIconItem;
47949
47916
  if (selectIconItem) {
47950
47917
  var iconRender = selectIconItem.iconRender;
47951
- var compConf = iconRender ? renderer.get(iconRender.name) : null;
47918
+ var compConf = iconRender ? icon_picker_renderer.get(iconRender.name) : null;
47952
47919
  var oIconMethod = compConf ? compConf.renderIconPickerOptionIcon : null;
47953
47920
  if (oIconMethod && iconRender) {
47954
47921
  return h('div', {
@@ -48024,11 +47991,11 @@ function icon_picker_createInternalData() {
48024
47991
  click: $xeIconPicker.clearEvent
48025
47992
  }
48026
47993
  }, [h('i', {
48027
- class: getIcon().INPUT_CLEAR
47994
+ class: icon_picker_getIcon().INPUT_CLEAR
48028
47995
  })]), h('div', {
48029
47996
  class: 'vxe-ico-picker--suffix-icon'
48030
47997
  }, [h('i', {
48031
- class: visiblePanel ? getIcon().ICON_PICKER_OPEN : getIcon().ICON_PICKER_CLOSE
47998
+ class: visiblePanel ? icon_picker_getIcon().ICON_PICKER_OPEN : icon_picker_getIcon().ICON_PICKER_CLOSE
48032
47999
  })])])]), h('div', {
48033
48000
  ref: 'refOptionPanel',
48034
48001
  class: ['vxe-table--ignore-clear vxe-ico-picker--panel', ppClassName ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(ppClassName) ? ppClassName({
@@ -48052,8 +48019,8 @@ function icon_picker_createInternalData() {
48052
48019
  clearable: true,
48053
48020
  disabled: false,
48054
48021
  readonly: false,
48055
- placeholder: getI18n('vxe.iconPicker.search'),
48056
- prefixIcon: getIcon().INPUT_SEARCH
48022
+ placeholder: icon_picker_getI18n('vxe.iconPicker.search'),
48023
+ prefixIcon: icon_picker_getIcon().INPUT_SEARCH
48057
48024
  },
48058
48025
  on: {
48059
48026
  'model-value': $xeIconPicker.modelSearchEvent,
@@ -48061,7 +48028,7 @@ function icon_picker_createInternalData() {
48061
48028
  change: $xeIconPicker.triggerSearchEvent,
48062
48029
  search: $xeIconPicker.triggerSearchEvent
48063
48030
  }
48064
- })]) : renderEmptyElement($xeIconPicker), $xeIconPicker.renderIconWrapper(h)]) : renderEmptyElement($xeIconPicker)])]);
48031
+ })]) : icon_picker_renderEmptyElement($xeIconPicker), $xeIconPicker.renderIconWrapper(h)]) : icon_picker_renderEmptyElement($xeIconPicker)])]);
48065
48032
  }
48066
48033
  },
48067
48034
  watch: {
@@ -48082,11 +48049,11 @@ function icon_picker_createInternalData() {
48082
48049
  $xeIconPicker.internalData = icon_picker_createInternalData();
48083
48050
  reactData.selectIcon = "".concat(props.value || '');
48084
48051
  $xeIconPicker.handleData();
48085
- globalEvents.on($xeIconPicker, 'mousedown', $xeIconPicker.handleGlobalMousedownEvent);
48086
- globalEvents.on($xeIconPicker, 'keydown', $xeIconPicker.handleGlobalKeydownEvent);
48087
- globalEvents.on($xeIconPicker, 'blur', $xeIconPicker.handleGlobalBlurEvent);
48088
- globalEvents.on($xeIconPicker, 'resize', $xeIconPicker.handleGlobalResizeEvent);
48089
- globalEvents.on($xeIconPicker, 'scroll', $xeIconPicker.handleGlobalScrollEvent);
48052
+ icon_picker_globalEvents.on($xeIconPicker, 'mousedown', $xeIconPicker.handleGlobalMousedownEvent);
48053
+ icon_picker_globalEvents.on($xeIconPicker, 'keydown', $xeIconPicker.handleGlobalKeydownEvent);
48054
+ icon_picker_globalEvents.on($xeIconPicker, 'blur', $xeIconPicker.handleGlobalBlurEvent);
48055
+ icon_picker_globalEvents.on($xeIconPicker, 'resize', $xeIconPicker.handleGlobalResizeEvent);
48056
+ icon_picker_globalEvents.on($xeIconPicker, 'scroll', $xeIconPicker.handleGlobalScrollEvent);
48090
48057
  },
48091
48058
  beforeDestroy: function beforeDestroy() {
48092
48059
  var $xeIconPicker = this;
@@ -48096,11 +48063,11 @@ function icon_picker_createInternalData() {
48096
48063
  if (panelElem && panelElem.parentNode) {
48097
48064
  panelElem.parentNode.removeChild(panelElem);
48098
48065
  }
48099
- globalEvents.off($xeIconPicker, 'mousedown');
48100
- globalEvents.off($xeIconPicker, 'keydown');
48101
- globalEvents.off($xeIconPicker, 'blur');
48102
- globalEvents.off($xeIconPicker, 'resize');
48103
- globalEvents.off($xeIconPicker, 'scroll');
48066
+ icon_picker_globalEvents.off($xeIconPicker, 'mousedown');
48067
+ icon_picker_globalEvents.off($xeIconPicker, 'keydown');
48068
+ icon_picker_globalEvents.off($xeIconPicker, 'blur');
48069
+ icon_picker_globalEvents.off($xeIconPicker, 'resize');
48070
+ icon_picker_globalEvents.off($xeIconPicker, 'scroll');
48104
48071
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(reactData, icon_picker_createReactData());
48105
48072
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, icon_picker_createInternalData());
48106
48073
  },
@@ -49420,7 +49387,7 @@ var ImagePreview = VxeImagePreview;
49420
49387
 
49421
49388
  /* harmony default export */ var layout_aside = (/* define-vxe-component start */defineVxeComponent({
49422
49389
  name: 'VxeLayoutAside',
49423
- mixins: [globalMixins.sizeMixin],
49390
+ mixins: [globalMixins.sizeMixin, globalMixins.vScrollbarMixin],
49424
49391
  props: {
49425
49392
  width: [String, Number],
49426
49393
  collapsed: Boolean,
@@ -49586,7 +49553,7 @@ function layout_body_createReactData() {
49586
49553
  }
49587
49554
  /* harmony default export */ var layout_body = (/* define-vxe-component start */defineVxeComponent({
49588
49555
  name: 'VxeLayoutBody',
49589
- mixins: [globalMixins.sizeMixin],
49556
+ mixins: [globalMixins.sizeMixin, globalMixins.vScrollbarMixin],
49590
49557
  props: {
49591
49558
  loading: Boolean,
49592
49559
  padding: Boolean,
@@ -49768,15 +49735,25 @@ var LayoutBody = VxeLayoutBody;
49768
49735
 
49769
49736
 
49770
49737
 
49738
+ var layout_container_getConfig = VxeUI.getConfig,
49739
+ layout_container_baseUtils = VxeUI.baseUtils,
49740
+ layout_container_createEvent = VxeUI.createEvent;
49741
+ var layout_container_getDefVal = layout_container_baseUtils.getDefVal;
49771
49742
  /* harmony default export */ var layout_container = (/* define-vxe-component start */defineVxeComponent({
49772
49743
  name: 'VxeLayoutContainer',
49773
- mixins: [globalMixins.sizeMixin],
49744
+ mixins: [globalMixins.sizeMixin, globalMixins.vScrollbarMixin],
49774
49745
  props: {
49775
49746
  vertical: Boolean,
49747
+ useScrollbar: {
49748
+ type: Boolean,
49749
+ default: function _default() {
49750
+ return layout_container_getDefVal(layout_container_getConfig().layoutContainer.useScrollbar, layout_container_getConfig().useScrollbar);
49751
+ }
49752
+ },
49776
49753
  size: {
49777
49754
  type: String,
49778
49755
  default: function _default() {
49779
- return getConfig().layoutContainer.size || getConfig().size;
49756
+ return layout_container_getConfig().layoutContainer.size || layout_container_getConfig().size;
49780
49757
  }
49781
49758
  }
49782
49759
  },
@@ -49795,7 +49772,7 @@ var LayoutBody = VxeLayoutBody;
49795
49772
  //
49796
49773
  dispatchEvent: function dispatchEvent(type, params, evnt) {
49797
49774
  var $xeLayoutContainer = this;
49798
- $xeLayoutContainer.$emit(type, createEvent(evnt, {
49775
+ $xeLayoutContainer.$emit(type, layout_container_createEvent(evnt, {
49799
49776
  $layoutContainer: $xeLayoutContainer
49800
49777
  }, params));
49801
49778
  },
@@ -50161,7 +50138,7 @@ function menu_createReactData() {
50161
50138
  var nemuUniqueKey = 100000000;
50162
50139
  /* harmony default export */ var menu = (/* define-vxe-component start */defineVxeComponent({
50163
50140
  name: 'VxeMenu',
50164
- mixins: [globalMixins.sizeMixin, globalMixins.permissionMixin],
50141
+ mixins: [globalMixins.sizeMixin, globalMixins.vScrollbarMixin, globalMixins.permissionMixin],
50165
50142
  props: {
50166
50143
  value: [String, Number],
50167
50144
  expandAll: Boolean,
@@ -51119,7 +51096,7 @@ var lockScrollAttrKey = 'data-vxe-lock-scroll';
51119
51096
  var lockScrollCssWidthKey = '--vxe-ui-modal-lock-scroll-view-width';
51120
51097
  /* harmony default export */ var modal = (/* define-vxe-component start */defineVxeComponent({
51121
51098
  name: 'VxeModal',
51122
- mixins: [globalMixins.sizeMixin, globalMixins.permissionMixin],
51099
+ mixins: [globalMixins.sizeMixin, globalMixins.vScrollbarMixin, globalMixins.permissionMixin],
51123
51100
  props: {
51124
51101
  value: Boolean,
51125
51102
  id: String,
@@ -53637,6 +53614,17 @@ var Option = VxeOption;
53637
53614
 
53638
53615
 
53639
53616
 
53617
+ var select_getConfig = VxeUI.getConfig,
53618
+ select_getIcon = VxeUI.getIcon,
53619
+ select_getI18n = VxeUI.getI18n,
53620
+ select_baseUtils = VxeUI.baseUtils,
53621
+ select_domUtils = VxeUI.domUtils,
53622
+ select_globalEvents = VxeUI.globalEvents,
53623
+ select_GLOBAL_EVENT_KEYS = VxeUI.GLOBAL_EVENT_KEYS,
53624
+ select_globalResize = VxeUI.globalResize,
53625
+ select_createEvent = VxeUI.createEvent,
53626
+ select_renderEmptyElement = VxeUI.renderEmptyElement;
53627
+ var select_getDefVal = select_baseUtils.getDefVal;
53640
53628
  var select_createComponentLog = createComponentLog('select'),
53641
53629
  select_errLog = select_createComponentLog.errLog;
53642
53630
  function isOptionVisible(option) {
@@ -53657,6 +53645,9 @@ function select_createReactData() {
53657
53645
  currentOption: null,
53658
53646
  searchValue: '',
53659
53647
  searchLoading: false,
53648
+ // 滚动条
53649
+ yThumbHeight: 0,
53650
+ xThumbWidth: 0,
53660
53651
  panelIndex: 0,
53661
53652
  panelStyle: {},
53662
53653
  panelPlacement: null,
@@ -53676,8 +53667,14 @@ function select_createInternalData() {
53676
53667
  optGroupKeyMaps: {},
53677
53668
  optFullValMaps: {},
53678
53669
  remoteValMaps: {},
53679
- lastScrollLeft: 0,
53670
+ // 滚动条
53671
+ // scrollObserver: undefined,
53672
+ // isThumbDrag: false,
53673
+ thumbDragOffset: 0,
53674
+ yThumbTop: 0,
53675
+ xThumbLeft: 0,
53680
53676
  lastScrollTop: 0,
53677
+ lastScrollLeft: 0,
53681
53678
  scrollYStore: {
53682
53679
  startIndex: 0,
53683
53680
  endIndex: 0,
@@ -53691,7 +53688,7 @@ function select_createInternalData() {
53691
53688
  }
53692
53689
  /* harmony default export */ var src_select = (/* define-vxe-component start */defineVxeComponent({
53693
53690
  name: 'VxeSelect',
53694
- mixins: [globalMixins.sizeMixin],
53691
+ mixins: [globalMixins.sizeMixin, globalMixins.vScrollbarMixin, globalMixins.initVScrollbarMixin],
53695
53692
  model: {
53696
53693
  prop: 'value',
53697
53694
  event: 'modelValue'
@@ -53702,13 +53699,13 @@ function select_createInternalData() {
53702
53699
  emptyValue: {
53703
53700
  type: [String, Number, Boolean, Array],
53704
53701
  default: function _default() {
53705
- return getConfig().select.emptyValue;
53702
+ return select_getConfig().select.emptyValue;
53706
53703
  }
53707
53704
  },
53708
53705
  clearable: {
53709
53706
  type: Boolean,
53710
53707
  default: function _default() {
53711
- return getConfig().select.clearable;
53708
+ return select_getConfig().select.clearable;
53712
53709
  }
53713
53710
  },
53714
53711
  placeholder: String,
@@ -53725,14 +53722,14 @@ function select_createInternalData() {
53725
53722
  multiCharOverflow: {
53726
53723
  type: [Number, String],
53727
53724
  default: function _default() {
53728
- return getConfig().select.multiCharOverflow;
53725
+ return select_getConfig().select.multiCharOverflow;
53729
53726
  }
53730
53727
  },
53731
53728
  prefixIcon: String,
53732
53729
  allowCreate: {
53733
53730
  type: Boolean,
53734
53731
  default: function _default() {
53735
- return getConfig().select.allowCreate;
53732
+ return select_getConfig().select.allowCreate;
53736
53733
  }
53737
53734
  },
53738
53735
  placement: String,
@@ -53756,14 +53753,14 @@ function select_createInternalData() {
53756
53753
  showRadio: {
53757
53754
  type: Boolean,
53758
53755
  default: function _default() {
53759
- return getConfig().select.showRadio;
53756
+ return select_getConfig().select.showRadio;
53760
53757
  }
53761
53758
  },
53762
53759
  radioConfig: Object,
53763
53760
  showCheckbox: {
53764
53761
  type: Boolean,
53765
53762
  default: function _default() {
53766
- return getConfig().select.showCheckedButton;
53763
+ return select_getConfig().select.showCheckedButton;
53767
53764
  }
53768
53765
  },
53769
53766
  checkboxConfig: Object,
@@ -53775,7 +53772,7 @@ function select_createInternalData() {
53775
53772
  size: {
53776
53773
  type: String,
53777
53774
  default: function _default() {
53778
- return getConfig().select.size || getConfig().size;
53775
+ return select_getConfig().select.size || select_getConfig().size;
53779
53776
  }
53780
53777
  },
53781
53778
  filterable: Boolean,
@@ -53791,37 +53788,37 @@ function select_createInternalData() {
53791
53788
  checkedClosable: {
53792
53789
  type: Boolean,
53793
53790
  default: function _default() {
53794
- return getConfig().select.checkedClosable;
53791
+ return select_getConfig().select.checkedClosable;
53795
53792
  }
53796
53793
  },
53797
53794
  clearClosable: {
53798
53795
  type: Boolean,
53799
53796
  default: function _default() {
53800
- return getConfig().select.clearClosable;
53797
+ return select_getConfig().select.clearClosable;
53801
53798
  }
53802
53799
  },
53803
53800
  showCloseButton: {
53804
53801
  type: Boolean,
53805
53802
  default: function _default() {
53806
- return getConfig().select.showCloseButton;
53803
+ return select_getConfig().select.showCloseButton;
53807
53804
  }
53808
53805
  },
53809
53806
  showTotalButton: {
53810
53807
  type: Boolean,
53811
53808
  default: function _default() {
53812
- return getConfig().select.showTotalButton;
53809
+ return select_getConfig().select.showTotalButton;
53813
53810
  }
53814
53811
  },
53815
53812
  showCheckedButton: {
53816
53813
  type: Boolean,
53817
53814
  default: function _default() {
53818
- return getConfig().select.showCheckedButton;
53815
+ return select_getConfig().select.showCheckedButton;
53819
53816
  }
53820
53817
  },
53821
53818
  showClearButton: {
53822
53819
  type: Boolean,
53823
53820
  default: function _default() {
53824
- return getConfig().select.showClearButton;
53821
+ return select_getConfig().select.showClearButton;
53825
53822
  }
53826
53823
  },
53827
53824
  transfer: {
@@ -53831,6 +53828,13 @@ function select_createInternalData() {
53831
53828
  popupConfig: Object,
53832
53829
  virtualYConfig: Object,
53833
53830
  scrollY: Object,
53831
+ useScrollbar: {
53832
+ type: Boolean,
53833
+ default: function _default() {
53834
+ return select_getDefVal(select_getConfig().select.useScrollbar, select_getConfig().useScrollbar);
53835
+ }
53836
+ },
53837
+ scrollbarConfig: Object,
53834
53838
  /**
53835
53839
  * 已废弃,被 remote-config.queryMethod 替换
53836
53840
  * @deprecated
@@ -53843,7 +53847,7 @@ function select_createInternalData() {
53843
53847
  optionId: {
53844
53848
  type: String,
53845
53849
  default: function _default() {
53846
- return getConfig().select.optionId;
53850
+ return select_getConfig().select.optionId;
53847
53851
  }
53848
53852
  },
53849
53853
  /**
@@ -53881,7 +53885,9 @@ function select_createInternalData() {
53881
53885
  var reactData = select_createReactData();
53882
53886
  return _objectSpread2(_objectSpread2({}, {}), {}, {
53883
53887
  xID: xID,
53884
- reactData: reactData
53888
+ reactData: reactData,
53889
+ reLayoutFlag: 0,
53890
+ reScrollFlag: 0
53885
53891
  });
53886
53892
  },
53887
53893
  computed: _objectSpread2(_objectSpread2({}, {}), {}, {
@@ -53925,7 +53931,7 @@ function select_createInternalData() {
53925
53931
  return popupOpts.transfer;
53926
53932
  }
53927
53933
  if (transfer === null) {
53928
- var globalTransfer = getConfig().select.transfer;
53934
+ var globalTransfer = select_getConfig().select.transfer;
53929
53935
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(globalTransfer)) {
53930
53936
  return globalTransfer;
53931
53937
  }
@@ -53942,11 +53948,11 @@ function select_createInternalData() {
53942
53948
  if (placeholder) {
53943
53949
  return getFuncText(placeholder);
53944
53950
  }
53945
- var globalPlaceholder = getConfig().select.placeholder;
53951
+ var globalPlaceholder = select_getConfig().select.placeholder;
53946
53952
  if (globalPlaceholder) {
53947
53953
  return getFuncText(globalPlaceholder);
53948
53954
  }
53949
- return getI18n('vxe.base.pleaseSelect');
53955
+ return select_getI18n('vxe.base.pleaseSelect');
53950
53956
  },
53951
53957
  computeDefaultOpts: function computeDefaultOpts() {
53952
53958
  var $xeSelect = this;
@@ -53991,37 +53997,37 @@ function select_createInternalData() {
53991
53997
  computePopupOpts: function computePopupOpts() {
53992
53998
  var $xeSelect = this;
53993
53999
  var props = $xeSelect;
53994
- return Object.assign({}, getConfig().select.popupConfig, props.popupConfig);
54000
+ return Object.assign({}, select_getConfig().select.popupConfig, props.popupConfig);
53995
54001
  },
53996
54002
  computeVirtualYOpts: function computeVirtualYOpts() {
53997
54003
  var $xeSelect = this;
53998
54004
  var props = $xeSelect;
53999
- return Object.assign({}, getConfig().select.virtualYConfig || getConfig().select.scrollY, props.virtualYConfig || props.scrollY);
54005
+ return Object.assign({}, select_getConfig().select.virtualYConfig || select_getConfig().select.scrollY, props.virtualYConfig || props.scrollY);
54000
54006
  },
54001
54007
  computeRemoteOpts: function computeRemoteOpts() {
54002
54008
  var $xeSelect = this;
54003
54009
  var props = $xeSelect;
54004
- return Object.assign({}, getConfig().select.remoteConfig, props.remoteConfig);
54010
+ return Object.assign({}, select_getConfig().select.remoteConfig, props.remoteConfig);
54005
54011
  },
54006
54012
  computeFilterOpts: function computeFilterOpts() {
54007
54013
  var $xeSelect = this;
54008
54014
  var props = $xeSelect;
54009
- return Object.assign({}, getConfig().select.filterConfig, props.filterConfig);
54015
+ return Object.assign({}, select_getConfig().select.filterConfig, props.filterConfig);
54010
54016
  },
54011
54017
  computeOptionOpts: function computeOptionOpts() {
54012
54018
  var $xeSelect = this;
54013
54019
  var props = $xeSelect;
54014
- return Object.assign({}, getConfig().select.optionConfig, props.optionConfig);
54020
+ return Object.assign({}, select_getConfig().select.optionConfig, props.optionConfig);
54015
54021
  },
54016
54022
  computeRadioOpts: function computeRadioOpts() {
54017
54023
  var $xeSelect = this;
54018
54024
  var props = $xeSelect;
54019
- return Object.assign({}, getConfig().select.radioConfig, props.radioConfig);
54025
+ return Object.assign({}, select_getConfig().select.radioConfig, props.radioConfig);
54020
54026
  },
54021
54027
  computeCheckboxOpts: function computeCheckboxOpts() {
54022
54028
  var $xeSelect = this;
54023
54029
  var props = $xeSelect;
54024
- return Object.assign({}, getConfig().select.checkboxConfig, props.checkboxConfig);
54030
+ return Object.assign({}, select_getConfig().select.checkboxConfig, props.checkboxConfig);
54025
54031
  },
54026
54032
  computeIsGroup: function computeIsGroup() {
54027
54033
  var $xeSelect = this;
@@ -54116,6 +54122,83 @@ function select_createInternalData() {
54116
54122
  return "".concat(labels.slice(0, multiMaxCharNum), "...");
54117
54123
  }
54118
54124
  return labels.join(', ');
54125
+ },
54126
+ computeScrollbarOpts: function computeScrollbarOpts() {
54127
+ var $xeSelect = this;
54128
+ var props = $xeSelect;
54129
+ return Object.assign({}, select_getConfig().tree.scrollbarConfig, props.scrollbarConfig);
54130
+ },
54131
+ computeScrollbarXOpts: function computeScrollbarXOpts() {
54132
+ var $xeSelect = this;
54133
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
54134
+ return Object.assign({}, select_getConfig().scrollbar.xConfig, scrollbarOpts.xConfig, {
54135
+ visible: false
54136
+ });
54137
+ },
54138
+ computeScrollbarYOpts: function computeScrollbarYOpts() {
54139
+ var $xeSelect = this;
54140
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
54141
+ return Object.assign({}, select_getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
54142
+ },
54143
+ computeScrollXHeight: function computeScrollXHeight() {
54144
+ var $xeSelect = this;
54145
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
54146
+ var scrollbarXOpts = $xeSelect.computeScrollbarXOpts;
54147
+ return select_getDefVal(select_getDefVal(scrollbarXOpts.height, scrollbarOpts.height), select_getConfig().scrollbar.height);
54148
+ },
54149
+ computeScrollYWidth: function computeScrollYWidth() {
54150
+ var $xeSelect = this;
54151
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
54152
+ var scrollbarYOpts = $xeSelect.computeScrollbarYOpts;
54153
+ return select_getDefVal(select_getDefVal(scrollbarYOpts.width, scrollbarOpts.width), select_getConfig().scrollbar.width);
54154
+ },
54155
+ computeScrollXVisible: function computeScrollXVisible() {
54156
+ var $xeSelect = this;
54157
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
54158
+ var scrollbarXOpts = $xeSelect.computeScrollbarXOpts;
54159
+ return select_getDefVal(scrollbarXOpts.visible, scrollbarOpts.visible);
54160
+ },
54161
+ computeScrollYVisible: function computeScrollYVisible() {
54162
+ var $xeSelect = this;
54163
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
54164
+ var scrollbarYOpts = $xeSelect.computeScrollbarYOpts;
54165
+ return select_getDefVal(scrollbarYOpts.visible, scrollbarOpts.visible);
54166
+ },
54167
+ computeScrollXAutoHide: function computeScrollXAutoHide() {
54168
+ var $xeSelect = this;
54169
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
54170
+ var scrollbarXOpts = $xeSelect.computeScrollbarXOpts;
54171
+ return select_getDefVal(select_getDefVal(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), select_getConfig().scrollbar.autoHide);
54172
+ },
54173
+ computeScrollYAutoHide: function computeScrollYAutoHide() {
54174
+ var $xeSelect = this;
54175
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
54176
+ var scrollbarYOpts = $xeSelect.computeScrollbarYOpts;
54177
+ return select_getDefVal(select_getDefVal(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), select_getConfig().scrollbar.autoHide);
54178
+ },
54179
+ computeScrollbarWrapperClss: function computeScrollbarWrapperClss() {
54180
+ var $xeSelect = this;
54181
+ var reactData = $xeSelect.reactData;
54182
+ var yThumbHeight = reactData.yThumbHeight,
54183
+ xThumbWidth = reactData.xThumbWidth;
54184
+ var scrollbarXToTop = $xeSelect.computeScrollbarXToTop;
54185
+ var scrollbarYToLeft = $xeSelect.computeScrollbarYToLeft;
54186
+ var scrollXVisible = $xeSelect.computeScrollXVisible;
54187
+ var scrollYVisible = $xeSelect.computeScrollYVisible;
54188
+ return select_domUtils.buildClass(['vxe-scrollbar is--virtual', "ov-x--".concat(scrollXVisible === false ? 'hidden' : 'visible'), "ov-y--".concat(scrollYVisible === false ? 'hidden' : 'visible'), "sx-pos--".concat(scrollbarXToTop ? 'top' : 'bottom'), "sy-pos--".concat(scrollbarYToLeft ? 'left' : 'right')], {
54189
+ 'overflow-y': yThumbHeight,
54190
+ 'overflow-x': xThumbWidth
54191
+ });
54192
+ },
54193
+ computeScrollbarXToTop: function computeScrollbarXToTop() {
54194
+ var $xeSelect = this;
54195
+ var scrollbarXOpts = $xeSelect.computeScrollbarXOpts;
54196
+ return scrollbarXOpts.position === 'top';
54197
+ },
54198
+ computeScrollbarYToLeft: function computeScrollbarYToLeft() {
54199
+ var $xeSelect = this;
54200
+ var scrollbarYOpts = $xeSelect.computeScrollbarYOpts;
54201
+ return scrollbarYOpts.position === 'left';
54119
54202
  }
54120
54203
  }),
54121
54204
  methods: {
@@ -54124,7 +54207,7 @@ function select_createInternalData() {
54124
54207
  //
54125
54208
  dispatchEvent: function dispatchEvent(type, params, evnt) {
54126
54209
  var $xeSelect = this;
54127
- $xeSelect.$emit(type, createEvent(evnt, {
54210
+ $xeSelect.$emit(type, select_createEvent(evnt, {
54128
54211
  $select: $xeSelect
54129
54212
  }, params));
54130
54213
  },
@@ -54144,6 +54227,11 @@ function select_createInternalData() {
54144
54227
  value: value
54145
54228
  }, null);
54146
54229
  },
54230
+ getScrollViewElem: function getScrollViewElem() {
54231
+ var $xeSelect = this;
54232
+ var viewEl = $xeSelect.$refs.refVirtualWrapper;
54233
+ return viewEl || null;
54234
+ },
54147
54235
  isPanelVisible: function isPanelVisible() {
54148
54236
  var $xeSelect = this;
54149
54237
  var reactData = $xeSelect.reactData;
@@ -54617,7 +54705,7 @@ function select_createInternalData() {
54617
54705
  if ($xeSelect.checkMaxLimit(currVlas)) {
54618
54706
  if (VxeUI) {
54619
54707
  VxeUI.modal.message({
54620
- content: getI18n('vxe.select.overSizeErr', [max]),
54708
+ content: select_getI18n('vxe.select.overSizeErr', [max]),
54621
54709
  status: 'warning'
54622
54710
  });
54623
54711
  }
@@ -54802,12 +54890,12 @@ function select_createInternalData() {
54802
54890
  var popupOpts = $xeSelect.computePopupOpts;
54803
54891
  var trigger = popupOpts.trigger;
54804
54892
  if (!isDisabled) {
54805
- var isTab = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.TAB);
54806
- var isEnter = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ENTER);
54807
- var isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
54808
- var isUpArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP);
54809
- var isDwArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_DOWN);
54810
- var isDel = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.DELETE);
54893
+ var isTab = select_globalEvents.hasKey(evnt, select_GLOBAL_EVENT_KEYS.TAB);
54894
+ var isEnter = select_globalEvents.hasKey(evnt, select_GLOBAL_EVENT_KEYS.ENTER);
54895
+ var isEsc = select_globalEvents.hasKey(evnt, select_GLOBAL_EVENT_KEYS.ESCAPE);
54896
+ var isUpArrow = select_globalEvents.hasKey(evnt, select_GLOBAL_EVENT_KEYS.ARROW_UP);
54897
+ var isDwArrow = select_globalEvents.hasKey(evnt, select_GLOBAL_EVENT_KEYS.ARROW_DOWN);
54898
+ var isDel = select_globalEvents.hasKey(evnt, select_GLOBAL_EVENT_KEYS.DELETE);
54811
54899
  if (isTab) {
54812
54900
  reactData.isActivated = false;
54813
54901
  }
@@ -55180,6 +55268,17 @@ function select_createInternalData() {
55180
55268
  }
55181
55269
  });
55182
55270
  },
55271
+ updateScrollbar: function updateScrollbar() {
55272
+ var $xeSelect = this;
55273
+ var isVScrollbar = $xeSelect.computeIsVScrollbar;
55274
+ if (isVScrollbar) {
55275
+ return $xeSelect.$nextTick().then(function () {
55276
+ $xeSelect.updateThumbSize();
55277
+ $xeSelect.updateThumbOffset();
55278
+ });
55279
+ }
55280
+ return Promise.resolve();
55281
+ },
55183
55282
  /**
55184
55283
  * 重新计算列表
55185
55284
  */
@@ -55187,7 +55286,9 @@ function select_createInternalData() {
55187
55286
  var $xeSelect = this;
55188
55287
  var el = $xeSelect.$refs.refElem;
55189
55288
  if (el && el.clientWidth && el.clientHeight) {
55190
- return $xeSelect.computeScrollLoad();
55289
+ return $xeSelect.computeScrollLoad().then(function () {
55290
+ return $xeSelect.updateScrollbar();
55291
+ });
55191
55292
  }
55192
55293
  return Promise.resolve();
55193
55294
  },
@@ -55228,6 +55329,7 @@ function select_createInternalData() {
55228
55329
  var scrollBodyElem = evnt.target;
55229
55330
  var scrollTop = scrollBodyElem.scrollTop;
55230
55331
  var scrollLeft = scrollBodyElem.scrollLeft;
55332
+ $xeSelect.updateThumbOffset();
55231
55333
  var isX = scrollLeft !== internalData.lastScrollLeft;
55232
55334
  var isY = scrollTop !== internalData.lastScrollTop;
55233
55335
  internalData.lastScrollTop = scrollTop;
@@ -55324,6 +55426,29 @@ function select_createInternalData() {
55324
55426
  var optGroupKeyMaps = internalData.optGroupKeyMaps;
55325
55427
  return !!optGroupKeyMaps[optid];
55326
55428
  },
55429
+ // 滚动条
55430
+ bindScrollbarResize: function bindScrollbarResize() {
55431
+ var $xeSelect = this;
55432
+ var internalData = $xeSelect.internalData;
55433
+ var isVScrollbar = $xeSelect.computeIsVScrollbar;
55434
+ var scrollObserver = internalData.scrollObserver;
55435
+ if (isVScrollbar) {
55436
+ if (!scrollObserver) {
55437
+ var el = $xeSelect.$refs.refElem;
55438
+ var viewInnerEl = $xeSelect.$refs.refVirtualSpaceElem;
55439
+ var _scrollObserver = select_globalResize.create(function () {
55440
+ $xeSelect.reScrollFlag++;
55441
+ });
55442
+ if (el) {
55443
+ _scrollObserver.observe(el);
55444
+ }
55445
+ if (viewInnerEl) {
55446
+ _scrollObserver.observe(viewInnerEl);
55447
+ }
55448
+ internalData.scrollObserver = _scrollObserver;
55449
+ }
55450
+ }
55451
+ },
55327
55452
  //
55328
55453
  // Render
55329
55454
  //
@@ -55333,7 +55458,7 @@ function select_createInternalData() {
55333
55458
  var showIcon = radioOpts.showIcon,
55334
55459
  trigger = radioOpts.trigger;
55335
55460
  if (isOptGroup || showIcon === false) {
55336
- return renderEmptyElement($xeSelect);
55461
+ return select_renderEmptyElement($xeSelect);
55337
55462
  }
55338
55463
  var ons = {};
55339
55464
  if (!trigger || trigger === 'default') {
@@ -55351,7 +55476,7 @@ function select_createInternalData() {
55351
55476
  }],
55352
55477
  on: ons
55353
55478
  }, [h('span', {
55354
- class: ['vxe-radio--icon', isChecked ? getIcon().RADIO_CHECKED : isDisabled ? getIcon().RADIO_DISABLED_UNCHECKED : getIcon().RADIO_UNCHECKED]
55479
+ class: ['vxe-radio--icon', isChecked ? select_getIcon().RADIO_CHECKED : isDisabled ? select_getIcon().RADIO_DISABLED_UNCHECKED : select_getIcon().RADIO_UNCHECKED]
55355
55480
  })]);
55356
55481
  },
55357
55482
  renderCheckbox: function renderCheckbox(h, option, isOptGroup, isChecked, isDisabled) {
@@ -55360,7 +55485,7 @@ function select_createInternalData() {
55360
55485
  var showIcon = checkboxOpts.showIcon,
55361
55486
  trigger = checkboxOpts.trigger;
55362
55487
  if (isOptGroup || showIcon === false) {
55363
- return renderEmptyElement($xeSelect);
55488
+ return select_renderEmptyElement($xeSelect);
55364
55489
  }
55365
55490
  var ons = {};
55366
55491
  if (!trigger || trigger === 'default') {
@@ -55378,7 +55503,7 @@ function select_createInternalData() {
55378
55503
  }],
55379
55504
  on: ons
55380
55505
  }, [h('span', {
55381
- class: ['vxe-checkbox--icon', isChecked ? getIcon().CHECKBOX_CHECKED : isDisabled ? getIcon().CHECKBOX_DISABLED_UNCHECKED : getIcon().CHECKBOX_UNCHECKED]
55506
+ class: ['vxe-checkbox--icon', isChecked ? select_getIcon().CHECKBOX_CHECKED : isDisabled ? select_getIcon().CHECKBOX_DISABLED_UNCHECKED : select_getIcon().CHECKBOX_UNCHECKED]
55382
55507
  })]);
55383
55508
  },
55384
55509
  renderOption: function renderOption(h, list) {
@@ -55485,8 +55610,8 @@ function select_createInternalData() {
55485
55610
  key: 2,
55486
55611
  class: 'vxe-select-option--add-icon'
55487
55612
  }, [h('i', {
55488
- class: getIcon().SELECT_ADD_OPTION
55489
- })]) : renderEmptyElement($xeSelect)] : optVNs) : renderEmptyElement($xeSelect);
55613
+ class: select_getIcon().SELECT_ADD_OPTION
55614
+ })]) : select_renderEmptyElement($xeSelect)] : optVNs) : select_renderEmptyElement($xeSelect);
55490
55615
  });
55491
55616
  },
55492
55617
  renderOpts: function renderOpts(h) {
@@ -55499,17 +55624,17 @@ function select_createInternalData() {
55499
55624
  return [h('div', {
55500
55625
  class: 'vxe-select--search-loading'
55501
55626
  }, [h('i', {
55502
- class: ['vxe-select--search-icon', getIcon().SELECT_LOADED]
55627
+ class: ['vxe-select--search-icon', select_getIcon().SELECT_LOADED]
55503
55628
  }), h('span', {
55504
55629
  class: 'vxe-select--search-text'
55505
- }, getI18n('vxe.select.loadingText'))])];
55630
+ }, select_getI18n('vxe.select.loadingText'))])];
55506
55631
  }
55507
55632
  if (optList.length) {
55508
55633
  return $xeSelect.renderOption(h, optList);
55509
55634
  }
55510
55635
  return [h('div', {
55511
55636
  class: 'vxe-select--empty-placeholder'
55512
- }, props.emptyText || getI18n('vxe.select.emptyText'))];
55637
+ }, props.emptyText || select_getI18n('vxe.select.emptyText'))];
55513
55638
  },
55514
55639
  renderVN: function renderVN(h) {
55515
55640
  var $xeSelect = this;
@@ -55530,8 +55655,11 @@ function select_createInternalData() {
55530
55655
  optList = reactData.optList,
55531
55656
  visiblePanel = reactData.visiblePanel,
55532
55657
  bodyHeight = reactData.bodyHeight,
55533
- topSpaceHeight = reactData.topSpaceHeight;
55658
+ topSpaceHeight = reactData.topSpaceHeight,
55659
+ xThumbWidth = reactData.xThumbWidth,
55660
+ yThumbHeight = reactData.yThumbHeight;
55534
55661
  var vSize = $xeSelect.computeSize;
55662
+ var isVScrollbar = $xeSelect.computeIsVScrollbar;
55535
55663
  var isDisabled = $xeSelect.computeIsDisabled;
55536
55664
  var selectLabel = $xeSelect.computeSelectLabel;
55537
55665
  var fullLabel = $xeSelect.computeFullLabel;
@@ -55561,6 +55689,14 @@ function select_createInternalData() {
55561
55689
  var footerSlot = slots.footer;
55562
55690
  var prefixSlot = slots.prefix;
55563
55691
  var ppClassName = popupOpts.className || props.popupClassName;
55692
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
55693
+ var scrollXVisible = $xeSelect.computeScrollXVisible;
55694
+ var scrollYVisible = $xeSelect.computeScrollYVisible;
55695
+ var scrollbarXToTop = $xeSelect.computeScrollbarXToTop;
55696
+ var scrollbarYToLeft = $xeSelect.computeScrollbarYToLeft;
55697
+ var scrollXAutoHide = $xeSelect.computeScrollXAutoHide;
55698
+ var scrollYAutoHide = $xeSelect.computeScrollYAutoHide;
55699
+ var scrollbarWrapperClss = $xeSelect.computeScrollbarWrapperClss;
55564
55700
  return h('div', {
55565
55701
  ref: 'refElem',
55566
55702
  class: ['vxe-select', className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className({
@@ -55579,7 +55715,7 @@ function select_createInternalData() {
55579
55715
  disabled: isDisabled,
55580
55716
  type: 'text',
55581
55717
  prefixIcon: props.prefixIcon,
55582
- suffixIcon: loading ? getIcon().SELECT_LOADED : visiblePanel ? getIcon().SELECT_OPEN : getIcon().SELECT_CLOSE,
55718
+ suffixIcon: loading ? select_getIcon().SELECT_LOADED : visiblePanel ? select_getIcon().SELECT_OPEN : select_getIcon().SELECT_CLOSE,
55583
55719
  autoFocus: false,
55584
55720
  title: fullLabel,
55585
55721
  value: selectLabel
@@ -55619,8 +55755,8 @@ function select_createInternalData() {
55619
55755
  clearable: true,
55620
55756
  disabled: false,
55621
55757
  readonly: false,
55622
- placeholder: getI18n('vxe.select.search'),
55623
- prefixIcon: getIcon().INPUT_SEARCH
55758
+ placeholder: select_getI18n('vxe.select.search'),
55759
+ prefixIcon: select_getIcon().INPUT_SEARCH
55624
55760
  },
55625
55761
  on: {
55626
55762
  'model-value': $xeSelect.modelSearchEvent,
@@ -55628,7 +55764,7 @@ function select_createInternalData() {
55628
55764
  change: $xeSelect.triggerSearchEvent,
55629
55765
  search: $xeSelect.triggerSearchEvent
55630
55766
  }
55631
- })]) : renderEmptyElement($xeSelect), showCheckedButton && multiple || showClearButton || headerSlot ? h('div', {
55767
+ })]) : select_renderEmptyElement($xeSelect), showCheckedButton && multiple || showClearButton || headerSlot ? h('div', {
55632
55768
  class: 'vxe-select--panel-header'
55633
55769
  }, headerSlot ? $xeSelect.callSlot(headerSlot, {}, h) : [h('div', {
55634
55770
  class: 'vxe-tree-select--header-button'
@@ -55636,22 +55772,29 @@ function select_createInternalData() {
55636
55772
  class: 'vxe-tree-select--header-btns'
55637
55773
  }, [showCheckedButton && multiple ? h(packages_button, {
55638
55774
  props: {
55639
- content: getI18n('vxe.select.allChecked'),
55775
+ content: select_getI18n('vxe.select.allChecked'),
55640
55776
  mode: 'text'
55641
55777
  },
55642
55778
  on: {
55643
55779
  click: $xeSelect.allCheckedPanelEvent
55644
55780
  }
55645
- }) : renderEmptyElement($xeSelect), showClearButton ? h(packages_button, {
55781
+ }) : select_renderEmptyElement($xeSelect), showClearButton ? h(packages_button, {
55646
55782
  props: {
55647
- content: getI18n('vxe.select.clear'),
55783
+ content: select_getI18n('vxe.select.clear'),
55648
55784
  mode: 'text'
55649
55785
  },
55650
55786
  on: {
55651
55787
  click: $xeSelect.clearCheckedPanelEvent
55652
55788
  }
55653
- }) : renderEmptyElement($xeSelect)])])]) : renderEmptyElement($xeSelect), h('div', {
55654
- class: 'vxe-select--panel-body'
55789
+ }) : select_renderEmptyElement($xeSelect)])])]) : select_renderEmptyElement($xeSelect), h('div', {
55790
+ class: ['vxe-select--panel-body', isVScrollbar ? "ov-x--".concat(scrollXVisible === false ? 'hidden' : 'visible') : '', isVScrollbar ? "ov-y--".concat(scrollYVisible === false ? 'hidden' : 'visible') : '', isVScrollbar ? "sx-pos--".concat(scrollbarXToTop ? 'top' : 'bottom') : '', isVScrollbar ? "sy-pos--".concat(scrollbarYToLeft ? 'left' : 'right') : '', {
55791
+ 'is--virtual-scrollbar': isVScrollbar,
55792
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
55793
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
55794
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
55795
+ 'overflow-y': yThumbHeight,
55796
+ 'overflow-x': xThumbWidth
55797
+ }]
55655
55798
  }, [h('div', {
55656
55799
  ref: 'refVirtualWrapper',
55657
55800
  class: 'vxe-select-option--wrapper',
@@ -55659,6 +55802,7 @@ function select_createInternalData() {
55659
55802
  scroll: $xeSelect.scrollEvent
55660
55803
  }
55661
55804
  }, [h('div', {
55805
+ ref: 'refVirtualSpaceElem',
55662
55806
  class: 'vxe-select--y-space',
55663
55807
  style: {
55664
55808
  height: bodyHeight ? "".concat(bodyHeight, "px") : ''
@@ -55669,23 +55813,61 @@ function select_createInternalData() {
55669
55813
  style: {
55670
55814
  transform: "translateY(".concat(topSpaceHeight, "px)")
55671
55815
  }
55672
- }, $xeSelect.renderOpts(h))])]), footerSlot || showTotalButton || showCloseButton && multiple ? h('div', {
55816
+ }, $xeSelect.renderOpts(h))]),
55817
+ /**
55818
+ * 滚动条
55819
+ */
55820
+ isVScrollbar ? h('div', {
55821
+ class: scrollbarWrapperClss
55822
+ }, [scrollXVisible === false ? select_renderEmptyElement($xeSelect) : h('div', {
55823
+ ref: 'refTrackXElem',
55824
+ class: 'vxe-scrollbar--track-x',
55825
+ on: {
55826
+ click: $xeSelect.clickTrackXEvent
55827
+ }
55828
+ }, [h('div', {
55829
+ ref: 'refThumbXElem',
55830
+ class: 'vxe-scrollbar--thumb-x',
55831
+ on: {
55832
+ pointerdown: $xeSelect.pointerdownThumbXEvent,
55833
+ pointermove: $xeSelect.pointermoveThumbXEvent,
55834
+ pointerup: $xeSelect.cleatPointerThumbEvent,
55835
+ pointercancel: $xeSelect.cleatPointerThumbEvent,
55836
+ lostpointercapture: $xeSelect.cleatPointerThumbEvent
55837
+ }
55838
+ })]), scrollYVisible === false ? select_renderEmptyElement($xeSelect) : h('div', {
55839
+ ref: 'refTrackYElem',
55840
+ class: 'vxe-scrollbar--track-y',
55841
+ on: {
55842
+ click: $xeSelect.clickTrackYEvent
55843
+ }
55844
+ }, [h('div', {
55845
+ ref: 'refThumbYElem',
55846
+ class: 'vxe-scrollbar--thumb-y',
55847
+ on: {
55848
+ pointerdown: $xeSelect.pointerdownThumbYEvent,
55849
+ pointermove: $xeSelect.pointermoveThumbYEvent,
55850
+ pointerup: $xeSelect.cleatPointerThumbEvent,
55851
+ pointercancel: $xeSelect.cleatPointerThumbEvent,
55852
+ lostpointercapture: $xeSelect.cleatPointerThumbEvent
55853
+ }
55854
+ })])]) : select_renderEmptyElement($xeSelect)]), footerSlot || showTotalButton || showCloseButton && multiple ? h('div', {
55673
55855
  class: 'vxe-select--panel-footer'
55674
55856
  }, footerSlot ? $xeSelect.callSlot(footerSlot, {}, h) : [h('div', {
55675
55857
  class: 'vxe-select--footer-button'
55676
55858
  }, [showTotalButton ? h('div', {
55677
55859
  class: 'vxe-select--total-btns'
55678
- }, getI18n('vxe.select.total', [selectVals.length, optList.length])) : renderEmptyElement($xeSelect), showCloseButton && multiple ? h('div', {
55860
+ }, select_getI18n('vxe.select.total', [selectVals.length, optList.length])) : select_renderEmptyElement($xeSelect), showCloseButton && multiple ? h('div', {
55679
55861
  class: 'vxe-select--oper-btns'
55680
55862
  }, [h(packages_button, {
55681
55863
  props: {
55682
- content: getI18n('vxe.select.close'),
55864
+ content: select_getI18n('vxe.select.close'),
55683
55865
  mode: 'text'
55684
55866
  },
55685
55867
  on: {
55686
55868
  click: $xeSelect.closePanelEvent
55687
55869
  }
55688
- })]) : renderEmptyElement($xeSelect)])]) : renderEmptyElement($xeSelect)])] : [])]);
55870
+ })]) : select_renderEmptyElement($xeSelect)])]) : select_renderEmptyElement($xeSelect)])] : [])]);
55689
55871
  }
55690
55872
  },
55691
55873
  watch: {
@@ -55700,6 +55882,47 @@ function select_createInternalData() {
55700
55882
  optionGroups: function optionGroups(val) {
55701
55883
  var $xeSelect = this;
55702
55884
  $xeSelect.loadData(val);
55885
+ },
55886
+ computeIsVScrollbar: function computeIsVScrollbar() {
55887
+ var $xeSelect = this;
55888
+ $xeSelect.$nextTick(function () {
55889
+ $xeSelect.bindScrollbarResize();
55890
+ $xeSelect.$nextTick(function () {
55891
+ $xeSelect.reLayoutFlag++;
55892
+ });
55893
+ });
55894
+ },
55895
+ computeScrollYWidth: function computeScrollYWidth() {
55896
+ var $xeSelect = this;
55897
+ $xeSelect.reLayoutFlag++;
55898
+ },
55899
+ computeScrollXHeight: function computeScrollXHeight() {
55900
+ var $xeSelect = this;
55901
+ $xeSelect.reLayoutFlag++;
55902
+ },
55903
+ computeScrollXVisible: function computeScrollXVisible() {
55904
+ var $xeSelect = this;
55905
+ $xeSelect.$nextTick(function () {
55906
+ $xeSelect.reLayoutFlag++;
55907
+ });
55908
+ },
55909
+ computeScrollYVisible: function computeScrollYVisible() {
55910
+ var $xeSelect = this;
55911
+ $xeSelect.$nextTick(function () {
55912
+ $xeSelect.reLayoutFlag++;
55913
+ });
55914
+ },
55915
+ reLayoutFlag: function reLayoutFlag() {
55916
+ var $xeSelect = this;
55917
+ $xeSelect.recalculate().then(function () {
55918
+ $xeSelect.recalculate();
55919
+ });
55920
+ },
55921
+ reScrollFlag: function reScrollFlag() {
55922
+ var $xeSelect = this;
55923
+ $xeSelect.updateScrollbar().then(function () {
55924
+ $xeSelect.updateScrollbar();
55925
+ });
55703
55926
  }
55704
55927
  },
55705
55928
  created: function created() {
@@ -55718,23 +55941,30 @@ function select_createInternalData() {
55718
55941
  $xeSelect.loadData(options);
55719
55942
  }
55720
55943
  });
55721
- globalEvents.on($xeSelect, 'mousedown', $xeSelect.handleGlobalMousedownEvent);
55722
- globalEvents.on($xeSelect, 'keydown', $xeSelect.handleGlobalKeydownEvent);
55723
- globalEvents.on($xeSelect, 'blur', $xeSelect.handleGlobalBlurEvent);
55724
- globalEvents.on($xeSelect, 'resize', $xeSelect.handleGlobalResizeEvent);
55725
- globalEvents.on($xeSelect, 'scroll', $xeSelect.handleGlobalScrollEvent);
55944
+ $xeSelect.reLayoutFlag++;
55945
+ $xeSelect.bindScrollbarResize();
55946
+ select_globalEvents.on($xeSelect, 'mousedown', $xeSelect.handleGlobalMousedownEvent);
55947
+ select_globalEvents.on($xeSelect, 'keydown', $xeSelect.handleGlobalKeydownEvent);
55948
+ select_globalEvents.on($xeSelect, 'blur', $xeSelect.handleGlobalBlurEvent);
55949
+ select_globalEvents.on($xeSelect, 'resize', $xeSelect.handleGlobalResizeEvent);
55950
+ select_globalEvents.on($xeSelect, 'scroll', $xeSelect.handleGlobalScrollEvent);
55726
55951
  },
55727
55952
  beforeDestroy: function beforeDestroy() {
55728
55953
  var $xeSelect = this;
55954
+ var internalData = $xeSelect.internalData;
55955
+ var scrollObserver = internalData.scrollObserver;
55729
55956
  var panelElem = $xeSelect.$refs.refOptionPanel;
55730
55957
  if (panelElem && panelElem.parentNode) {
55731
55958
  panelElem.parentNode.removeChild(panelElem);
55732
55959
  }
55733
- globalEvents.off($xeSelect, 'mousedown');
55734
- globalEvents.off($xeSelect, 'keydown');
55735
- globalEvents.off($xeSelect, 'blur');
55736
- globalEvents.off($xeSelect, 'resize');
55737
- globalEvents.off($xeSelect, 'scroll');
55960
+ if (scrollObserver) {
55961
+ scrollObserver.disconnect();
55962
+ }
55963
+ select_globalEvents.off($xeSelect, 'mousedown');
55964
+ select_globalEvents.off($xeSelect, 'keydown');
55965
+ select_globalEvents.off($xeSelect, 'blur');
55966
+ select_globalEvents.off($xeSelect, 'resize');
55967
+ select_globalEvents.off($xeSelect, 'scroll');
55738
55968
  },
55739
55969
  destroyed: function destroyed() {
55740
55970
  var $xeSelect = this;
@@ -63635,7 +63865,7 @@ var tabs_createComponentLog = createComponentLog('tabs'),
63635
63865
  var scrollbarOffsetSize = 20;
63636
63866
  /* harmony default export */ var tabs = (/* define-vxe-component start */defineVxeComponent({
63637
63867
  name: 'VxeTabs',
63638
- mixins: [globalMixins.sizeMixin],
63868
+ mixins: [globalMixins.sizeMixin, globalMixins.vScrollbarMixin],
63639
63869
  props: {
63640
63870
  value: [String, Number, Boolean],
63641
63871
  options: Array,
@@ -66226,14 +66456,11 @@ var tree_createComponentLog = createComponentLog('tree'),
66226
66456
  tree_warnLog = tree_createComponentLog.warnLog,
66227
66457
  tree_errLog = tree_createComponentLog.errLog;
66228
66458
  var tree_menus = VxeUI.menus,
66229
- tree_scrollbarUtils = VxeUI.scrollbarUtils,
66230
66459
  tree_getConfig = VxeUI.getConfig,
66231
66460
  tree_getI18n = VxeUI.getI18n,
66232
- tree_getIcon = VxeUI.getIcon;
66233
- var tree_getThumbOffsetSize = tree_scrollbarUtils.getThumbOffsetSize,
66234
- tree_getThumbSize = tree_scrollbarUtils.getThumbSize,
66235
- tree_getScrollFromClick = tree_scrollbarUtils.getScrollFromClick,
66236
- tree_getScrollFromDrag = tree_scrollbarUtils.getScrollFromDrag;
66461
+ tree_getIcon = VxeUI.getIcon,
66462
+ tree_baseUtils = VxeUI.baseUtils;
66463
+ var tree_getDefVal = tree_baseUtils.getDefVal;
66237
66464
  var crossTreeDragNodeObj = null;
66238
66465
  /**
66239
66466
  * 生成节点的唯一主键
@@ -66789,7 +67016,7 @@ function tree_createInternalData() {
66789
67016
  }
66790
67017
  /* harmony default export */ var tree = (/* define-vxe-component start */defineVxeComponent({
66791
67018
  name: 'VxeTree',
66792
- mixins: [globalMixins.sizeMixin],
67019
+ mixins: [globalMixins.sizeMixin, globalMixins.vScrollbarMixin, globalMixins.initVScrollbarMixin],
66793
67020
  props: {
66794
67021
  data: Array,
66795
67022
  autoResize: {
@@ -66969,7 +67196,7 @@ function tree_createInternalData() {
66969
67196
  useScrollbar: {
66970
67197
  type: Boolean,
66971
67198
  default: function _default() {
66972
- return getDefaultConfig(tree_getConfig().tree.useScrollbar, tree_getConfig().useScrollbar);
67199
+ return tree_getDefVal(tree_getConfig().tree.useScrollbar, tree_getConfig().useScrollbar);
66973
67200
  }
66974
67201
  },
66975
67202
  scrollbarConfig: Object
@@ -66987,7 +67214,8 @@ function tree_createInternalData() {
66987
67214
  xID: xID,
66988
67215
  reactData: reactData,
66989
67216
  crossTreeDragNodeInfo: crossTreeDragNodeGlobal,
66990
- reFlag: 0,
67217
+ reLayoutFlag: 0,
67218
+ reScrollFlag: 0,
66991
67219
  dataFlag: 0
66992
67220
  });
66993
67221
  },
@@ -67164,37 +67392,37 @@ function tree_createInternalData() {
67164
67392
  var $xeTree = this;
67165
67393
  var scrollbarOpts = $xeTree.computeScrollbarOpts;
67166
67394
  var scrollbarXOpts = $xeTree.computeScrollbarXOpts;
67167
- return getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), tree_getConfig().scrollbar.height);
67395
+ return tree_getDefVal(tree_getDefVal(scrollbarXOpts.height, scrollbarOpts.height), tree_getConfig().scrollbar.height);
67168
67396
  },
67169
67397
  computeScrollYWidth: function computeScrollYWidth() {
67170
67398
  var $xeTree = this;
67171
67399
  var scrollbarOpts = $xeTree.computeScrollbarOpts;
67172
67400
  var scrollbarYOpts = $xeTree.computeScrollbarYOpts;
67173
- return getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), tree_getConfig().scrollbar.width);
67401
+ return tree_getDefVal(tree_getDefVal(scrollbarYOpts.width, scrollbarOpts.width), tree_getConfig().scrollbar.width);
67174
67402
  },
67175
67403
  computeScrollXVisible: function computeScrollXVisible() {
67176
67404
  var $xeTree = this;
67177
67405
  var scrollbarOpts = $xeTree.computeScrollbarOpts;
67178
67406
  var scrollbarXOpts = $xeTree.computeScrollbarXOpts;
67179
- return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
67407
+ return tree_getDefVal(scrollbarXOpts.visible, scrollbarOpts.visible);
67180
67408
  },
67181
67409
  computeScrollYVisible: function computeScrollYVisible() {
67182
67410
  var $xeTree = this;
67183
67411
  var scrollbarOpts = $xeTree.computeScrollbarOpts;
67184
67412
  var scrollbarYOpts = $xeTree.computeScrollbarYOpts;
67185
- return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
67413
+ return tree_getDefVal(scrollbarYOpts.visible, scrollbarOpts.visible);
67186
67414
  },
67187
67415
  computeScrollXAutoHide: function computeScrollXAutoHide() {
67188
67416
  var $xeTree = this;
67189
67417
  var scrollbarOpts = $xeTree.computeScrollbarOpts;
67190
67418
  var scrollbarXOpts = $xeTree.computeScrollbarXOpts;
67191
- return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), tree_getConfig().scrollbar.autoHide);
67419
+ return tree_getDefVal(tree_getDefVal(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), tree_getConfig().scrollbar.autoHide);
67192
67420
  },
67193
67421
  computeScrollYAutoHide: function computeScrollYAutoHide() {
67194
67422
  var $xeTree = this;
67195
67423
  var scrollbarOpts = $xeTree.computeScrollbarOpts;
67196
67424
  var scrollbarYOpts = $xeTree.computeScrollbarYOpts;
67197
- return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), tree_getConfig().scrollbar.autoHide);
67425
+ return tree_getDefVal(tree_getDefVal(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), tree_getConfig().scrollbar.autoHide);
67198
67426
  },
67199
67427
  computeScrollbarWrapperClss: function computeScrollbarWrapperClss() {
67200
67428
  var $xeTree = this;
@@ -67231,6 +67459,11 @@ function tree_createInternalData() {
67231
67459
  $tree: $xeTree
67232
67460
  }, params));
67233
67461
  },
67462
+ getScrollViewElem: function getScrollViewElem() {
67463
+ var $xeTree = this;
67464
+ var viewEl = $xeTree.$refs.refVirtualWrapper;
67465
+ return viewEl || null;
67466
+ },
67234
67467
  getNodeId: function getNodeId(node) {
67235
67468
  var $xeTree = this;
67236
67469
  if (!node) {
@@ -67870,8 +68103,14 @@ function tree_createInternalData() {
67870
68103
  },
67871
68104
  updateScrollbar: function updateScrollbar() {
67872
68105
  var $xeTree = this;
67873
- $xeTree.updateThumbSize();
67874
- $xeTree.updateThumbOffset();
68106
+ var isVScrollbar = $xeTree.computeIsVScrollbar;
68107
+ if (isVScrollbar) {
68108
+ return $xeTree.$nextTick().then(function () {
68109
+ $xeTree.updateThumbSize();
68110
+ $xeTree.updateThumbOffset();
68111
+ });
68112
+ }
68113
+ return Promise.resolve();
67875
68114
  },
67876
68115
  /**
67877
68116
  * 重新计算列表
@@ -67897,11 +68136,11 @@ function tree_createInternalData() {
67897
68136
  var parentPaddingSize = getPaddingTopBottomSize(parentEl);
67898
68137
  reactData.parentHeight = Math.max(headHeight + footHeight + rowHeight, parentEl.clientHeight - parentPaddingSize - headHeight - footHeight);
67899
68138
  }
67900
- $xeTree.updateScrollbar();
67901
68139
  $xeTree.updateHeight();
67902
68140
  return $xeTree.computeScrollLoad().then(function () {
67903
68141
  $xeTree.updateHeight();
67904
68142
  $xeTree.updateYSpace();
68143
+ $xeTree.updateScrollbar();
67905
68144
  });
67906
68145
  }
67907
68146
  return $xeTree.$nextTick();
@@ -67941,7 +68180,7 @@ function tree_createInternalData() {
67941
68180
  var $xeTree = this;
67942
68181
  var reactData = $xeTree.reactData;
67943
68182
  var internalData = $xeTree.internalData;
67944
- var scrollBodyElem = evnt.target;
68183
+ var scrollBodyElem = evnt.currentTarget;
67945
68184
  var scrollTop = scrollBodyElem.scrollTop;
67946
68185
  var scrollLeft = scrollBodyElem.scrollLeft;
67947
68186
  var isX = scrollLeft !== internalData.lastScrollLeft;
@@ -69734,186 +69973,26 @@ function tree_createInternalData() {
69734
69973
  }
69735
69974
  },
69736
69975
  // 滚动条
69737
- updateThumbSize: function updateThumbSize() {
69976
+ bindScrollbarResize: function bindScrollbarResize() {
69738
69977
  var $xeTree = this;
69739
- var reactData = $xeTree.reactData;
69740
- var viewEl = $xeTree.$refs.refVirtualWrapper;
69741
- if (!viewEl) {
69742
- return;
69743
- }
69744
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
69745
- return;
69746
- }
69747
- var trackXEl = $xeTree.$refs.refTrackXElem;
69748
- var xThumbWidth = trackXEl ? tree_getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
69749
- var thumbXElem = $xeTree.$refs.refThumbXElem;
69750
- if (thumbXElem) {
69751
- thumbXElem.style.width = xThumbWidth + 'px';
69752
- }
69753
- reactData.xThumbWidth = xThumbWidth;
69754
- var trackYEl = $xeTree.$refs.refTrackYElem;
69755
- var yThumbHeight = trackYEl ? tree_getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
69756
- var thumbYElem = $xeTree.$refs.refThumbYElem;
69757
- if (thumbYElem) {
69758
- thumbYElem.style.height = yThumbHeight + 'px';
69759
- }
69760
- reactData.yThumbHeight = yThumbHeight;
69761
- },
69762
- updateThumbOffset: function updateThumbOffset() {
69763
- var $xeTree = this;
69764
- var reactData = $xeTree.reactData;
69765
69978
  var internalData = $xeTree.internalData;
69766
- var viewEl = $xeTree.$refs.refVirtualWrapper;
69767
- if (!viewEl) {
69768
- return;
69769
- }
69770
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
69771
- return;
69772
- }
69773
- var xThumbWidth = reactData.xThumbWidth,
69774
- yThumbHeight = reactData.yThumbHeight;
69775
- var trackXEl = $xeTree.$refs.refTrackXElem;
69776
- var thumbXElem = $xeTree.$refs.refThumbXElem;
69777
- var xThumbLeft = trackXEl && xThumbWidth ? tree_getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
69778
- internalData.xThumbLeft = xThumbLeft;
69779
- if (thumbXElem && xThumbWidth) {
69780
- thumbXElem.style.width = xThumbWidth + 'px';
69781
- thumbXElem.style.transform = "translateX(".concat(xThumbLeft, "px)");
69782
- }
69783
- var trackYEl = $xeTree.$refs.refTrackYElem;
69784
- var thumbYElem = $xeTree.$refs.refThumbYElem;
69785
- var yThumbTop = trackYEl && yThumbHeight ? tree_getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
69786
- internalData.yThumbTop = yThumbTop;
69787
- if (thumbYElem && yThumbHeight) {
69788
- thumbYElem.style.height = yThumbHeight + 'px';
69789
- thumbYElem.style.transform = "translateY(".concat(yThumbTop, "px)");
69790
- }
69791
- },
69792
- clickTrackXEvent: function clickTrackXEvent(evnt) {
69793
- var $xeTree = this;
69794
- var reactData = $xeTree.reactData;
69795
- var trackEl = evnt.currentTarget;
69796
- if (trackEl !== evnt.target) {
69797
- return;
69798
- }
69799
- var viewEl = $xeTree.$refs.refVirtualWrapper;
69800
- if (!viewEl) {
69801
- return;
69802
- }
69803
- var xThumbWidth = reactData.xThumbWidth;
69804
- var trackRect = trackEl.getBoundingClientRect();
69805
- viewEl.scrollTo({
69806
- left: tree_getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
69807
- behavior: 'auto'
69808
- });
69809
- },
69810
- clickTrackYEvent: function clickTrackYEvent(evnt) {
69811
- var $xeTree = this;
69812
- var reactData = $xeTree.reactData;
69813
- var trackEl = evnt.currentTarget;
69814
- if (trackEl !== evnt.target) {
69815
- return;
69816
- }
69817
- var viewEl = $xeTree.$refs.refVirtualWrapper;
69818
- if (!viewEl) {
69819
- return;
69820
- }
69821
- var yThumbHeight = reactData.yThumbHeight;
69822
- var trackRect = trackEl.getBoundingClientRect();
69823
- viewEl.scrollTo({
69824
- top: tree_getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
69825
- behavior: 'auto'
69826
- });
69827
- },
69828
- pointerdownThumbXEvent: function pointerdownThumbXEvent(evnt) {
69829
- var $xeTree = this;
69830
- var reactData = $xeTree.reactData;
69831
- var internalData = $xeTree.internalData;
69832
- var thumbEl = evnt.currentTarget;
69833
- internalData.isThumbDrag = true;
69834
- thumbEl.setPointerCapture(evnt.pointerId);
69835
- var viewEl = $xeTree.$refs.refVirtualWrapper;
69836
- if (!viewEl) {
69837
- return;
69838
- }
69839
- var xThumbWidth = reactData.xThumbWidth;
69840
- var trackEl = thumbEl.parentElement;
69841
- var trackRect = trackEl.getBoundingClientRect();
69842
- var pointerPosition = evnt.clientX - trackRect.left;
69843
- // 记录 thumb 的偏移
69844
- var thumbOffset = tree_getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
69845
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
69846
- },
69847
- pointermoveThumbXEvent: function pointermoveThumbXEvent(evnt) {
69848
- var $xeTree = this;
69849
- var reactData = $xeTree.reactData;
69850
- var internalData = $xeTree.internalData;
69851
- var thumbEl = evnt.currentTarget;
69852
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
69853
- return;
69854
- }
69855
- var isThumbDrag = internalData.isThumbDrag,
69856
- thumbDragOffset = internalData.thumbDragOffset;
69857
- if (isThumbDrag) {
69858
- var viewEl = $xeTree.$refs.refVirtualWrapper;
69859
- if (!viewEl) {
69860
- return;
69861
- }
69862
- var xThumbWidth = reactData.xThumbWidth;
69863
- var _thumbEl = evnt.currentTarget;
69864
- var trackEl = _thumbEl.parentElement;
69865
- var trackRect = trackEl.getBoundingClientRect();
69866
- // 更新偏移
69867
- viewEl.scrollLeft = tree_getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
69868
- }
69869
- },
69870
- cleatPointerThumbEvent: function cleatPointerThumbEvent(evnt) {
69871
- var $xeTree = this;
69872
- var internalData = $xeTree.internalData;
69873
- var thumbEl = evnt.currentTarget;
69874
- thumbEl.releasePointerCapture(evnt.pointerId);
69875
- internalData.isThumbDrag = false;
69876
- },
69877
- pointerdownThumbYEvent: function pointerdownThumbYEvent(evnt) {
69878
- var $xeTree = this;
69879
- var reactData = $xeTree.reactData;
69880
- var internalData = $xeTree.internalData;
69881
- var thumbEl = evnt.currentTarget;
69882
- internalData.isThumbDrag = true;
69883
- thumbEl.setPointerCapture(evnt.pointerId);
69884
- var viewEl = $xeTree.$refs.refVirtualWrapper;
69885
- if (!viewEl) {
69886
- return;
69887
- }
69888
- var yThumbHeight = reactData.yThumbHeight;
69889
- var trackEl = thumbEl.parentElement;
69890
- var trackRect = trackEl.getBoundingClientRect();
69891
- var pointerPosition = evnt.clientY - trackRect.top;
69892
- // 记录 thumb 的偏移
69893
- var thumbOffset = tree_getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
69894
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
69895
- },
69896
- pointermoveThumbYEvent: function pointermoveThumbYEvent(evnt) {
69897
- var $xeTree = this;
69898
- var reactData = $xeTree.reactData;
69899
- var internalData = $xeTree.internalData;
69900
- var thumbEl = evnt.currentTarget;
69901
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
69902
- return;
69903
- }
69904
- var isThumbDrag = internalData.isThumbDrag,
69905
- thumbDragOffset = internalData.thumbDragOffset;
69906
- if (isThumbDrag) {
69907
- var viewEl = $xeTree.$refs.refVirtualWrapper;
69908
- if (!viewEl) {
69909
- return;
69979
+ var isVScrollbar = $xeTree.computeIsVScrollbar;
69980
+ var scrollObserver = internalData.scrollObserver;
69981
+ if (isVScrollbar) {
69982
+ if (!scrollObserver) {
69983
+ var el = $xeTree.$refs.refElem;
69984
+ var viewInnerEl = $xeTree.$refs.refVirtualSpaceElem;
69985
+ var _scrollObserver = globalResize.create(function () {
69986
+ $xeTree.reScrollFlag++;
69987
+ });
69988
+ if (el) {
69989
+ _scrollObserver.observe(el);
69990
+ }
69991
+ if (viewInnerEl) {
69992
+ _scrollObserver.observe(viewInnerEl);
69993
+ }
69994
+ internalData.scrollObserver = _scrollObserver;
69910
69995
  }
69911
- var yThumbHeight = reactData.yThumbHeight;
69912
- var _thumbEl2 = evnt.currentTarget;
69913
- var trackEl = _thumbEl2.parentElement;
69914
- var trackRect = trackEl.getBoundingClientRect();
69915
- // 更新偏移
69916
- viewEl.scrollTop = tree_getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
69917
69996
  }
69918
69997
  },
69919
69998
  //
@@ -70250,8 +70329,7 @@ function tree_createInternalData() {
70250
70329
  var reactData = $xeTree.reactData;
70251
70330
  var loading = props.loading,
70252
70331
  trigger = props.trigger,
70253
- showLine = props.showLine,
70254
- useScrollbar = props.useScrollbar;
70332
+ showLine = props.showLine;
70255
70333
  var bodyHeight = reactData.bodyHeight,
70256
70334
  topSpaceHeight = reactData.topSpaceHeight,
70257
70335
  treeList = reactData.treeList,
@@ -70259,6 +70337,7 @@ function tree_createInternalData() {
70259
70337
  xThumbWidth = reactData.xThumbWidth,
70260
70338
  yThumbHeight = reactData.yThumbHeight;
70261
70339
  var vSize = $xeTree.computeSize;
70340
+ var isVScrollbar = $xeTree.computeIsVScrollbar;
70262
70341
  var radioOpts = $xeTree.computeRadioOpts;
70263
70342
  var checkboxOpts = $xeTree.computeCheckboxOpts;
70264
70343
  var loadingOpts = $xeTree.computeLoadingOpts;
@@ -70285,7 +70364,7 @@ function tree_createInternalData() {
70285
70364
  }
70286
70365
  return h('div', {
70287
70366
  ref: 'refElem',
70288
- class: ['vxe-tree', useScrollbar ? "ov-x--".concat(scrollXVisible === false ? 'hidden' : 'visible') : '', useScrollbar ? "ov-y--".concat(scrollYVisible === false ? 'hidden' : 'visible') : '', useScrollbar ? "sx-pos--".concat(scrollbarXToTop ? 'top' : 'bottom') : '', useScrollbar ? "sy-pos--".concat(scrollbarYToLeft ? 'left' : 'right') : '', (_ref = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ref, "size--".concat(vSize), vSize), 'show--line', showLine), 'is--virtual-scrollbar', useScrollbar), 'ov-padding', useScrollbar && scrollbarOpts.padding), 'ov-x--auto-hide', useScrollbar && scrollXAutoHide), 'ov-y--auto-hide', useScrollbar && scrollYAutoHide), 'overflow-y', yThumbHeight), 'overflow-x', xThumbWidth), 'checkbox--highlight', checkboxOpts.highlight), 'radio--highlight', radioOpts.highlight), _defineProperty(_defineProperty(_defineProperty(_ref, 'node--hover', isNodeHover), 'node--trigger', trigger === 'node'), 'is--loading', loading))],
70367
+ class: ['vxe-tree', isVScrollbar ? "ov-x--".concat(scrollXVisible === false ? 'hidden' : 'visible') : '', isVScrollbar ? "ov-y--".concat(scrollYVisible === false ? 'hidden' : 'visible') : '', isVScrollbar ? "sx-pos--".concat(scrollbarXToTop ? 'top' : 'bottom') : '', isVScrollbar ? "sy-pos--".concat(scrollbarYToLeft ? 'left' : 'right') : '', (_ref = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ref, "size--".concat(vSize), vSize), 'show--line', showLine), 'is--virtual-scrollbar', isVScrollbar), 'ov-padding', isVScrollbar && scrollbarOpts.padding), 'ov-x--auto-hide', isVScrollbar && scrollXAutoHide), 'ov-y--auto-hide', isVScrollbar && scrollYAutoHide), 'overflow-y', yThumbHeight), 'overflow-x', xThumbWidth), 'checkbox--highlight', checkboxOpts.highlight), 'radio--highlight', radioOpts.highlight), _defineProperty(_defineProperty(_defineProperty(_ref, 'node--hover', isNodeHover), 'node--trigger', trigger === 'node'), 'is--loading', loading))],
70289
70368
  style: wrapperStyles,
70290
70369
  on: teOns
70291
70370
  }, [headerSlot ? h('div', {
@@ -70301,6 +70380,7 @@ function tree_createInternalData() {
70301
70380
  scroll: $xeTree.scrollEvent
70302
70381
  }
70303
70382
  }, [h('div', {
70383
+ ref: 'refVirtualSpaceElem',
70304
70384
  class: 'vxe-tree--y-space',
70305
70385
  style: {
70306
70386
  height: bodyHeight ? "".concat(bodyHeight, "px") : ''
@@ -70320,7 +70400,7 @@ function tree_createInternalData() {
70320
70400
  /**
70321
70401
  * 滚动条
70322
70402
  */
70323
- useScrollbar ? h('div', {
70403
+ isVScrollbar ? h('div', {
70324
70404
  class: scrollbarWrapperClss
70325
70405
  }, [scrollXVisible === false ? renderEmptyElement($xeTree) : h('div', {
70326
70406
  ref: 'refTrackXElem',
@@ -70444,45 +70524,56 @@ function tree_createInternalData() {
70444
70524
  },
70445
70525
  height: function height() {
70446
70526
  var $xeTree = this;
70447
- $xeTree.reFlag++;
70527
+ $xeTree.reLayoutFlag++;
70448
70528
  },
70449
70529
  minHeight: function minHeight() {
70450
70530
  var $xeTree = this;
70451
- $xeTree.reFlag++;
70531
+ $xeTree.reLayoutFlag++;
70452
70532
  },
70453
70533
  maxHeight: function maxHeight() {
70454
70534
  var $xeTree = this;
70455
- $xeTree.reFlag++;
70535
+ $xeTree.reLayoutFlag++;
70456
70536
  },
70457
- useScrollbar: function useScrollbar() {
70537
+ computeIsVScrollbar: function computeIsVScrollbar() {
70458
70538
  var $xeTree = this;
70459
- $xeTree.reFlag++;
70539
+ $xeTree.$nextTick(function () {
70540
+ $xeTree.bindScrollbarResize();
70541
+ $xeTree.$nextTick(function () {
70542
+ $xeTree.reLayoutFlag++;
70543
+ });
70544
+ });
70460
70545
  },
70461
70546
  computeScrollYWidth: function computeScrollYWidth() {
70462
70547
  var $xeTree = this;
70463
- $xeTree.reFlag++;
70548
+ $xeTree.reLayoutFlag++;
70464
70549
  },
70465
70550
  computeScrollXHeight: function computeScrollXHeight() {
70466
70551
  var $xeTree = this;
70467
- $xeTree.reFlag++;
70552
+ $xeTree.reLayoutFlag++;
70468
70553
  },
70469
70554
  computeScrollXVisible: function computeScrollXVisible() {
70470
70555
  var $xeTree = this;
70471
70556
  $xeTree.$nextTick(function () {
70472
- $xeTree.reFlag++;
70557
+ $xeTree.reLayoutFlag++;
70473
70558
  });
70474
70559
  },
70475
70560
  computeScrollYVisible: function computeScrollYVisible() {
70476
70561
  var $xeTree = this;
70477
70562
  $xeTree.$nextTick(function () {
70478
- $xeTree.reFlag++;
70563
+ $xeTree.reLayoutFlag++;
70479
70564
  });
70480
70565
  },
70481
- reFlag: function reFlag() {
70566
+ reLayoutFlag: function reLayoutFlag() {
70482
70567
  var $xeTree = this;
70483
70568
  $xeTree.recalculate().then(function () {
70484
70569
  $xeTree.recalculate();
70485
70570
  });
70571
+ },
70572
+ reScrollFlag: function reScrollFlag() {
70573
+ var $xeTree = this;
70574
+ $xeTree.updateScrollbar().then(function () {
70575
+ $xeTree.updateScrollbar();
70576
+ });
70486
70577
  }
70487
70578
  },
70488
70579
  created: function created() {
@@ -70503,8 +70594,7 @@ function tree_createInternalData() {
70503
70594
  showOverflow = props.showOverflow,
70504
70595
  lazy = props.lazy,
70505
70596
  loadMethod = props.loadMethod,
70506
- autoResize = props.autoResize,
70507
- useScrollbar = props.useScrollbar;
70597
+ autoResize = props.autoResize;
70508
70598
  var dragOpts = $xeTree.computeDragOpts;
70509
70599
  if (!showOverflow) {
70510
70600
  tree_errLog('vxe.error.errProp', ['show-overflow=false', 'show-overflow=true']);
@@ -70525,25 +70615,12 @@ function tree_createInternalData() {
70525
70615
  if (menuConfig && !VxeUIContextMenu) {
70526
70616
  tree_errLog('vxe.error.reqComp', ['vxe-context-menu']);
70527
70617
  }
70528
- var el = $xeTree.$refs.refElem;
70529
- if (useScrollbar) {
70530
- var viewInnerEl = $xeTree.$refs.refVirtualBody;
70531
- var scrollObserver = globalResize.create(function () {
70532
- $xeTree.updateScrollbar();
70533
- });
70534
- if (el) {
70535
- scrollObserver.observe(el);
70536
- }
70537
- if (viewInnerEl) {
70538
- scrollObserver.observe(viewInnerEl);
70539
- }
70540
- internalData.scrollObserver = scrollObserver;
70541
- }
70542
70618
  if (autoResize) {
70619
+ var el = $xeTree.$refs.refElem;
70543
70620
  var parentEl = $xeTree.getParentElem();
70544
70621
  var resizeObserver = globalResize.create(function () {
70545
70622
  if (props.autoResize) {
70546
- $xeTree.reFlag++;
70623
+ $xeTree.reLayoutFlag++;
70547
70624
  }
70548
70625
  });
70549
70626
  if (el) {
@@ -70554,9 +70631,10 @@ function tree_createInternalData() {
70554
70631
  }
70555
70632
  internalData.resizeObserver = resizeObserver;
70556
70633
  }
70557
- $xeTree.reFlag++;
70634
+ $xeTree.reLayoutFlag++;
70635
+ $xeTree.bindScrollbarResize();
70558
70636
  globalEvents.on($xeTree, 'resize', function () {
70559
- $xeTree.reFlag++;
70637
+ $xeTree.reLayoutFlag++;
70560
70638
  });
70561
70639
  },
70562
70640
  beforeDestroy: function beforeDestroy() {