vxe-pc-ui 4.20.0 → 4.20.2

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 (128) hide show
  1. package/dist/all.esm.js +780 -173
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/card/src/card.js +19 -4
  5. package/es/drawer/src/drawer.js +59 -15
  6. package/es/drawer/style.css +13 -6
  7. package/es/drawer/style.min.css +1 -1
  8. package/es/icon/style.css +1 -1
  9. package/es/language/fr-FR.js +29 -29
  10. package/es/layout-aside/src/layout-aside.js +10 -6
  11. package/es/layout-body/src/layout-body.js +21 -12
  12. package/es/list/src/list.js +118 -49
  13. package/es/list/style.css +25 -8
  14. package/es/list/style.min.css +1 -1
  15. package/es/menu/src/menu.js +2 -2
  16. package/es/modal/src/modal.js +56 -12
  17. package/es/modal/style.css +15 -4
  18. package/es/modal/style.min.css +1 -1
  19. package/es/scrollbar/src/scrollbar.js +73 -19
  20. package/es/style.css +1 -1
  21. package/es/style.min.css +1 -1
  22. package/es/tabs/src/tabs.js +21 -6
  23. package/es/tree/src/tree.js +410 -53
  24. package/es/tree/style.css +43 -0
  25. package/es/tree/style.min.css +1 -1
  26. package/es/ui/index.js +1 -1
  27. package/es/ui/src/log.js +1 -1
  28. package/es/ui/src/utils.js +3 -0
  29. package/es/vxe-drawer/style.css +13 -6
  30. package/es/vxe-drawer/style.min.css +1 -1
  31. package/es/vxe-list/style.css +25 -8
  32. package/es/vxe-list/style.min.css +1 -1
  33. package/es/vxe-modal/style.css +15 -4
  34. package/es/vxe-modal/style.min.css +1 -1
  35. package/es/vxe-tree/style.css +43 -0
  36. package/es/vxe-tree/style.min.css +1 -1
  37. package/lib/card/src/card.js +19 -4
  38. package/lib/card/src/card.min.js +1 -1
  39. package/lib/drawer/src/drawer.js +64 -11
  40. package/lib/drawer/src/drawer.min.js +1 -1
  41. package/lib/drawer/style/style.css +13 -6
  42. package/lib/drawer/style/style.min.css +1 -1
  43. package/lib/icon/style/style.css +1 -1
  44. package/lib/icon/style/style.min.css +1 -1
  45. package/lib/index.umd.js +887 -183
  46. package/lib/index.umd.min.js +1 -1
  47. package/lib/language/fr-FR.js +29 -29
  48. package/lib/language/fr-FR.min.js +1 -1
  49. package/lib/language/fr-FR.umd.js +29 -29
  50. package/lib/layout-aside/src/layout-aside.js +9 -8
  51. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  52. package/lib/layout-body/src/layout-body.js +29 -22
  53. package/lib/layout-body/src/layout-body.min.js +1 -1
  54. package/lib/list/src/list.js +110 -47
  55. package/lib/list/src/list.min.js +1 -1
  56. package/lib/list/style/style.css +25 -8
  57. package/lib/list/style/style.min.css +1 -1
  58. package/lib/menu/src/menu.js +1 -1
  59. package/lib/menu/src/menu.min.js +1 -1
  60. package/lib/modal/src/modal.js +61 -10
  61. package/lib/modal/src/modal.min.js +1 -1
  62. package/lib/modal/style/style.css +15 -4
  63. package/lib/modal/style/style.min.css +1 -1
  64. package/lib/scrollbar/src/scrollbar.js +81 -17
  65. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  66. package/lib/style.css +1 -1
  67. package/lib/style.min.css +1 -1
  68. package/lib/tabs/src/tabs.js +23 -11
  69. package/lib/tabs/src/tabs.min.js +1 -1
  70. package/lib/tree/src/tree.js +412 -50
  71. package/lib/tree/src/tree.min.js +1 -1
  72. package/lib/tree/style/style.css +43 -0
  73. package/lib/tree/style/style.min.css +1 -1
  74. package/lib/ui/index.js +1 -1
  75. package/lib/ui/index.min.js +1 -1
  76. package/lib/ui/src/log.js +1 -1
  77. package/lib/ui/src/log.min.js +1 -1
  78. package/lib/ui/src/utils.js +4 -0
  79. package/lib/ui/src/utils.min.js +1 -1
  80. package/lib/vxe-drawer/style/style.css +13 -6
  81. package/lib/vxe-drawer/style/style.min.css +1 -1
  82. package/lib/vxe-list/style/style.css +25 -8
  83. package/lib/vxe-list/style/style.min.css +1 -1
  84. package/lib/vxe-modal/style/style.css +15 -4
  85. package/lib/vxe-modal/style/style.min.css +1 -1
  86. package/lib/vxe-tree/style/style.css +43 -0
  87. package/lib/vxe-tree/style/style.min.css +1 -1
  88. package/package.json +2 -2
  89. package/packages/card/src/card.ts +20 -4
  90. package/packages/drawer/src/drawer.ts +73 -16
  91. package/packages/language/fr-FR.ts +903 -903
  92. package/packages/layout-aside/src/layout-aside.ts +10 -6
  93. package/packages/layout-body/src/layout-body.ts +25 -15
  94. package/packages/list/src/list.ts +130 -55
  95. package/packages/menu/src/menu.ts +2 -2
  96. package/packages/modal/src/modal.ts +71 -14
  97. package/packages/scrollbar/src/scrollbar.ts +79 -18
  98. package/packages/tabs/src/tabs.ts +21 -7
  99. package/packages/tree/src/tree.ts +452 -62
  100. package/packages/ui/src/utils.ts +4 -0
  101. package/styles/components/drawer.scss +13 -6
  102. package/styles/components/list.scss +35 -10
  103. package/styles/components/modal.scss +12 -4
  104. package/styles/components/tree.scss +76 -0
  105. package/types/components/card.d.ts +10 -1
  106. package/types/components/drawer.d.ts +20 -0
  107. package/types/components/gantt-module/gantt-view.d.ts +24 -1
  108. package/types/components/gantt.d.ts +2 -0
  109. package/types/components/layout-aside.d.ts +10 -1
  110. package/types/components/layout-body.d.ts +10 -1
  111. package/types/components/list.d.ts +13 -2
  112. package/types/components/modal.d.ts +20 -0
  113. package/types/components/scrollbar.d.ts +17 -2
  114. package/types/components/table.d.ts +80 -6
  115. package/types/components/tabs.d.ts +10 -1
  116. package/types/components/tree.d.ts +35 -2
  117. /package/es/icon/{iconfont.1791880413927.ttf → iconfont.1792034967421.ttf} +0 -0
  118. /package/es/icon/{iconfont.1791880413927.woff → iconfont.1792034967421.woff} +0 -0
  119. /package/es/icon/{iconfont.1791880413927.woff2 → iconfont.1792034967421.woff2} +0 -0
  120. /package/es/{iconfont.1791880413927.ttf → iconfont.1792034967421.ttf} +0 -0
  121. /package/es/{iconfont.1791880413927.woff → iconfont.1792034967421.woff} +0 -0
  122. /package/es/{iconfont.1791880413927.woff2 → iconfont.1792034967421.woff2} +0 -0
  123. /package/lib/icon/style/{iconfont.1791880413927.ttf → iconfont.1792034967421.ttf} +0 -0
  124. /package/lib/icon/style/{iconfont.1791880413927.woff → iconfont.1792034967421.woff} +0 -0
  125. /package/lib/icon/style/{iconfont.1791880413927.woff2 → iconfont.1792034967421.woff2} +0 -0
  126. /package/lib/{iconfont.1791880413927.ttf → iconfont.1792034967421.ttf} +0 -0
  127. /package/lib/{iconfont.1791880413927.woff → iconfont.1792034967421.woff} +0 -0
  128. /package/lib/{iconfont.1791880413927.woff2 → iconfont.1792034967421.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -3072,6 +3072,7 @@ __webpack_require__.d(__webpack_exports__, {
3072
3072
  renderGlobalIcon: function() { return /* reexport */ renderGlobalIcon; },
3073
3073
  renderer: function() { return /* reexport */ renderer; },
3074
3074
  saveFile: function() { return /* reexport */ saveFile; },
3075
+ scrollbarUtils: function() { return /* reexport */ scrollbarUtils; },
3075
3076
  setConfig: function() { return /* reexport */ setConfig; },
3076
3077
  setI18n: function() { return /* reexport */ setI18n; },
3077
3078
  setIcon: function() { return /* reexport */ setIcon; },
@@ -3328,6 +3329,7 @@ __webpack_require__.d(components_namespaceObject, {
3328
3329
  renderGlobalIcon: function() { return renderGlobalIcon; },
3329
3330
  renderer: function() { return renderer; },
3330
3331
  saveFile: function() { return saveFile; },
3332
+ scrollbarUtils: function() { return scrollbarUtils; },
3331
3333
  setConfig: function() { return setConfig; },
3332
3334
  setI18n: function() { return setI18n; },
3333
3335
  setIcon: function() { return setIcon; },
@@ -3364,7 +3366,7 @@ if (typeof window !== 'undefined') {
3364
3366
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
3365
3367
  var es_array_push = __webpack_require__(4114);
3366
3368
  ;// ./node_modules/@vxe-ui/core/es/src/core.js
3367
- const coreVersion = "4.4.27";
3369
+ const coreVersion = "4.4.31";
3368
3370
  const VxeCore = {
3369
3371
  coreVersion,
3370
3372
  uiVersion: '',
@@ -3992,7 +3994,7 @@ function createLog(type, name) {
3992
3994
  return msg;
3993
3995
  };
3994
3996
  }
3995
- const version = "4.4.27";
3997
+ const version = "4.4.31";
3996
3998
  const log = {
3997
3999
  create: createLog,
3998
4000
  warn: createLog('warn', `v${version}`),
@@ -4452,6 +4454,12 @@ const baseUtils = {
4452
4454
  */
4453
4455
  isEmpty(value) {
4454
4456
  return value === null || value === undefined || value === '';
4457
+ },
4458
+ /**
4459
+ * 获取配置值,如果存在则返回,如果不存在则使用默认值
4460
+ */
4461
+ getDefVal(value, defVal) {
4462
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(value) ? defVal : value;
4455
4463
  }
4456
4464
  };
4457
4465
  ;// ./node_modules/@vxe-ui/core/es/src/dom-utils.js
@@ -4467,7 +4475,7 @@ const domUtils = {
4467
4475
  for (let i = 0; i < staticClassNames.length; i++) {
4468
4476
  const val = staticClassNames[i];
4469
4477
  if (val) {
4470
- parts.push(val);
4478
+ parts.push('' + val);
4471
4479
  }
4472
4480
  }
4473
4481
  }
@@ -4479,6 +4487,63 @@ const domUtils = {
4479
4487
  return parts.join(' ');
4480
4488
  }
4481
4489
  };
4490
+ ;// ./node_modules/@vxe-ui/core/es/src/scrollbar-utils.js
4491
+ const scrollbarUtils = {
4492
+ /**
4493
+ * 计算滚动条滑块的长度
4494
+ */
4495
+ getThumbSize(viewportSize, contentSize, trackSize) {
4496
+ if (contentSize <= viewportSize) {
4497
+ return 0;
4498
+ }
4499
+ const ratio = viewportSize / contentSize;
4500
+ const ideal = trackSize * ratio;
4501
+ return Math.max(20, Math.min(ideal, trackSize));
4502
+ },
4503
+ /**
4504
+ * 计算滚动条滑块的偏移位置
4505
+ */
4506
+ getThumbOffsetSize(offsetSize, viewportSize, contentSize, trackSize, thumbSize) {
4507
+ const maxScroll = contentSize - viewportSize;
4508
+ if (maxScroll <= 0) {
4509
+ return 0;
4510
+ }
4511
+ const maxThumbOffset = trackSize - thumbSize;
4512
+ if (maxThumbOffset <= 0) {
4513
+ return 0;
4514
+ }
4515
+ const clamped = Math.min(Math.max(offsetSize, 0), maxScroll);
4516
+ const ratio = clamped / maxScroll;
4517
+ return ratio * maxThumbOffset;
4518
+ },
4519
+ /**
4520
+ * 根据点击轨道的位置,计算滑块的偏移位置
4521
+ */
4522
+ getScrollFromClick(clickPosition, viewportSize, contentSize, trackSize, thumbSize) {
4523
+ const maxThumbOffset = trackSize - thumbSize;
4524
+ const maxScroll = contentSize - viewportSize;
4525
+ if (maxScroll <= 0 || maxThumbOffset <= 0) {
4526
+ return 0;
4527
+ }
4528
+ let thumbOffset = clickPosition - thumbSize / 2;
4529
+ thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
4530
+ const scrollOffset = thumbOffset / maxThumbOffset * maxScroll;
4531
+ return scrollOffset;
4532
+ },
4533
+ /**
4534
+ * 拖拽 thumb 时,根据鼠标位置计算滑块的偏移位置
4535
+ */
4536
+ getScrollFromDrag(pointerPosition, dragOffset, viewportSize, contentSize, trackSize, thumbSize) {
4537
+ const maxScroll = contentSize - viewportSize;
4538
+ const maxThumbOffset = trackSize - thumbSize;
4539
+ if (maxScroll <= 0 || maxThumbOffset <= 0) {
4540
+ return 0;
4541
+ }
4542
+ let thumbOffset = pointerPosition - dragOffset;
4543
+ thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
4544
+ return thumbOffset / maxThumbOffset * maxScroll;
4545
+ }
4546
+ };
4482
4547
  ;// ./node_modules/@vxe-ui/core/es/src/hooks.js
4483
4548
 
4484
4549
  const hooks = new store();
@@ -4532,6 +4597,7 @@ const useFns = {
4532
4597
 
4533
4598
 
4534
4599
 
4600
+
4535
4601
 
4536
4602
 
4537
4603
  const installedPlugins = [];
@@ -4604,6 +4670,7 @@ const VxeUI = Object.assign(VxeCore, {
4604
4670
  permission: permission,
4605
4671
  baseUtils: baseUtils,
4606
4672
  domUtils: domUtils,
4673
+ scrollbarUtils: scrollbarUtils,
4607
4674
  globalStore: globalStore,
4608
4675
  hooks: hooks,
4609
4676
  component,
@@ -4635,6 +4702,7 @@ setTheme();
4635
4702
 
4636
4703
 
4637
4704
 
4705
+
4638
4706
 
4639
4707
 
4640
4708
  /* harmony default export */ var es_index_esm = ((/* unused pure expression or super */ null && (VxeUI)));
@@ -4745,7 +4813,7 @@ function checkDynamic() {
4745
4813
  const {
4746
4814
  log: log_log
4747
4815
  } = VxeUI;
4748
- const uiVersion = `ui v${"4.20.0"}`;
4816
+ const uiVersion = `ui v${"4.20.2"}`;
4749
4817
  function createComponentLog(name) {
4750
4818
  const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
4751
4819
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
@@ -4763,7 +4831,7 @@ const errLog = log_log.create('error', uiVersion);
4763
4831
 
4764
4832
 
4765
4833
 
4766
- const ui_version = "4.20.0";
4834
+ const ui_version = "4.20.2";
4767
4835
  VxeUI.uiVersion = ui_version;
4768
4836
  VxeUI.dynamicApp = dynamicApp;
4769
4837
  function config(options) {
@@ -7467,6 +7535,9 @@ function enModelValue(nodeid) {
7467
7535
  function deModelValue(nodeid) {
7468
7536
  return nodeid ? decodeURIComponent(`${nodeid}`) : nodeid;
7469
7537
  }
7538
+ function getDefaultConfig(val1, def1) {
7539
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(val1) ? def1 : val1;
7540
+ }
7470
7541
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.filter.js
7471
7542
  var es_iterator_filter = __webpack_require__(2489);
7472
7543
  ;// ./packages/tooltip/src/tooltip.ts
@@ -11695,6 +11766,7 @@ function getScrollFromDrag(pointerPosition, dragOffset, viewportSize, contentSiz
11695
11766
 
11696
11767
 
11697
11768
 
11769
+
11698
11770
  const {
11699
11771
  getConfig: scrollbar_getConfig,
11700
11772
  createEvent: scrollbar_createEvent,
@@ -11724,6 +11796,7 @@ function scrollbar_createInternalData() {
11724
11796
  name: 'VxeScrollbar',
11725
11797
  props: {
11726
11798
  id: [String, Number],
11799
+ viewId: [String, Number],
11727
11800
  width: [String, Number],
11728
11801
  height: [String, Number],
11729
11802
  minWidth: [String, Number],
@@ -11739,6 +11812,14 @@ function scrollbar_createInternalData() {
11739
11812
  type: Boolean,
11740
11813
  default: () => scrollbar_getConfig().scrollbar.padding
11741
11814
  },
11815
+ autoHide: {
11816
+ type: Boolean,
11817
+ default: () => scrollbar_getConfig().scrollbar.autoHide
11818
+ },
11819
+ visible: {
11820
+ type: Boolean,
11821
+ default: () => scrollbar_getConfig().scrollbar.visible
11822
+ },
11742
11823
  xConfig: Object,
11743
11824
  yConfig: Object,
11744
11825
  className: {
@@ -11788,8 +11869,8 @@ function scrollbar_createInternalData() {
11788
11869
  maxWidth,
11789
11870
  maxHeight
11790
11871
  } = props;
11791
- const xOpts = computeXOpts.value;
11792
- const yOpts = computeYOpts.value;
11872
+ const barWidth = computeYWidth.value;
11873
+ const barHeight = computeXHeight.value;
11793
11874
  const stys = {};
11794
11875
  if (width) {
11795
11876
  stys.width = toCssUnit(width);
@@ -11809,14 +11890,48 @@ function scrollbar_createInternalData() {
11809
11890
  if (maxHeight) {
11810
11891
  stys.maxHeight = toCssUnit(maxHeight);
11811
11892
  }
11812
- if (yOpts.width) {
11813
- stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(yOpts.width);
11814
- }
11815
- if (xOpts.height) {
11816
- stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(xOpts.height);
11893
+ if (barWidth || barHeight) {
11894
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
11895
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
11817
11896
  }
11818
11897
  return stys;
11819
11898
  });
11899
+ const computeXHeight = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
11900
+ const xOpts = computeXOpts.value;
11901
+ return xOpts.height;
11902
+ });
11903
+ const computeYWidth = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
11904
+ const yOpts = computeYOpts.value;
11905
+ return yOpts.width;
11906
+ });
11907
+ const computeXVisible = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
11908
+ const {
11909
+ visible
11910
+ } = props;
11911
+ const xOpts = computeXOpts.value;
11912
+ return getDefaultConfig(xOpts.visible, visible);
11913
+ });
11914
+ const computeYVisible = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
11915
+ const {
11916
+ visible
11917
+ } = props;
11918
+ const yOpts = computeYOpts.value;
11919
+ return getDefaultConfig(yOpts.visible, visible);
11920
+ });
11921
+ const computeXAutoHide = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
11922
+ const {
11923
+ autoHide
11924
+ } = props;
11925
+ const xOpts = computeXOpts.value;
11926
+ return getDefaultConfig(xOpts.autoHide, autoHide);
11927
+ });
11928
+ const computeYAutoHide = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
11929
+ const {
11930
+ autoHide
11931
+ } = props;
11932
+ const yOpts = computeYOpts.value;
11933
+ return getDefaultConfig(yOpts.autoHide, autoHide);
11934
+ });
11820
11935
  const computeWrapperClss = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
11821
11936
  const {
11822
11937
  native,
@@ -11827,14 +11942,16 @@ function scrollbar_createInternalData() {
11827
11942
  yThumbHeight,
11828
11943
  xThumbWidth
11829
11944
  } = reactData;
11830
- const xOpts = computeXOpts.value;
11831
- const yOpts = computeYOpts.value;
11832
11945
  const xToTop = computeXToTop.value;
11833
11946
  const yToLeft = computeYToLeft.value;
11834
- return scrollbar_domUtils.buildClass(['vxe-scrollbar', `ov-x--${xOpts.visible || 'visible'}`, `ov-y--${yOpts.visible || 'visible'}`, `sx-pos--${xToTop ? 'top' : 'bottom'}`, `sy-pos--${yToLeft ? 'left' : 'right'}`, native ? 'is--native' : 'is--virtual', className], {
11947
+ const xVisible = computeXVisible.value;
11948
+ const yVisible = computeYVisible.value;
11949
+ const xAutoHide = computeXAutoHide.value;
11950
+ const yAutoHide = computeYAutoHide.value;
11951
+ return scrollbar_domUtils.buildClass(['vxe-scrollbar', `ov-x--${xVisible === false ? 'hidden' : 'visible'}`, `ov-y--${yVisible === false ? 'hidden' : 'visible'}`, `sx-pos--${xToTop ? 'top' : 'bottom'}`, `sy-pos--${yToLeft ? 'left' : 'right'}`, native ? 'is--native' : 'is--virtual', className], {
11835
11952
  'is--padding': padding,
11836
- 'ov-x--auto-hide': xOpts.autoHide,
11837
- 'ov-y--auto-hide': yOpts.autoHide,
11953
+ 'ov-x--auto-hide': xAutoHide,
11954
+ 'ov-y--auto-hide': yAutoHide,
11838
11955
  'overflow-y': yThumbHeight,
11839
11956
  'overflow-x': xThumbWidth
11840
11957
  });
@@ -12209,14 +12326,15 @@ function scrollbar_createInternalData() {
12209
12326
  id,
12210
12327
  native,
12211
12328
  loading,
12329
+ viewId,
12212
12330
  viewAttrs
12213
12331
  } = props;
12214
12332
  const wrapperStyle = computeWrapperStyle.value;
12215
12333
  const wrapperClss = computeWrapperClss.value;
12216
12334
  const viewClss = computeViewClss.value;
12217
12335
  const viewInnerClss = computeViewInnerClss.value;
12218
- const xOpts = computeXOpts.value;
12219
- const yOpts = computeYOpts.value;
12336
+ const xVisible = computeXVisible.value;
12337
+ const yVisible = computeYVisible.value;
12220
12338
  const defaultSlot = slots.default;
12221
12339
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
12222
12340
  ref: refElem,
@@ -12227,12 +12345,13 @@ function scrollbar_createInternalData() {
12227
12345
  ref: refViewElem,
12228
12346
  class: viewClss,
12229
12347
  onScroll: scrollEvent,
12348
+ id: viewId || null,
12230
12349
  ...viewAttrs
12231
12350
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
12232
12351
  key: 'vi',
12233
12352
  ref: refViewInnerElem,
12234
12353
  class: viewInnerClss
12235
- }, defaultSlot ? defaultSlot({}) : [])]), native || xOpts.visible === 'hidden' ? scrollbar_renderEmptyElement($xeScrollbar) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
12354
+ }, defaultSlot ? defaultSlot({}) : [])]), native || xVisible === false ? scrollbar_renderEmptyElement($xeScrollbar) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
12236
12355
  ref: refTrackXElem,
12237
12356
  class: 'vxe-scrollbar--track-x',
12238
12357
  onClick: clickTrackXEvent
@@ -12244,7 +12363,7 @@ function scrollbar_createInternalData() {
12244
12363
  onPointerup: cleatPointerThumbEvent,
12245
12364
  onPointercancel: cleatPointerThumbEvent,
12246
12365
  onLostpointercapture: cleatPointerThumbEvent
12247
- })]), native || yOpts.visible === 'hidden' ? scrollbar_renderEmptyElement($xeScrollbar) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
12366
+ })]), native || yVisible === false ? scrollbar_renderEmptyElement($xeScrollbar) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
12248
12367
  ref: refTrackYElem,
