vxe-pc-ui 3.19.8 → 3.20.1

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 (97) hide show
  1. package/es/card/src/card.js +18 -3
  2. package/es/icon/style.css +1 -1
  3. package/es/language/fr-FR.js +29 -29
  4. package/es/layout-aside/src/layout-aside.js +8 -5
  5. package/es/layout-body/src/layout-body.js +22 -11
  6. package/es/list/src/list.js +409 -21
  7. package/es/list/style.css +43 -0
  8. package/es/list/style.min.css +1 -1
  9. package/es/scrollbar/src/scrollbar.js +69 -17
  10. package/es/scrollbar/style.css +1 -0
  11. package/es/style.css +1 -1
  12. package/es/style.min.css +1 -1
  13. package/es/tabs/src/tabs.js +19 -3
  14. package/es/tree/src/tree.js +439 -56
  15. package/es/tree/style.css +43 -0
  16. package/es/tree/style.min.css +1 -1
  17. package/es/ui/index.js +1 -1
  18. package/es/ui/src/log.js +1 -1
  19. package/es/ui/src/utils.js +12 -0
  20. package/es/vxe-list/style.css +43 -0
  21. package/es/vxe-list/style.min.css +1 -1
  22. package/es/vxe-scrollbar/style.css +1 -0
  23. package/es/vxe-tree/style.css +43 -0
  24. package/es/vxe-tree/style.min.css +1 -1
  25. package/lib/card/src/card.js +18 -3
  26. package/lib/card/src/card.min.js +1 -1
  27. package/lib/icon/style/style.css +1 -1
  28. package/lib/icon/style/style.min.css +1 -1
  29. package/lib/index.umd.js +956 -126
  30. package/lib/index.umd.min.js +1 -1
  31. package/lib/language/fr-FR.js +29 -29
  32. package/lib/language/fr-FR.min.js +1 -1
  33. package/lib/language/fr-FR.umd.js +29 -29
  34. package/lib/layout-aside/src/layout-aside.js +8 -8
  35. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  36. package/lib/layout-body/src/layout-body.js +26 -19
  37. package/lib/layout-body/src/layout-body.min.js +1 -1
  38. package/lib/list/src/list.js +383 -22
  39. package/lib/list/src/list.min.js +1 -1
  40. package/lib/list/style/style.css +43 -0
  41. package/lib/list/style/style.min.css +1 -1
  42. package/lib/scrollbar/src/scrollbar.js +74 -15
  43. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  44. package/lib/scrollbar/style/style.css +1 -0
  45. package/lib/style.css +1 -1
  46. package/lib/style.min.css +1 -1
  47. package/lib/tabs/src/tabs.js +20 -7
  48. package/lib/tabs/src/tabs.min.js +1 -1
  49. package/lib/tree/src/tree.js +416 -53
  50. package/lib/tree/src/tree.min.js +1 -1
  51. package/lib/tree/style/style.css +43 -0
  52. package/lib/tree/style/style.min.css +1 -1
  53. package/lib/ui/index.js +1 -1
  54. package/lib/ui/index.min.js +1 -1
  55. package/lib/ui/src/log.js +1 -1
  56. package/lib/ui/src/log.min.js +1 -1
  57. package/lib/ui/src/utils.js +14 -0
  58. package/lib/ui/src/utils.min.js +1 -1
  59. package/lib/vxe-list/style/style.css +43 -0
  60. package/lib/vxe-list/style/style.min.css +1 -1
  61. package/lib/vxe-scrollbar/style/style.css +1 -0
  62. package/lib/vxe-tree/style/style.css +43 -0
  63. package/lib/vxe-tree/style/style.min.css +1 -1
  64. package/package.json +1 -1
  65. package/packages/card/src/card.ts +19 -3
  66. package/packages/language/fr-FR.ts +903 -903
  67. package/packages/layout-aside/src/layout-aside.ts +8 -5
  68. package/packages/layout-body/src/layout-body.ts +26 -14
  69. package/packages/list/src/list.ts +444 -25
  70. package/packages/scrollbar/src/scrollbar.ts +79 -17
  71. package/packages/tabs/src/tabs.ts +20 -7
  72. package/packages/tree/src/tree.ts +482 -67
  73. package/packages/ui/src/utils.ts +14 -0
  74. package/styles/components/list.scss +76 -0
  75. package/styles/components/scrollbar.scss +3 -0
  76. package/styles/components/tree.scss +76 -0
  77. package/types/components/card.d.ts +10 -1
  78. package/types/components/layout-aside.d.ts +10 -1
  79. package/types/components/layout-body.d.ts +10 -1
  80. package/types/components/list.d.ts +33 -2
  81. package/types/components/scrollbar.d.ts +16 -2
  82. package/types/components/table-plugins/extend-cell-area.d.ts +1 -1
  83. package/types/components/table.d.ts +71 -4
  84. package/types/components/tabs.d.ts +10 -1
  85. package/types/components/tree.d.ts +33 -2
  86. /package/es/icon/{iconfont.1791862954819.ttf → iconfont.1791950618327.ttf} +0 -0
  87. /package/es/icon/{iconfont.1791862954819.woff → iconfont.1791950618327.woff} +0 -0
  88. /package/es/icon/{iconfont.1791862954819.woff2 → iconfont.1791950618327.woff2} +0 -0
  89. /package/es/{iconfont.1791862954819.ttf → iconfont.1791950618327.ttf} +0 -0
  90. /package/es/{iconfont.1791862954819.woff → iconfont.1791950618327.woff} +0 -0
  91. /package/es/{iconfont.1791862954819.woff2 → iconfont.1791950618327.woff2} +0 -0
  92. /package/lib/icon/style/{iconfont.1791862954819.ttf → iconfont.1791950618327.ttf} +0 -0
  93. /package/lib/icon/style/{iconfont.1791862954819.woff → iconfont.1791950618327.woff} +0 -0
  94. /package/lib/icon/style/{iconfont.1791862954819.woff2 → iconfont.1791950618327.woff2} +0 -0
  95. /package/lib/{iconfont.1791862954819.ttf → iconfont.1791950618327.ttf} +0 -0
  96. /package/lib/{iconfont.1791862954819.woff → iconfont.1791950618327.woff} +0 -0
  97. /package/lib/{iconfont.1791862954819.woff2 → iconfont.1791950618327.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -13347,7 +13347,7 @@ var es_array_filter = __webpack_require__(2008);
13347
13347
 
13348
13348
 
13349
13349
  var log_log = VxeUI.log;
13350
- var uiVersion = "ui v".concat("3.19.8");
13350
+ var uiVersion = "ui v".concat("3.20.1");
13351
13351
  function createComponentLog(name) {
13352
13352
  var tableVersion = VxeUI.tableVersion ? "table v".concat(VxeUI.tableVersion) : '';
13353
13353
  var ganttVersion = VxeUI.ganttVersion ? "gantt v".concat(VxeUI.ganttVersion) : '';
@@ -13367,7 +13367,7 @@ var errLog = log_log.create('error', uiVersion);
13367
13367
 
13368
13368
 
13369
13369
 
13370
- var ui_version = "3.19.8";
13370
+ var ui_version = "3.20.1";
13371
13371
  VxeUI.uiVersion = ui_version;
13372
13372
  VxeUI.dynamicApp = dynamicApp;
13373
13373
  function config(options) {
@@ -16188,6 +16188,15 @@ var Avatar = VxeAvatar;
16188
16188
  function isEnableConf(conf) {
16189
16189
  return conf && conf.enabled !== false;
16190
16190
  }
16191
+ /**
16192
+ * 用于开关类型的配置项
16193
+ * 局部启用规则:conf={}
16194
+ * 局部禁用规则:conf={enabled:false}
16195
+ * 全局默认启用规则:conf.enabled=true
16196
+ */
16197
+ function hasEnableConf(conf, opts) {
16198
+ return opts && (conf ? opts.enabled !== false : opts.enabled);
16199
+ }
16191
16200
  function nextZIndex() {
16192
16201
  return index_esm.getNext();
16193
16202
  }
@@ -16234,6 +16243,9 @@ function enModelValue(nodeid) {
16234
16243
  function deModelValue(nodeid) {
16235
16244
  return nodeid ? decodeURIComponent("".concat(nodeid)) : nodeid;
16236
16245
  }
16246
+ function getDefaultConfig(val1, def1) {
16247
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(val1) ? def1 : val1;
16248
+ }
16237
16249
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.js
16238
16250
  var es_promise = __webpack_require__(3362);
16239
16251
  ;// ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
@@ -20878,6 +20890,7 @@ function getScrollFromDrag(pointerPosition, dragOffset, viewportSize, contentSiz
20878
20890
 
20879
20891
 
20880
20892
 
20893
+
20881
20894
  var scrollbar_getConfig = VxeUI.getConfig,
20882
20895
  scrollbar_createEvent = VxeUI.createEvent,
20883
20896
  scrollbar_domUtils = VxeUI.domUtils,
@@ -20905,6 +20918,7 @@ function scrollbar_createInternalData() {
20905
20918
  name: 'VxeScrollbar',
20906
20919
  props: {
20907
20920
  id: [String, Number],
20921
+ viewId: [String, Number],
20908
20922
  width: [String, Number],
20909
20923
  height: [String, Number],
20910
20924
  minWidth: [String, Number],
@@ -20924,6 +20938,18 @@ function scrollbar_createInternalData() {
20924
20938
  return scrollbar_getConfig().scrollbar.padding;
20925
20939
  }
20926
20940
  },
20941
+ autoHide: {
20942
+ type: Boolean,
20943
+ default: function _default() {
20944
+ return scrollbar_getConfig().scrollbar.autoHide;
20945
+ }
20946
+ },
20947
+ visible: {
20948
+ type: Boolean,
20949
+ default: function _default() {
20950
+ return scrollbar_getConfig().scrollbar.visible;
20951
+ }
20952
+ },
20927
20953
  xConfig: Object,
20928
20954
  yConfig: Object,
20929
20955
  className: {
@@ -20979,6 +21005,8 @@ function scrollbar_createInternalData() {
20979
21005
  maxHeight = props.maxHeight;
20980
21006
  var xOpts = $xeScrollbar.computeXOpts;
20981
21007
  var yOpts = $xeScrollbar.computeYOpts;
21008
+ var barWidth = yOpts.width;
21009
+ var barHeight = xOpts.height;
20982
21010
  var stys = {};
20983
21011
  if (width) {
20984
21012
  stys.width = toCssUnit(width);
@@ -20998,14 +21026,40 @@ function scrollbar_createInternalData() {
20998
21026
  if (maxHeight) {
20999
21027
  stys.maxHeight = toCssUnit(maxHeight);
21000
21028
  }
21001
- if (yOpts.width) {
21002
- stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(yOpts.width);
21003
- }
21004
- if (xOpts.height) {
21005
- stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(xOpts.height);
21029
+ if (barWidth || barHeight) {
21030
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
21031
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
21006
21032
  }
21007
21033
  return stys;
21008
21034
  },
21035
+ computeXVisible: function computeXVisible() {
21036
+ var $xeScrollbar = this;
21037
+ var props = $xeScrollbar;
21038
+ var visible = props.visible;
21039
+ var xOpts = $xeScrollbar.computeXOpts;
21040
+ return getDefaultConfig(xOpts.visible, visible);
21041
+ },
21042
+ computeYVisible: function computeYVisible() {
21043
+ var $xeScrollbar = this;
21044
+ var props = $xeScrollbar;
21045
+ var visible = props.visible;
21046
+ var yOpts = $xeScrollbar.computeYOpts;
21047
+ return getDefaultConfig(yOpts.visible, visible);
21048
+ },
21049
+ computeXAutoHide: function computeXAutoHide() {
21050
+ var $xeScrollbar = this;
21051
+ var props = $xeScrollbar;
21052
+ var autoHide = props.autoHide;
21053
+ var xOpts = $xeScrollbar.computeXOpts;
21054
+ return getDefaultConfig(xOpts.autoHide, autoHide);
21055
+ },
21056
+ computeYAutoHide: function computeYAutoHide() {
21057
+ var $xeScrollbar = this;
21058
+ var props = $xeScrollbar;
21059
+ var autoHide = props.autoHide;
21060
+ var yOpts = $xeScrollbar.computeYOpts;
21061
+ return getDefaultConfig(yOpts.autoHide, autoHide);
21062
+ },
21009
21063
  computeWrapperClss: function computeWrapperClss() {
21010
21064
  var $xeScrollbar = this;
21011
21065
  var props = $xeScrollbar;
@@ -21015,14 +21069,16 @@ function scrollbar_createInternalData() {
21015
21069
  padding = props.padding;
21016
21070
  var yThumbHeight = reactData.yThumbHeight,
21017
21071
  xThumbWidth = reactData.xThumbWidth;
21018
- var xOpts = $xeScrollbar.computeXOpts;
21019
- var yOpts = $xeScrollbar.computeYOpts;
21020
21072
  var xToTop = $xeScrollbar.computeXToTop;
21021
21073
  var yToLeft = $xeScrollbar.computeYToLeft;
21022
- return scrollbar_domUtils.buildClass(['vxe-scrollbar', "ov-x--".concat(xOpts.visible || 'visible'), "ov-y--".concat(yOpts.visible || 'visible'), "sx-pos--".concat(xToTop ? 'top' : 'bottom'), "sy-pos--".concat(yToLeft ? 'left' : 'right'), native ? 'is--native' : 'is--virtual', className], {
21074
+ var xVisible = $xeScrollbar.computeXVisible;
21075
+ var yVisible = $xeScrollbar.computeYVisible;
21076
+ var xAutoHide = $xeScrollbar.computeXAutoHide;
21077
+ var yAutoHide = $xeScrollbar.computeYAutoHide;
21078
+ return scrollbar_domUtils.buildClass(['vxe-scrollbar', "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], {
21023
21079
  'is--padding': padding,
21024
- 'ov-x--auto-hide': xOpts.autoHide,
21025
- 'ov-y--auto-hide': yOpts.autoHide,
21080
+ 'ov-x--auto-hide': xAutoHide,
21081
+ 'ov-y--auto-hide': yAutoHide,
21026
21082
  'overflow-y': yThumbHeight,
21027
21083
  'overflow-x': xThumbWidth
21028
21084
  });
@@ -21397,13 +21453,14 @@ function scrollbar_createInternalData() {
21397
21453
  var id = props.id,
21398
21454
  native = props.native,
21399
21455
  loading = props.loading,
21456
+ viewId = props.viewId,
21400
21457
  viewAttrs = props.viewAttrs;
21401
21458
  var wrapperStyle = $xeScrollbar.computeWrapperStyle;
21402
21459
  var wrapperClss = $xeScrollbar.computeWrapperClss;
21403
21460
  var viewClss = $xeScrollbar.computeViewClss;
21404
21461
  var viewInnerClss = $xeScrollbar.computeViewInnerClss;
21405
- var xOpts = $xeScrollbar.computeXOpts;
21406
- var yOpts = $xeScrollbar.computeYOpts;
21462
+ var xVisible = $xeScrollbar.computeXVisible;
21463
+ var yVisible = $xeScrollbar.computeYVisible;
21407
21464
  var defaultSlot = slots.default;
21408
21465
  return h('div', {
21409
21466
  ref: 'refElem',
@@ -21415,7 +21472,9 @@ function scrollbar_createInternalData() {
21415
21472
  }, [h('div', {
21416
21473
  ref: 'refViewElem',
21417
21474
  class: viewClss,
21418
- attrs: viewAttrs,
21475
+ attrs: _objectSpread2({
21476
+ id: viewId || null
21477
+ }, viewAttrs),
21419
21478
  on: {
21420
21479
  scroll: $xeScrollbar.scrollEvent
21421
21480
  }
@@ -21423,7 +21482,7 @@ function scrollbar_createInternalData() {
21423
21482
  key: 'vi',
21424
21483
  ref: 'refViewInnerElem',
21425
21484
  class: viewInnerClss
21426
- }, defaultSlot ? defaultSlot({}) : [])]), native || xOpts.visible === 'hidden' ? scrollbar_renderEmptyElement($xeScrollbar) : h('div', {
21485
+ }, defaultSlot ? defaultSlot({}) : [])]), native || xVisible === false ? scrollbar_renderEmptyElement($xeScrollbar) : h('div', {
21427
21486
  ref: 'refTrackXElem',
21428
21487
  class: 'vxe-scrollbar--track-x',
21429
21488
  on: {
@@ -21439,7 +21498,7 @@ function scrollbar_createInternalData() {
21439
21498
  pointercancel: $xeScrollbar.cleatPointerThumbEvent,
21440
21499
  lostpointercapture: $xeScrollbar.cleatPointerThumbEvent
21441
21500
  }
21442
- })]), native || yOpts.visible === 'hidden' ? scrollbar_renderEmptyElement($xeScrollbar) : h('div', {
21501
+ })]), native || yVisible === false ? scrollbar_renderEmptyElement($xeScrollbar) : h('div', {
21443
21502
  ref: 'refTrackYElem',
21444
21503
  class: 'vxe-scrollbar--track-y',
21445
21504
  on: {
@@ -21496,6 +21555,18 @@ function scrollbar_createInternalData() {
21496
21555
  var $xeScrollbar = this;
21497
21556
  $xeScrollbar.reFlag++;
21498
21557
  },
21558
+ computeXVisible: function computeXVisible() {
21559
+ var $xeScrollbar = this;
21560
+ $xeScrollbar.$nextTick(function () {
21561
+ $xeScrollbar.reFlag++;
21562
+ });
21563
+ },
21564
+ computeYVisible: function computeYVisible() {
21565
+ var $xeScrollbar = this;
21566
+ $xeScrollbar.$nextTick(function () {
21567
+ $xeScrollbar.reFlag++;
21568
+ });
21569
+ },
21499
21570
  reFlag: function reFlag() {
21500
21571
  var $xeScrollbar = this;
21501
21572
  $xeScrollbar.recalculate().then(function () {
@@ -21653,6 +21724,20 @@ var Scrollbar = VxeScrollbar;
21653
21724
  var $xeCard = this;
21654
21725
  var props = $xeCard;
21655
21726
  return Object.assign({}, getConfig().card.scrollbarConfig, props.scrollbarConfig);
21727
+ },
21728
+ computeScrollbarProps: function computeScrollbarProps() {
21729
+ var $xeCard = this;
21730
+ var scrollbarOpts = $xeCard.computeScrollbarOpts;
21731
+ return {
21732
+ width: scrollbarOpts.width,
21733
+ height: scrollbarOpts.height,
21734
+ autoHide: scrollbarOpts.autoHide,
21735
+ visible: scrollbarOpts.visible,
21736
+ xConfig: scrollbarOpts.xConfig,
21737
+ yConfig: scrollbarOpts.yConfig,
21738
+ className: scrollbarOpts.className,
21739
+ viewAttrs: scrollbarOpts.viewAttrs
21740
+ };
21656
21741
  }
21657
21742
  }),
21658
21743
  methods: {
@@ -21689,6 +21774,7 @@ var Scrollbar = VxeScrollbar;
21689
21774
  var vSize = $xeCard.computeSize;
21690
21775
  var cardStyle = $xeCard.computeCardStyle;
21691
21776
  var scrollbarOpts = $xeCard.computeScrollbarOpts;
21777
+ var scrollbarProps = $xeCard.computeScrollbarProps;
21692
21778
  var viewClassName = scrollbarOpts.viewClassName,
21693
21779
  viewInnerClassName = scrollbarOpts.viewInnerClassName;
21694
21780
  return h('div', {
@@ -21707,7 +21793,7 @@ var Scrollbar = VxeScrollbar;
21707
21793
  class: 'vxe-card--body'
21708
21794
  }, [leftSlot ? useScrollbar ? h(packages_scrollbar, {
21709
21795
  class: 'vxe-card--body-scrollbar-left',
21710
- props: _objectSpread2(_objectSpread2({}, scrollbarOpts), {}, {
21796
+ props: _objectSpread2(_objectSpread2({}, scrollbarProps), {}, {
21711
21797
  viewClassName: 'vxe-card--body-scrollbar-left-view',
21712
21798
  viewInnerClassName: 'vxe-card--body-scrollbar-left-inner'
21713
21799
  }),
@@ -21720,7 +21806,7 @@ var Scrollbar = VxeScrollbar;
21720
21806
  class: 'vxe-card--body-left'
21721
21807
  }, vn_getSlotVNs(leftSlot({}))) : renderEmptyElement($xeCard), useScrollbar ? h(packages_scrollbar, {
21722
21808
  class: 'vxe-card--body-scrollbar-content',
21723
- props: _objectSpread2(_objectSpread2({}, scrollbarOpts), {}, {
21809
+ props: _objectSpread2(_objectSpread2({}, scrollbarProps), {}, {
21724
21810
  viewClassName: 'vxe-card--body-scrollbar-content-view' + (viewClassName ? ' ' + viewClassName : ''),
21725
21811
  viewInnerClassName: 'vxe-card--body-scrollbar-content-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
21726
21812
  }),
@@ -21733,7 +21819,7 @@ var Scrollbar = VxeScrollbar;
21733
21819
  class: 'vxe-card--body-content'
21734
21820
  }, defaultSlot ? vn_getSlotVNs(defaultSlot({})) : []), rightSlot ? useScrollbar ? h(packages_scrollbar, {
21735
21821
  class: 'vxe-card--body-scrollbar-right',
21736
- props: _objectSpread2(_objectSpread2({}, scrollbarOpts), {}, {
21822
+ props: _objectSpread2(_objectSpread2({}, scrollbarProps), {}, {
21737
21823
  viewClassName: 'vxe-card--body-scrollbar-right-view',
21738
21824
  viewInnerClassName: 'vxe-card--body-scrollbar-right-inner'
21739
21825
  }),
@@ -22572,6 +22658,7 @@ function getItemCacheObj(item) {
22572
22658
 
22573
22659
 
22574
22660
 
22661
+
22575
22662
 
22576
22663
 
22577
22664
  var list_createComponentLog = createComponentLog('tree'),
@@ -22607,6 +22694,9 @@ function list_createReactData() {
22607
22694
  updateCheckboxFlag: 1,
22608
22695
  isAllChecked: false,
22609
22696
  isAllIndeterminate: false,
22697
+ // 滚动条
22698
+ yThumbHeight: 0,
22699
+ xThumbWidth: 0,
22610
22700
  insertRowFlag: 1,
22611
22701
  removeRowFlag: 1,
22612
22702
  dragRow: null,
@@ -22616,13 +22706,18 @@ function list_createReactData() {
22616
22706
  }
22617
22707
  function list_createInternalData() {
22618
22708
  return {
22619
- resizeObserver: undefined,
22620
22709
  fullData: [],
22621
22710
  afterList: [],
22622
22711
  fullKeyMaps: {},
22623
22712
  rowMaps: {},
22624
- lastScrollLeft: 0,
22713
+ // 滚动条
22714
+ // resizeObserver: undefined,
22715
+ // isThumbDrag: false,
22716
+ thumbDragOffset: 0,
22717
+ yThumbTop: 0,
22718
+ xThumbLeft: 0,
22625
22719
  lastScrollTop: 0,
22720
+ lastScrollLeft: 0,
22626
22721
  scrollYStore: {
22627
22722
  startIndex: 0,
22628
22723
  endIndex: 0,
@@ -22686,7 +22781,14 @@ function list_createInternalData() {
22686
22781
  dragConfig: Object,
22687
22782
  menuConfig: Object,
22688
22783
  virtualYConfig: Object,
22689
- scrollY: Object
22784
+ scrollY: Object,
22785
+ useScrollbar: {
22786
+ type: Boolean,
22787
+ default: function _default() {
22788
+ return getConfig().list.useScrollbar;
22789
+ }
22790
+ },
22791
+ scrollbarConfig: Object
22690
22792
  },
22691
22793
  data: function data() {
22692
22794
  var xID = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId();
@@ -22755,11 +22857,20 @@ function list_createInternalData() {
22755
22857
  computeWrapperStyles: function computeWrapperStyles() {
22756
22858
  var $xeList = this;
22757
22859
  var rowHeight = $xeList.computeRowHeight;
22758
- var style = {};
22860
+ var scrollbarOpts = $xeList.computeScrollbarOpts;
22861
+ var scrollbarXOpts = $xeList.computeScrollbarXOpts;
22862
+ var scrollbarYOpts = $xeList.computeScrollbarYOpts;
22863
+ var barWidth = getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
22864
+ var barHeight = getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
22865
+ var stys = {};
22759
22866
  if (rowHeight) {
22760
- style['--vxe-ui-list-row-height'] = toCssUnit(rowHeight);
22867
+ stys['--vxe-ui-list-row-height'] = toCssUnit(rowHeight);
22761
22868
  }
22762
- return style;
22869
+ if (barWidth || barHeight) {
22870
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
22871
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
22872
+ }
22873
+ return stys;
22763
22874
  },
22764
22875
  computeVirtualStyles: function computeVirtualStyles() {
22765
22876
  var $xeList = this;
@@ -22779,6 +22890,76 @@ function list_createInternalData() {
22779
22890
  style.maxHeight = toCssUnit(Math.max(20, customMaxHeight - headHeight - footHeight));
22780
22891
  }
22781
22892
  return style;
22893
+ },
22894
+ computeScrollbarOpts: function computeScrollbarOpts() {
22895
+ var $xeList = this;
22896
+ var props = $xeList;
22897
+ return Object.assign({}, getConfig().list.scrollbarConfig, props.scrollbarConfig);
22898
+ },
22899
+ computeScrollbarXOpts: function computeScrollbarXOpts() {
22900
+ var $xeList = this;
22901
+ var scrollbarOpts = $xeList.computeScrollbarOpts;
22902
+ return Object.assign({}, getConfig().scrollbar.xConfig, scrollbarOpts.xConfig);
22903
+ },
22904
+ computeScrollbarYOpts: function computeScrollbarYOpts() {
22905
+ var $xeList = this;
22906
+ var scrollbarOpts = $xeList.computeScrollbarOpts;
22907
+ return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
22908
+ },
22909
+ computeScrollXVisible: function computeScrollXVisible() {
22910
+ var $xeList = this;
22911
+ var scrollbarOpts = $xeList.computeScrollbarOpts;
22912
+ var scrollbarXOpts = $xeList.computeScrollbarXOpts;
22913
+ return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
22914
+ },
22915
+ computeScrollYVisible: function computeScrollYVisible() {
22916
+ var $xeList = this;
22917
+ var scrollbarOpts = $xeList.computeScrollbarOpts;
22918
+ var scrollbarYOpts = $xeList.computeScrollbarYOpts;
22919
+ return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
22920
+ },
22921
+ computeScrollXAutoHide: function computeScrollXAutoHide() {
22922
+ var $xeList = this;
22923
+ var scrollbarOpts = $xeList.computeScrollbarOpts;
22924
+ var scrollbarXOpts = $xeList.computeScrollbarXOpts;
22925
+ return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
22926
+ },
22927
+ computeScrollYAutoHide: function computeScrollYAutoHide() {
22928
+ var $xeList = this;
22929
+ var scrollbarOpts = $xeList.computeScrollbarOpts;
22930
+ var scrollbarYOpts = $xeList.computeScrollbarYOpts;
22931
+ return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
22932
+ },
22933
+ computeScrollbarWrapperClss: function computeScrollbarWrapperClss() {
22934
+ var $xeList = this;
22935
+ var reactData = $xeList.reactData;
22936
+ var scrollbarOpts = $xeList.computeScrollbarOpts;
22937
+ var padding = scrollbarOpts.padding;
22938
+ var yThumbHeight = reactData.yThumbHeight,
22939
+ xThumbWidth = reactData.xThumbWidth;
22940
+ var scrollbarXToTop = $xeList.computeScrollbarXToTop;
22941
+ var scrollbarYToLeft = $xeList.computeScrollbarYToLeft;
22942
+ var scrollXVisible = $xeList.computeScrollXVisible;
22943
+ var scrollYVisible = $xeList.computeScrollYVisible;
22944
+ var scrollXAutoHide = $xeList.computeScrollXAutoHide;
22945
+ var scrollYAutoHide = $xeList.computeScrollYAutoHide;
22946
+ return 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')], {
22947
+ 'is--padding': padding,
22948
+ 'ov-x--auto-hide': scrollXAutoHide,
22949
+ 'ov-y--auto-hide': scrollYAutoHide,
22950
+ 'overflow-y': yThumbHeight,
22951
+ 'overflow-x': xThumbWidth
22952
+ });
22953
+ },
22954
+ computeScrollbarXToTop: function computeScrollbarXToTop() {
22955
+ var $xeList = this;
22956
+ var scrollbarXOpts = $xeList.computeScrollbarXOpts;
22957
+ return scrollbarXOpts.position === 'top';
22958
+ },
22959
+ computeScrollbarYToLeft: function computeScrollbarYToLeft() {
22960
+ var $xeList = this;
22961
+ var scrollbarYOpts = $xeList.computeScrollbarYOpts;
22962
+ return scrollbarYOpts.position === 'left';
22782
22963
  }
22783
22964
  }),
22784
22965
  methods: {
@@ -23117,6 +23298,11 @@ function list_createInternalData() {
23117
23298
  }
23118
23299
  });
23119
23300
  },
23301
+ updateScrollbar: function updateScrollbar() {
23302
+ var $xeList = this;
23303
+ $xeList.updateThumbSize();
23304
+ $xeList.updateThumbOffset();
23305
+ },
23120
23306
  /**
23121
23307
  * 重新计算列表
23122
23308
  */
@@ -23136,6 +23322,7 @@ function list_createInternalData() {
23136
23322
  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));
23137
23323
  }
23138
23324
  reactData.parentHeight = parentHeight;
23325
+ $xeList.updateScrollbar();
23139
23326
  $xeList.updateHeight();
23140
23327
  if (el.clientWidth && el.clientHeight) {
23141
23328
  return $xeList.computeScrollLoad();
@@ -23174,6 +23361,7 @@ function list_createInternalData() {
23174
23361
  var scrollLeft = scrollBodyElem.scrollLeft;
23175
23362
  var isX = scrollLeft !== internalData.lastScrollLeft;
23176
23363
  var isY = scrollTop !== internalData.lastScrollTop;
23364
+ $xeList.updateThumbOffset();
23177
23365
  internalData.lastScrollTop = scrollTop;
23178
23366
  internalData.lastScrollLeft = scrollLeft;
23179
23367
  if (reactData.scrollYLoad) {
@@ -24533,6 +24721,189 @@ function list_createInternalData() {
24533
24721
  row: row
24534
24722
  }, evnt);
24535
24723
  },
24724
+ // 滚动条
24725
+ updateThumbSize: function updateThumbSize() {
24726
+ var $xeList = this;
24727
+ var reactData = $xeList.reactData;
24728
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24729
+ if (!viewEl) {
24730
+ return;
24731
+ }
24732
+ if (!viewEl.clientHeight || !viewEl.clientHeight) {
24733
+ return;
24734
+ }
24735
+ var trackXEl = $xeList.$refs.refTrackXElem;
24736
+ var xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
24737
+ var thumbXElem = $xeList.$refs.refThumbXElem;
24738
+ if (thumbXElem) {
24739
+ thumbXElem.style.width = xThumbWidth + 'px';
24740
+ }
24741
+ reactData.xThumbWidth = xThumbWidth;
24742
+ var trackYEl = $xeList.$refs.refTrackYElem;
24743
+ var yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
24744
+ var thumbYElem = $xeList.$refs.refThumbYElem;
24745
+ if (thumbYElem) {
24746
+ thumbYElem.style.height = yThumbHeight + 'px';
24747
+ }
24748
+ reactData.yThumbHeight = yThumbHeight;
24749
+ },
24750
+ updateThumbOffset: function updateThumbOffset() {
24751
+ var $xeList = this;
24752
+ var reactData = $xeList.reactData;
24753
+ var internalData = $xeList.internalData;
24754
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24755
+ if (!viewEl) {
24756
+ return;
24757
+ }
24758
+ if (!viewEl.clientHeight || !viewEl.clientHeight) {
24759
+ return;
24760
+ }
24761
+ var xThumbWidth = reactData.xThumbWidth,
24762
+ yThumbHeight = reactData.yThumbHeight;
24763
+ var trackXEl = $xeList.$refs.refTrackXElem;
24764
+ var thumbXElem = $xeList.$refs.refThumbXElem;
24765
+ var xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
24766
+ internalData.xThumbLeft = xThumbLeft;
24767
+ if (thumbXElem && xThumbWidth) {
24768
+ thumbXElem.style.width = xThumbWidth + 'px';
24769
+ thumbXElem.style.transform = "translateX(".concat(xThumbLeft, "px)");
24770
+ }
24771
+ var trackYEl = $xeList.$refs.refTrackYElem;
24772
+ var thumbYElem = $xeList.$refs.refThumbYElem;
24773
+ var yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
24774
+ internalData.yThumbTop = yThumbTop;
24775
+ if (thumbYElem && yThumbHeight) {
24776
+ thumbYElem.style.height = yThumbHeight + 'px';
24777
+ thumbYElem.style.transform = "translateY(".concat(yThumbTop, "px)");
24778
+ }
24779
+ },
24780
+ clickTrackXEvent: function clickTrackXEvent(evnt) {
24781
+ var $xeList = this;
24782
+ var reactData = $xeList.reactData;
24783
+ var trackEl = evnt.currentTarget;
24784
+ if (trackEl !== evnt.target) {
24785
+ return;
24786
+ }
24787
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24788
+ if (!viewEl) {
24789
+ return;
24790
+ }
24791
+ var xThumbWidth = reactData.xThumbWidth;
24792
+ var trackRect = trackEl.getBoundingClientRect();
24793
+ viewEl.scrollTo({
24794
+ left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
24795
+ behavior: 'auto'
24796
+ });
24797
+ },
24798
+ clickTrackYEvent: function clickTrackYEvent(evnt) {
24799
+ var $xeList = this;
24800
+ var reactData = $xeList.reactData;
24801
+ var trackEl = evnt.currentTarget;
24802
+ if (trackEl !== evnt.target) {
24803
+ return;
24804
+ }
24805
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24806
+ if (!viewEl) {
24807
+ return;
24808
+ }
24809
+ var yThumbHeight = reactData.yThumbHeight;
24810
+ var trackRect = trackEl.getBoundingClientRect();
24811
+ viewEl.scrollTo({
24812
+ top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
24813
+ behavior: 'auto'
24814
+ });
24815
+ },
24816
+ pointerdownThumbXEvent: function pointerdownThumbXEvent(evnt) {
24817
+ var $xeList = this;
24818
+ var reactData = $xeList.reactData;
24819
+ var internalData = $xeList.internalData;
24820
+ var thumbEl = evnt.currentTarget;
24821
+ internalData.isThumbDrag = true;
24822
+ thumbEl.setPointerCapture(evnt.pointerId);
24823
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24824
+ if (!viewEl) {
24825
+ return;
24826
+ }
24827
+ var xThumbWidth = reactData.xThumbWidth;
24828
+ var trackEl = thumbEl.parentElement;
24829
+ var trackRect = trackEl.getBoundingClientRect();
24830
+ var pointerPosition = evnt.clientX - trackRect.left;
24831
+ // 记录 thumb 的偏移
24832
+ var thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
24833
+ internalData.thumbDragOffset = pointerPosition - thumbOffset;
24834
+ },
24835
+ pointermoveThumbXEvent: function pointermoveThumbXEvent(evnt) {
24836
+ var $xeList = this;
24837
+ var reactData = $xeList.reactData;
24838
+ var internalData = $xeList.internalData;
24839
+ var thumbEl = evnt.currentTarget;
24840
+ if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
24841
+ return;
24842
+ }
24843
+ var isThumbDrag = internalData.isThumbDrag,
24844
+ thumbDragOffset = internalData.thumbDragOffset;
24845
+ if (isThumbDrag) {
24846
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24847
+ if (!viewEl) {
24848
+ return;
24849
+ }
24850
+ var xThumbWidth = reactData.xThumbWidth;
24851
+ var _thumbEl = evnt.currentTarget;
24852
+ var trackEl = _thumbEl.parentElement;
24853
+ var trackRect = trackEl.getBoundingClientRect();
24854
+ // 更新偏移
24855
+ viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
24856
+ }
24857
+ },
24858
+ cleatPointerThumbEvent: function cleatPointerThumbEvent(evnt) {
24859
+ var $xeList = this;
24860
+ var internalData = $xeList.internalData;
24861
+ var thumbEl = evnt.currentTarget;
24862
+ thumbEl.releasePointerCapture(evnt.pointerId);
24863
+ internalData.isThumbDrag = false;
24864
+ },
24865
+ pointerdownThumbYEvent: function pointerdownThumbYEvent(evnt) {
24866
+ var $xeList = this;
24867
+ var reactData = $xeList.reactData;
24868
+ var internalData = $xeList.internalData;
24869
+ var thumbEl = evnt.currentTarget;
24870
+ internalData.isThumbDrag = true;
24871
+ thumbEl.setPointerCapture(evnt.pointerId);
24872
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24873
+ if (!viewEl) {
24874
+ return;
24875
+ }
24876
+ var yThumbHeight = reactData.yThumbHeight;
24877
+ var trackEl = thumbEl.parentElement;
24878
+ var trackRect = trackEl.getBoundingClientRect();
24879
+ var pointerPosition = evnt.clientY - trackRect.top;
24880
+ // 记录 thumb 的偏移
24881
+ var thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
24882
+ internalData.thumbDragOffset = pointerPosition - thumbOffset;
24883
+ },
24884
+ pointermoveThumbYEvent: function pointermoveThumbYEvent(evnt) {
24885
+ var $xeList = this;
24886
+ var reactData = $xeList.reactData;
24887
+ var internalData = $xeList.internalData;
24888
+ var thumbEl = evnt.currentTarget;
24889
+ if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
24890
+ return;
24891
+ }
24892
+ var isThumbDrag = internalData.isThumbDrag,
24893
+ thumbDragOffset = internalData.thumbDragOffset;
24894
+ if (isThumbDrag) {
24895
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24896
+ if (!viewEl) {
24897
+ return;
24898
+ }
24899
+ var yThumbHeight = reactData.yThumbHeight;
24900
+ var _thumbEl2 = evnt.currentTarget;
24901
+ var trackEl = _thumbEl2.parentElement;
24902
+ var trackRect = trackEl.getBoundingClientRect();
24903
+ // 更新偏移
24904
+ viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
24905
+ }
24906
+ },
24536
24907
  //
24537
24908
  // Render
24538
24909
  //
@@ -24769,12 +25140,15 @@ function list_createInternalData() {
24769
25140
  var slots = $xeList.$scopedSlots;
24770
25141
  var showCheckbox = props.showCheckbox,
24771
25142
  className = props.className,
24772
- loading = props.loading;
25143
+ loading = props.loading,
25144
+ useScrollbar = props.useScrollbar;
24773
25145
  var bodyHeight = reactData.bodyHeight,
24774
25146
  topSpaceHeight = reactData.topSpaceHeight,
24775
25147
  rowList = reactData.rowList,
24776
25148
  isAllChecked = reactData.isAllChecked,
24777
- isAllIndeterminate = reactData.isAllIndeterminate;
25149
+ isAllIndeterminate = reactData.isAllIndeterminate,
25150
+ xThumbWidth = reactData.xThumbWidth,
25151
+ yThumbHeight = reactData.yThumbHeight;
24778
25152
  var defaultSlot = slots.default;
24779
25153
  var headerSlot = slots.header;
24780
25154
  var footerSlot = slots.footer;
@@ -24789,6 +25163,15 @@ function list_createInternalData() {
24789
25163
  var rowOpts = $xeList.computeRowOpts;
24790
25164
  var isHover = rowOpts.isHover,
24791
25165
  padding = rowOpts.padding;
25166
+ var isDrag = $xeList.computeIsDrag;
25167
+ var scrollbarOpts = $xeList.computeScrollbarOpts;
25168
+ var scrollXVisible = $xeList.computeScrollXVisible;
25169
+ var scrollYVisible = $xeList.computeScrollYVisible;
25170
+ var scrollbarXToTop = $xeList.computeScrollbarXToTop;
25171
+ var scrollbarYToLeft = $xeList.computeScrollbarYToLeft;
25172
+ var scrollXAutoHide = $xeList.computeScrollXAutoHide;
25173
+ var scrollYAutoHide = $xeList.computeScrollYAutoHide;
25174
+ var scrollbarWrapperClss = $xeList.computeScrollbarWrapperClss;
24792
25175
  var showDefChekboxHead = showCheckbox && checkboxOpts.showHeader !== false;
24793
25176
  var leOns = {};
24794
25177
  if (isCrossListDrag && !rowList.length) {
@@ -24796,9 +25179,9 @@ function list_createInternalData() {
24796
25179
  }
24797
25180
  return h('div', {
24798
25181
  ref: 'refElem',
24799
- class: ['vxe-list', className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className({
25182
+ 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({
24800
25183
  $list: $xeList
24801
- }) : className : '', _defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--loading', loading)],
25184
+ }) : 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)],
24802
25185
  on: leOns,
24803
25186
  style: wrapperStyles
24804
25187
  }, [headerSlot || showDefChekboxHead ? h('div', {
@@ -24857,6 +25240,44 @@ function list_createInternalData() {
24857
25240
  items: rowList,
24858
25241
  $list: $xeList
24859
25242
  })) : renderEmptyElement($xeList),
25243
+ /**
25244
+ * 滚动条
25245
+ */
25246
+ useScrollbar ? h('div', {
25247
+ class: scrollbarWrapperClss
25248
+ }, [scrollXVisible === false ? renderEmptyElement($xeList) : h('div', {
25249
+ ref: 'refTrackXElem',
25250
+ class: 'vxe-scrollbar--track-x',
25251
+ on: {
25252
+ click: $xeList.clickTrackXEvent
25253
+ }
25254
+ }, [h('div', {
25255
+ ref: 'refThumbXElem',
25256
+ class: 'vxe-scrollbar--thumb-x',
25257
+ on: {
25258
+ pointerdown: $xeList.pointerdownThumbXEvent,
25259
+ pointermove: $xeList.pointermoveThumbXEvent,
25260
+ pointerup: $xeList.cleatPointerThumbEvent,
25261
+ pointercancel: $xeList.cleatPointerThumbEvent,
25262
+ lostpointercapture: $xeList.cleatPointerThumbEvent
25263
+ }
25264
+ })]), scrollYVisible === false ? renderEmptyElement($xeList) : h('div', {
25265
+ ref: 'refTrackYElem',
25266
+ class: 'vxe-scrollbar--track-y',
25267
+ on: {
25268
+ click: $xeList.clickTrackYEvent
25269
+ }
25270
+ }, [h('div', {
25271
+ ref: 'refThumbYElem',
25272
+ class: 'vxe-scrollbar--thumb-y',
25273
+ on: {
25274
+ pointerdown: $xeList.pointerdownThumbYEvent,
25275
+ pointermove: $xeList.pointermoveThumbYEvent,
25276
+ pointerup: $xeList.cleatPointerThumbEvent,
25277
+ pointercancel: $xeList.cleatPointerThumbEvent,
25278
+ lostpointercapture: $xeList.cleatPointerThumbEvent
25279
+ }
25280
+ })])]) : renderEmptyElement($xeList),
24860
25281
  /**
24861
25282
  * 拖拽提示
24862
25283
  */
@@ -24890,13 +25311,29 @@ function list_createInternalData() {
24890
25311
  var $xeList = this;
24891
25312
  $xeList.reFlag++;
24892
25313
  },
25314
+ useScrollbar: function useScrollbar() {
25315
+ var $xeList = this;
25316
+ $xeList.reFlag++;
25317
+ },
24893
25318
  computeRowHeight: function computeRowHeight() {
24894
25319
  var $xeList = this;
24895
25320
  $xeList.reFlag++;
24896
25321
  },
24897
- reFlag: function reFlag() {
25322
+ computeScrollXVisible: function computeScrollXVisible() {
25323
+ var $xeList = this;
25324
+ $xeList.$nextTick(function () {
25325
+ $xeList.reFlag++;
25326
+ });
25327
+ },
25328
+ computeScrollYVisible: function computeScrollYVisible() {
24898
25329
  var $xeList = this;
24899
25330
  $xeList.$nextTick(function () {
25331
+ $xeList.reFlag++;
25332
+ });
25333
+ },
25334
+ reFlag: function reFlag() {
25335
+ var $xeList = this;
25336
+ $xeList.recalculate().then(function () {
24900
25337
  $xeList.recalculate();
24901
25338
  });
24902
25339
  },
@@ -24922,7 +25359,9 @@ function list_createInternalData() {
24922
25359
  var internalData = $xeList.internalData;
24923
25360
  var showSeq = props.showSeq,
24924
25361
  showRadio = props.showRadio,
24925
- showCheckbox = props.showCheckbox;
25362
+ showCheckbox = props.showCheckbox,
25363
+ autoResize = props.autoResize,
25364
+ useScrollbar = props.useScrollbar;
24926
25365
  var rowOpts = $xeList.computeRowOpts;
24927
25366
  var useKey = rowOpts.useKey,
24928
25367
  keyField = rowOpts.keyField;
@@ -24944,24 +25383,32 @@ function list_createInternalData() {
24944
25383
  if (useKey && !keyField) {
24945
25384
  list_errLog('vxe.error.reqSupportProp', ['row-config.useKey', 'row-config.keyField']);
24946
25385
  }
24947
- if (props.autoResize) {
25386
+ if (useScrollbar || autoResize) {
24948
25387
  var el = $xeList.$refs.refElem;
25388
+ var viewInnerEl = $xeList.$refs.refVirtualBody;
24949
25389
  var resizeObserver = globalResize.create(function () {
24950
- return $xeList.recalculate();
25390
+ $xeList.reFlag++;
24951
25391
  });
24952
- resizeObserver.observe(el);
24953
25392
  if (el) {
24954
- resizeObserver.observe(el.parentElement);
25393
+ resizeObserver.observe(el);
25394
+ if (autoResize) {
25395
+ resizeObserver.observe(el.parentElement);
25396
+ }
25397
+ }
25398
+ if (viewInnerEl) {
25399
+ resizeObserver.observe(viewInnerEl);
24955
25400
  }
24956
25401
  internalData.resizeObserver = resizeObserver;
24957
25402
  }
24958
- $xeList.recalculate();
24959
- globalEvents.on($xeList, 'resize', $xeList.recalculate);
25403
+ $xeList.reFlag++;
25404
+ globalEvents.on($xeList, 'resize', function () {
25405
+ $xeList.reFlag++;
25406
+ });
24960
25407
  },
24961
25408
  activated: function activated() {
24962
25409
  var $xeList = this;
24963
25410
  $xeList.recalculate().then(function () {
24964
- return $xeList.refreshScroll();
25411
+ $xeList.refreshScroll();
24965
25412
  });
24966
25413
  },
24967
25414
  beforeDestroy: function beforeDestroy() {
@@ -48550,10 +48997,7 @@ var ImagePreview = VxeImagePreview;
48550
48997
  var vSize = $xeLayoutAside.computeSize;
48551
48998
  var collapseOpts = $xeLayoutAside.computeCollapseOpts;
48552
48999
  var scrollbarOpts = $xeLayoutAside.computeScrollbarOpts;
48553
- var native = scrollbarOpts.native,
48554
- yConfig = scrollbarOpts.yConfig,
48555
- className = scrollbarOpts.className,
48556
- viewAttrs = scrollbarOpts.viewAttrs,
49000
+ var className = scrollbarOpts.className,
48557
49001
  viewClassName = scrollbarOpts.viewClassName,
48558
49002
  viewInnerClassName = scrollbarOpts.viewInnerClassName;
48559
49003
  var defaultSlot = slots.default;
@@ -48562,13 +49006,16 @@ var ImagePreview = VxeImagePreview;
48562
49006
  style: varStyle
48563
49007
  }, [useScrollbar ? h(packages_scrollbar, {
48564
49008
  props: {
48565
- native: native,
49009
+ width: scrollbarOpts.width,
49010
+ height: scrollbarOpts.height,
49011
+ autoHide: scrollbarOpts.autoHide,
49012
+ visible: scrollbarOpts.visible,
48566
49013
  xConfig: {
48567
- visible: 'hidden'
49014
+ visible: false
48568
49015
  },
48569
- yConfig: yConfig,
49016
+ yConfig: scrollbarOpts.yConfig,
48570
49017
  className: 'vxe-layout-aside--scrollbar' + (className ? ' ' + className : ''),
48571
- viewAttrs: viewAttrs,
49018
+ viewAttrs: scrollbarOpts.viewAttrs,
48572
49019
  viewClassName: 'vxe-layout-aside--scrollbar-view' + (viewClassName ? ' ' + viewClassName : ''),
48573
49020
  viewInnerClassName: 'vxe-layout-aside--scrollbar-inner' + (viewInnerClassName ? ' ' + viewInnerClassName : '')
48574
49021
  },
@@ -48676,6 +49123,30 @@ function layout_body_createReactData() {
48676
49123
  var $xeLayoutBody = this;
48677
49124
  var props = $xeLayoutBody;
48678
49125
  return Object.assign({}, getConfig().layoutBody.scrollbarConfig, props.scrollbarConfig);
49126
+ },
49127
+ computeScrollbarProps: function computeScrollbarProps() {
49128
+ var $xeLayoutBody = this;
49129
+ var props = $xeLayoutBody;
49130
+ var backtopId = $xeLayoutBody.backtopId;
49131
+ var showBacktop = props.showBacktop;
49132
+ var scrollbarOpts = $xeLayoutBody.computeScrollbarOpts;
49133
+ var className = scrollbarOpts.className,
49134
+ viewClassName = scrollbarOpts.viewClassName,
49135
+ viewInnerClassName = scrollbarOpts.viewInnerClassName;
49136
+ return {
49137
+ width: scrollbarOpts.width,
49138
+ height: scrollbarOpts.height,
49139
+ autoHide: scrollbarOpts.autoHide,
49140
+ visible: scrollbarOpts.visible,
49141
+ xConfig: scrollbarOpts.xConfig,
49142
+ yConfig: scrollbarOpts.yConfig,
49143
+ className: 'vxe-layout-body--scrollbar' + (className ? ' ' + className : ''),
49144
+ viewAttrs: _objectSpread2(_objectSpread2({}, scrollbarOpts.viewAttrs), {}, {
49145
+ id: showBacktop ? backtopId || null : null
49146
+ }),
49147
+ viewClassName: 'vxe-layout-body--scrollbar-view' + (viewClassName ? ' ' + viewClassName : ''),
49148
+ viewInnerClassName: 'vxe-layout-body--scrollbar-inner' + (viewInnerClassName ? ' ' + viewInnerClassName : '')
49149
+ };
48679
49150
  }
48680
49151
  }),
48681
49152
  methods: {
@@ -48701,14 +49172,7 @@ function layout_body_createReactData() {
48701
49172
  showBacktop = props.showBacktop,
48702
49173
  useScrollbar = props.useScrollbar;
48703
49174
  var backtopOpts = $xeLayoutBody.computeBacktopOpts;
48704
- var scrollbarOpts = $xeLayoutBody.computeScrollbarOpts;
48705
- var native = scrollbarOpts.native,
48706
- xConfig = scrollbarOpts.xConfig,
48707
- yConfig = scrollbarOpts.yConfig,
48708
- className = scrollbarOpts.className,
48709
- viewAttrs = scrollbarOpts.viewAttrs,
48710
- viewClassName = scrollbarOpts.viewClassName,
48711
- viewInnerClassName = scrollbarOpts.viewInnerClassName;
49175
+ var scrollbarProps = $xeLayoutBody.computeScrollbarProps;
48712
49176
  var vSize = $xeLayoutBody.computeSize;
48713
49177
  var defaultSlot = slots.default;
48714
49178
  var backtopSlot = slots.backtop;
@@ -48727,17 +49191,7 @@ function layout_body_createReactData() {
48727
49191
  return h('div', {
48728
49192
  class: ['vxe-layout-body', _defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--loading', loading), 'is--padding', padding)]
48729
49193
  }, [useScrollbar ? h(packages_scrollbar, {
48730
- props: {
48731
- native: native,
48732
- xConfig: xConfig,
48733
- yConfig: yConfig,
48734
- className: 'vxe-layout-body--scrollbar' + (className ? ' ' + className : ''),
48735
- viewAttrs: _objectSpread2(_objectSpread2({}, viewAttrs), {}, {
48736
- id: showBacktop ? backtopId || null : null
48737
- }),
48738
- viewClassName: 'vxe-layout-body--scrollbar-view' + (viewClassName ? ' ' + viewClassName : ''),
48739
- viewInnerClassName: 'vxe-layout-body--scrollbar-inner' + (viewInnerClassName ? ' ' + viewInnerClassName : '')
48740
- },
49194
+ props: scrollbarProps,
48741
49195
  scopedSlots: {
48742
49196
  default: function _default() {
48743
49197
  return defaultSlot ? defaultSlot({}) : [];
@@ -62774,6 +63228,24 @@ var scrollbarOffsetSize = 20;
62774
63228
  var $xeTabs = this;
62775
63229
  var props = $xeTabs;
62776
63230
  return Object.assign({}, getConfig().tabs.scrollbarConfig, props.scrollbarConfig);
63231
+ },
63232
+ computeScrollbarProps: function computeScrollbarProps() {
63233
+ var $xeTabs = this;
63234
+ var scrollbarOpts = $xeTabs.computeScrollbarOpts;
63235
+ var viewClassName = scrollbarOpts.viewClassName,
63236
+ viewInnerClassName = scrollbarOpts.viewInnerClassName;
63237
+ return {
63238
+ width: scrollbarOpts.width,
63239
+ height: scrollbarOpts.height,
63240
+ autoHide: scrollbarOpts.autoHide,
63241
+ visible: scrollbarOpts.visible,
63242
+ xConfig: scrollbarOpts.xConfig,
63243
+ yConfig: scrollbarOpts.yConfig,
63244
+ className: scrollbarOpts.className,
63245
+ viewAttrs: scrollbarOpts.viewAttrs,
63246
+ viewClassName: 'vxe-tabs-pane--scrollbar-item-view' + (viewClassName ? ' ' + viewClassName : ''),
63247
+ viewInnerClassName: 'vxe-tabs-pane--scrollbar-item-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
63248
+ };
62777
63249
  }
62778
63250
  }),
62779
63251
  methods: {
@@ -63457,19 +63929,14 @@ var scrollbarOffsetSize = 20;
63457
63929
  var name = item.name,
63458
63930
  slots = item.slots;
63459
63931
  var defaultSlot = slots ? slots.default : null;
63460
- var scrollbarOpts = $xeTabs.computeScrollbarOpts;
63461
- var viewClassName = scrollbarOpts.viewClassName,
63462
- viewInnerClassName = scrollbarOpts.viewInnerClassName;
63932
+ var scrollbarProps = $xeTabs.computeScrollbarProps;
63463
63933
  if (name && initNames.includes(name)) {
63464
63934
  return useScrollbar ? h(packages_scrollbar, {
63465
63935
  key: "".concat(name),
63466
63936
  class: ['vxe-tabs-pane--scrollbar-item', {
63467
63937
  'is--visible': activeName === name
63468
63938
  }],
63469
- props: _objectSpread2(_objectSpread2({}, scrollbarOpts), {}, {
63470
- viewClassName: 'vxe-tabs-pane--scrollbar-item-view' + (viewClassName ? ' ' + viewClassName : ''),
63471
- viewInnerClassName: 'vxe-tabs-pane--scrollbar-item-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
63472
- }),
63939
+ props: scrollbarProps,
63473
63940
  scopedSlots: {
63474
63941
  default: function _default() {
63475
63942
  return defaultSlot ? $xeTabs.callSlot(defaultSlot, {
@@ -65169,6 +65636,7 @@ function getCrossTreeDragNodeInfo($xeTree) {
65169
65636
 
65170
65637
 
65171
65638
 
65639
+
65172
65640
 
65173
65641
 
65174
65642
  var tree_createComponentLog = createComponentLog('tree'),
@@ -65666,6 +66134,34 @@ function insertTreeNode($xeTree, newRecords, isAppend) {
65666
66134
  nodeMaps[nodeid] = itemRest;
65667
66135
  });
65668
66136
  }
66137
+ function tree_createReactData() {
66138
+ return {
66139
+ parentHeight: 0,
66140
+ customHeight: 0,
66141
+ customMinHeight: 0,
66142
+ customMaxHeight: 0,
66143
+ currentNode: null,
66144
+ scrollYLoad: false,
66145
+ bodyHeight: 0,
66146
+ topSpaceHeight: 0,
66147
+ selectRadioKey: null,
66148
+ treeList: [],
66149
+ updateExpandedFlag: 1,
66150
+ updateCheckboxFlag: 1,
66151
+ // 滚动条
66152
+ yThumbHeight: 0,
66153
+ xThumbWidth: 0,
66154
+ insertNodeFlag: 1,
66155
+ removeNodeFlag: 1,
66156
+ dragNode: null,
66157
+ dragTipText: '',
66158
+ isCrossDragNode: false,
66159
+ tooltipStore: {
66160
+ visible: false,
66161
+ node: null
66162
+ }
66163
+ };
66164
+ }
65669
66165
  function tree_createInternalData() {
65670
66166
  return {
65671
66167
  // initialized: false,
@@ -65678,8 +66174,14 @@ function tree_createInternalData() {
65678
66174
  indeterminateNodeMaps: {},
65679
66175
  treeExpandedMaps: {},
65680
66176
  treeExpandLazyLoadedMaps: {},
65681
- lastScrollLeft: 0,
66177
+ // 滚动条
66178
+ // resizeObserver: undefined,
66179
+ // isThumbDrag: false,
66180
+ thumbDragOffset: 0,
66181
+ yThumbTop: 0,
66182
+ xThumbLeft: 0,
65682
66183
  lastScrollTop: 0,
66184
+ lastScrollLeft: 0,
65683
66185
  scrollYStore: {
65684
66186
  startIndex: 0,
65685
66187
  endIndex: 0,
@@ -65696,31 +66198,6 @@ function tree_createInternalData() {
65696
66198
  // hpTimeout: undefined
65697
66199
  };
65698
66200
  }
65699
- function tree_createReactData() {
65700
- return {
65701
- parentHeight: 0,
65702
- customHeight: 0,
65703
- customMinHeight: 0,
65704
- customMaxHeight: 0,
65705
- currentNode: null,
65706
- scrollYLoad: false,
65707
- bodyHeight: 0,
65708
- topSpaceHeight: 0,
65709
- selectRadioKey: null,
65710
- treeList: [],
65711
- updateExpandedFlag: 1,
65712
- updateCheckboxFlag: 1,
65713
- insertNodeFlag: 1,
65714
- removeNodeFlag: 1,
65715
- dragNode: null,
65716
- dragTipText: '',
65717
- isCrossDragNode: false,
65718
- tooltipStore: {
65719
- visible: false,
65720
- node: null
65721
- }
65722
- };
65723
- }
65724
66201
  /* harmony default export */ var tree = (/* define-vxe-component start */defineVxeComponent({
65725
66202
  name: 'VxeTree',
65726
66203
  mixins: [globalMixins.sizeMixin],
@@ -65899,7 +66376,14 @@ function tree_createReactData() {
65899
66376
  return tree_getConfig().tree.size || tree_getConfig().size;
65900
66377
  }
65901
66378
  },
65902
- virtualYConfig: Object
66379
+ virtualYConfig: Object,
66380
+ useScrollbar: {
66381
+ type: Boolean,
66382
+ default: function _default() {
66383
+ return tree_getConfig().tree.useScrollbar;
66384
+ }
66385
+ },
66386
+ scrollbarConfig: Object
65903
66387
  },
65904
66388
  provide: function provide() {
65905
66389
  var $xeTree = this;
@@ -65914,7 +66398,7 @@ function tree_createReactData() {
65914
66398
  xID: xID,
65915
66399
  reactData: reactData,
65916
66400
  crossTreeDragNodeInfo: crossTreeDragNodeGlobal,
65917
- hFlag: 0,
66401
+ reFlag: 0,
65918
66402
  dataFlag: 0
65919
66403
  });
65920
66404
  },
@@ -66019,6 +66503,20 @@ function tree_createReactData() {
66019
66503
  var props = $xeTree;
66020
66504
  return Object.assign({}, tree_getConfig().tree.menuConfig, props.menuConfig);
66021
66505
  },
66506
+ computeWrapperStyles: function computeWrapperStyles() {
66507
+ var $xeTree = this;
66508
+ var scrollbarOpts = $xeTree.computeScrollbarOpts;
66509
+ var scrollbarXOpts = $xeTree.computeScrollbarXOpts;
66510
+ var scrollbarYOpts = $xeTree.computeScrollbarYOpts;
66511
+ var barWidth = getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), tree_getConfig().scrollbar.width);
66512
+ var barHeight = getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), tree_getConfig().scrollbar.height);
66513
+ var stys = {};
66514
+ if (barWidth || barHeight) {
66515
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
66516
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
66517
+ }
66518
+ return stys;
66519
+ },
66022
66520
  computeTreeStyle: function computeTreeStyle() {
66023
66521
  var $xeTree = this;
66024
66522
  var props = $xeTree;
@@ -66058,6 +66556,78 @@ function tree_createReactData() {
66058
66556
  var $xeTree = this;
66059
66557
  var props = $xeTree;
66060
66558
  return Object.assign({}, tree_getConfig().tree.filterConfig, props.filterConfig);
66559
+ },
66560
+ computeScrollbarOpts: function computeScrollbarOpts() {
66561
+ var $xeTree = this;
66562
+ var props = $xeTree;
66563
+ return Object.assign({}, tree_getConfig().tree.scrollbarConfig, props.scrollbarConfig);
66564
+ },
66565
+ computeScrollbarXOpts: function computeScrollbarXOpts() {
66566
+ var $xeTree = this;
66567
+ var scrollbarOpts = $xeTree.computeScrollbarOpts;
66568
+ return Object.assign({}, tree_getConfig().scrollbar.xConfig, scrollbarOpts.xConfig, {
66569
+ visible: false
66570
+ });
66571
+ },
66572
+ computeScrollbarYOpts: function computeScrollbarYOpts() {
66573
+ var $xeTree = this;
66574
+ var scrollbarOpts = $xeTree.computeScrollbarOpts;
66575
+ return Object.assign({}, tree_getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
66576
+ },
66577
+ computeScrollXVisible: function computeScrollXVisible() {
66578
+ var $xeTree = this;
66579
+ var scrollbarOpts = $xeTree.computeScrollbarOpts;
66580
+ var scrollbarXOpts = $xeTree.computeScrollbarXOpts;
66581
+ return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
66582
+ },
66583
+ computeScrollYVisible: function computeScrollYVisible() {
66584
+ var $xeTree = this;
66585
+ var scrollbarOpts = $xeTree.computeScrollbarOpts;
66586
+ var scrollbarYOpts = $xeTree.computeScrollbarYOpts;
66587
+ return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
66588
+ },
66589
+ computeScrollXAutoHide: function computeScrollXAutoHide() {
66590
+ var $xeTree = this;
66591
+ var scrollbarOpts = $xeTree.computeScrollbarOpts;
66592
+ var scrollbarXOpts = $xeTree.computeScrollbarXOpts;
66593
+ return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), tree_getConfig().scrollbar.autoHide);
66594
+ },
66595
+ computeScrollYAutoHide: function computeScrollYAutoHide() {
66596
+ var $xeTree = this;
66597
+ var scrollbarOpts = $xeTree.computeScrollbarOpts;
66598
+ var scrollbarYOpts = $xeTree.computeScrollbarYOpts;
66599
+ return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), tree_getConfig().scrollbar.autoHide);
66600
+ },
66601
+ computeScrollbarWrapperClss: function computeScrollbarWrapperClss() {
66602
+ var $xeTree = this;
66603
+ var reactData = $xeTree.reactData;
66604
+ var scrollbarOpts = $xeTree.computeScrollbarOpts;
66605
+ var padding = scrollbarOpts.padding;
66606
+ var yThumbHeight = reactData.yThumbHeight,
66607
+ xThumbWidth = reactData.xThumbWidth;
66608
+ var scrollbarXToTop = $xeTree.computeScrollbarXToTop;
66609
+ var scrollbarYToLeft = $xeTree.computeScrollbarYToLeft;
66610
+ var scrollXVisible = $xeTree.computeScrollXVisible;
66611
+ var scrollYVisible = $xeTree.computeScrollYVisible;
66612
+ var scrollXAutoHide = $xeTree.computeScrollXAutoHide;
66613
+ var scrollYAutoHide = $xeTree.computeScrollYAutoHide;
66614
+ return 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')], {
66615
+ 'is--padding': padding,
66616
+ 'ov-x--auto-hide': scrollXAutoHide,
66617
+ 'ov-y--auto-hide': scrollYAutoHide,
66618
+ 'overflow-y': yThumbHeight,
66619
+ 'overflow-x': xThumbWidth
66620
+ });
66621
+ },
66622
+ computeScrollbarXToTop: function computeScrollbarXToTop() {
66623
+ var $xeTree = this;
66624
+ var scrollbarXOpts = $xeTree.computeScrollbarXOpts;
66625
+ return scrollbarXOpts.position === 'top';
66626
+ },
66627
+ computeScrollbarYToLeft: function computeScrollbarYToLeft() {
66628
+ var $xeTree = this;
66629
+ var scrollbarYOpts = $xeTree.computeScrollbarYOpts;
66630
+ return scrollbarYOpts.position === 'left';
66061
66631
  }
66062
66632
  }),
66063
66633
  methods: {
@@ -66707,6 +67277,11 @@ function tree_createReactData() {
66707
67277
  }
66708
67278
  });
66709
67279
  },
67280
+ updateScrollbar: function updateScrollbar() {
67281
+ var $xeTree = this;
67282
+ $xeTree.updateThumbSize();
67283
+ $xeTree.updateThumbOffset();
67284
+ },
66710
67285
  /**
66711
67286
  * 重新计算列表
66712
67287
  */
@@ -66731,6 +67306,7 @@ function tree_createReactData() {
66731
67306
  var parentPaddingSize = getPaddingTopBottomSize(parentEl);
66732
67307
  reactData.parentHeight = Math.max(headHeight + footHeight + rowHeight, parentEl.clientHeight - parentPaddingSize - headHeight - footHeight);
66733
67308
  }
67309
+ $xeTree.updateScrollbar();
66734
67310
  $xeTree.updateHeight();
66735
67311
  return $xeTree.computeScrollLoad().then(function () {
66736
67312
  $xeTree.updateHeight();
@@ -66779,6 +67355,7 @@ function tree_createReactData() {
66779
67355
  var scrollLeft = scrollBodyElem.scrollLeft;
66780
67356
  var isX = scrollLeft !== internalData.lastScrollLeft;
66781
67357
  var isY = scrollTop !== internalData.lastScrollTop;
67358
+ $xeTree.updateThumbOffset();
66782
67359
  internalData.lastScrollTop = scrollTop;
66783
67360
  internalData.lastScrollLeft = scrollLeft;
66784
67361
  if (reactData.scrollYLoad) {
@@ -67767,14 +68344,6 @@ function tree_createReactData() {
67767
68344
  checked: isChecked
67768
68345
  }, evnt);
67769
68346
  },
67770
- handleGlobalResizeEvent: function handleGlobalResizeEvent() {
67771
- var $xeTree = this;
67772
- var el = $xeTree.$refs.refElem;
67773
- if (!el || !el.clientWidth) {
67774
- return;
67775
- }
67776
- $xeTree.recalculate();
67777
- },
67778
68347
  reloadData: function reloadData(data) {
67779
68348
  var $xeTree = this;
67780
68349
  return $xeTree.loadData(data || []);
@@ -68573,6 +69142,189 @@ function tree_createReactData() {
68573
69142
  }, evnt);
68574
69143
  }
68575
69144
  },
69145
+ // 滚动条
69146
+ updateThumbSize: function updateThumbSize() {
69147
+ var $xeTree = this;
69148
+ var reactData = $xeTree.reactData;
69149
+ var viewEl = $xeTree.$refs.refVirtualWrapper;
69150
+ if (!viewEl) {
69151
+ return;
69152
+ }
69153
+ if (!viewEl.clientHeight || !viewEl.clientHeight) {
69154
+ return;
69155
+ }
69156
+ var trackXEl = $xeTree.$refs.refTrackXElem;
69157
+ var xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
69158
+ var thumbXElem = $xeTree.$refs.refThumbXElem;
69159
+ if (thumbXElem) {
69160
+ thumbXElem.style.width = xThumbWidth + 'px';
69161
+ }
69162
+ reactData.xThumbWidth = xThumbWidth;
69163
+ var trackYEl = $xeTree.$refs.refTrackYElem;
69164
+ var yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
69165
+ var thumbYElem = $xeTree.$refs.refThumbYElem;
69166
+ if (thumbYElem) {
69167
+ thumbYElem.style.height = yThumbHeight + 'px';
69168
+ }
69169
+ reactData.yThumbHeight = yThumbHeight;
69170
+ },
69171
+ updateThumbOffset: function updateThumbOffset() {
69172
+ var $xeTree = this;
69173
+ var reactData = $xeTree.reactData;
69174
+ var internalData = $xeTree.internalData;
69175
+ var viewEl = $xeTree.$refs.refVirtualWrapper;
69176
+ if (!viewEl) {
69177
+ return;
69178
+ }
69179
+ if (!viewEl.clientHeight || !viewEl.clientHeight) {
69180
+ return;
69181
+ }
69182
+ var xThumbWidth = reactData.xThumbWidth,
69183
+ yThumbHeight = reactData.yThumbHeight;
69184
+ var trackXEl = $xeTree.$refs.refTrackXElem;
69185
+ var thumbXElem = $xeTree.$refs.refThumbXElem;
69186
+ var xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
69187
+ internalData.xThumbLeft = xThumbLeft;
69188
+ if (thumbXElem && xThumbWidth) {
69189
+ thumbXElem.style.width = xThumbWidth + 'px';
69190
+ thumbXElem.style.transform = "translateX(".concat(xThumbLeft, "px)");
69191
+ }
69192
+ var trackYEl = $xeTree.$refs.refTrackYElem;
69193
+ var thumbYElem = $xeTree.$refs.refThumbYElem;
69194
+ var yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
69195
+ internalData.yThumbTop = yThumbTop;
69196
+ if (thumbYElem && yThumbHeight) {
69197
+ thumbYElem.style.height = yThumbHeight + 'px';
69198
+ thumbYElem.style.transform = "translateY(".concat(yThumbTop, "px)");
69199
+ }
69200
+ },
69201
+ clickTrackXEvent: function clickTrackXEvent(evnt) {
69202
+ var $xeTree = this;
69203
+ var reactData = $xeTree.reactData;
69204
+ var trackEl = evnt.currentTarget;
69205
+ if (trackEl !== evnt.target) {
69206
+ return;
69207
+ }
69208
+ var viewEl = $xeTree.$refs.refVirtualWrapper;
69209
+ if (!viewEl) {
69210
+ return;
69211
+ }
69212
+ var xThumbWidth = reactData.xThumbWidth;
69213
+ var trackRect = trackEl.getBoundingClientRect();
69214
+ viewEl.scrollTo({
69215
+ left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
69216
+ behavior: 'auto'
69217
+ });
69218
+ },
69219
+ clickTrackYEvent: function clickTrackYEvent(evnt) {
69220
+ var $xeTree = this;
69221
+ var reactData = $xeTree.reactData;
69222
+ var trackEl = evnt.currentTarget;
69223
+ if (trackEl !== evnt.target) {
69224
+ return;
69225
+ }
69226
+ var viewEl = $xeTree.$refs.refVirtualWrapper;
69227
+ if (!viewEl) {
69228
+ return;
69229
+ }
69230
+ var yThumbHeight = reactData.yThumbHeight;
69231
+ var trackRect = trackEl.getBoundingClientRect();
69232
+ viewEl.scrollTo({
69233
+ top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
69234
+ behavior: 'auto'
69235
+ });
69236
+ },
69237
+ pointerdownThumbXEvent: function pointerdownThumbXEvent(evnt) {
69238
+ var $xeTree = this;
69239
+ var reactData = $xeTree.reactData;
69240
+ var internalData = $xeTree.internalData;
69241
+ var thumbEl = evnt.currentTarget;
69242
+ internalData.isThumbDrag = true;
69243
+ thumbEl.setPointerCapture(evnt.pointerId);
69244
+ var viewEl = $xeTree.$refs.refVirtualWrapper;
69245
+ if (!viewEl) {
69246
+ return;
69247
+ }
69248
+ var xThumbWidth = reactData.xThumbWidth;
69249
+ var trackEl = thumbEl.parentElement;
69250
+ var trackRect = trackEl.getBoundingClientRect();
69251
+ var pointerPosition = evnt.clientX - trackRect.left;
69252
+ // 记录 thumb 的偏移
69253
+ var thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
69254
+ internalData.thumbDragOffset = pointerPosition - thumbOffset;
69255
+ },
69256
+ pointermoveThumbXEvent: function pointermoveThumbXEvent(evnt) {
69257
+ var $xeTree = this;
69258
+ var reactData = $xeTree.reactData;
69259
+ var internalData = $xeTree.internalData;
69260
+ var thumbEl = evnt.currentTarget;
69261
+ if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
69262
+ return;
69263
+ }
69264
+ var isThumbDrag = internalData.isThumbDrag,
69265
+ thumbDragOffset = internalData.thumbDragOffset;
69266
+ if (isThumbDrag) {
69267
+ var viewEl = $xeTree.$refs.refVirtualWrapper;
69268
+ if (!viewEl) {
69269
+ return;
69270
+ }
69271
+ var xThumbWidth = reactData.xThumbWidth;
69272
+ var _thumbEl = evnt.currentTarget;
69273
+ var trackEl = _thumbEl.parentElement;
69274
+ var trackRect = trackEl.getBoundingClientRect();
69275
+ // 更新偏移
69276
+ viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
69277
+ }
69278
+ },
69279
+ cleatPointerThumbEvent: function cleatPointerThumbEvent(evnt) {
69280
+ var $xeTree = this;
69281
+ var internalData = $xeTree.internalData;
69282
+ var thumbEl = evnt.currentTarget;
69283
+ thumbEl.releasePointerCapture(evnt.pointerId);
69284
+ internalData.isThumbDrag = false;
69285
+ },
69286
+ pointerdownThumbYEvent: function pointerdownThumbYEvent(evnt) {
69287
+ var $xeTree = this;
69288
+ var reactData = $xeTree.reactData;
69289
+ var internalData = $xeTree.internalData;
69290
+ var thumbEl = evnt.currentTarget;
69291
+ internalData.isThumbDrag = true;
69292
+ thumbEl.setPointerCapture(evnt.pointerId);
69293
+ var viewEl = $xeTree.$refs.refVirtualWrapper;
69294
+ if (!viewEl) {
69295
+ return;
69296
+ }
69297
+ var yThumbHeight = reactData.yThumbHeight;
69298
+ var trackEl = thumbEl.parentElement;
69299
+ var trackRect = trackEl.getBoundingClientRect();
69300
+ var pointerPosition = evnt.clientY - trackRect.top;
69301
+ // 记录 thumb 的偏移
69302
+ var thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
69303
+ internalData.thumbDragOffset = pointerPosition - thumbOffset;
69304
+ },
69305
+ pointermoveThumbYEvent: function pointermoveThumbYEvent(evnt) {
69306
+ var $xeTree = this;
69307
+ var reactData = $xeTree.reactData;
69308
+ var internalData = $xeTree.internalData;
69309
+ var thumbEl = evnt.currentTarget;
69310
+ if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
69311
+ return;
69312
+ }
69313
+ var isThumbDrag = internalData.isThumbDrag,
69314
+ thumbDragOffset = internalData.thumbDragOffset;
69315
+ if (isThumbDrag) {
69316
+ var viewEl = $xeTree.$refs.refVirtualWrapper;
69317
+ if (!viewEl) {
69318
+ return;
69319
+ }
69320
+ var yThumbHeight = reactData.yThumbHeight;
69321
+ var _thumbEl2 = evnt.currentTarget;
69322
+ var trackEl = _thumbEl2.parentElement;
69323
+ var trackRect = trackEl.getBoundingClientRect();
69324
+ // 更新偏移
69325
+ viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
69326
+ }
69327
+ },
68576
69328
  //
68577
69329
  // Render
68578
69330
  //
@@ -68900,22 +69652,27 @@ function tree_createReactData() {
68900
69652
  return renderEmptyElement($xeTree);
68901
69653
  },
68902
69654
  renderVN: function renderVN(h) {
69655
+ var _ref;
68903
69656
  var $xeTree = this;
68904
69657
  var props = $xeTree;
68905
69658
  var slots = $xeTree.$scopedSlots;
68906
69659
  var reactData = $xeTree.reactData;
68907
69660
  var loading = props.loading,
68908
69661
  trigger = props.trigger,
68909
- showLine = props.showLine;
69662
+ showLine = props.showLine,
69663
+ useScrollbar = props.useScrollbar;
68910
69664
  var bodyHeight = reactData.bodyHeight,
68911
69665
  topSpaceHeight = reactData.topSpaceHeight,
68912
69666
  treeList = reactData.treeList,
68913
- tooltipStore = reactData.tooltipStore;
69667
+ tooltipStore = reactData.tooltipStore,
69668
+ xThumbWidth = reactData.xThumbWidth,
69669
+ yThumbHeight = reactData.yThumbHeight;
68914
69670
  var vSize = $xeTree.computeSize;
68915
69671
  var radioOpts = $xeTree.computeRadioOpts;
68916
69672
  var checkboxOpts = $xeTree.computeCheckboxOpts;
68917
69673
  var loadingOpts = $xeTree.computeLoadingOpts;
68918
69674
  var isNodeHover = $xeTree.computeIsNodeHover;
69675
+ var wrapperStyles = $xeTree.computeWrapperStyles;
68919
69676
  var treeStyle = $xeTree.computeTreeStyle;
68920
69677
  var dragOpts = $xeTree.computeDragOpts;
68921
69678
  var tooltipOpts = $xeTree.computeTooltipOpts;
@@ -68923,13 +69680,22 @@ function tree_createReactData() {
68923
69680
  var headerSlot = slots.header;
68924
69681
  var footerSlot = slots.footer;
68925
69682
  var tooltipSlot = slots.tooltip;
69683
+ var scrollbarOpts = $xeTree.computeScrollbarOpts;
69684
+ var scrollXVisible = $xeTree.computeScrollXVisible;
69685
+ var scrollYVisible = $xeTree.computeScrollYVisible;
69686
+ var scrollbarXToTop = $xeTree.computeScrollbarXToTop;
69687
+ var scrollbarYToLeft = $xeTree.computeScrollbarYToLeft;
69688
+ var scrollXAutoHide = $xeTree.computeScrollXAutoHide;
69689
+ var scrollYAutoHide = $xeTree.computeScrollYAutoHide;
69690
+ var scrollbarWrapperClss = $xeTree.computeScrollbarWrapperClss;
68926
69691
  var teOns = {};
68927
69692
  if (dragOpts.isCrossTreeDrag && !treeList.length) {
68928
69693
  teOns.dragover = $xeTree.handleCrossTreeNodeDragoverEmptyEvent;
68929
69694
  }
68930
69695
  return h('div', {
68931
69696
  ref: 'refElem',
68932
- class: ['vxe-tree', _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'show--line', showLine), 'checkbox--highlight', checkboxOpts.highlight), 'radio--highlight', radioOpts.highlight), 'node--hover', isNodeHover), 'node--trigger', trigger === 'node'), 'is--loading', loading)],
69697
+ 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))],
69698
+ style: wrapperStyles,
68933
69699
  on: teOns
68934
69700
  }, [headerSlot ? h('div', {
68935
69701
  ref: 'refHeaderWrapperElem',
@@ -68960,6 +69726,44 @@ function tree_createReactData() {
68960
69726
  }, footerSlot({
68961
69727
  $tree: $xeTree
68962
69728
  })) : renderEmptyElement($xeTree),
69729
+ /**
69730
+ * 滚动条
69731
+ */
69732
+ useScrollbar ? h('div', {
69733
+ class: scrollbarWrapperClss
69734
+ }, [scrollXVisible === false ? renderEmptyElement($xeTree) : h('div', {
69735
+ ref: 'refTrackXElem',
69736
+ class: 'vxe-scrollbar--track-x',
69737
+ on: {
69738
+ click: $xeTree.clickTrackXEvent
69739
+ }
69740
+ }, [h('div', {
69741
+ ref: 'refThumbXElem',
69742
+ class: 'vxe-scrollbar--thumb-x',
69743
+ on: {
69744
+ pointerdown: $xeTree.pointerdownThumbXEvent,
69745
+ pointermove: $xeTree.pointermoveThumbXEvent,
69746
+ pointerup: $xeTree.cleatPointerThumbEvent,
69747
+ pointercancel: $xeTree.cleatPointerThumbEvent,
69748
+ lostpointercapture: $xeTree.cleatPointerThumbEvent
69749
+ }
69750
+ })]), scrollYVisible === false ? renderEmptyElement($xeTree) : h('div', {
69751
+ ref: 'refTrackYElem',
69752
+ class: 'vxe-scrollbar--track-y',
69753
+ on: {
69754
+ click: $xeTree.clickTrackYEvent
69755
+ }
69756
+ }, [h('div', {
69757
+ ref: 'refThumbYElem',
69758
+ class: 'vxe-scrollbar--thumb-y',
69759
+ on: {
69760
+ pointerdown: $xeTree.pointerdownThumbYEvent,
69761
+ pointermove: $xeTree.pointermoveThumbYEvent,
69762
+ pointerup: $xeTree.cleatPointerThumbEvent,
69763
+ pointercancel: $xeTree.cleatPointerThumbEvent,
69764
+ lostpointercapture: $xeTree.cleatPointerThumbEvent
69765
+ }
69766
+ })])]) : renderEmptyElement($xeTree),
68963
69767
  /**
68964
69768
  * 拖拽提示
68965
69769
  */
@@ -69049,19 +69853,37 @@ function tree_createReactData() {
69049
69853
  },
69050
69854
  height: function height() {
69051
69855
  var $xeTree = this;
69052
- $xeTree.hFlag++;
69856
+ $xeTree.reFlag++;
69053
69857
  },
69054
69858
  minHeight: function minHeight() {
69055
69859
  var $xeTree = this;
69056
- $xeTree.hFlag++;
69860
+ $xeTree.reFlag++;
69057
69861
  },
69058
69862
  maxHeight: function maxHeight() {
69059
69863
  var $xeTree = this;
69060
- $xeTree.hFlag++;
69864
+ $xeTree.reFlag++;
69865
+ },
69866
+ useScrollbar: function useScrollbar() {
69867
+ var $xeTree = this;
69868
+ $xeTree.reFlag++;
69869
+ },
69870
+ computeScrollXVisible: function computeScrollXVisible() {
69871
+ var $xeTree = this;
69872
+ $xeTree.$nextTick(function () {
69873
+ $xeTree.reFlag++;
69874
+ });
69061
69875
  },
69062
- hFlag: function hFlag() {
69876
+ computeScrollYVisible: function computeScrollYVisible() {
69063
69877
  var $xeTree = this;
69064
- $xeTree.recalculate();
69878
+ $xeTree.$nextTick(function () {
69879
+ $xeTree.reFlag++;
69880
+ });
69881
+ },
69882
+ reFlag: function reFlag() {
69883
+ var $xeTree = this;
69884
+ $xeTree.recalculate().then(function () {
69885
+ $xeTree.recalculate();
69886
+ });
69065
69887
  }
69066
69888
  },
69067
69889
  created: function created() {
@@ -69081,7 +69903,9 @@ function tree_createReactData() {
69081
69903
  menuConfig = props.menuConfig,
69082
69904
  showOverflow = props.showOverflow,
69083
69905
  lazy = props.lazy,
69084
- loadMethod = props.loadMethod;
69906
+ loadMethod = props.loadMethod,
69907
+ autoResize = props.autoResize,
69908
+ useScrollbar = props.useScrollbar;
69085
69909
  var dragOpts = $xeTree.computeDragOpts;
69086
69910
  if (!showOverflow) {
69087
69911
  tree_errLog('vxe.error.errProp', ['show-overflow=false', 'show-overflow=true']);
@@ -69102,24 +69926,30 @@ function tree_createReactData() {
69102
69926
  if (menuConfig && !VxeUIContextMenu) {
69103
69927
  tree_errLog('vxe.error.reqComp', ['vxe-context-menu']);
69104
69928
  }
69105
- if (props.autoResize) {
69929
+ if (useScrollbar || autoResize) {
69106
69930
  var el = $xeTree.$refs.refElem;
69931
+ var viewInnerEl = $xeTree.$refs.refVirtualBody;
69107
69932
  var parentEl = $xeTree.getParentElem();
69108
69933
  var resizeObserver = globalResize.create(function () {
69109
- if (props.autoResize) {
69110
- $xeTree.recalculate();
69111
- }
69934
+ $xeTree.reFlag++;
69112
69935
  });
69113
69936
  if (el) {
69114
69937
  resizeObserver.observe(el);
69938
+ if (autoResize) {
69939
+ if (parentEl) {
69940
+ resizeObserver.observe(parentEl);
69941
+ }
69942
+ }
69115
69943
  }
69116
- if (parentEl) {
69117
- resizeObserver.observe(parentEl);
69944
+ if (viewInnerEl) {
69945
+ resizeObserver.observe(viewInnerEl);
69118
69946
  }
69119
69947
  internalData.resizeObserver = resizeObserver;
69120
69948
  }
69121
- $xeTree.recalculate();
69122
- globalEvents.on($xeTree, 'resize', $xeTree.handleGlobalResizeEvent);
69949
+ $xeTree.reFlag++;
69950
+ globalEvents.on($xeTree, 'resize', function () {
69951
+ $xeTree.reFlag++;
69952
+ });
69123
69953
  },
69124
69954
  beforeDestroy: function beforeDestroy() {
69125
69955
  var $xeTree = this;