vxe-pc-ui 3.19.8 → 3.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/es/icon/style.css +1 -1
  2. package/es/list/src/list.js +354 -17
  3. package/es/list/style.css +26 -0
  4. package/es/list/style.min.css +1 -1
  5. package/es/scrollbar/style.css +1 -0
  6. package/es/style.css +1 -1
  7. package/es/style.min.css +1 -1
  8. package/es/ui/index.js +1 -1
  9. package/es/ui/src/log.js +1 -1
  10. package/es/ui/src/utils.js +9 -0
  11. package/es/vxe-list/style.css +26 -0
  12. package/es/vxe-list/style.min.css +1 -1
  13. package/es/vxe-scrollbar/style.css +1 -0
  14. package/lib/icon/style/style.css +1 -1
  15. package/lib/icon/style/style.min.css +1 -1
  16. package/lib/index.umd.js +348 -19
  17. package/lib/index.umd.min.js +1 -1
  18. package/lib/list/src/list.js +340 -20
  19. package/lib/list/src/list.min.js +1 -1
  20. package/lib/list/style/style.css +26 -0
  21. package/lib/list/style/style.min.css +1 -1
  22. package/lib/scrollbar/style/style.css +1 -0
  23. package/lib/style.css +1 -1
  24. package/lib/style.min.css +1 -1
  25. package/lib/ui/index.js +1 -1
  26. package/lib/ui/index.min.js +1 -1
  27. package/lib/ui/src/log.js +1 -1
  28. package/lib/ui/src/log.min.js +1 -1
  29. package/lib/ui/src/utils.js +10 -0
  30. package/lib/ui/src/utils.min.js +1 -1
  31. package/lib/vxe-list/style/style.css +26 -0
  32. package/lib/vxe-list/style/style.min.css +1 -1
  33. package/lib/vxe-scrollbar/style/style.css +1 -0
  34. package/package.json +1 -1
  35. package/packages/list/src/list.ts +382 -19
  36. package/packages/ui/src/utils.ts +10 -0
  37. package/styles/components/list.scss +51 -0
  38. package/styles/components/scrollbar.scss +3 -0
  39. package/types/components/card.d.ts +1 -1
  40. package/types/components/layout-aside.d.ts +1 -1
  41. package/types/components/layout-body.d.ts +1 -1
  42. package/types/components/list.d.ts +24 -2
  43. package/types/components/table-plugins/extend-cell-area.d.ts +1 -1
  44. package/types/components/table.d.ts +24 -0
  45. package/types/components/tabs.d.ts +1 -1
  46. /package/es/icon/{iconfont.1791862954819.ttf → iconfont.1791880407207.ttf} +0 -0
  47. /package/es/icon/{iconfont.1791862954819.woff → iconfont.1791880407207.woff} +0 -0
  48. /package/es/icon/{iconfont.1791862954819.woff2 → iconfont.1791880407207.woff2} +0 -0
  49. /package/es/{iconfont.1791862954819.ttf → iconfont.1791880407207.ttf} +0 -0
  50. /package/es/{iconfont.1791862954819.woff → iconfont.1791880407207.woff} +0 -0
  51. /package/es/{iconfont.1791862954819.woff2 → iconfont.1791880407207.woff2} +0 -0
  52. /package/lib/icon/style/{iconfont.1791862954819.ttf → iconfont.1791880407207.ttf} +0 -0
  53. /package/lib/icon/style/{iconfont.1791862954819.woff → iconfont.1791880407207.woff} +0 -0
  54. /package/lib/icon/style/{iconfont.1791862954819.woff2 → iconfont.1791880407207.woff2} +0 -0
  55. /package/lib/{iconfont.1791862954819.ttf → iconfont.1791880407207.ttf} +0 -0
  56. /package/lib/{iconfont.1791862954819.woff → iconfont.1791880407207.woff} +0 -0
  57. /package/lib/{iconfont.1791862954819.woff2 → iconfont.1791880407207.woff2} +0 -0
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.0");
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.0";
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
  }