12249
12368
  class: 'vxe-scrollbar--track-y',
12250
12369
  onClick: clickTrackYEvent
@@ -12286,6 +12405,22 @@ function scrollbar_createInternalData() {
12286
12405
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.syncResize, () => {
12287
12406
  reFlag.value++;
12288
12407
  });
12408
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeYWidth, () => {
12409
+ reFlag.value++;
12410
+ });
12411
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeXHeight, () => {
12412
+ reFlag.value++;
12413
+ });
12414
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeXVisible, () => {
12415
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => {
12416
+ reFlag.value++;
12417
+ });
12418
+ });
12419
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeYVisible, () => {
12420
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => {
12421
+ reFlag.value++;
12422
+ });
12423
+ });
12289
12424
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(reFlag, () => {
12290
12425
  $xeScrollbar.recalculate().then(() => {
12291
12426
  $xeScrollbar.recalculate();
@@ -12354,6 +12489,7 @@ const Scrollbar = VxeScrollbar;
12354
12489
 
12355
12490
 
12356
12491
 
12492
+
12357
12493
  /* harmony default export */ var card = (defineVxeComponent({
12358
12494
  name: 'VxeCard',
12359
12495
  props: {
@@ -12383,7 +12519,7 @@ const Scrollbar = VxeScrollbar;
12383
12519
  },
12384
12520
  useScrollbar: {
12385
12521
  type: Boolean,
12386
- default: () => getConfig().card.useScrollbar
12522
+ default: () => getDefaultConfig(getConfig().card.useScrollbar, getConfig().useScrollbar)
12387
12523
  },
12388
12524
  scrollbarConfig: Object
12389
12525
  },
@@ -12419,6 +12555,19 @@ const Scrollbar = VxeScrollbar;
12419
12555
  const computeScrollbarOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
12420
12556
  return Object.assign({}, getConfig().card.scrollbarConfig, props.scrollbarConfig);
12421
12557
  });
12558
+ const computeScrollbarProps = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
12559
+ const scrollbarOpts = computeScrollbarOpts.value;
12560
+ return {
12561
+ width: scrollbarOpts.width,
12562
+ height: scrollbarOpts.height,
12563
+ autoHide: scrollbarOpts.autoHide,
12564
+ visible: scrollbarOpts.visible,
12565
+ xConfig: scrollbarOpts.xConfig,
12566
+ yConfig: scrollbarOpts.yConfig,
12567
+ className: scrollbarOpts.className,
12568
+ viewAttrs: scrollbarOpts.viewAttrs
12569
+ };
12570
+ });
12422
12571
  const computeMaps = {
12423
12572
  computeSize
12424
12573
  };
@@ -12460,6 +12609,7 @@ const Scrollbar = VxeScrollbar;
12460
12609
  const vSize = computeSize.value;
12461
12610
  const cardStyle = computeCardStyle.value;
12462
12611
  const scrollbarOpts = computeScrollbarOpts.value;
12612
+ const scrollbarProps = computeScrollbarProps.value;
12463
12613
  const {
12464
12614
  viewClassName,
12465
12615
  viewInnerClassName
@@ -12485,7 +12635,7 @@ const Scrollbar = VxeScrollbar;
12485
12635
  class: 'vxe-card--body'
12486
12636
  }, [leftSlot ? useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(packages_scrollbar, {
12487
12637
  class: 'vxe-card--body-scrollbar-left',
12488
- ...scrollbarOpts,
12638
+ ...scrollbarProps,
12489
12639
  viewClassName: 'vxe-card--body-scrollbar-left-view',
12490
12640
  viewInnerClassName: 'vxe-card--body-scrollbar-left-inner'
12491
12641
  }, {
@@ -12494,7 +12644,7 @@ const Scrollbar = VxeScrollbar;
12494
12644
  class: 'vxe-card--body-left'
12495
12645
  }, vn_getSlotVNs(leftSlot({}))) : renderEmptyElement($xeCard), useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(packages_scrollbar, {
12496
12646
  class: 'vxe-card--body-scrollbar-content',
12497
- ...scrollbarOpts,
12647
+ ...scrollbarProps,
12498
12648
  viewClassName: 'vxe-card--body-scrollbar-content-view' + (viewClassName ? ' ' + viewClassName : ''),
12499
12649
  viewInnerClassName: 'vxe-card--body-scrollbar-content-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
12500
12650
  }, {
@@ -12503,7 +12653,7 @@ const Scrollbar = VxeScrollbar;
12503
12653
  class: 'vxe-card--body-content'
12504
12654
  }, defaultSlot ? vn_getSlotVNs(defaultSlot({})) : []), rightSlot ? useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(packages_scrollbar, {
12505
12655
  class: 'vxe-card--body-scrollbar-right',
12506
- ...scrollbarOpts,
12656
+ ...scrollbarProps,
12507
12657
  viewClassName: 'vxe-card--body-scrollbar-right-view',
12508
12658
  viewInnerClassName: 'vxe-card--body-scrollbar-right-inner'
12509
12659
  }, {
@@ -13209,8 +13359,9 @@ function list_createInternalData() {
13209
13359
  afterList: [],
13210
13360
  fullKeyMaps: {},
13211
13361
  rowMaps: {},
13212
- // 滚动条
13213
13362
  // resizeObserver: undefined,
13363
+ // 滚动条
13364
+ // scrollObserver: undefined,
13214
13365
  // isThumbDrag: false,
13215
13366
  thumbDragOffset: 0,
13216
13367
  yThumbTop: 0,
@@ -13273,7 +13424,7 @@ let crossListDragRowObj = null;
13273
13424
  scrollY: Object,
13274
13425
  useScrollbar: {
13275
13426
  type: Boolean,
13276
- default: () => getConfig().list.useScrollbar
13427
+ default: () => getDefaultConfig(getConfig().list.useScrollbar, getConfig().useScrollbar)
13277
13428
  },
13278
13429
  scrollbarConfig: Object
13279
13430
  },
@@ -13296,7 +13447,6 @@ let crossListDragRowObj = null;
13296
13447
  const refFooterElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
13297
13448
  const refVirtualWrapper = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
13298
13449
  const refVirtualBody = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
13299
- const refViewInnerElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
13300
13450
  const refTrackXElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
13301
13451
  const refTrackYElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
13302
13452
  const refThumbXElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
@@ -13359,17 +13509,15 @@ let crossListDragRowObj = null;
13359
13509
  });
13360
13510
  const computeWrapperStyles = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
13361
13511
  const rowHeight = computeRowHeight.value;
13362
- const scrollbarXOpts = computeScrollbarXOpts.value;
13363
- const scrollbarYOpts = computeScrollbarYOpts.value;
13512
+ const barWidth = computeScrollYWidth.value;
13513
+ const barHeight = computeScrollXHeight.value;
13364
13514
  const stys = {};
13365
13515
  if (rowHeight) {
13366
13516
  stys['--vxe-ui-list-row-height'] = toCssUnit(rowHeight);
13367
13517
  }
13368
- if (scrollbarYOpts.width) {
13369
- stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(scrollbarYOpts.width);
13370
- }
13371
- if (scrollbarXOpts.height) {
13372
- stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(scrollbarXOpts.height);
13518
+ if (barWidth || barHeight) {
13519
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
13520
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
13373
13521
  }
13374
13522
  return stys;
13375
13523
  });
@@ -13404,23 +13552,46 @@ let crossListDragRowObj = null;
13404
13552
  const scrollbarOpts = computeScrollbarOpts.value;
13405
13553
  return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
13406
13554
  });
