vxe-pc-ui 4.15.3 → 4.15.5

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 (96) hide show
  1. package/dist/all.esm.js +197 -91
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/cascader/src/cascader.js +72 -30
  5. package/es/collapse/src/collapse.js +71 -10
  6. package/es/collapse/style.css +36 -9
  7. package/es/collapse/style.min.css +1 -1
  8. package/es/date-panel/style.css +1 -1
  9. package/es/date-panel/style.min.css +1 -1
  10. package/es/icon/{iconfont.1781852740683.ttf → iconfont.1781979589724.ttf} +0 -0
  11. package/es/icon/iconfont.1781979589724.woff +0 -0
  12. package/es/icon/iconfont.1781979589724.woff2 +0 -0
  13. package/es/icon/style.css +5 -1
  14. package/es/icon/style.min.css +1 -1
  15. package/{lib/icon/style/iconfont.1781852740683.ttf → es/iconfont.1781979589724.ttf} +0 -0
  16. package/es/iconfont.1781979589724.woff +0 -0
  17. package/es/iconfont.1781979589724.woff2 +0 -0
  18. package/es/menu/style.css +0 -1
  19. package/es/menu/style.min.css +1 -1
  20. package/es/style.css +1 -1
  21. package/es/style.min.css +1 -1
  22. package/es/tree-select/src/tree-select.js +14 -18
  23. package/es/ui/index.js +4 -1
  24. package/es/ui/src/log.js +10 -6
  25. package/es/vxe-collapse/style.css +36 -9
  26. package/es/vxe-collapse/style.min.css +1 -1
  27. package/es/vxe-date-panel/style.css +1 -1
  28. package/es/vxe-date-panel/style.min.css +1 -1
  29. package/es/vxe-icon/style.css +5 -1
  30. package/es/vxe-icon/style.min.css +1 -1
  31. package/es/vxe-menu/style.css +0 -1
  32. package/es/vxe-menu/style.min.css +1 -1
  33. package/lib/cascader/src/cascader.js +80 -33
  34. package/lib/cascader/src/cascader.min.js +1 -1
  35. package/lib/collapse/src/collapse.js +73 -9
  36. package/lib/collapse/src/collapse.min.js +1 -1
  37. package/lib/collapse/style/style.css +36 -9
  38. package/lib/collapse/style/style.min.css +1 -1
  39. package/lib/date-panel/style/style.css +1 -1
  40. package/lib/date-panel/style/style.min.css +1 -1
  41. package/lib/{iconfont.1781852740683.ttf → icon/style/iconfont.1781979589724.ttf} +0 -0
  42. package/lib/icon/style/iconfont.1781979589724.woff +0 -0
  43. package/lib/icon/style/iconfont.1781979589724.woff2 +0 -0
  44. package/lib/icon/style/style.css +5 -1
  45. package/lib/icon/style/style.min.css +5 -1
  46. package/{es/iconfont.1781852740683.ttf → lib/iconfont.1781979589724.ttf} +0 -0
  47. package/lib/iconfont.1781979589724.woff +0 -0
  48. package/lib/iconfont.1781979589724.woff2 +0 -0
  49. package/lib/index.umd.js +474 -354
  50. package/lib/index.umd.min.js +1 -1
  51. package/lib/menu/style/style.css +0 -1
  52. package/lib/menu/style/style.min.css +1 -1
  53. package/lib/style.css +1 -1
  54. package/lib/style.min.css +1 -1
  55. package/lib/tree-select/src/tree-select.js +7 -7
  56. package/lib/tree-select/src/tree-select.min.js +1 -1
  57. package/lib/ui/index.js +4 -1
  58. package/lib/ui/index.min.js +1 -1
  59. package/lib/ui/src/log.js +11 -5
  60. package/lib/ui/src/log.min.js +1 -1
  61. package/lib/vxe-collapse/style/style.css +36 -9
  62. package/lib/vxe-collapse/style/style.min.css +1 -1
  63. package/lib/vxe-date-panel/style/style.css +1 -1
  64. package/lib/vxe-date-panel/style/style.min.css +1 -1
  65. package/lib/vxe-icon/style/style.css +5 -1
  66. package/lib/vxe-icon/style/style.min.css +1 -1
  67. package/lib/vxe-menu/style/style.css +0 -1
  68. package/lib/vxe-menu/style/style.min.css +1 -1
  69. package/package.json +2 -2
  70. package/packages/cascader/src/cascader.ts +71 -31
  71. package/packages/collapse/src/collapse.ts +75 -14
  72. package/packages/tree-select/src/tree-select.ts +14 -18
  73. package/packages/ui/index.ts +3 -0
  74. package/packages/ui/src/log.ts +11 -6
  75. package/styles/components/collapse.scss +36 -11
  76. package/styles/components/date-panel.scss +1 -1
  77. package/styles/components/icon.scss +5 -1
  78. package/styles/components/menu.scss +0 -1
  79. package/styles/icon/iconfont.ttf +0 -0
  80. package/styles/icon/iconfont.woff +0 -0
  81. package/styles/icon/iconfont.woff2 +0 -0
  82. package/styles/theme/base.scss +7 -0
  83. package/styles/theme/dark.scss +5 -3
  84. package/styles/theme/light.scss +3 -1
  85. package/styles/variable.scss +5 -2
  86. package/types/components/cascader.d.ts +4 -0
  87. package/types/components/collapse.d.ts +13 -3
  88. package/types/components/icon.d.ts +1 -1
  89. package/es/icon/iconfont.1781852740683.woff +0 -0
  90. package/es/icon/iconfont.1781852740683.woff2 +0 -0
  91. package/es/iconfont.1781852740683.woff +0 -0
  92. package/es/iconfont.1781852740683.woff2 +0 -0
  93. package/lib/icon/style/iconfont.1781852740683.woff +0 -0
  94. package/lib/icon/style/iconfont.1781852740683.woff2 +0 -0
  95. package/lib/iconfont.1781852740683.woff +0 -0
  96. package/lib/iconfont.1781852740683.woff2 +0 -0