@@ -22572,6 +22581,7 @@ function getItemCacheObj(item) {
22572
22581
 
22573
22582
 
22574
22583
 
22584
+
22575
22585
 
22576
22586
 
22577
22587
  var list_createComponentLog = createComponentLog('tree'),
@@ -22607,6 +22617,9 @@ function list_createReactData() {
22607
22617
  updateCheckboxFlag: 1,
22608
22618
  isAllChecked: false,
22609
22619
  isAllIndeterminate: false,
22620
+ // 滚动条
22621
+ yThumbHeight: 0,
22622
+ xThumbWidth: 0,
22610
22623
  insertRowFlag: 1,
22611
22624
  removeRowFlag: 1,
22612
22625
  dragRow: null,
@@ -22616,13 +22629,18 @@ function list_createReactData() {
22616
22629
  }
22617
22630
  function list_createInternalData() {
22618
22631
  return {
22619
- resizeObserver: undefined,
22620
22632
  fullData: [],
22621
22633
  afterList: [],
22622
22634
  fullKeyMaps: {},
22623
22635
  rowMaps: {},
22624
- lastScrollLeft: 0,
22636
+ // 滚动条
22637
+ // resizeObserver: undefined,
22638
+ // isThumbDrag: false,
22639
+ thumbDragOffset: 0,
22640
+ yThumbTop: 0,
22641
+ xThumbLeft: 0,
22625
22642
  lastScrollTop: 0,
22643
+ lastScrollLeft: 0,
22626
22644
  scrollYStore: {
22627
22645
  startIndex: 0,
22628
22646
  endIndex: 0,
@@ -22686,7 +22704,14 @@ function list_createInternalData() {
22686
22704
  dragConfig: Object,
22687
22705
  menuConfig: Object,
22688
22706
  virtualYConfig: Object,
22689
- scrollY: Object
22707
+ scrollY: Object,
22708
+ useScrollbar: {
22709
+ type: Boolean,
22710
+ default: function _default() {
22711
+ return getConfig().list.useScrollbar;
22712
+ }
22713
+ },
22714
+ scrollbarConfig: Object
22690
22715
  },
22691
22716
  data: function data() {
22692
22717
  var xID = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId();
@@ -22755,11 +22780,19 @@ function list_createInternalData() {
22755
22780
  computeWrapperStyles: function computeWrapperStyles() {
22756
22781
  var $xeList = this;
22757
22782
  var rowHeight = $xeList.computeRowHeight;
22758
- var style = {};
22783
+ var scrollbarXOpts = $xeList.computeScrollbarXOpts;
22784
+ var scrollbarYOpts = $xeList.computeScrollbarYOpts;
22785
+ var stys = {};
22759
22786
  if (rowHeight) {
22760
- style['--vxe-ui-list-row-height'] = toCssUnit(rowHeight);
22787
+ stys['--vxe-ui-list-row-height'] = toCssUnit(rowHeight);
22761
22788
  }
22762
- return style;
22789
+ if (scrollbarYOpts.width) {
22790
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(scrollbarYOpts.width);
22791
+ }
22792
+ if (scrollbarXOpts.height) {
22793
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(scrollbarXOpts.height);
22794
+ }
22795
+ return stys;
22763
22796
  },
22764
22797
  computeVirtualStyles: function computeVirtualStyles() {
22765
22798
  var $xeList = this;
@@ -22779,6 +22812,50 @@ function list_createInternalData() {
22779
22812
  style.maxHeight = toCssUnit(Math.max(20, customMaxHeight - headHeight - footHeight));
22780
22813
  }
22781
22814
  return style;
22815
+ },
22816
+ computeScrollbarOpts: function computeScrollbarOpts() {
22817
+ var $xeList = this;
22818
+ var props = $xeList;
22819
+ return Object.assign({}, getConfig().list.scrollbarConfig, props.scrollbarConfig);
22820
+ },
22821
+ computeScrollbarXOpts: function computeScrollbarXOpts() {
22822
+ var $xeList = this;
22823
+ var scrollbarOpts = $xeList.computeScrollbarOpts;
22824
+ return Object.assign({}, getConfig().scrollbar.xConfig, scrollbarOpts.xConfig);
22825
+ },
22826
+ computeScrollbarYOpts: function computeScrollbarYOpts() {
22827
+ var $xeList = this;
22828
+ var scrollbarOpts = $xeList.computeScrollbarOpts;
22829
+ return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
22830
+ },
22831
+ computeScrollbarWrapperClss: function computeScrollbarWrapperClss() {
22832
+ var $xeList = this;
22833
+ var reactData = $xeList.reactData;
22834
+ var scrollbarOpts = $xeList.computeScrollbarOpts;
22835
+ var padding = scrollbarOpts.padding;
22836
+ var yThumbHeight = reactData.yThumbHeight,
22837
+ xThumbWidth = reactData.xThumbWidth;
22838
+ var scrollbarXOpts = $xeList.computeScrollbarXOpts;
22839
+ var scrollbarYOpts = $xeList.computeScrollbarYOpts;
22840
+ var scrollbarXToTop = $xeList.computeScrollbarXToTop;
22841
+ var scrollbarYToLeft = $xeList.computeScrollbarYToLeft;
22842
+ return domUtils.buildClass(['vxe-scrollbar is--virtual', "ov-x--".concat(scrollbarXOpts.visible || 'visible'), "ov-y--".concat(scrollbarYOpts.visible || 'visible'), "sx-pos--".concat(scrollbarXToTop ? 'top' : 'bottom'), "sy-pos--".concat(scrollbarYToLeft ? 'left' : 'right')], {
22843
+ 'is--padding': padding,
22844
+ 'ov-x--auto-hide': scrollbarXOpts.autoHide,
22845
+ 'ov-y--auto-hide': scrollbarYOpts.autoHide,
22846
+ 'overflow-y': yThumbHeight,
22847
+ 'overflow-x': xThumbWidth
22848
+ });
22849
+ },
22850
+ computeScrollbarXToTop: function computeScrollbarXToTop() {
22851
+ var $xeList = this;
22852
+ var scrollbarXOpts = $xeList.computeScrollbarXOpts;
22853
+ return scrollbarXOpts.position === 'top';
22854
+ },
22855
+ computeScrollbarYToLeft: function computeScrollbarYToLeft() {
22856
+ var $xeList = this;
22857
+ var scrollbarYOpts = $xeList.computeScrollbarYOpts;
22858
+ return scrollbarYOpts.position === 'left';
22782
22859
  }
22783
22860
  }),
22784
22861
  methods: {
@@ -23117,6 +23194,11 @@ function list_createInternalData() {
23117
23194
  }
23118
23195
  });
23119
23196
  },
23197
+ updateScrollbar: function updateScrollbar() {
23198
+ var $xeList = this;
23199
+ $xeList.updateThumbSize();
23200
+ $xeList.updateThumbOffset();
23201
+ },
23120
23202
  /**
23121
23203
  * 重新计算列表
23122
23204
  */
@@ -23136,6 +23218,7 @@ function list_createInternalData() {
23136
23218
  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
23219
  }
23138
23220
  reactData.parentHeight = parentHeight;
23221
+ $xeList.updateScrollbar();
23139
23222
  $xeList.updateHeight();
23140
23223
  if (el.clientWidth && el.clientHeight) {
23141
23224
  return $xeList.computeScrollLoad();
@@ -23174,6 +23257,7 @@ function list_createInternalData() {
23174
23257
  var scrollLeft = scrollBodyElem.scrollLeft;
23175
23258
  var isX = scrollLeft !== internalData.lastScrollLeft;
23176
23259
  var isY = scrollTop !== internalData.lastScrollTop;
23260
+ $xeList.updateThumbOffset();
23177
23261
  internalData.lastScrollTop = scrollTop;
23178
23262
  internalData.lastScrollLeft = scrollLeft;
23179
23263
  if (reactData.scrollYLoad) {
@@ -24533,6 +24617,189 @@ function list_createInternalData() {
24533
24617
  row: row
24534
24618
  }, evnt);
24535
24619
  },
24620
+ // 滚动条
24621
+ updateThumbSize: function updateThumbSize() {
24622
+ var $xeList = this;
24623
+ var reactData = $xeList.reactData;
24624
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24625
+ if (!viewEl) {
24626
+ return;
24627
+ }
24628
+ if (!viewEl.clientHeight || !viewEl.clientHeight) {
24629
+ return;
24630
+ }
24631
+ var trackXEl = $xeList.$refs.refTrackXElem;
24632
+ var xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
24633
+ var thumbXElem = $xeList.$refs.refThumbXElem;
24634
+ if (thumbXElem) {
24635
+ thumbXElem.style.width = xThumbWidth + 'px';
24636
+ }
24637
+ reactData.xThumbWidth = xThumbWidth;
24638
+ var trackYEl = $xeList.$refs.refTrackYElem;
24639
+ var yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
24640
+ var thumbYElem = $xeList.$refs.refThumbYElem;
24641
+ if (thumbYElem) {
24642
+ thumbYElem.style.height = yThumbHeight + 'px';
24643
+ }
24644
+ reactData.yThumbHeight = yThumbHeight;
24645
+ },
24646
+ updateThumbOffset: function updateThumbOffset() {
24647
+ var $xeList = this;
24648
+ var reactData = $xeList.reactData;
24649
+ var internalData = $xeList.internalData;
24650
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24651
+ if (!viewEl) {
24652
+ return;
24653
+ }
24654
+ if (!viewEl.clientHeight || !viewEl.clientHeight) {
24655
+ return;
24656
+ }
24657
+ var xThumbWidth = reactData.xThumbWidth,
24658
+ yThumbHeight = reactData.yThumbHeight;
24659
+ var trackXEl = $xeList.$refs.refTrackXElem;
24660
+ var thumbXElem = $xeList.$refs.refThumbXElem;
24661
+ var xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
24662
+ internalData.xThumbLeft = xThumbLeft;
24663
+ if (thumbXElem && xThumbWidth) {
24664
+ thumbXElem.style.width = xThumbWidth + 'px';
24665
+ thumbXElem.style.transform = "translateX(".concat(xThumbLeft, "px)");
24666
+ }
24667
+ var trackYEl = $xeList.$refs.refTrackYElem;
24668
+ var thumbYElem = $xeList.$refs.refThumbYElem;
24669
+ var yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
24670
+ internalData.yThumbTop = yThumbTop;
24671
+ if (thumbYElem && yThumbHeight) {
24672
+ thumbYElem.style.height = yThumbHeight + 'px';
24673
+ thumbYElem.style.transform = "translateY(".concat(yThumbTop, "px)");
24674
+ }
24675
+ },
24676
+ clickTrackXEvent: function clickTrackXEvent(evnt) {
24677
+ var $xeList = this;
24678
+ var reactData = $xeList.reactData;
24679
+ var trackEl = evnt.currentTarget;
24680
+ if (trackEl !== evnt.target) {
24681
+ return;
24682
+ }
24683
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24684
+ if (!viewEl) {
24685
+ return;
24686
+ }
24687
+ var xThumbWidth = reactData.xThumbWidth;
24688
+ var trackRect = trackEl.getBoundingClientRect();
24689
+ viewEl.scrollTo({
24690
+ left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
24691
+ behavior: 'auto'
24692
+ });
24693
+ },
24694
+ clickTrackYEvent: function clickTrackYEvent(evnt) {
24695
+ var $xeList = this;
24696
+ var reactData = $xeList.reactData;
24697
+ var trackEl = evnt.currentTarget;
24698
+ if (trackEl !== evnt.target) {
24699
+ return;
24700
+ }
24701
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24702
+ if (!viewEl) {
24703
+ return;
24704
+ }
24705
+ var yThumbHeight = reactData.yThumbHeight;
24706
+ var trackRect = trackEl.getBoundingClientRect();
24707
+ viewEl.scrollTo({
24708
+ top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
24709
+ behavior: 'auto'
24710
+ });
24711
+ },
24712
+ pointerdownThumbXEvent: function pointerdownThumbXEvent(evnt) {
24713
+ var $xeList = this;
24714
+ var reactData = $xeList.reactData;
24715
+ var internalData = $xeList.internalData;
24716
+ var thumbEl = evnt.currentTarget;
24717
+ internalData.isThumbDrag = true;
24718
+ thumbEl.setPointerCapture(evnt.pointerId);
24719
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24720
+ if (!viewEl) {
24721
+ return;
24722
+ }
24723
+ var xThumbWidth = reactData.xThumbWidth;
24724
+ var trackEl = thumbEl.parentElement;
24725
+ var trackRect = trackEl.getBoundingClientRect();
24726
+ var pointerPosition = evnt.clientX - trackRect.left;
24727
+ // 记录 thumb 的偏移
24728
+ var thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
24729
+ internalData.thumbDragOffset = pointerPosition - thumbOffset;
24730
+ },
24731
+ pointermoveThumbXEvent: function pointermoveThumbXEvent(evnt) {
24732
+ var $xeList = this;
24733
+ var reactData = $xeList.reactData;
24734
+ var internalData = $xeList.internalData;
24735
+ var thumbEl = evnt.currentTarget;
24736
+ if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
24737
+ return;
24738
+ }
24739
+ var isThumbDrag = internalData.isThumbDrag,
24740
+ thumbDragOffset = internalData.thumbDragOffset;
24741
+ if (isThumbDrag) {
24742
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24743
+ if (!viewEl) {
24744
+ return;
24745
+ }
24746
+ var xThumbWidth = reactData.xThumbWidth;
24747
+ var _thumbEl = evnt.currentTarget;
24748
+ var trackEl = _thumbEl.parentElement;
24749
+ var trackRect = trackEl.getBoundingClientRect();
24750
+ // 更新偏移
24751
+ viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
24752
+ }
24753
+ },
24754
+ cleatPointerThumbEvent: function cleatPointerThumbEvent(evnt) {
24755
+ var $xeList = this;
24756
+ var internalData = $xeList.internalData;
24757
+ var thumbEl = evnt.currentTarget;
24758
+ thumbEl.releasePointerCapture(evnt.pointerId);
24759
+ internalData.isThumbDrag = false;
24760
+ },
24761
+ pointerdownThumbYEvent: function pointerdownThumbYEvent(evnt) {
24762
+ var $xeList = this;
24763
+ var reactData = $xeList.reactData;
24764
+ var internalData = $xeList.internalData;
24765
+ var thumbEl = evnt.currentTarget;
24766
+ internalData.isThumbDrag = true;
24767
+ thumbEl.setPointerCapture(evnt.pointerId);
24768
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24769
+ if (!viewEl) {
24770
+ return;
24771
+ }
24772
+ var yThumbHeight = reactData.yThumbHeight;
24773
+ var trackEl = thumbEl.parentElement;
24774
+ var trackRect = trackEl.getBoundingClientRect();
24775
+ var pointerPosition = evnt.clientY - trackRect.top;
24776
+ // 记录 thumb 的偏移
24777
+ var thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
24778
+ internalData.thumbDragOffset = pointerPosition - thumbOffset;
24779
+ },
24780
+ pointermoveThumbYEvent: function pointermoveThumbYEvent(evnt) {
24781
+ var $xeList = this;
24782
+ var reactData = $xeList.reactData;
24783
+ var internalData = $xeList.internalData;
24784
+ var thumbEl = evnt.currentTarget;
24785
+ if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
24786
+ return;
24787
+ }
24788
+ var isThumbDrag = internalData.isThumbDrag,
24789
+ thumbDragOffset = internalData.thumbDragOffset;
24790
+ if (isThumbDrag) {
24791
+ var viewEl = $xeList.$refs.refVirtualWrapper;
24792
+ if (!viewEl) {
24793
+ return;
24794
+ }
24795
+ var yThumbHeight = reactData.yThumbHeight;
24796
+ var _thumbEl2 = evnt.currentTarget;
24797
+ var trackEl = _thumbEl2.parentElement;
24798
+ var trackRect = trackEl.getBoundingClientRect();
24799
+ // 更新偏移
24800
+ viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
24801
+ }
24802
+ },
24536
24803
  //
24537
24804
  // Render
24538
24805
  //
@@ -24769,7 +25036,8 @@ function list_createInternalData() {
24769
25036
  var slots = $xeList.$scopedSlots;
24770
25037
  var showCheckbox = props.showCheckbox,
24771
25038
  className = props.className,
24772
- loading = props.loading;
25039
+ loading = props.loading,
25040
+ useScrollbar = props.useScrollbar;
24773
25041
  var bodyHeight = reactData.bodyHeight,
24774
25042
  topSpaceHeight = reactData.topSpaceHeight,
24775
25043
  rowList = reactData.rowList,
@@ -24789,6 +25057,10 @@ function list_createInternalData() {
24789
25057
  var rowOpts = $xeList.computeRowOpts;
24790
25058
  var isHover = rowOpts.isHover,
24791
25059
  padding = rowOpts.padding;
25060
+ var isDrag = $xeList.computeIsDrag;
25061
+ var scrollbarXOpts = $xeList.computeScrollbarXOpts;
25062
+ var scrollbarYOpts = $xeList.computeScrollbarYOpts;
25063
+ var scrollbarWrapperClss = $xeList.computeScrollbarWrapperClss;
24792
25064
  var showDefChekboxHead = showCheckbox && checkboxOpts.showHeader !== false;
24793
25065
  var leOns = {};
24794
25066
  if (isCrossListDrag && !rowList.length) {
@@ -24798,7 +25070,7 @@ function list_createInternalData() {
24798
25070
  ref: 'refElem',
24799
25071
  class: ['vxe-list', className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className({
24800
25072
  $list: $xeList
24801
- }) : className : '', _defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--loading', loading)],
25073
+ }) : className : '', _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--virtual-scrollbar', useScrollbar), 'ov-x--auto-hide', useScrollbar && scrollbarXOpts.autoHide), 'ov-y--auto-hide', useScrollbar && scrollbarYOpts.autoHide), 'is--drag', isDrag), 'is--loading', loading)],
24802
25074
  on: leOns,
24803
25075
  style: wrapperStyles
24804
25076
  }, [headerSlot || showDefChekboxHead ? h('div', {
@@ -24845,18 +25117,65 @@ function list_createInternalData() {
24845
25117
  style: {
24846
25118
  marginTop: topSpaceHeight ? "".concat(topSpaceHeight, "px") : ''
24847
25119
  }
25120
+ }, useScrollbar ? defaultSlot ? defaultSlot({
25121
+ items: rowList,
25122
+ $list: $xeList
25123
+ }) : rowList.map(function (row, i) {
25124
+ return $xeList.renderRow(h, row, i);
25125
+ }) : [h('div', {
25126
+ key: 'vi',
25127
+ ref: 'refViewInnerElem',
25128
+ class: 'vxe-scrollbar--view-inner'
24848
25129
  }, defaultSlot ? defaultSlot({
24849
25130
  items: rowList,
24850
25131
  $list: $xeList
24851
25132
  }) : rowList.map(function (row, i) {
24852
25133
  return $xeList.renderRow(h, row, i);
24853
- }))]), footerSlot ? h('div', {
25134
+ }))])]), footerSlot ? h('div', {
24854
25135
  ref: 'refFooterElem',
24855
25136
  class: 'vxe-list--footer-wrapper'
24856
25137
  }, footerSlot({
24857
25138
  items: rowList,
24858
25139
  $list: $xeList
24859
25140
  })) : renderEmptyElement($xeList),
25141
+ /**
25142
+ * 滚动条
25143
+ */
25144
+ useScrollbar ? h('div', {
25145
+ class: scrollbarWrapperClss
25146
+ }, [scrollbarXOpts.visible === 'hidden' ? renderEmptyElement($xeList) : h('div', {
25147
+ ref: 'refTrackXElem',
25148
+ class: 'vxe-scrollbar--track-x',
25149
+ on: {
25150
+ click: $xeList.clickTrackXEvent
25151
+ }
25152
+ }, [h('div', {
25153
+ ref: 'refThumbXElem',
25154
+ class: 'vxe-scrollbar--thumb-x',
25155
+ on: {
25156
+ pointerdown: $xeList.pointerdownThumbXEvent,
25157
+ pointermove: $xeList.pointermoveThumbXEvent,
25158
+ pointerup: $xeList.cleatPointerThumbEvent,
25159
+ pointercancel: $xeList.cleatPointerThumbEvent,
25160
+ lostpointercapture: $xeList.cleatPointerThumbEvent
25161
+ }
25162
+ })]), scrollbarYOpts.visible === 'hidden' ? renderEmptyElement($xeList) : h('div', {
25163
+ ref: 'refTrackYElem',
25164
+ class: 'vxe-scrollbar--track-y',
25165
+ on: {
25166
+ click: $xeList.clickTrackYEvent
25167
+ }
25168
+ }, [h('div', {
25169
+ ref: 'refThumbYElem',
25170
+ class: 'vxe-scrollbar--thumb-y',
25171
+ on: {
25172
+ pointerdown: $xeList.pointerdownThumbYEvent,
25173
+ pointermove: $xeList.pointermoveThumbYEvent,
25174
+ pointerup: $xeList.cleatPointerThumbEvent,
25175
+ pointercancel: $xeList.cleatPointerThumbEvent,
25176
+ lostpointercapture: $xeList.cleatPointerThumbEvent
25177
+ }
25178
+ })])]) : renderEmptyElement($xeList),
24860
25179
  /**
24861
25180
  * 拖拽提示
24862
25181
  */
@@ -24922,7 +25241,9 @@ function list_createInternalData() {
24922
25241
  var internalData = $xeList.internalData;
24923
25242
  var showSeq = props.showSeq,
24924
25243
  showRadio = props.showRadio,
24925
- showCheckbox = props.showCheckbox;
25244
+ showCheckbox = props.showCheckbox,
25245
+ autoResize = props.autoResize,
25246
+ useScrollbar = props.useScrollbar;
24926
25247
  var rowOpts = $xeList.computeRowOpts;
24927
25248
  var useKey = rowOpts.useKey,
24928
25249
  keyField = rowOpts.keyField;
@@ -24944,24 +25265,32 @@ function list_createInternalData() {
24944
25265
  if (useKey && !keyField) {
24945
25266
  list_errLog('vxe.error.reqSupportProp', ['row-config.useKey', 'row-config.keyField']);
24946
25267
  }
24947
- if (props.autoResize) {
25268
+ if (useScrollbar || autoResize) {
24948
25269
  var el = $xeList.$refs.refElem;
25270
+ var viewInnerEl = $xeList.$refs.refViewInnerElem;
24949
25271
  var resizeObserver = globalResize.create(function () {
24950
- return $xeList.recalculate();
25272
+ $xeList.reFlag++;
24951
25273
  });
24952
25274
  resizeObserver.observe(el);
24953
- if (el) {
24954
- resizeObserver.observe(el.parentElement);
25275
+ if (autoResize) {
25276
+ if (el) {
25277
+ resizeObserver.observe(el.parentElement);
25278
+ }
25279
+ }
25280
+ if (viewInnerEl) {
25281
+ resizeObserver.observe(viewInnerEl);
24955
25282
  }
24956
25283
  internalData.resizeObserver = resizeObserver;
24957
25284
  }
24958
- $xeList.recalculate();
24959
- globalEvents.on($xeList, 'resize', $xeList.recalculate);
25285
+ $xeList.reFlag++;
25286
+ globalEvents.on($xeList, 'resize', function () {
25287
+ $xeList.reFlag++;
25288
+ });
24960
25289
  },
24961
25290
  activated: function activated() {
24962
25291
  var $xeList = this;
24963
25292
  $xeList.recalculate().then(function () {
24964
- return $xeList.refreshScroll();
25293
+ $xeList.refreshScroll();
24965
25294
  });
24966
25295
  },
24967
25296
  beforeDestroy: function beforeDestroy() {