13407
- const computeScrollbarWrapperClss = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
13555
+ const computeScrollXHeight = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
13408
13556
  const scrollbarOpts = computeScrollbarOpts.value;
13409
- const {
13410
- padding
13411
- } = scrollbarOpts;
13557
+ const scrollbarXOpts = computeScrollbarXOpts.value;
13558
+ return getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
13559
+ });
13560
+ const computeScrollYWidth = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
13561
+ const scrollbarOpts = computeScrollbarOpts.value;
13562
+ const scrollbarYOpts = computeScrollbarYOpts.value;
13563
+ return getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
13564
+ });
13565
+ const computeScrollXVisible = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
13566
+ const scrollbarOpts = computeScrollbarOpts.value;
13567
+ const scrollbarXOpts = computeScrollbarXOpts.value;
13568
+ return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
13569
+ });
13570
+ const computeScrollYVisible = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
13571
+ const scrollbarOpts = computeScrollbarOpts.value;
13572
+ const scrollbarYOpts = computeScrollbarYOpts.value;
13573
+ return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
13574
+ });
13575
+ const computeScrollXAutoHide = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
13576
+ const scrollbarOpts = computeScrollbarOpts.value;
13577
+ const scrollbarXOpts = computeScrollbarXOpts.value;
13578
+ return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
13579
+ });
13580
+ const computeScrollYAutoHide = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
13581
+ const scrollbarOpts = computeScrollbarOpts.value;
13582
+ const scrollbarYOpts = computeScrollbarYOpts.value;
13583
+ return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
13584
+ });
13585
+ const computeScrollbarWrapperClss = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
13412
13586
  const {
13413
13587
  yThumbHeight,
13414
13588
  xThumbWidth
13415
13589
  } = reactData;
13416
- const scrollbarXOpts = computeScrollbarXOpts.value;
13417
- const scrollbarYOpts = computeScrollbarYOpts.value;
13418
13590
  const scrollbarXToTop = computeScrollbarXToTop.value;
13419
13591
  const scrollbarYToLeft = computeScrollbarYToLeft.value;