package/dist/all.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as core from '@vxe-ui/core';
2
- import { VxeUI, log, setConfig as setConfig$1, setIcon, getConfig as getConfig$3, createEvent, getIcon as getIcon$2, renderEmptyElement, useSize, usePermission, permission, globalEvents, renderer, getI18n as getI18n$2, globalResize, GLOBAL_EVENT_KEYS, getSlotVNs as getSlotVNs$1, commands, formats, getComponent, validators } from '@vxe-ui/core';
2
+ import { VxeUI, setConfig as setConfig$1, setIcon, getConfig as getConfig$3, createEvent, getIcon as getIcon$2, renderEmptyElement, useSize, usePermission, permission, globalEvents, renderer, getI18n as getI18n$2, globalResize, GLOBAL_EVENT_KEYS, getSlotVNs as getSlotVNs$1, commands, formats, getComponent, validators } from '@vxe-ui/core';
3
3
  export * from '@vxe-ui/core';
4
4
  import { defineComponent, reactive, h, createCommentVNode, createApp, ref, inject, computed, watch, onMounted, onUnmounted, provide, nextTick, onBeforeUnmount, resolveComponent, Teleport, onActivated, onDeactivated, TransitionGroup } from 'vue';
5
5
  import XEUtils from 'xe-utils';
@@ -80,17 +80,21 @@ function checkDynamic() {
80
80
  }
81
81
  }
82
82
 
83
- const version$1 = `ui v${"4.15.3"}`;
83
+ const { log } = VxeUI;
84
+ const uiVersion = `ui v${"4.15.5"}`;
84
85
  function createComponentLog(name) {
86
+ const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
87
+ const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
88
+ const designVersion = VxeUI.designVersion ? `design v${VxeUI.designVersion}` : '';
85
89
  return {
86
- warnLog: log.create('warn', `${version$1} ${name}`),
87
- errLog: log.create('error', `${version$1} ${name}`)
90
+ warnLog: log.create('warn', uiVersion + tableVersion + ganttVersion + designVersion + '] [' + name),
91
+ errLog: log.create('error', uiVersion + tableVersion + ganttVersion + designVersion + '] [' + name)
88
92
  };
89
93
  }
90
- const warnLog$b = log.create('warn', version$1);
91
- log.create('error', version$1);
94
+ const warnLog$b = log.create('warn', uiVersion);
95
+ log.create('error', uiVersion);
92
96
 
93
- const version = "4.15.3";
97
+ const version = "4.15.5";
94
98
  VxeUI.uiVersion = version;
95
99
  VxeUI.dynamicApp = dynamicApp;