13420
- return domUtils.buildClass(['vxe-scrollbar is--virtual', `ov-x--${scrollbarXOpts.visible || 'visible'}`, `ov-y--${scrollbarYOpts.visible || 'visible'}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`], {
13421
- 'is--padding': padding,
13422
- 'ov-x--auto-hide': scrollbarXOpts.autoHide,
13423
- 'ov-y--auto-hide': scrollbarYOpts.autoHide,
13592
+ const scrollXVisible = computeScrollXVisible.value;
13593
+ const scrollYVisible = computeScrollYVisible.value;
13594
+ return domUtils.buildClass(['vxe-scrollbar is--virtual', `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`, `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`], {
13424
13595
  'overflow-y': yThumbHeight,
13425
13596
  'overflow-x': xThumbWidth
13426
13597
  });
@@ -13448,6 +13619,10 @@ let crossListDragRowObj = null;
13448
13619
  const keyField = computeKeyField.value;
13449
13620
  return getRowIdByField(row, keyField);
13450
13621
  };
13622
+ const getParentElem = () => {
13623
+ const el = refElem.value;
13624
+ return el ? el.parentElement : null;
13625
+ };
13451
13626
  const calcTableHeight = key => {
13452
13627
  const {
13453
13628
  parentHeight
@@ -15604,7 +15779,9 @@ let crossListDragRowObj = null;
15604
15779
  topSpaceHeight,
15605
15780
  rowList,
15606
15781
  isAllChecked,
15607
- isAllIndeterminate
15782
+ isAllIndeterminate,
15783
+ xThumbWidth,
15784
+ yThumbHeight
15608
15785
  } = reactData;
15609
15786
  const defaultSlot = slots.default;
15610
15787
  const headerSlot = slots.header;
@@ -15629,8 +15806,13 @@ let crossListDragRowObj = null;
15629
15806
  padding
15630
15807
  } = rowOpts;
15631
15808
  const isDrag = computeIsDrag.value;
15632
- const scrollbarXOpts = computeScrollbarXOpts.value;
15633
- const scrollbarYOpts = computeScrollbarYOpts.value;
15809
+ const scrollbarOpts = computeScrollbarOpts.value;
15810
+ const scrollXVisible = computeScrollXVisible.value;
15811
+ const scrollYVisible = computeScrollYVisible.value;
15812
+ const scrollbarXToTop = computeScrollbarXToTop.value;
15813
+ const scrollbarYToLeft = computeScrollbarYToLeft.value;
15814
+ const scrollXAutoHide = computeScrollXAutoHide.value;
15815
+ const scrollYAutoHide = computeScrollYAutoHide.value;
15634
15816
  const scrollbarWrapperClss = computeScrollbarWrapperClss.value;
15635
15817
  const showDefChekboxHead = showCheckbox && showHeader !== false;
15636
15818
  const leOns = {};
@@ -15639,13 +15821,16 @@ let crossListDragRowObj = null;
15639
15821
  }
15640
15822
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
15641
15823
  ref: refElem,
15642
- class: ['vxe-list', className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className({
15824
+ class: ['vxe-list', useScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '', useScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '', useScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '', useScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '', className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className({
15643
15825
  $list: $xeList
15644
15826
  }) : className : '', {
15645
15827
  [`size--${vSize}`]: vSize,
15646
15828
  'is--virtual-scrollbar': useScrollbar,
15647
- 'ov-x--auto-hide': useScrollbar && scrollbarXOpts.autoHide,
15648
- 'ov-y--auto-hide': useScrollbar && scrollbarYOpts.autoHide,
15829
+ 'ov-padding': useScrollbar && scrollbarOpts.padding,
15830
+ 'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
15831
+ 'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
15832
+ 'overflow-y': yThumbHeight,
15833
+ 'overflow-x': xThumbWidth,
15649
15834
  'is--drag': isDrag,
15650
15835
  'is--loading': loading
15651
15836
  }],
@@ -15693,17 +15878,10 @@ let crossListDragRowObj = null;
15693
15878
  style: {
15694
15879
  marginTop: topSpaceHeight ? `${topSpaceHeight}px` : ''
15695
15880
  }
15696
- }, useScrollbar ? defaultSlot ? defaultSlot({
15697
- items: rowList,
15698
- $list: $xeList
15699
- }) : rowList.map((row, i) => renderRow(row, i)) : [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
15700
- key: 'vi',
15701
- ref: refViewInnerElem,
15702
- class: 'vxe-scrollbar--view-inner'
15703
15881
  }, defaultSlot ? defaultSlot({
15704
15882
  items: rowList,
15705
15883
  $list: $xeList
15706
- }) : rowList.map((row, i) => renderRow(row, i)))])]), footerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
15884
+ }) : rowList.map((row, i) => renderRow(row, i)))]), footerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
15707
15885
  ref: refFooterElem,
15708
15886
  class: 'vxe-list--footer-wrapper'
15709
15887
  }, footerSlot({
@@ -15715,7 +15893,7 @@ let crossListDragRowObj = null;
15715
15893
  */
15716
15894
  useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
15717
15895
  class: scrollbarWrapperClss
15718
- }, [scrollbarXOpts.visible === 'hidden' ? renderEmptyElement($xeList) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
15896
+ }, [scrollXVisible === false ? renderEmptyElement($xeList) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
15719
15897
  ref: refTrackXElem,
15720
15898
  class: 'vxe-scrollbar--track-x',
15721
15899
  onClick: clickTrackXEvent
@@ -15727,7 +15905,7 @@ let crossListDragRowObj = null;
15727
15905
  onPointerup: cleatPointerThumbEvent,
15728
15906
  onPointercancel: cleatPointerThumbEvent,
15729
15907
  onLostpointercapture: cleatPointerThumbEvent
15730
- })]), scrollbarYOpts.visible === 'hidden' ? renderEmptyElement($xeList) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
15908
+ })]), scrollYVisible === false ? renderEmptyElement($xeList) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
15731
15909
  ref: refTrackYElem,
15732
15910
  class: 'vxe-scrollbar--track-y',
15733
15911
  onClick: clickTrackYEvent
@@ -15772,11 +15950,30 @@ let crossListDragRowObj = null;
15772
15950
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.syncResize, () => {
15773
15951
  reFlag.value++;
15774
15952
  });
15953
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.useScrollbar, () => {
15954
+ reFlag.value++;
15955
+ });
15775
15956
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeRowHeight, () => {
15776
15957
  reFlag.value++;
15777
15958
  });
15778
- (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(reFlag, () => {
15959
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeScrollYWidth, () => {
15960
+ reFlag.value++;
15961
+ });
15962
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeScrollXHeight, () => {
15963
+ reFlag.value++;
15964
+ });
15965
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeScrollXVisible, () => {
15779
15966
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => {
15967
+ reFlag.value++;
15968
+ });
15969
+ });
15970
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeScrollYVisible, () => {
15971
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => {
15972
+ reFlag.value++;
15973
+ });
15974
+ });
15975
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(reFlag, () => {
15976
+ recalculate().then(() => {
15780
15977
  recalculate();
15781
15978
  });
15782
15979
  });
@@ -15832,20 +16029,32 @@ let crossListDragRowObj = null;
15832
16029
  if (useKey && !keyField) {
15833
16030
  list_errLog('vxe.error.reqSupportProp', ['row-config.useKey', 'row-config.keyField']);
15834
16031
  }
15835
- if (useScrollbar || autoResize) {
15836
- const el = refElem.value;
15837
- const viewInnerEl = refViewInnerElem.value;
15838
- const resizeObserver = globalResize.create(() => {
16032
+ const el = refElem.value;
16033
+ if (useScrollbar) {
16034
+ const viewInnerEl = refVirtualBody.value;
16035
+ const scrollObserver = globalResize.create(() => {
15839
16036
  reFlag.value++;
15840
16037
  });
15841
- resizeObserver.observe(el);
15842
- if (autoResize) {
15843
- if (el) {
15844
- resizeObserver.observe(el.parentElement);
15845
- }
16038
+ if (el) {
16039
+ scrollObserver.observe(el);
15846
16040
  }
15847
16041
  if (viewInnerEl) {
15848
- resizeObserver.observe(viewInnerEl);
16042
+ scrollObserver.observe(viewInnerEl);
16043
+ }
16044
+ internalData.scrollObserver = scrollObserver;
16045
+ }
16046
+ if (autoResize) {
16047
+ const parentEl = getParentElem();
16048
+ const resizeObserver = globalResize.create(() => {
16049
+ if (props.autoResize) {
16050
+ reFlag.value++;
16051
+ }
16052
+ });
16053
+ if (el) {
16054
+ resizeObserver.observe(el);
16055
+ }
16056
+ if (parentEl) {
16057
+ resizeObserver.observe(parentEl);
15849
16058
  }
15850
16059
  internalData.resizeObserver = resizeObserver;
15851
16060
  }
@@ -15856,11 +16065,15 @@ let crossListDragRowObj = null;
15856
16065
  });
15857
16066
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onBeforeUnmount)(() => {
15858
16067
  const {
16068
+ scrollObserver,
15859
16069
  resizeObserver
15860
16070
  } = internalData;
15861
16071
  if (resizeObserver) {
15862
16072
  resizeObserver.disconnect();
15863
16073
  }
16074
+ if (scrollObserver) {
16075
+ scrollObserver.disconnect();
16076
+ }
15864
16077
  globalEvents.off($xeList, 'resize');
15865
16078
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(reactData, list_createReactData());
15866
16079
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, list_createInternalData());
@@ -31864,6 +32077,7 @@ const allActiveDrawers = [];
31864
32077
 
31865
32078
 
31866
32079
 
32080
+
31867
32081
  /* harmony default export */ var drawer = (defineVxeComponent({
31868
32082
  name: 'VxeDrawer',
31869
32083
  props: {
@@ -31996,7 +32210,12 @@ const allActiveDrawers = [];
31996
32210
  default: () => getConfig().drawer.size || getConfig().size
31997
32211
  },
31998
32212
  beforeHideMethod: Function,
31999
- slots: Object
32213
+ slots: Object,
32214
+ useScrollbar: {
32215
+ type: Boolean,
32216
+ default: () => getDefaultConfig(getConfig().drawer.useScrollbar, getConfig().useScrollbar)
32217
+ },
32218
+ scrollbarConfig: Object
32000
32219
  },
32001
32220
  emits: ['update:modelValue', 'show', 'hide', 'before-hide', 'close', 'confirm', 'cancel', 'resize'],
32002
32221
  setup(props, context) {
@@ -32055,6 +32274,28 @@ const allActiveDrawers = [];
32055
32274
  }
32056
32275
  return 'wl';
32057
32276
  });
32277
+ const computeScrollbarOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
32278
+ return Object.assign({}, getConfig().modal.scrollbarConfig, props.scrollbarConfig);
32279
+ });
32280
+ const computeScrollbarProps = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
32281
+ const scrollbarOpts = computeScrollbarOpts.value;
32282
+ const {
32283
+ viewClassName,
32284
+ viewInnerClassName
32285
+ } = scrollbarOpts;
32286
+ return {
32287
+ width: scrollbarOpts.width,
32288
+ height: scrollbarOpts.height,
32289
+ autoHide: scrollbarOpts.autoHide,
32290
+ visible: scrollbarOpts.visible,
32291
+ xConfig: scrollbarOpts.xConfig,
32292
+ yConfig: scrollbarOpts.yConfig,
32293
+ className: scrollbarOpts.className,
32294
+ viewAttrs: scrollbarOpts.viewAttrs,
32295
+ viewClassName: 'vxe-drawer--scrollbar-content-view' + (viewClassName ? ' ' + viewClassName : ''),
32296
+ viewInnerClassName: 'vxe-drawer--scrollbar-content-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
32297
+ };
32298
+ });
32058
32299
  const computeMaps = {};
32059
32300
  const $xeDrawer = {
32060
32301
  xID,
@@ -32398,11 +32639,47 @@ const allActiveDrawers = [];
32398
32639
  const {
32399
32640
  slots: propSlots = {},
32400
32641
  content,
32642
+ useScrollbar,
32401
32643
  useHtml
32402
32644
  } = props;
32645
+ const scrollbarProps = computeScrollbarProps.value;
32403
32646
  const defaultSlot = slots.default || propSlots.default;
32404
32647
  const leftSlot = slots.left || propSlots.left;
32405
32648
  const rightSlot = slots.right || propSlots.right;
32649
+ const contVNs = [];
32650
+ if (useHtml && !defaultSlot) {
32651
+ contVNs.push(useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(packages_scrollbar, {
32652
+ key: 'shc',
32653
+ class: 'vxe-drawer--scrollbar-content',
32654
+ ...scrollbarProps
32655
+ }, {
32656
+ default() {
32657
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
32658
+ class: 'vxe-drawer--scrollbar-content-html',
32659
+ innerHTML: getFuncText(content)
32660
+ })];
32661
+ }
32662
+ }) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
32663
+ key: 'hc',
32664
+ class: 'vxe-drawer--content',
32665
+ innerHTML: getFuncText(content)
32666
+ }));
32667
+ } else {
32668
+ contVNs.push(useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(packages_scrollbar, {
32669
+ key: 'sdc',
32670
+ class: 'vxe-drawer--scrollbar-content',
32671
+ ...scrollbarProps
32672
+ }, {
32673
+ default: () => defaultSlot ? vn_getSlotVNs(defaultSlot({
32674
+ $drawer: $xeDrawer
32675
+ })) : getFuncText(content)
32676
+ }) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
32677
+ key: 'dc',
32678
+ class: 'vxe-drawer--content'
32679
+ }, defaultSlot ? vn_getSlotVNs(defaultSlot({
32680
+ $drawer: $xeDrawer
32681
+ })) : getFuncText(content)));
32682
+ }
32406
32683
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
32407
32684
  class: 'vxe-drawer--body'
32408
32685
  }, [leftSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
@@ -32411,16 +32688,7 @@ const allActiveDrawers = [];
32411
32688
  $drawer: $xeDrawer
32412
32689
  }))) : renderEmptyElement($xeDrawer), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
32413
32690
  class: 'vxe-drawer--body-default'
32414
- }, [useHtml && !defaultSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
32415
- key: 'hc',
32416
- class: 'vxe-drawer--content',
32417
- innerHTML: getFuncText(content)
32418
- }) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
32419
- key: 'dc',
32420
- class: 'vxe-drawer--content'
32421
- }, defaultSlot ? vn_getSlotVNs(defaultSlot({
32422
- $drawer: $xeDrawer
32423
- })) : getFuncText(content))]), rightSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
32691
+ }, contVNs), rightSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
32424
32692
  class: 'vxe-drawer--body-right'