96
100
  function config(options) {
@@ -153,6 +157,9 @@ setConfig$1({
153
157
  showFullLabel: true,
154
158
  treeConfig: {
155
159
  showIcon: true
160
+ },
161
+ filterConfig: {
162
+ autoExpandMode: 'first'
156
163
  }
157
164
  },
158
165
  checkbox: {},
@@ -3793,13 +3800,13 @@ dynamicApp.use(VxeButton);
3793
3800
  VxeUI.component(VxeButtonComponent);
3794
3801
  const Button = VxeButton;
3795
3802
 
3796
- const { errLog: errLog$h } = createComponentLog('backtop');
3797
- function createInternalData$e() {
3803
+ const { errLog: errLog$g } = createComponentLog('backtop');
3804
+ function createInternalData$f() {
3798
3805
  return {
3799
3806
  targetEl: null
3800
3807
  };
3801
3808
  }
3802
- function createReactData$f() {
3809
+ function createReactData$g() {
3803
3810
  return {
3804
3811
  showBtn: false,
3805
3812
  backtopZindex: 0
@@ -3878,8 +3885,8 @@ var VxeBacktopComponent = defineVxeComponent({
3878
3885
  const xID = XEUtils.uniqueId();
3879
3886
  const refElem = ref();
3880
3887
  const { computeSize } = useSize(props);
3881
- const internalData = createInternalData$e();
3882
- const reactData = reactive(createReactData$f());
3888
+ const internalData = createInternalData$f();
3889
+ const reactData = reactive(createReactData$g());
3883
3890
  const refMaps = {
3884
3891
  refElem
3885
3892
  };
@@ -3971,13 +3978,13 @@ var VxeBacktopComponent = defineVxeComponent({
3971
3978
  const { target } = props;
3972
3979
  if (!target) {
3973
3980
  removeScrollEvent();
3974
- errLog$h('vxe.error.reqProp', ['target']);
3981
+ errLog$g('vxe.error.reqProp', ['target']);
3975
3982
  return;
3976
3983
  }
3977
3984
  if (XEUtils.isString(target)) {
3978
3985
  const tEl = document.querySelector(target);
3979
3986
  if (!tEl) {
3980
- errLog$h('vxe.error.errProp', [`target=${target}`, 'body']);
3987
+ errLog$g('vxe.error.errProp', [`target=${target}`, 'body']);
3981
3988
  }
3982
3989
  const { targetEl } = internalData;
3983
3990
  if (targetEl !== tEl) {
@@ -4056,8 +4063,8 @@ var VxeBacktopComponent = defineVxeComponent({
4056
4063
  });
4057
4064
  onBeforeUnmount(() => {
4058
4065
  removeScrollEvent();
4059
- XEUtils.assign(reactData, createReactData$f());
4060
- XEUtils.assign(internalData, createInternalData$e());
4066
+ XEUtils.assign(reactData, createReactData$g());
4067
+ XEUtils.assign(internalData, createInternalData$f());
4061
4068
  });
4062
4069
  $xeBacktop.renderVN = renderVN;
4063
4070
  return $xeBacktop;
@@ -4662,7 +4669,7 @@ function isAllSameChar(str, char) {
4662
4669
  return true;
4663
4670
  }
4664
4671
 
4665
- const { errLog: errLog$g } = createComponentLog('calendar');
4672
+ const { errLog: errLog$f } = createComponentLog('calendar');
4666
4673
  const { menus: menus$2, getConfig: getConfig$2, getI18n: getI18n$1 } = VxeUI;
4667
4674
  var VxeCalendarComponent = defineVxeComponent({
4668
4675
  name: 'VxeCalendar',
@@ -5930,7 +5937,7 @@ var VxeCalendarComponent = defineVxeComponent({
5930
5937
  const { menuConfig } = props;
5931
5938
  const VxeUIContextMenu = VxeUI.getComponent('VxeContextMenu');
5932
5939
  if (menuConfig && !VxeUIContextMenu) {
5933
- errLog$g('vxe.error.reqComp', ['vxe-context-menu']);
5940
+ errLog$f('vxe.error.reqComp', ['vxe-context-menu']);
5934
5941
  }
5935
5942
  dateOpenPanel();
5936
5943
  });
@@ -6712,7 +6719,7 @@ function deNodeValue$1(nodeid) {
6712
6719
  return nodeid ? decodeURIComponent(`${nodeid}`) : nodeid;
6713
6720
  }
6714
6721
 
6715
- function createReactData$e() {
6722
+ function createReactData$f() {
6716
6723
  return {
6717
6724
  scrollYLoad: false,
6718
6725
  bodyHeight: 0,
@@ -6723,7 +6730,7 @@ function createReactData$e() {
6723
6730
  items: []
6724
6731
  };
6725
6732
  }
6726
- function createInternalData$d() {
6733
+ function createInternalData$e() {
6727
6734
  return {
6728
6735
  resizeObserver: undefined,
6729
6736
  fullData: [],
@@ -6766,8 +6773,8 @@ var VxeListComponent = defineVxeComponent({
6766
6773
  const xID = XEUtils.uniqueId();
6767
6774
  const browseObj = XEUtils.browse();
6768
6775
  const { computeSize } = useSize(props);
6769
- const reactData = reactive(createReactData$e());
6770
- const internalData = createInternalData$d();
6776
+ const reactData = reactive(createReactData$f());
6777
+ const internalData = createInternalData$e();
6771
6778
  const refElem = ref();
6772
6779
  const refVirtualWrapper = ref();
6773
6780
  const refVirtualBody = ref();
@@ -7099,8 +7106,8 @@ var VxeListComponent = defineVxeComponent({
7099
7106
  resizeObserver.disconnect();
7100
7107
  }
7101
7108
  globalEvents.off($xeList, 'resize');
7102
- XEUtils.assign(reactData, createReactData$e());
7103
- XEUtils.assign(internalData, createInternalData$d());
7109
+ XEUtils.assign(reactData, createReactData$f());
7110
+ XEUtils.assign(internalData, createInternalData$e());
7104
7111
  });
7105
7112
  $xeList.renderVN = renderVN;
7106
7113
  return $xeList;
@@ -9807,14 +9814,13 @@ var VxeInputComponent = defineVxeComponent({
9807
9814
  }
9808
9815
  });
9809
9816
 
9810
- const { errLog: errLog$f } = createComponentLog('cascader');
9811
9817
  /**
9812
9818
  * 生成节点的唯一主键
9813
9819
  */
9814
9820
  function getNodeUniqueId$1() {
9815
9821
  return XEUtils.uniqueId('node_');
9816
9822
  }
9817
- function createReactData$d() {
9823
+ function createReactData$e() {
9818
9824
  return {
9819
9825
  initialized: false,
9820
9826
  searchValue: '',
@@ -9837,7 +9843,7 @@ function createReactData$d() {
9837
9843
  lazyOptFlag: 1
9838
9844
  };
9839
9845
  }
9840
- function createInternalData$c() {
9846
+ function createInternalData$d() {
9841
9847
  return {
9842
9848
  // hpTimeout: undefined,
9843
9849
  listVirtualYOpts: {
@@ -9964,8 +9970,8 @@ var VxeCascaderComponent = defineVxeComponent({
9964
9970
  const refInpSearch = ref();
9965
9971
  const refChunkWrapper = ref();
9966
9972
  const refOptionPanel = ref();
9967
- const reactData = reactive(createReactData$d());
9968
- const internalData = createInternalData$c();
9973
+ const reactData = reactive(createReactData$e());
9974
+ const internalData = createInternalData$d();
9969
9975
  const refMaps = {
9970
9976
  refElem
9971
9977
  };
@@ -10378,7 +10384,6 @@ var VxeCascaderComponent = defineVxeComponent({
10378
10384
  return internalData.afterVisibleList;
10379
10385
  };
10380
10386
  const handleData = (force) => {
10381
- const { nodeMaps } = internalData;
10382
10387
  let fullList = internalData.afterVisibleList;
10383
10388
  if (force) {
10384
10389
  // 更新数据,处理筛选和排序
@@ -10387,16 +10392,56 @@ var VxeCascaderComponent = defineVxeComponent({
10387
10392
  fullList = handleTreeToList();
10388
10393
  }
10389
10394
  const treeList = fullList.slice(0);
10390
- treeList.forEach((item, $index) => {
10391
- const nodeid = getNodeId(item);
10392
- const itemRest = nodeMaps[nodeid];
10393
- if (itemRest) {
10394
- itemRest.$index = $index;
10395
- }
10396
- });
10397
10395
  reactData.treeList = treeList;
10398
10396
  };
10399
- const triggerSearchEvent = XEUtils.debounce(() => handleData(true), 350, { trailing: true });
10397
+ /**
10398
+ * 获取第一个拥有子节点的节点
10399
+ */
10400
+ function handleHasChildNodeIds(treeList, type) {
10401
+ const childrenField = computeChildrenField.value;
10402
+ const mapChildrenField = computeMapChildrenField.value;
10403
+ const treeOpts = computeTreeOpts.value;
10404
+ const { transform } = treeOpts;
10405
+ const childField = transform ? mapChildrenField : childrenField;
10406
+ const nodeIds = [];
10407
+ let currList = treeList;
10408
+ while (currList.length) {
10409
+ let targetNode = null;
10410
+ for (const item of currList) {
10411
+ const kids = item[childField];
10412
+ if (XEUtils.isArray(kids) && kids.length > 0) {
10413
+ targetNode = item;
10414
+ break;
10415
+ }
10416
+ }
10417
+ if (targetNode) {
10418
+ nodeIds.push(getNodeId(targetNode));
10419
+ currList = targetNode[childField];
10420
+ }
10421
+ else {
10422
+ const endNode = XEUtils[type](currList);
10423
+ nodeIds.push(getNodeId(endNode));
10424
+ break;
10425
+ }
10426
+ }
10427
+ return nodeIds;
10428
+ }
10429
+ const triggerSearchEvent = XEUtils.debounce(() => {
10430
+ handleData(true);
10431
+ updateModelChecked();
10432
+ const filterOpts = computeFilterOpts.value;
10433
+ const { autoExpandMode } = filterOpts;
10434
+ const { afterTreeList } = internalData;
10435
+ // 默认展开第
10436
+ if (autoExpandMode === 'first' || autoExpandMode === 'last') {
10437
+ const stItems = handleHasChildNodeIds(afterTreeList, autoExpandMode);
10438
+ reactData.currentItems = stItems;
10439
+ }
10440
+ else {
10441
+ handleCurrentItems();
10442
+ }
10443
+ updateCurrentChunk();
10444
+ }, 350, { trailing: true });
10400
10445
  const loadData = (list) => {
10401
10446
  const treeOpts = computeTreeOpts.value;
10402
10447
  const keyField = computeKeyField.value;
@@ -10423,17 +10468,20 @@ var VxeCascaderComponent = defineVxeComponent({
10423
10468
  };
10424
10469
  const updateCurrentChunk = () => {
10425
10470
  const { currentItems } = reactData;
10426
- const { treeFullData } = internalData;
10471
+ const { afterTreeList } = internalData;
10427
10472
  const childrenField = computeChildrenField.value;
10428
- const currentCunkList = [treeFullData];
10473
+ const mapChildrenField = computeMapChildrenField.value;
10474
+ const treeOpts = computeTreeOpts.value;
10475
+ const { transform } = treeOpts;
10476
+ const currentCunkList = [afterTreeList];
10429
10477
  if (currentItems.length) {
10430
10478
  let chunkIndex = 0;
10431
10479
  let stNodeid = currentItems[chunkIndex];
10432
- let optList = treeFullData;
10480
+ let optList = afterTreeList;
10433
10481
  while (stNodeid && optList && optList.length) {
10434
10482
  stNodeid = currentItems[chunkIndex++];
10435
10483
  const currOption = optList.find(item => stNodeid === getNodeId(item));
10436
- optList = currOption ? currOption[childrenField] : [];
10484
+ optList = currOption ? currOption[transform ? mapChildrenField : childrenField] : [];
10437
10485
  if (!optList || !optList.length) {
10438
10486
  break;
10439
10487
  }
@@ -10443,7 +10491,7 @@ var VxeCascaderComponent = defineVxeComponent({
10443
10491
  reactData.currentCunkList = currentCunkList;
10444
10492
  };
10445
10493
  const handleCurrentItems = () => {
10446
- const { treeFullData } = internalData;
10494
+ const { afterTreeList } = internalData;
10447
10495
  const selectVals = computeSelectVals.value;
10448
10496
  const childrenField = computeChildrenField.value;
10449
10497
  const mapChildrenField = computeMapChildrenField.value;
@@ -10453,7 +10501,7 @@ var VxeCascaderComponent = defineVxeComponent({
10453
10501
  const expandedMaps = {};
10454
10502
  if (selectVals.length) {
10455
10503
  const lastVal = enNodeValue$1(XEUtils.last(selectVals));
10456
- const stRest = XEUtils.findTree(treeFullData, (item) => lastVal === getNodeId(item), { children: transform ? mapChildrenField : childrenField });
10504
+ const stRest = XEUtils.findTree(afterTreeList, (item) => lastVal === getNodeId(item), { children: transform ? mapChildrenField : childrenField });
10457
10505
  if (stRest) {
10458
10506
  const { nodes } = stRest;
10459
10507
  nodes.forEach(item => {
@@ -10559,10 +10607,11 @@ var VxeCascaderComponent = defineVxeComponent({
10559
10607
  return { checkNodeKeys: checkKeys, checkNodes };
10560
10608
  });
10561
10609
  };
10562
- const clearCheckboxNode = () => {
10610
+ const clearSelectedNode = () => {
10563
10611
  internalData.indeterminateRowMaps = {};
10564
10612
  internalData.selectCheckboxMaps = {};
10565
10613
  reactData.updateCheckboxFlag++;
10614
+ reactData.selectRadioKey = null;
10566
10615
  updateCheckboxStatus();
10567
10616
  return nextTick().then(() => {
10568
10617
  return { checkNodeKeys: [], checkNodes: [] };
@@ -10604,7 +10653,7 @@ var VxeCascaderComponent = defineVxeComponent({
10604
10653
  const { $event } = params;
10605
10654
  const { multiple, checkedClosable } = props;
10606
10655
  const value = multiple ? [] : null;
10607
- clearCheckboxNode().then(() => {
10656
+ clearSelectedNode().then(() => {
10608
10657
  if (checkedClosable) {
10609
10658
  hideOptionPanel($event);
10610
10659
  }
@@ -10686,9 +10735,12 @@ var VxeCascaderComponent = defineVxeComponent({
10686
10735
  const { nodeMaps } = internalData;
10687
10736
  const radioOpts = computeRadioOpts.value;
10688
10737
  const childrenField = computeChildrenField.value;
10738
+ const treeOpts = computeTreeOpts.value;
10739
+ const { transform } = treeOpts;
10740
+ const mapChildrenField = computeMapChildrenField.value;
10689
10741
  const { checkMode, checkMethod } = radioOpts;
10690
10742
  const nodeid = getNodeId(node);
10691
- const childList = node[childrenField];
10743
+ const childList = node[transform ? mapChildrenField : childrenField];
10692
10744
  const isExistChild = childList && childList.length > 0;
10693
10745
  const nodeItem = nodeMaps[nodeid] || {};
10694
10746
  const nLevel = nodeItem.level;
@@ -10837,7 +10889,7 @@ var VxeCascaderComponent = defineVxeComponent({
10837
10889
  const childRowList = [];
10838
10890
  XEUtils.eachTree(afterTreeList, (node) => {
10839
10891
  const nodeid = getNodeId(node);
10840
- const childList = node[childrenField];
10892
+ const childList = node[transform ? mapChildrenField : childrenField];
10841
10893
  if (childList && childList.length && !childRowMaps[nodeid]) {
10842
10894
  childRowMaps[nodeid] = 1;
10843
10895
  childRowList.unshift([node, nodeid, childList]);
@@ -10941,7 +10993,7 @@ var VxeCascaderComponent = defineVxeComponent({
10941
10993
  const treeOpts = computeTreeOpts.value;
10942
10994
  const { transform } = treeOpts;
10943
10995
  const nodeid = getNodeId(node);
10944
- const childList = node[childrenField];
10996
+ const childList = node[transform ? mapChildrenField : childrenField];
10945
10997
  const isExistChild = childList && childList.length > 0;
10946
10998
  const nodeItem = nodeMaps[nodeid] || {};
10947
10999
  const nLevel = nodeItem.level;
@@ -11187,11 +11239,12 @@ var VxeCascaderComponent = defineVxeComponent({
11187
11239
  const { currentNode, selectRadioKey, updateCheckboxFlag, updateExpandedFlag } = reactData;
11188
11240
  const { nodeMaps, selectCheckboxMaps, indeterminateRowMaps, treeExpandedMaps, treeExpandLazyLoadedMaps } = internalData;
11189
11241
  const treeOpts = computeTreeOpts.value;
11190
- const { lazy, iconLoaded, iconOpen, iconClose } = treeOpts;
11242
+ const { lazy, transform, iconLoaded, iconOpen, iconClose } = treeOpts;
11191
11243
  const childrenField = computeChildrenField.value;
11244
+ const mapChildrenField = computeMapChildrenField.value;
11192
11245
  const labelField = computeLabelField.value;
11193
11246
  const hasChildField = computeHasChildField.value;
11194
- const childList = node[childrenField];
11247
+ const childList = node[transform ? mapChildrenField : childrenField];
11195
11248
  const isExistChild = childList && childList.length > 0;
11196
11249
  const iconSlot = slots.icon;
11197
11250
  const titleSlot = slots.title;
@@ -11373,7 +11426,7 @@ var VxeCascaderComponent = defineVxeComponent({
11373
11426
  h('div', {
11374
11427
  class: 'vxe-tree-select--header-button'
11375
11428
  }, [
11376
- showCheckedButton && showClearButton
11429
+ (showCheckedButton && multiple) || showClearButton
11377
11430
  ? h('div', {
11378
11431
  class: 'vxe-tree-select--selected-btns'
11379
11432
  }, [
@@ -11424,7 +11477,7 @@ var VxeCascaderComponent = defineVxeComponent({
11424
11477
  })
11425
11478
  ])
11426
11479
  ]),
11427
- footerSlot || showTotalButton || (showCloseButton && multiple)
11480
+ footerSlot || showTotalButton || showCloseButton
11428
11481
  ? h('div', {
11429
11482
  class: 'vxe-cascader--panel-footer'
11430
11483
  }, footerSlot
@@ -11438,7 +11491,7 @@ var VxeCascaderComponent = defineVxeComponent({
11438
11491
  class: 'vxe-cascader--total-btns'
11439
11492
  }, getI18n$2('vxe.treeSelect.total', [selectVals.length]))
11440
11493
  : renderEmptyElement($xeCascader),
11441
- showCloseButton && multiple
11494
+ showCloseButton
11442
11495
  ? h('div', {
11443
11496
  class: 'vxe-cascader--oper-btns'
11444
11497
  }, [
@@ -11480,9 +11533,6 @@ var VxeCascaderComponent = defineVxeComponent({
11480
11533
  });
11481
11534
  loadData(props.options || []);
11482
11535
  onMounted(() => {
11483
- if (props.filterable) {
11484
- errLog$f('vxe.error.notProp', ['filterable']);
11485
- }
11486
11536
  globalEvents.on($xeCascader, 'mousewheel', handleGlobalMousewheelEvent);
11487
11537
  globalEvents.on($xeCascader, 'mousedown', handleGlobalMousedownEvent);
11488
11538
  globalEvents.on($xeCascader, 'blur', handleGlobalBlurEvent);
@@ -11493,7 +11543,7 @@ var VxeCascaderComponent = defineVxeComponent({
11493
11543
  globalEvents.off($xeCascader, 'mousedown');
11494
11544
  globalEvents.off($xeCascader, 'blur');
11495
11545
  globalEvents.off($xeCascader, 'resize');
11496
- XEUtils.assign(internalData, createInternalData$c());
11546
+ XEUtils.assign(internalData, createInternalData$d());
11497
11547
  });
11498
11548
  provide('$xeCascader', $xeCascader);
11499
11549
  $xeCascader.renderVN = renderVN;
@@ -11826,10 +11876,10 @@ dynamicApp.use(VxeCheckboxButton);
11826
11876
  VxeUI.component(VxeCheckboxButtonComponent);
11827
11877
  const CheckboxButton = VxeCheckboxButton;
11828
11878
 
11829
- function createReactData$c() {
11879
+ function createReactData$d() {
11830
11880
  return {};
11831
11881
  }
11832
- function createInternalData$b() {
11882
+ function createInternalData$c() {
11833
11883
  return {
11834
11884
  // isLoaded: false
11835
11885
  };
@@ -11868,8 +11918,8 @@ var VxeCheckboxGroupComponent = defineVxeComponent({
11868
11918
  const $xeForm = inject('$xeForm', null);
11869
11919
  const formItemInfo = inject('xeFormItemInfo', null);
11870
11920
  const xID = XEUtils.uniqueId();
11871
- const reactData = reactive(createReactData$c());
11872
- const internalData = createInternalData$b();
11921
+ const reactData = reactive(createReactData$d());
11922
+ const internalData = createInternalData$c();
11873
11923
  const computeIsReadonly = computed(() => {
11874
11924
  const { readonly } = props;
11875
11925
  if (readonly === null) {
@@ -12028,8 +12078,8 @@ var VxeCheckboxGroupComponent = defineVxeComponent({
12028
12078
  });
12029
12079
  });
12030
12080
  onUnmounted(() => {
12031
- XEUtils.assign(reactData, createReactData$c());
12032
- XEUtils.assign(internalData, createInternalData$b());
12081
+ XEUtils.assign(reactData, createReactData$d());
12082
+ XEUtils.assign(internalData, createInternalData$c());
12033
12083
  });
12034
12084
  provide('$xeCheckboxGroup', $xeCheckboxGroup);
12035
12085
  $xeCheckboxGroup.renderVN = renderVN;
@@ -12162,6 +12212,19 @@ dynamicApp.use(VxeCol);
12162
12212
  VxeUI.component(VxeColComponent);
12163
12213
  const Col = VxeCol;
12164
12214
 
12215
+ function createReactData$c() {
12216
+ return {
12217
+ staticPanes: [],
12218
+ activeNames: [],
12219
+ initNames: [],
12220
+ cachePaneMaps: {}
12221
+ };
12222
+ }
12223
+ function createInternalData$b() {
12224
+ return {
12225
+ // esTime: null
12226
+ };
12227
+ }
12165
12228
  var VxeCollapseComponent = defineVxeComponent({
12166
12229
  name: 'VxeCollapse',
12167
12230
  props: {
@@ -12171,6 +12234,10 @@ var VxeCollapseComponent = defineVxeComponent({
12171
12234
  type: Boolean,
12172
12235
  default: () => getConfig$3().collapse.padding
12173
12236
  },
12237
+ border: {
12238
+ type: Boolean,
12239
+ default: () => getConfig$3().collapse.border
12240
+ },
12174
12241
  expandConfig: Object,
12175
12242
  size: {
12176
12243
  type: String,
@@ -12188,12 +12255,8 @@ var VxeCollapseComponent = defineVxeComponent({
12188
12255
  const xID = XEUtils.uniqueId();
12189
12256
  const { computeSize } = useSize(props);
12190
12257
  const refElem = ref();
12191
- const reactData = reactive({
12192
- staticPanes: [],
12193
- activeNames: [],
12194
- initNames: [],
12195
- cachePaneMaps: {}
12196
- });
12258
+ const reactData = reactive(createReactData$c());
12259
+ const internalData = createInternalData$b();
12197
12260
  const refMaps = {
12198
12261
  refElem
12199
12262
  };
@@ -12214,6 +12277,7 @@ var VxeCollapseComponent = defineVxeComponent({
12214
12277
  props,
12215
12278
  context,
12216
12279
  reactData,
12280
+ internalData,
12217
12281
  getRefMaps: () => refMaps,
12218
12282
  getComputeMaps: () => computeMaps
12219
12283
  };
@@ -12244,6 +12308,7 @@ var VxeCollapseComponent = defineVxeComponent({
12244
12308
  if (name) {
12245
12309
  const isActive = activeNames.includes(name);
12246
12310
  nameMaps[`${name}`] = {
12311
+ height: 0,
12247
12312
  loading: false
12248
12313
  };
12249
12314
  if (isActive) {
@@ -12279,8 +12344,14 @@ var VxeCollapseComponent = defineVxeComponent({
12279
12344
  };
12280
12345
  const handleClickEvent = (evnt, item) => {
12281
12346
  const { activeNames } = reactData;
12347
+ const { esTime } = internalData;
12282
12348
  const { name } = item;
12349
+ if (esTime) {
12350
+ clearTimeout(esTime);
12351
+ }
12283
12352
  if (name) {
12353
+ const headEl = evnt.currentTarget;
12354
+ const bodyEl = headEl.nextElementSibling;
12284
12355
  const aIndex = activeNames.indexOf(name);
12285
12356
  let expanded = false;
12286
12357
  if (aIndex === -1) {
@@ -12290,6 +12361,35 @@ var VxeCollapseComponent = defineVxeComponent({
12290
12361
  else {
12291
12362
  activeNames.splice(aIndex, 1);
12292
12363
  }
12364
+ const startAnimation = () => {
12365
+ const itemEl = bodyEl.firstElementChild;
12366
+ if (itemEl) {
12367
+ bodyEl.style.height = toCssUnit(itemEl.scrollHeight);
12368
+ if (expanded) {
12369
+ internalData.esTime = setTimeout(() => {
12370
+ bodyEl.style.height = '';
12371
+ internalData.esTime = undefined;
12372
+ }, 200);
12373
+ }
12374
+ else {
12375
+ nextTick(() => {
12376
+ requestAnimationFrame(() => {
12377
+ bodyEl.style.height = '';
12378
+ });
12379
+ });
12380
+ }
12381
+ }
12382
+ };
12383
+ if (bodyEl) {
12384
+ const itemEl = bodyEl.firstElementChild;
12385
+ if (itemEl) {
12386
+ startAnimation();
12387
+ }
12388
+ else {
12389
+ bodyEl.style.height = '0';
12390
+ nextTick(startAnimation);
12391
+ }
12392
+ }
12293
12393
  addInitName(name);
12294
12394
  dispatchEvent('change', { value: activeNames, name }, evnt);
12295
12395
  dispatchEvent('toggle-expand', { value: activeNames, name, expanded }, evnt);
@@ -12338,7 +12438,8 @@ var VxeCollapseComponent = defineVxeComponent({
12338
12438
  ]),
12339
12439
  h('div', {
12340
12440
  class: ['vxe-collapse--item-content', {
12341
- 'is--visible': isActive
12441
+ 'is--visible': isActive,
12442
+ 'is--hidden': !isActive
12342
12443
  }]
12343
12444
  }, [
12344
12445
  name && initNames.includes(name)
@@ -12353,7 +12454,7 @@ var VxeCollapseComponent = defineVxeComponent({
12353
12454
  });
12354
12455
  };
12355
12456
  const renderVN = () => {
12356
- const { padding } = props;
12457
+ const { padding, border } = props;
12357
12458
  const vSize = computeSize.value;
12358
12459
  const itemOptions = computeItemOptions.value;
12359
12460
  const itemStaticOptions = computeItemStaticOptions.value;
@@ -12363,7 +12464,8 @@ var VxeCollapseComponent = defineVxeComponent({
12363
12464
  ref: refElem,
12364
12465
  class: ['vxe-collapse', {
12365
12466
  [`size--${vSize}`]: vSize,
12366
- 'is--padding': padding
12467
+ 'is--padding': padding,
12468
+ 'is--border': border
12367
12469
  }]
12368
12470
  }, [
12369
12471
  h('div', {
@@ -12397,6 +12499,14 @@ var VxeCollapseComponent = defineVxeComponent({
12397
12499
  });
12398
12500
  reactData.activeNames = props.modelValue || [];
12399
12501
  initDefaultName(reactData.staticPanes.length ? reactData.staticPanes : props.options);
12502
+ onUnmounted(() => {
12503
+ const { esTime } = internalData;
12504
+ if (esTime) {
12505
+ clearTimeout(esTime);
12506
+ }
12507
+ XEUtils.assign(reactData, createReactData$c());
12508
+ XEUtils.assign(internalData, createInternalData$b());
12509
+ });
12400
12510
  provide('$xeCollapse', $xeCollapse);
12401
12511
  $xeCollapse.renderVN = renderVN;
12402
12512
  return $xeCollapse;
@@ -41291,7 +41401,7 @@ var VxeTreeSelectComponent = defineVxeComponent({
41291
41401
  h('div', {
41292
41402
  class: 'vxe-tree-select--header-button'
41293
41403
  }, [
41294
- showCheckedButton && showClearButton
41404
+ (showCheckedButton && multiple) || showClearButton
41295
41405
  ? h('div', {
41296
41406
  class: 'vxe-tree-select--selected-btns'
41297
41407
  }, [
@@ -41311,24 +41421,20 @@ var VxeTreeSelectComponent = defineVxeComponent({
41311
41421
  : renderEmptyElement($xeTreeSelect)
41312
41422
  ])
41313
41423
  : renderEmptyElement($xeTreeSelect),
41314
- showExpandButton && showExpandButton
41424
+ showExpandButton
41315
41425
  ? h('div', {
41316
41426
  class: 'vxe-tree-select--expand-btns'
41317
41427
  }, [
41318
- showExpandButton
41319
- ? h(VxeButton, {
41320
- content: getI18n$2('vxe.treeSelect.allExpand'),
41321
- mode: 'text',
41322
- onClick: allExpandPanelEvent
41323
- })
41324
- : renderEmptyElement($xeTreeSelect),
41325
- showExpandButton
41326
- ? h(VxeButton, {
41327
- content: getI18n$2('vxe.treeSelect.clearExpand'),
41328
- mode: 'text',
41329
- onClick: clearExpandPanelEvent
41330
- })
41331
- : renderEmptyElement($xeTreeSelect)
41428
+ h(VxeButton, {
41429
+ content: getI18n$2('vxe.treeSelect.allExpand'),
41430
+ mode: 'text',
41431
+ onClick: allExpandPanelEvent
41432
+ }),
41433
+ h(VxeButton, {
41434
+ content: getI18n$2('vxe.treeSelect.clearExpand'),
41435
+ mode: 'text',
41436
+ onClick: clearExpandPanelEvent
41437
+ })
41332
41438
  ])
41333
41439
  : renderEmptyElement($xeTreeSelect)
41334
41440
  ])
@@ -41391,7 +41497,7 @@ var VxeTreeSelectComponent = defineVxeComponent({
41391
41497
  }, treeScopedSlots)
41392
41498
  ])
41393
41499
  ]),
41394
- footerSlot || showTotalButton || (showCloseButton && multiple)
41500
+ footerSlot || showTotalButton || showCloseButton
41395
41501
  ? h('div', {
41396
41502
  class: 'vxe-tree-select--panel-footer'
41397
41503
  }, footerSlot
@@ -41405,7 +41511,7 @@ var VxeTreeSelectComponent = defineVxeComponent({
41405
41511
  class: 'vxe-tree-select--total-btns'
41406
41512
  }, getI18n$2('vxe.treeSelect.total', [selectVals.length]))
41407
41513
  : renderEmptyElement($xeTreeSelect),
41408
- showCloseButton && multiple
41514
+ showCloseButton
41409
41515
  ? h('div', {
41410
41516
  class: 'vxe-tree-select--oper-btns'
41411
41517
  }, [