32425
32693
  }, vn_getSlotVNs(rightSlot({
32426
32694
  $drawer: $xeDrawer
@@ -37651,6 +37919,7 @@ const ImagePreview = VxeImagePreview;
37651
37919
 
37652
37920
 
37653
37921
 
37922
+
37654
37923
  /* harmony default export */ var layout_aside = (defineVxeComponent({
37655
37924
  name: 'VxeLayoutAside',
37656
37925
  props: {
@@ -37662,7 +37931,7 @@ const ImagePreview = VxeImagePreview;
37662
37931
  collapseConfig: Object,
37663
37932
  useScrollbar: {
37664
37933
  type: Boolean,
37665
- default: () => getConfig().layoutAside.useScrollbar
37934
+ default: () => getDefaultConfig(getConfig().layoutAside.useScrollbar, getConfig().useScrollbar)
37666
37935
  },
37667
37936
  scrollbarConfig: Object,
37668
37937
  size: {
@@ -37739,10 +38008,7 @@ const ImagePreview = VxeImagePreview;
37739
38008
  const collapseOpts = computeCollapseOpts.value;
37740
38009
  const scrollbarOpts = computeScrollbarOpts.value;
37741
38010
  const {
37742
- native,
37743
- yConfig,
37744
38011
  className,
37745
- viewAttrs,
37746
38012
  viewClassName,
37747
38013
  viewInnerClassName
37748
38014
  } = scrollbarOpts;
@@ -37758,13 +38024,16 @@ const ImagePreview = VxeImagePreview;
37758
38024
  }],
37759
38025
  style: varStyle
37760
38026
  }, [useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(packages_scrollbar, {
37761
- native,
38027
+ width: scrollbarOpts.width,
38028
+ height: scrollbarOpts.height,
38029
+ autoHide: scrollbarOpts.autoHide,
38030
+ visible: scrollbarOpts.visible,
37762
38031
  xConfig: {
37763
- visible: 'hidden'
38032
+ visible: false
37764
38033
  },
37765
- yConfig,
38034
+ yConfig: scrollbarOpts.yConfig,
37766
38035
  className: 'vxe-layout-aside--scrollbar' + (className ? ' ' + className : ''),
37767
- viewAttrs,
38036
+ viewAttrs: scrollbarOpts.viewAttrs,
37768
38037
  viewClassName: 'vxe-layout-aside--scrollbar-view' + (viewClassName ? ' ' + viewClassName : ''),
37769
38038
  viewInnerClassName: 'vxe-layout-aside--scrollbar-inner' + (viewInnerClassName ? ' ' + viewInnerClassName : '')
37770
38039
  }, {
@@ -37809,6 +38078,7 @@ const LayoutAside = VxeLayoutAside;
37809
38078
 
37810
38079
 
37811
38080
 
38081
+
37812
38082
  function layout_body_createInternalData() {
37813
38083
  return {};
37814
38084
  }
@@ -37827,7 +38097,7 @@ function layout_body_createReactData() {
37827
38097
  backtopConfig: Object,
37828
38098
  useScrollbar: {
37829
38099
  type: Boolean,
37830
- default: () => getConfig().layoutBody.useScrollbar
38100
+ default: () => getDefaultConfig(getConfig().layoutBody.useScrollbar, getConfig().useScrollbar)
37831
38101
  },
37832
38102
  scrollbarConfig: Object,
37833
38103
  size: {
@@ -37860,6 +38130,32 @@ function layout_body_createReactData() {
37860
38130
  const computeScrollbarOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
37861
38131
  return Object.assign({}, getConfig().layoutBody.scrollbarConfig, props.scrollbarConfig);
37862
38132
  });
38133
+ const computeScrollbarProps = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
38134
+ const {
38135
+ showBacktop
38136
+ } = props;
38137
+ const scrollbarOpts = computeScrollbarOpts.value;
38138
+ const {
38139
+ className,
38140
+ viewClassName,
38141
+ viewInnerClassName
38142
+ } = scrollbarOpts;
38143
+ return {
38144
+ width: scrollbarOpts.width,
38145
+ height: scrollbarOpts.height,
38146
+ autoHide: scrollbarOpts.autoHide,
38147
+ visible: scrollbarOpts.visible,
38148
+ xConfig: scrollbarOpts.xConfig,
38149
+ yConfig: scrollbarOpts.yConfig,
38150
+ className: 'vxe-layout-body--scrollbar' + (className ? ' ' + className : ''),
38151
+ viewAttrs: {
38152
+ ...scrollbarOpts.viewAttrs,
38153
+ id: showBacktop ? backtopId || null : null
38154
+ },
38155
+ viewClassName: 'vxe-layout-body--scrollbar-view' + (viewClassName ? ' ' + viewClassName : ''),
38156
+ viewInnerClassName: 'vxe-layout-body--scrollbar-inner' + (viewInnerClassName ? ' ' + viewInnerClassName : '')
38157
+ };
38158
+ });
37863
38159
  const computeMaps = {
37864
38160
  computeSize
37865
38161
  };
@@ -37890,16 +38186,7 @@ function layout_body_createReactData() {
37890
38186
  useScrollbar
37891
38187
  } = props;
37892
38188
  const backtopOpts = computeBacktopOpts.value;
37893
- const scrollbarOpts = computeScrollbarOpts.value;
37894
- const {
37895
- native,
37896
- xConfig,
37897
- yConfig,
37898
- className,
37899
- viewAttrs,
37900
- viewClassName,
37901
- viewInnerClassName
37902
- } = scrollbarOpts;
38189
+ const scrollbarProps = computeScrollbarProps.value;
37903
38190
  const vSize = computeSize.value;
37904
38191
  const defaultSlot = slots.default;
37905
38192
  const backtopSlot = slots.backtop;
@@ -37922,18 +38209,7 @@ function layout_body_createReactData() {
37922
38209
  'is--loading': loading,
37923
38210
  'is--padding': padding
37924
38211
  }]
37925
- }, [useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(packages_scrollbar, {
37926
- native,
37927
- xConfig,
37928
- yConfig,
37929
- className: 'vxe-layout-body--scrollbar' + (className ? ' ' + className : ''),
37930
- viewAttrs: {
37931
- ...viewAttrs,
37932
- id: showBacktop ? backtopId || null : null
37933
- },
37934
- viewClassName: 'vxe-layout-body--scrollbar-view' + (viewClassName ? ' ' + viewClassName : ''),
37935
- viewInnerClassName: 'vxe-layout-body--scrollbar-inner' + (viewInnerClassName ? ' ' + viewInnerClassName : '')
37936
- }, {
38212
+ }, [useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(packages_scrollbar, scrollbarProps, {
37937
38213
  default: () => defaultSlot ? defaultSlot({}) : []
37938
38214
  }) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
37939
38215
  id: showBacktop ? backtopId : '',
@@ -38439,7 +38715,7 @@ let nemuUniqueKey = 100000000;
38439
38715
  menuConfig: Object,
38440
38716
  useScrollbar: {
38441
38717
  type: Boolean,
38442
- default: () => menu_getConfig().menu.useScrollbar
38718
+ default: () => getDefaultConfig(menu_getConfig().menu.useScrollbar, menu_getConfig().useScrollbar)
38443
38719
  },
38444
38720
  scrollbarConfig: Object,
38445
38721
  appendTo: {
@@ -39258,6 +39534,7 @@ const allActiveModals = [];
39258
39534
 
39259
39535
 
39260
39536
 
39537
+
39261
39538
  const {
39262
39539
  warnLog: modal_warnLog,
39263
39540
  errLog: modal_errLog
@@ -39466,6 +39743,11 @@ const lockScrollCssWidthKey = '--vxe-ui-modal-lock-scroll-view-width';
39466
39743
  },
39467
39744
  beforeHideMethod: Function,
39468
39745
  slots: Object,
39746
+ useScrollbar: {
39747
+ type: Boolean,
39748
+ default: () => getDefaultConfig(getConfig().modal.useScrollbar, getConfig().useScrollbar)
39749
+ },
39750
+ scrollbarConfig: Object,
39469
39751
  /**
39470
39752
  * 已废弃
39471
39753
  * @deprecated
@@ -39537,6 +39819,28 @@ const lockScrollCssWidthKey = '--vxe-ui-modal-lock-scroll-view-width';
39537
39819
  const computeZoomOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
39538
39820
  return Object.assign({}, getConfig().modal.zoomConfig, props.zoomConfig);
39539
39821
  });
39822
+ const computeScrollbarOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
39823
+ return Object.assign({}, getConfig().modal.scrollbarConfig, props.scrollbarConfig);
39824
+ });
39825
+ const computeScrollbarProps = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
39826
+ const scrollbarOpts = computeScrollbarOpts.value;
39827
+ const {
39828
+ viewClassName,
39829
+ viewInnerClassName
39830
+ } = scrollbarOpts;
39831
+ return {
39832
+ width: scrollbarOpts.width,
39833
+ height: scrollbarOpts.height,
39834
+ autoHide: scrollbarOpts.autoHide,
39835
+ visible: scrollbarOpts.visible,
39836
+ xConfig: scrollbarOpts.xConfig,
39837
+ yConfig: scrollbarOpts.yConfig,
39838
+ className: scrollbarOpts.className,
39839
+ viewAttrs: scrollbarOpts.viewAttrs,
39840
+ viewClassName: 'vxe-modal--scrollbar-content-view' + (viewClassName ? ' ' + viewClassName : ''),
39841
+ viewInnerClassName: 'vxe-modal--scrollbar-content-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
39842
+ };
39843
+ });
39540
39844
  const computeMaps = {
39541
39845
  computeSize,
39542
39846
  computeZoomOpts
@@ -40658,10 +40962,12 @@ const lockScrollCssWidthKey = '--vxe-ui-modal-lock-scroll-view-width';
40658
40962
  status,
40659
40963
  message,
40660
40964
  iconStatus,
40965
+ useScrollbar,
40661
40966
  useHtml
40662
40967
  } = props;
40663
40968
  const content = props.content || message;
40664
40969
  const isMsg = computeIsMsg.value;
40970
+ const scrollbarProps = computeScrollbarProps.value;
40665
40971
  const defaultSlot = slots.default || propSlots.default;
40666
40972
  const leftSlot = slots.left || propSlots.left;
40667
40973
  const rightSlot = slots.right || propSlots.right;
@@ -40673,16 +40979,39 @@ const lockScrollCssWidthKey = '--vxe-ui-modal-lock-scroll-view-width';
40673
40979
  class: ['vxe-modal--status-icon', iconStatus || getIcon()[`MODAL_${status}`.toLocaleUpperCase()]]
40674
40980
  })]));
40675
40981
  }
40676
- contVNs.push(useHtml && !defaultSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
40677
- key: 'hc',
40678
- class: 'vxe-modal--content',
40679
- innerHTML: getFuncText(content)
40680
- }) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
40681
- key: 'dc',
40682
- class: 'vxe-modal--content'
40683
- }, defaultSlot ? vn_getSlotVNs(defaultSlot({
40684
- $modal: $xeModal
40685
- })) : getFuncText(content)));
40982
+ if (useHtml && !defaultSlot) {
40983
+ contVNs.push(useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(packages_scrollbar, {
40984
+ key: 'shc',
40985
+ class: 'vxe-modal--scrollbar-content',
40986
+ ...scrollbarProps
40987
+ }, {
40988
+ default() {
40989
+ return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
40990
+ class: 'vxe-modal--scrollbar-content-html',
40991
+ innerHTML: getFuncText(content)
40992
+ })];
40993
+ }
40994
+ }) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
40995
+ key: 'hc',
40996
+ class: 'vxe-modal--content',
40997
+ innerHTML: getFuncText(content)
40998
+ }));
40999
+ } else {
41000
+ contVNs.push(useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(packages_scrollbar, {
41001
+ key: 'sdc',
41002
+ class: 'vxe-modal--scrollbar-content',
41003
+ ...scrollbarProps
41004
+ }, {
41005
+ default: () => defaultSlot ? vn_getSlotVNs(defaultSlot({
41006
+ $modal: $xeModal
41007
+ })) : getFuncText(content)
41008
+ }) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
41009
+ key: 'dc',
41010
+ class: 'vxe-modal--content'
41011
+ }, defaultSlot ? vn_getSlotVNs(defaultSlot({
41012
+ $modal: $xeModal
41013
+ })) : getFuncText(content)));
41014
+ }
40686
41015
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
40687
41016
  class: 'vxe-modal--body'
40688
41017
  }, [leftSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
@@ -50511,7 +50840,7 @@ const scrollbarOffsetSize = 20;
50511
50840
  },
50512
50841
  useScrollbar: {
50513
50842
  type: Boolean,
50514
- default: () => getConfig().tabs.useScrollbar
50843
+ default: () => getDefaultConfig(getConfig().tabs.useScrollbar, getConfig().useScrollbar)
50515
50844
  },
50516
50845
  scrollbarConfig: Object,
50517
50846
  // 已废弃
@@ -50622,6 +50951,25 @@ const scrollbarOffsetSize = 20;
50622
50951
  const computeScrollbarOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
50623
50952
  return Object.assign({}, getConfig().tabs.scrollbarConfig, props.scrollbarConfig);
50624
50953
  });
50954
+ const computeScrollbarProps = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
50955
+ const scrollbarOpts = computeScrollbarOpts.value;
50956
+ const {
50957
+ viewClassName,
50958
+ viewInnerClassName
50959
+ } = scrollbarOpts;
50960
+ return {
50961
+ width: scrollbarOpts.width,
50962
+ height: scrollbarOpts.height,
50963
+ autoHide: scrollbarOpts.autoHide,
50964
+ visible: scrollbarOpts.visible,
50965
+ xConfig: scrollbarOpts.xConfig,
50966
+ yConfig: scrollbarOpts.yConfig,
50967
+ className: scrollbarOpts.className,
50968
+ viewAttrs: scrollbarOpts.viewAttrs,
50969
+ viewClassName: 'vxe-tabs-pane--scrollbar-item-view' + (viewClassName ? ' ' + viewClassName : ''),
50970
+ viewInnerClassName: 'vxe-tabs-pane--scrollbar-item-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
50971
+ };
50972
+ });
50625
50973
  const computeMaps = {};
50626
50974
  const $xeTabs = {
50627
50975
  xID,
@@ -51297,20 +51645,14 @@ const scrollbarOffsetSize = 20;
51297
51645
  slots
51298
51646
  } = item;
51299
51647
  const defaultSlot = slots ? slots.default : null;
51300
- const scrollbarOpts = computeScrollbarOpts.value;
51301
- const {
51302
- viewClassName,
51303
- viewInnerClassName
51304
- } = scrollbarOpts;
51648
+ const scrollbarProps = computeScrollbarProps.value;
51305
51649
  if (name && initNames.includes(name)) {
51306
51650
  return useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(packages_scrollbar, {
51307
51651
  key: `${name}`,
51308
51652
  class: ['vxe-tabs-pane--scrollbar-item', {
51309
51653
  'is--visible': activeName === name
51310
51654
  }],
51311
- ...scrollbarOpts,
51312
- viewClassName: 'vxe-tabs-pane--scrollbar-item-view' + (viewClassName ? ' ' + viewClassName : ''),
51313
- viewInnerClassName: 'vxe-tabs-pane--scrollbar-item-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
51655
+ ...scrollbarProps
51314
51656
  }, {
51315
51657
  default: () => defaultSlot ? callSlot(defaultSlot, {
51316
51658
  name
@@ -52996,6 +53338,7 @@ function getCrossTreeDragNodeInfo() {
52996
53338
 
52997
53339
 
52998
53340
 
53341
+
52999
53342
  const {
53000
53343
  warnLog: tree_warnLog,
53001
53344
  errLog: tree_errLog
@@ -53012,6 +53355,34 @@ const {
53012
53355
  function tree_getNodeUniqueId() {
53013
53356
  return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId('node_');
53014
53357
  }
53358
+ function tree_createReactData() {
53359
+ return {
53360
+ parentHeight: 0,
53361
+ customHeight: 0,
53362
+ customMinHeight: 0,
53363
+ customMaxHeight: 0,
53364
+ currentNode: null,
53365
+ scrollYLoad: false,
53366
+ bodyHeight: 0,
53367
+ topSpaceHeight: 0,
53368
+ selectRadioKey: null,
53369
+ treeList: [],
53370
+ updateExpandedFlag: 1,
53371
+ updateCheckboxFlag: 1,
53372
+ // 滚动条
53373
+ yThumbHeight: 0,
53374
+ xThumbWidth: 0,
53375
+ insertNodeFlag: 1,
53376
+ removeNodeFlag: 1,
53377
+ dragNode: null,
53378
+ dragTipText: '',
53379
+ isCrossDragNode: false,
53380
+ tooltipStore: {
53381
+ visible: false,
53382
+ node: null
53383
+ }
53384
+ };
53385
+ }
53015
53386
  function tree_createInternalData() {
53016
53387
  return {
53017
53388
  // initialized: false,
@@ -53024,8 +53395,15 @@ function tree_createInternalData() {
53024
53395
  indeterminateNodeMaps: {},
53025
53396
  treeExpandedMaps: {},
53026
53397
  treeExpandLazyLoadedMaps: {},
53027
- lastScrollLeft: 0,
53398
+ // resizeObserver: undefined,
53399
+ // 滚动条
53400
+ // scrollObserver: undefined,
53401
+ // isThumbDrag: false,
53402
+ thumbDragOffset: 0,
53403
+ yThumbTop: 0,
53404
+ xThumbLeft: 0,
53028
53405
  lastScrollTop: 0,
53406
+ lastScrollLeft: 0,
53029
53407
  scrollYStore: {
53030
53408
  startIndex: 0,
53031
53409
  endIndex: 0,
@@ -53042,31 +53420,6 @@ function tree_createInternalData() {
53042
53420
  // hpTimeout: undefined
53043
53421
  };
53044
53422
  }
53045
- function tree_createReactData() {
53046
- return {
53047
- parentHeight: 0,
53048
- customHeight: 0,
53049
- customMinHeight: 0,
53050
- customMaxHeight: 0,
53051
- currentNode: null,
53052
- scrollYLoad: false,
53053
- bodyHeight: 0,
53054
- topSpaceHeight: 0,
53055
- selectRadioKey: null,
53056
- treeList: [],
53057
- updateExpandedFlag: 1,
53058
- updateCheckboxFlag: 1,
53059
- insertNodeFlag: 1,
53060
- removeNodeFlag: 1,
53061
- dragNode: null,
53062
- dragTipText: '',
53063
- isCrossDragNode: false,
53064
- tooltipStore: {
53065
- visible: false,
53066
- node: null
53067
- }
53068
- };
53069
- }
53070
53423
  let crossTreeDragNodeObj = null;
53071
53424
  /* harmony default export */ var tree = (defineVxeComponent({
53072
53425
  name: 'VxeTree',
@@ -53197,7 +53550,12 @@ let crossTreeDragNodeObj = null;
53197
53550
  type: String,
53198
53551
  default: () => tree_getConfig().tree.size || tree_getConfig().size
53199
53552
  },
53200
- virtualYConfig: Object
53553
+ virtualYConfig: Object,
53554
+ useScrollbar: {
53555
+ type: Boolean,
53556
+ default: () => getDefaultConfig(tree_getConfig().tree.useScrollbar, tree_getConfig().useScrollbar)
53557
+ },
53558
+ scrollbarConfig: Object
53201
53559
  },
53202
53560
  emits: ['update:modelValue', 'update:checkNodeKey', 'update:checkNodeKeys', 'node-click', 'node-dblclick', 'current-change', 'radio-change', 'checkbox-change', 'load-success', 'load-error', 'scroll', 'node-dragstart', 'node-dragover', 'node-dragend', 'node-remove-dragend', 'node-insert-dragend', 'node-expand', 'node-menu', 'menu-click'],
53203
53561
  setup(props, context) {
@@ -53214,6 +53572,10 @@ let crossTreeDragNodeObj = null;
53214
53572
  const refFooterWrapperElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
53215
53573
  const refVirtualWrapper = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
53216
53574
  const refVirtualBody = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
53575
+ const refTrackXElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
53576
+ const refTrackYElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
53577
+ const refThumbXElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
53578
+ const refThumbYElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
53217
53579
  const refDragNodeLineElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
53218
53580
  const refDragTipElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
53219
53581
  const refTooltip = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
@@ -53293,6 +53655,16 @@ let crossTreeDragNodeObj = null;
53293
53655
  const computeMenuOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53294
53656
  return Object.assign({}, tree_getConfig().tree.menuConfig, props.menuConfig);
53295
53657
  });
53658
+ const computeWrapperStyles = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53659
+ const barWidth = computeScrollYWidth.value;
53660
+ const barHeight = computeScrollXHeight.value;
53661
+ const stys = {};
53662
+ if (barWidth || barHeight) {
53663
+ stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
53664
+ stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
53665
+ }
53666
+ return stys;
53667
+ });
53296
53668
  const computeTreeStyle = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53297
53669
  const {
53298
53670
  indent
@@ -53336,6 +53708,71 @@ let crossTreeDragNodeObj = null;
53336
53708
  const computeFilterOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53337
53709
  return Object.assign({}, tree_getConfig().tree.filterConfig, props.filterConfig);
53338
53710
  });
53711
+ const computeScrollbarOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53712
+ return Object.assign({}, tree_getConfig().tree.scrollbarConfig, props.scrollbarConfig);
53713
+ });
53714
+ const computeScrollbarXOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53715
+ const scrollbarOpts = computeScrollbarOpts.value;
53716
+ return Object.assign({}, tree_getConfig().scrollbar.xConfig, scrollbarOpts.xConfig, {
53717
+ visible: false
53718
+ });
53719
+ });
53720
+ const computeScrollbarYOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53721
+ const scrollbarOpts = computeScrollbarOpts.value;
53722
+ return Object.assign({}, tree_getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
53723
+ });
53724
+ const computeScrollXHeight = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53725
+ const scrollbarOpts = computeScrollbarOpts.value;
53726
+ const scrollbarXOpts = computeScrollbarXOpts.value;
53727
+ return getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), tree_getConfig().scrollbar.height);
53728
+ });
53729
+ const computeScrollYWidth = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53730
+ const scrollbarOpts = computeScrollbarOpts.value;
53731
+ const scrollbarYOpts = computeScrollbarYOpts.value;
53732
+ return getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), tree_getConfig().scrollbar.width);
53733
+ });
53734
+ const computeScrollXVisible = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53735
+ const scrollbarOpts = computeScrollbarOpts.value;
53736
+ const scrollbarXOpts = computeScrollbarXOpts.value;
53737
+ return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
53738
+ });
53739
+ const computeScrollYVisible = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53740
+ const scrollbarOpts = computeScrollbarOpts.value;
53741
+ const scrollbarYOpts = computeScrollbarYOpts.value;
53742
+ return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
53743
+ });
53744
+ const computeScrollXAutoHide = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53745
+ const scrollbarOpts = computeScrollbarOpts.value;
53746
+ const scrollbarXOpts = computeScrollbarXOpts.value;
53747
+ return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), tree_getConfig().scrollbar.autoHide);
53748
+ });
53749
+ const computeScrollYAutoHide = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53750
+ const scrollbarOpts = computeScrollbarOpts.value;
53751
+ const scrollbarYOpts = computeScrollbarYOpts.value;
53752
+ return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), tree_getConfig().scrollbar.autoHide);
53753
+ });
53754
+ const computeScrollbarWrapperClss = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53755
+ const {
53756
+ yThumbHeight,
53757
+ xThumbWidth
53758
+ } = reactData;
53759
+ const scrollbarXToTop = computeScrollbarXToTop.value;
53760
+ const scrollbarYToLeft = computeScrollbarYToLeft.value;
53761
+ const scrollXVisible = computeScrollXVisible.value;
53762
+ const scrollYVisible = computeScrollYVisible.value;
53763
+ return domUtils.buildClass(['vxe-scrollbar is--virtual', `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`, `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`], {
53764
+ 'overflow-y': yThumbHeight,
53765
+ 'overflow-x': xThumbWidth
53766
+ });
53767
+ });
53768
+ const computeScrollbarXToTop = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53769
+ const scrollbarXOpts = computeScrollbarXOpts.value;
53770
+ return scrollbarXOpts.position === 'top';
53771
+ });
53772
+ const computeScrollbarYToLeft = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53773
+ const scrollbarYOpts = computeScrollbarYOpts.value;
53774
+ return scrollbarYOpts.position === 'left';
53775
+ });
53339
53776
  const computeMaps = {
53340
53777
  computeKeyField,
53341
53778
  computeParentField,
@@ -53932,6 +54369,10 @@ let crossTreeDragNodeObj = null;
53932
54369
  }
53933
54370
  });
53934
54371
  };
54372
+ const updateScrollbar = () => {
54373
+ updateThumbSize();
54374
+ updateThumbOffset();
54375
+ };
53935
54376
  /**
53936
54377
  * 重新计算列表
53937
54378
  */
@@ -53957,6 +54398,7 @@ let crossTreeDragNodeObj = null;
53957
54398
  const parentPaddingSize = getPaddingTopBottomSize(parentEl);
53958
54399
  reactData.parentHeight = Math.max(headHeight + footHeight + rowHeight, parentEl.clientHeight - parentPaddingSize - headHeight - footHeight);
53959
54400
  }
54401
+ updateScrollbar();
53960
54402
  updateHeight();
53961
54403
  return computeScrollLoad().then(() => {
53962
54404
  updateHeight();
@@ -53998,6 +54440,7 @@ let crossTreeDragNodeObj = null;
53998
54440
  const scrollLeft = scrollBodyElem.scrollLeft;
53999
54441
  const isX = scrollLeft !== internalData.lastScrollLeft;
54000
54442
  const isY = scrollTop !== internalData.lastScrollTop;
54443
+ updateThumbOffset();
54001
54444
  internalData.lastScrollTop = scrollTop;
54002
54445
  internalData.lastScrollLeft = scrollLeft;
54003
54446
  if (reactData.scrollYLoad) {
@@ -54673,13 +55116,6 @@ let crossTreeDragNodeObj = null;
54673
55116
  checked: isChecked
54674
55117
  }, evnt);
54675
55118
  };
54676
- const handleGlobalResizeEvent = () => {
54677
- const el = refElem.value;
54678
- if (!el || !el.clientWidth) {
54679
- return;
54680
- }
54681
- recalculate();
54682
- };
54683
55119
  const insertTreeNode = (newRecords, isAppend) => {
54684
55120
  const {
54685
55121
  treeFullData,
@@ -56342,6 +56778,183 @@ let crossTreeDragNodeObj = null;
56342
56778
  hideDropTip();
56343
56779
  }
56344
56780
  };
56781
+ const updateThumbSize = () => {
56782
+ const viewEl = refVirtualWrapper.value;
56783
+ if (!viewEl) {
56784
+ return;
56785
+ }
56786
+ if (!viewEl.clientHeight || !viewEl.clientHeight) {
56787
+ return;
56788
+ }
56789
+ const trackXEl = refTrackXElem.value;
56790
+ const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
56791
+ const thumbXElem = refThumbXElem.value;
56792
+ if (thumbXElem) {
56793
+ thumbXElem.style.width = xThumbWidth + 'px';
56794
+ }
56795
+ reactData.xThumbWidth = xThumbWidth;
56796
+ const trackYEl = refTrackYElem.value;
56797
+ const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
56798
+ const thumbYElem = refThumbYElem.value;
56799
+ if (thumbYElem) {
56800
+ thumbYElem.style.height = yThumbHeight + 'px';
56801
+ }
56802
+ reactData.yThumbHeight = yThumbHeight;
56803
+ };
56804
+ const updateThumbOffset = () => {
56805
+ const viewEl = refVirtualWrapper.value;
56806
+ if (!viewEl) {
56807
+ return;
56808
+ }
56809
+ if (!viewEl.clientHeight || !viewEl.clientHeight) {
56810
+ return;
56811
+ }
56812
+ const {
56813
+ xThumbWidth,
56814
+ yThumbHeight
56815
+ } = reactData;
56816
+ const trackXEl = refTrackXElem.value;
56817
+ const thumbXElem = refThumbXElem.value;
56818
+ const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
56819
+ internalData.xThumbLeft = xThumbLeft;
56820
+ if (thumbXElem && xThumbWidth) {
56821
+ thumbXElem.style.width = xThumbWidth + 'px';
56822
+ thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
56823
+ }
56824
+ const trackYEl = refTrackYElem.value;
56825
+ const thumbYElem = refThumbYElem.value;
56826
+ const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
56827
+ internalData.yThumbTop = yThumbTop;
56828
+ if (thumbYElem && yThumbHeight) {
56829
+ thumbYElem.style.height = yThumbHeight + 'px';
56830
+ thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
56831
+ }
56832
+ };
56833
+ const clickTrackXEvent = evnt => {
56834
+ const trackEl = evnt.currentTarget;
56835
+ if (trackEl !== evnt.target) {
56836
+ return;
56837
+ }
56838
+ const viewEl = refVirtualWrapper.value;
56839
+ if (!viewEl) {
56840
+ return;
56841
+ }
56842
+ const {
56843
+ xThumbWidth
56844
+ } = reactData;
56845
+ const trackRect = trackEl.getBoundingClientRect();
56846
+ viewEl.scrollTo({
56847
+ left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
56848
+ behavior: 'auto'
56849
+ });
56850
+ };
56851
+ const clickTrackYEvent = evnt => {
56852
+ const trackEl = evnt.currentTarget;
56853
+ if (trackEl !== evnt.target) {
56854
+ return;
56855
+ }
56856
+ const viewEl = refVirtualWrapper.value;
56857
+ if (!viewEl) {
56858
+ return;
56859
+ }
56860
+ const {
56861
+ yThumbHeight
56862
+ } = reactData;
56863
+ const trackRect = trackEl.getBoundingClientRect();
56864
+ viewEl.scrollTo({
56865
+ top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
56866
+ behavior: 'auto'
56867
+ });
56868
+ };
56869
+ const pointerdownThumbXEvent = evnt => {
56870
+ const thumbEl = evnt.currentTarget;
56871
+ internalData.isThumbDrag = true;
56872
+ thumbEl.setPointerCapture(evnt.pointerId);
56873
+ const viewEl = refVirtualWrapper.value;
56874
+ if (!viewEl) {
56875
+ return;
56876
+ }
56877
+ const {
56878
+ xThumbWidth
56879
+ } = reactData;
56880
+ const trackEl = thumbEl.parentElement;
56881
+ const trackRect = trackEl.getBoundingClientRect();
56882
+ const pointerPosition = evnt.clientX - trackRect.left;
56883
+ // 记录 thumb 的偏移
56884
+ const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
56885
+ internalData.thumbDragOffset = pointerPosition - thumbOffset;
56886
+ };
56887
+ const pointermoveThumbXEvent = evnt => {
56888
+ const thumbEl = evnt.currentTarget;
56889
+ if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
56890
+ return;
56891
+ }
56892
+ const {
56893
+ isThumbDrag,
56894
+ thumbDragOffset
56895
+ } = internalData;
56896
+ if (isThumbDrag) {
56897
+ const viewEl = refVirtualWrapper.value;
56898
+ if (!viewEl) {
56899
+ return;
56900
+ }
56901
+ const {
56902
+ xThumbWidth
56903
+ } = reactData;
56904
+ const thumbEl = evnt.currentTarget;
56905
+ const trackEl = thumbEl.parentElement;
56906
+ const trackRect = trackEl.getBoundingClientRect();
56907
+ // 更新偏移
56908
+ viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
56909
+ }
56910
+ };
56911
+ const cleatPointerThumbEvent = evnt => {
56912
+ const thumbEl = evnt.currentTarget;
56913
+ thumbEl.releasePointerCapture(evnt.pointerId);
56914
+ internalData.isThumbDrag = false;
56915
+ };
56916
+ const pointerdownThumbYEvent = evnt => {
56917
+ const thumbEl = evnt.currentTarget;
56918
+ internalData.isThumbDrag = true;
56919
+ thumbEl.setPointerCapture(evnt.pointerId);
56920
+ const viewEl = refVirtualWrapper.value;
56921
+ if (!viewEl) {
56922
+ return;
56923
+ }
56924
+ const {
56925
+ yThumbHeight
56926
+ } = reactData;
56927
+ const trackEl = thumbEl.parentElement;
56928
+ const trackRect = trackEl.getBoundingClientRect();
56929
+ const pointerPosition = evnt.clientY - trackRect.top;
56930
+ // 记录 thumb 的偏移
56931
+ const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
56932
+ internalData.thumbDragOffset = pointerPosition - thumbOffset;
56933
+ };
56934
+ const pointermoveThumbYEvent = evnt => {
56935
+ const thumbEl = evnt.currentTarget;
56936
+ if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
56937
+ return;
56938
+ }
56939
+ const {
56940
+ isThumbDrag,
56941
+ thumbDragOffset
56942
+ } = internalData;
56943
+ if (isThumbDrag) {
56944
+ const viewEl = refVirtualWrapper.value;
56945
+ if (!viewEl) {
56946
+ return;
56947
+ }
56948
+ const {
56949
+ yThumbHeight
56950
+ } = reactData;
56951
+ const thumbEl = evnt.currentTarget;
56952
+ const trackEl = thumbEl.parentElement;
56953
+ const trackRect = trackEl.getBoundingClientRect();
56954
+ // 更新偏移
56955
+ viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
56956
+ }
56957
+ };
56345
56958
  Object.assign($xeTree, treeMethods, treePrivateMethods);
56346
56959
  const renderDragIcon = (node, nodeid) => {
56347
56960
  const {
@@ -56686,19 +57299,23 @@ let crossTreeDragNodeObj = null;
56686
57299
  const {
56687
57300
  loading,
56688
57301
  trigger,
56689
- showLine
57302
+ showLine,
57303
+ useScrollbar
56690
57304
  } = props;
56691
57305
  const {
56692
57306
  bodyHeight,
56693
57307
  topSpaceHeight,
56694
57308
  treeList,
56695
- tooltipStore
57309
+ tooltipStore,
57310
+ xThumbWidth,
57311
+ yThumbHeight
56696
57312
  } = reactData;
56697
57313
  const vSize = computeSize.value;
56698
57314
  const radioOpts = computeRadioOpts.value;
56699
57315
  const checkboxOpts = computeCheckboxOpts.value;
56700
57316
  const loadingOpts = computeLoadingOpts.value;
56701
57317
  const isNodeHover = computeIsNodeHover.value;
57318
+ const wrapperStyles = computeWrapperStyles.value;
56702
57319
  const treeStyle = computeTreeStyle.value;
56703
57320
  const dragOpts = computeDragOpts.value;
56704
57321
  const tooltipOpts = computeTooltipOpts.value;
@@ -56706,21 +57323,36 @@ let crossTreeDragNodeObj = null;
56706
57323
  const headerSlot = slots.header;
56707
57324
  const footerSlot = slots.footer;
56708
57325
  const tooltipSlot = slots.tooltip;
57326
+ const scrollbarOpts = computeScrollbarOpts.value;
57327
+ const scrollXVisible = computeScrollXVisible.value;
57328
+ const scrollYVisible = computeScrollYVisible.value;
57329
+ const scrollbarXToTop = computeScrollbarXToTop.value;
57330
+ const scrollbarYToLeft = computeScrollbarYToLeft.value;
57331
+ const scrollXAutoHide = computeScrollXAutoHide.value;
57332
+ const scrollYAutoHide = computeScrollYAutoHide.value;
57333
+ const scrollbarWrapperClss = computeScrollbarWrapperClss.value;
56709
57334
  const teOns = {};
56710
57335
  if (dragOpts.isCrossTreeDrag && !treeList.length) {
56711
57336
  teOns.onDragover = $xeTree.handleCrossTreeNodeDragoverEmptyEvent;
56712
57337
  }
56713
57338
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
56714
57339
  ref: refElem,
56715
- class: ['vxe-tree', {
57340
+ class: ['vxe-tree', useScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '', useScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '', useScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '', useScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '', {
56716
57341
  [`size--${vSize}`]: vSize,
56717
57342
  'show--line': showLine,
57343
+ 'is--virtual-scrollbar': useScrollbar,
57344
+ 'ov-padding': useScrollbar && scrollbarOpts.padding,
57345
+ 'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
57346
+ 'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
57347
+ 'overflow-y': yThumbHeight,
57348
+ 'overflow-x': xThumbWidth,
56718
57349
  'checkbox--highlight': checkboxOpts.highlight,
56719
57350
  'radio--highlight': radioOpts.highlight,
56720
57351
  'node--hover': isNodeHover,
56721
57352
  'node--trigger': trigger === 'node',
56722
57353
  'is--loading': loading
56723
57354
  }],
57355
+ style: wrapperStyles,
56724
57356
  ...teOns
56725
57357
  }, [headerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
56726
57358
  ref: refHeaderWrapperElem,
@@ -56749,6 +57381,36 @@ let crossTreeDragNodeObj = null;
56749
57381
  }, footerSlot({
56750
57382
  $tree: $xeTree
56751
57383
  })) : renderEmptyElement($xeTree),
57384
+ /**
57385
+ * 滚动条
57386
+ */
57387
+ useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
57388
+ class: scrollbarWrapperClss
57389
+ }, [scrollXVisible === false ? renderEmptyElement($xeTree) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
57390
+ ref: refTrackXElem,
57391
+ class: 'vxe-scrollbar--track-x',
57392
+ onClick: clickTrackXEvent
57393
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
57394
+ ref: refThumbXElem,
57395
+ class: 'vxe-scrollbar--thumb-x',
57396
+ onPointerdown: pointerdownThumbXEvent,
57397
+ onPointermove: pointermoveThumbXEvent,
57398
+ onPointerup: cleatPointerThumbEvent,
57399
+ onPointercancel: cleatPointerThumbEvent,
57400
+ onLostpointercapture: cleatPointerThumbEvent
57401
+ })]), scrollYVisible === false ? renderEmptyElement($xeTree) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
57402
+ ref: refTrackYElem,
57403
+ class: 'vxe-scrollbar--track-y',
57404
+ onClick: clickTrackYEvent
57405
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
57406
+ ref: refThumbYElem,
57407
+ class: 'vxe-scrollbar--thumb-y',
57408
+ onPointerdown: pointerdownThumbYEvent,
57409
+ onPointermove: pointermoveThumbYEvent,
57410
+ onPointerup: cleatPointerThumbEvent,
57411
+ onPointercancel: cleatPointerThumbEvent,
57412
+ onLostpointercapture: cleatPointerThumbEvent
57413
+ })])]) : renderEmptyElement($xeTree),
56752
57414
  /**
56753
57415
  * 拖拽提示
56754
57416
  */
@@ -56832,18 +57494,39 @@ let crossTreeDragNodeObj = null;
56832
57494
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.filterValue, () => {
56833
57495
  triggerSearchEvent(new Event('filter'));
56834
57496
  });
56835
- const hFlag = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)(0);
57497
+ const reFlag = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)(0);
56836
57498
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.height, () => {
56837
- hFlag.value++;
57499
+ reFlag.value++;
56838
57500
  });
56839
57501
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.minHeight, () => {
56840
- hFlag.value++;
57502
+ reFlag.value++;
56841
57503
  });
56842
57504
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.maxHeight, () => {
56843
- hFlag.value++;
57505
+ reFlag.value++;
56844
57506
  });
56845
- (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(hFlag, () => {
56846
- recalculate();
57507
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.useScrollbar, () => {
57508
+ reFlag.value++;
57509
+ });
57510
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeScrollYWidth, () => {
57511
+ reFlag.value++;
57512
+ });
57513
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeScrollXHeight, () => {
57514
+ reFlag.value++;
57515
+ });
57516
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeScrollXVisible, () => {
57517
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => {
57518
+ reFlag.value++;
57519
+ });
57520
+ });
57521
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeScrollYVisible, () => {
57522
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => {
57523
+ reFlag.value++;
57524
+ });
57525
+ });
57526
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(reFlag, () => {
57527
+ recalculate().then(() => {
57528
+ recalculate();
57529
+ });
56847
57530
  });
56848
57531
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onMounted)(() => {
56849
57532
  const {
@@ -56852,7 +57535,9 @@ let crossTreeDragNodeObj = null;
56852
57535
  menuConfig,
56853
57536
  showOverflow,
56854
57537
  lazy,
56855
- loadMethod
57538
+ loadMethod,
57539
+ autoResize,
57540
+ useScrollbar
56856
57541
  } = props;
56857
57542
  const dragOpts = computeDragOpts.value;
56858
57543
  if (!showOverflow) {
@@ -56874,12 +57559,25 @@ let crossTreeDragNodeObj = null;
56874
57559
  if (menuConfig && !VxeUIContextMenu) {
56875
57560
  tree_errLog('vxe.error.reqComp', ['vxe-context-menu']);
56876
57561
  }
56877
- if (props.autoResize) {
56878
- const el = refElem.value;
57562
+ const el = refElem.value;
57563
+ if (useScrollbar || autoResize) {
57564
+ const viewInnerEl = refVirtualBody.value;
57565
+ const scrollObserver = globalResize.create(() => {
57566
+ updateScrollbar();
57567
+ });
57568
+ if (el) {
57569
+ scrollObserver.observe(el);
57570
+ }
57571
+ if (viewInnerEl) {
57572
+ scrollObserver.observe(viewInnerEl);
57573
+ }
57574
+ internalData.scrollObserver = scrollObserver;
57575
+ }
57576
+ if (autoResize) {
56879
57577
  const parentEl = getParentElem();
56880
57578
  const resizeObserver = globalResize.create(() => {
56881
57579
  if (props.autoResize) {
56882
- recalculate();
57580
+ reFlag.value++;
56883
57581
  }
56884
57582
  });
56885
57583
  if (el) {
@@ -56890,16 +57588,22 @@ let crossTreeDragNodeObj = null;
56890
57588
  }
56891
57589
  internalData.resizeObserver = resizeObserver;
56892
57590
  }
56893
- recalculate();
56894
- globalEvents.on($xeTree, 'resize', handleGlobalResizeEvent);
57591
+ reFlag.value++;
57592
+ globalEvents.on($xeTree, 'resize', () => {
57593
+ reFlag.value++;
57594
+ });
56895
57595
  });
56896
57596
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onBeforeUnmount)(() => {
56897
57597
  const {
57598
+ scrollObserver,
56898
57599
  resizeObserver
56899
57600
  } = internalData;
56900
57601
  if (resizeObserver) {
56901
57602
  resizeObserver.disconnect();
56902
57603
  }
57604
+ if (scrollObserver) {
57605
+ scrollObserver.disconnect();
57606
+ }
56903
57607
  globalEvents.off($xeTree, 'resize');
56904
57608
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(reactData, tree_createReactData());
56905
57609
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, tree_createInternalData());