vxe-table 3.25.0-beta.4 → 3.25.0-beta.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.
@@ -9,8 +9,7 @@ import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimat
9
9
  import { createComponentLog } from '../../ui/src/log';
10
10
  import { getCrossTableDragRowInfo } from './store';
11
11
  const { warnLog, errLog } = createComponentLog('table');
12
- const { getConfig, getI18n, renderer, scrollbarUtils, formats, interceptor, createEvent, globalEvents, GLOBAL_EVENT_KEYS } = VxeUI;
13
- const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils || {};
12
+ const { getConfig, getI18n, renderer, formats, interceptor, createEvent, globalEvents, GLOBAL_EVENT_KEYS } = VxeUI;
14
13
  const supportMaxRow = 5e6;
15
14
  const customStorageKey = 'VXE_CUSTOM_STORE';
16
15
  const maxYHeight = 5e6;
@@ -4679,6 +4678,13 @@ const tableMethods = {
4679
4678
  const $xeTable = this;
4680
4679
  return $xeTable.$refs.refElem;
4681
4680
  },
4681
+ getScrollViewElem() {
4682
+ const $xeTable = this;
4683
+ const internalData = $xeTable;
4684
+ const { elemStore } = internalData;
4685
+ const viewEl = getRefElem(elemStore['main-body-scroll']);
4686
+ return viewEl;
4687
+ },
4682
4688
  /**
4683
4689
  * 获取父容器元素
4684
4690
  */
@@ -13559,196 +13565,6 @@ const tableMethods = {
13559
13565
  const $xeTable = this;
13560
13566
  return $xeTable.handleClearStack();
13561
13567
  },
13562
- // 滚动条
13563
- updateThumbSize() {
13564
- const $xeTable = this;
13565
- const reactData = $xeTable;
13566
- const internalData = $xeTable;
13567
- const { elemStore } = internalData;
13568
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13569
- if (!viewEl) {
13570
- return;
13571
- }
13572
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
13573
- return;
13574
- }
13575
- const trackXEl = $xeTable.$refs.refTrackXElem;
13576
- const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
13577
- const thumbXElem = $xeTable.$refs.refThumbXElem;
13578
- if (thumbXElem) {
13579
- thumbXElem.style.width = xThumbWidth + 'px';
13580
- }
13581
- reactData.xThumbWidth = xThumbWidth;
13582
- const trackYEl = $xeTable.$refs.refTrackYElem;
13583
- const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
13584
- const thumbYElem = $xeTable.$refs.refThumbYElem;
13585
- if (thumbYElem) {
13586
- thumbYElem.style.height = yThumbHeight + 'px';
13587
- }
13588
- reactData.yThumbHeight = yThumbHeight;
13589
- },
13590
- updateThumbOffset() {
13591
- const $xeTable = this;
13592
- const reactData = $xeTable;
13593
- const internalData = $xeTable;
13594
- const { elemStore } = internalData;
13595
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13596
- if (!viewEl) {
13597
- return;
13598
- }
13599
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
13600
- return;
13601
- }
13602
- const { xThumbWidth, yThumbHeight } = reactData;
13603
- const trackXEl = $xeTable.$refs.refTrackXElem;
13604
- const thumbXElem = $xeTable.$refs.refThumbXElem;
13605
- const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
13606
- internalData.xThumbLeft = xThumbLeft;
13607
- if (thumbXElem && xThumbWidth) {
13608
- thumbXElem.style.width = xThumbWidth + 'px';
13609
- thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
13610
- }
13611
- const trackYEl = $xeTable.$refs.refTrackYElem;
13612
- const thumbYElem = $xeTable.$refs.refThumbYElem;
13613
- const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
13614
- internalData.yThumbTop = yThumbTop;
13615
- if (thumbYElem && yThumbHeight) {
13616
- thumbYElem.style.height = yThumbHeight + 'px';
13617
- thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
13618
- }
13619
- },
13620
- clickTrackXEvent(evnt) {
13621
- const $xeTable = this;
13622
- const reactData = $xeTable;
13623
- const internalData = $xeTable;
13624
- const { elemStore } = internalData;
13625
- const trackEl = evnt.currentTarget;
13626
- if (trackEl !== evnt.target) {
13627
- return;
13628
- }
13629
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13630
- if (!viewEl) {
13631
- return;
13632
- }
13633
- const { xThumbWidth } = reactData;
13634
- const trackRect = trackEl.getBoundingClientRect();
13635
- viewEl.scrollTo({
13636
- left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
13637
- behavior: 'auto'
13638
- });
13639
- },
13640
- clickTrackYEvent(evnt) {
13641
- const $xeTable = this;
13642
- const reactData = $xeTable;
13643
- const internalData = $xeTable;
13644
- const trackEl = evnt.currentTarget;
13645
- if (trackEl !== evnt.target) {
13646
- return;
13647
- }
13648
- const { elemStore } = internalData;
13649
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13650
- if (!viewEl) {
13651
- return;
13652
- }
13653
- const { yThumbHeight } = reactData;
13654
- const trackRect = trackEl.getBoundingClientRect();
13655
- viewEl.scrollTo({
13656
- top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
13657
- behavior: 'auto'
13658
- });
13659
- },
13660
- pointerdownThumbXEvent(evnt) {
13661
- const $xeTable = this;
13662
- const reactData = $xeTable;
13663
- const internalData = $xeTable;
13664
- const { elemStore } = internalData;
13665
- const thumbEl = evnt.currentTarget;
13666
- internalData.isThumbDrag = true;
13667
- thumbEl.setPointerCapture(evnt.pointerId);
13668
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13669
- if (!viewEl) {
13670
- return;
13671
- }
13672
- const { xThumbWidth } = reactData;
13673
- const trackEl = thumbEl.parentElement;
13674
- const trackRect = trackEl.getBoundingClientRect();
13675
- const pointerPosition = evnt.clientX - trackRect.left;
13676
- // 记录 thumb 的偏移
13677
- const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
13678
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
13679
- },
13680
- pointermoveThumbXEvent(evnt) {
13681
- const $xeTable = this;
13682
- const reactData = $xeTable;
13683
- const internalData = $xeTable;
13684
- const thumbEl = evnt.currentTarget;
13685
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
13686
- return;
13687
- }
13688
- const { elemStore, isThumbDrag, thumbDragOffset } = internalData;
13689
- if (isThumbDrag) {
13690
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13691
- if (!viewEl) {
13692
- return;
13693
- }
13694
- const { xThumbWidth } = reactData;
13695
- const thumbEl = evnt.currentTarget;
13696
- const trackEl = thumbEl.parentElement;
13697
- const trackRect = trackEl.getBoundingClientRect();
13698
- // 更新偏移
13699
- viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
13700
- }
13701
- },
13702
- cleatPointerThumbEvent(evnt) {
13703
- const $xeTable = this;
13704
- const internalData = $xeTable;
13705
- const thumbEl = evnt.currentTarget;
13706
- thumbEl.releasePointerCapture(evnt.pointerId);
13707
- internalData.isThumbDrag = false;
13708
- },
13709
- pointerdownThumbYEvent(evnt) {
13710
- const $xeTable = this;
13711
- const reactData = $xeTable;
13712
- const internalData = $xeTable;
13713
- const { elemStore } = internalData;
13714
- const thumbEl = evnt.currentTarget;
13715
- internalData.isThumbDrag = true;
13716
- thumbEl.setPointerCapture(evnt.pointerId);
13717
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13718
- if (!viewEl) {
13719
- return;
13720
- }
13721
- const { yThumbHeight } = reactData;
13722
- const trackEl = thumbEl.parentElement;
13723
- const trackRect = trackEl.getBoundingClientRect();
13724
- const pointerPosition = evnt.clientY - trackRect.top;
13725
- // 记录 thumb 的偏移
13726
- const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
13727
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
13728
- },
13729
- pointermoveThumbYEvent(evnt) {
13730
- const $xeTable = this;
13731
- const reactData = $xeTable;
13732
- const internalData = $xeTable;
13733
- const thumbEl = evnt.currentTarget;
13734
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
13735
- return;
13736
- }
13737
- const { elemStore, isThumbDrag, thumbDragOffset } = internalData;
13738
- if (isThumbDrag) {
13739
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13740
- if (!viewEl) {
13741
- return;
13742
- }
13743
- const { yThumbHeight } = reactData;
13744
- const thumbEl = evnt.currentTarget;
13745
- const trackEl = thumbEl.parentElement;
13746
- const trackRect = trackEl.getBoundingClientRect();
13747
- // 更新偏移
13748
- viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
13749
- }
13750
- },
13751
- // 滚动条
13752
13568
  dispatchEvent(type, params, evnt) {
13753
13569
  const $xeTable = this;
13754
13570
  const $xeGrid = $xeTable.$xeGrid;
@@ -13805,6 +13621,16 @@ const tableMethods = {
13805
13621
  }
13806
13622
  return $xeTable.$nextTick();
13807
13623
  },
13624
+ getInternalData() {
13625
+ const $xeTable = this;
13626
+ const internalData = $xeTable;
13627
+ return internalData;
13628
+ },
13629
+ getReactData() {
13630
+ const $xeTable = this;
13631
+ const reactData = $xeTable;
13632
+ return reactData;
13633
+ },
13808
13634
  /*************************
13809
13635
  * Publish methods
13810
13636
  *************************/
@@ -626,6 +626,8 @@ export default {
626
626
  name: 'VxeTable',
627
627
  mixins: [
628
628
  globalMixins.sizeMixin,
629
+ globalMixins.vScrollbarMixin,
630
+ globalMixins.initVScrollbarMixin,
629
631
  filterMixin,
630
632
  menuMixin,
631
633
  editMixin,
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "3.25.0-beta.4";
3
+ export const version = "3.25.0-beta.5";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
package/es/ui/src/log.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const tableVersion = `table v${"3.25.0-beta.4"}`;
3
+ const tableVersion = `table v${"3.25.0-beta.5"}`;
4
4
  export function createComponentLog(name) {
5
5
  const uiVersion = VxeUI.uiVersion ? `ui v${VxeUI.uiVersion}` : '';
6
6
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
package/lib/index.umd.js CHANGED
@@ -3323,7 +3323,7 @@ function getDefaultConfig(val1, def1) {
3323
3323
  /* unused harmony import specifier */ var VxeUI;
3324
3324
 
3325
3325
 
3326
- const version = "3.25.0-beta.4";
3326
+ const version = "3.25.0-beta.5";
3327
3327
  core_.VxeUI.version = version;
3328
3328
  core_.VxeUI.tableVersion = version;
3329
3329
  core_.VxeUI.setConfig({
@@ -4286,7 +4286,7 @@ function getPopupAppendElement(appendTo) {
4286
4286
  const {
4287
4287
  log: log_log
4288
4288
  } = core_.VxeUI;
4289
- const tableVersion = `table v${"3.25.0-beta.4"}`;
4289
+ const tableVersion = `table v${"3.25.0-beta.5"}`;
4290
4290
  function createComponentLog(name) {
4291
4291
  const uiVersion = core_.VxeUI.uiVersion ? `ui v${core_.VxeUI.uiVersion}` : '';
4292
4292
  const ganttVersion = core_.VxeUI.ganttVersion ? `gantt v${core_.VxeUI.ganttVersion}` : '';
@@ -8066,7 +8066,7 @@ function getCrossTableDragRowInfo($xeTable) {
8066
8066
  return crossTableDragRowInfo;
8067
8067
  }
8068
8068
  ;// ./packages/table/src/methods.ts
8069
- const{warnLog: methods_warnLog,errLog: methods_errLog}=createComponentLog('table');const{getConfig: methods_getConfig,getI18n: methods_getI18n,renderer: methods_renderer,scrollbarUtils,formats: methods_formats,interceptor: methods_interceptor,createEvent,globalEvents: methods_globalEvents,GLOBAL_EVENT_KEYS}=core_.VxeUI;const{getThumbOffsetSize,getThumbSize,getScrollFromClick,getScrollFromDrag}=scrollbarUtils||{};const supportMaxRow=5e6;const customStorageKey='VXE_CUSTOM_STORE';const maxYHeight=5e6;const maxXWidth=5e6;const sourceType='table';let crossTableDragRowObj=null;function eqCellValue(newRow,oldRow,field){const val1=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(newRow,field);const val2=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(oldRow,field);let result=false;if(eqEmptyValue(val1)&&eqEmptyValue(val2)){result=true;}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(val1)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(val1)){result=''+val1===''+val2;}else{result=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isEqual(val1,val2);}return{newValue:val1,oldValue:val2,result};}function getNextSortOrder($xeTable,column){const sortOpts=$xeTable.computeSortOpts;const{orders=[]}=sortOpts;const currOrder=column.order||null;const oIndex=orders.indexOf(currOrder)+1;return orders[oIndex<orders.length?oIndex:0];}const getCustomStorageMap=id=>{const version=methods_getConfig().version;const rest=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toStringJSON(localStorage.getItem(customStorageKey)||'');const maps=rest&&rest._v===version?rest:{_v:version};return(id?maps[id]:maps)||{};};const setCustomStorageMap=(id,data)=>{const version=methods_getConfig().version;const maps=getCustomStorageMap();maps[id]=data||undefined;maps._v=version;localStorage.setItem(customStorageKey,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toJSONString(maps));};const getRecoverRowMaps=($xeTable,keyMaps)=>{const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const restKeys={};external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(keyMaps,(row,rowid)=>{if(fullAllDataRowIdData[rowid]){restKeys[rowid]=row;}});return restKeys;};function handleReserveRow($xeTable,reserveRowMap){const internalData=$xeTable;const{fullDataRowIdData}=internalData;const reserveList=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(reserveRowMap,(item,rowid)=>{if(fullDataRowIdData[rowid]&&reserveList.indexOf(fullDataRowIdData[rowid].row)===-1){reserveList.push(fullDataRowIdData[rowid].row);}});return reserveList;}function handleVirtualXVisible($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isScrollXBig,scrollXWidth}=reactData;const{elemStore,visibleColumn,fullColumnIdData}=internalData;const leftFixedWidth=$xeTable.computeLeftFixedWidth;const rightFixedWidth=$xeTable.computeRightFixedWidth;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(bodyScrollElem){const clientWidth=bodyScrollElem.clientWidth;let scrollLeft=bodyScrollElem.scrollLeft;if(isScrollXBig){scrollLeft=Math.ceil((scrollXWidth-clientWidth)*Math.min(1,scrollLeft/(maxXWidth-clientWidth)));}const startLeft=scrollLeft+leftFixedWidth;const endLeft=scrollLeft+clientWidth-rightFixedWidth;let leftIndex=0;let rightIndex=visibleColumn.length;while(leftIndex<rightIndex){const cIndex=Math.floor((leftIndex+rightIndex)/2);const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};if(colRest.oLeft<=startLeft){leftIndex=cIndex+1;}else{rightIndex=cIndex;}}let visibleSize=0;const toVisibleIndex=leftIndex===visibleColumn.length?leftIndex:Math.max(0,leftIndex<visibleColumn.length?leftIndex-2:0);for(let cIndex=toVisibleIndex,cLen=visibleColumn.length;cIndex<cLen;cIndex++){const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};visibleSize++;if(colRest.oLeft>endLeft||visibleSize>=60){break;}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(6,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};}function handleCustomRestore($xeTable,storeData){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;const{aggregateConfig,rowGroupConfig}=props;const{collectColumn}=internalData;const{isCustomAlign,isCustomHeaderAlign,isCustomFooterAlign,isCustomResizable,isCustomVisible,isCustomFixed,isCustomSort,isCustomAggGroup,isCustomAggFunc,isCustomPager}=handleCustomStoreConfig($xeTable);let{alignData,headerAlignData,footerAlignData,resizableData,sortData,visibleData,fixedData,aggGroupData,aggFuncData,pagerData}=storeData;// 处理还原
8069
+ const{warnLog: methods_warnLog,errLog: methods_errLog}=createComponentLog('table');const{getConfig: methods_getConfig,getI18n: methods_getI18n,renderer: methods_renderer,formats: methods_formats,interceptor: methods_interceptor,createEvent,globalEvents: methods_globalEvents,GLOBAL_EVENT_KEYS}=core_.VxeUI;const supportMaxRow=5e6;const customStorageKey='VXE_CUSTOM_STORE';const maxYHeight=5e6;const maxXWidth=5e6;const sourceType='table';let crossTableDragRowObj=null;function eqCellValue(newRow,oldRow,field){const val1=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(newRow,field);const val2=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(oldRow,field);let result=false;if(eqEmptyValue(val1)&&eqEmptyValue(val2)){result=true;}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(val1)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(val1)){result=''+val1===''+val2;}else{result=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isEqual(val1,val2);}return{newValue:val1,oldValue:val2,result};}function getNextSortOrder($xeTable,column){const sortOpts=$xeTable.computeSortOpts;const{orders=[]}=sortOpts;const currOrder=column.order||null;const oIndex=orders.indexOf(currOrder)+1;return orders[oIndex<orders.length?oIndex:0];}const getCustomStorageMap=id=>{const version=methods_getConfig().version;const rest=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toStringJSON(localStorage.getItem(customStorageKey)||'');const maps=rest&&rest._v===version?rest:{_v:version};return(id?maps[id]:maps)||{};};const setCustomStorageMap=(id,data)=>{const version=methods_getConfig().version;const maps=getCustomStorageMap();maps[id]=data||undefined;maps._v=version;localStorage.setItem(customStorageKey,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toJSONString(maps));};const getRecoverRowMaps=($xeTable,keyMaps)=>{const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const restKeys={};external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(keyMaps,(row,rowid)=>{if(fullAllDataRowIdData[rowid]){restKeys[rowid]=row;}});return restKeys;};function handleReserveRow($xeTable,reserveRowMap){const internalData=$xeTable;const{fullDataRowIdData}=internalData;const reserveList=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(reserveRowMap,(item,rowid)=>{if(fullDataRowIdData[rowid]&&reserveList.indexOf(fullDataRowIdData[rowid].row)===-1){reserveList.push(fullDataRowIdData[rowid].row);}});return reserveList;}function handleVirtualXVisible($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isScrollXBig,scrollXWidth}=reactData;const{elemStore,visibleColumn,fullColumnIdData}=internalData;const leftFixedWidth=$xeTable.computeLeftFixedWidth;const rightFixedWidth=$xeTable.computeRightFixedWidth;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(bodyScrollElem){const clientWidth=bodyScrollElem.clientWidth;let scrollLeft=bodyScrollElem.scrollLeft;if(isScrollXBig){scrollLeft=Math.ceil((scrollXWidth-clientWidth)*Math.min(1,scrollLeft/(maxXWidth-clientWidth)));}const startLeft=scrollLeft+leftFixedWidth;const endLeft=scrollLeft+clientWidth-rightFixedWidth;let leftIndex=0;let rightIndex=visibleColumn.length;while(leftIndex<rightIndex){const cIndex=Math.floor((leftIndex+rightIndex)/2);const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};if(colRest.oLeft<=startLeft){leftIndex=cIndex+1;}else{rightIndex=cIndex;}}let visibleSize=0;const toVisibleIndex=leftIndex===visibleColumn.length?leftIndex:Math.max(0,leftIndex<visibleColumn.length?leftIndex-2:0);for(let cIndex=toVisibleIndex,cLen=visibleColumn.length;cIndex<cLen;cIndex++){const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};visibleSize++;if(colRest.oLeft>endLeft||visibleSize>=60){break;}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(6,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};}function handleCustomRestore($xeTable,storeData){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;const{aggregateConfig,rowGroupConfig}=props;const{collectColumn}=internalData;const{isCustomAlign,isCustomHeaderAlign,isCustomFooterAlign,isCustomResizable,isCustomVisible,isCustomFixed,isCustomSort,isCustomAggGroup,isCustomAggFunc,isCustomPager}=handleCustomStoreConfig($xeTable);let{alignData,headerAlignData,footerAlignData,resizableData,sortData,visibleData,fixedData,aggGroupData,aggFuncData,pagerData}=storeData;// 处理还原
8070
8070
  if(isCustomAlign&&alignData||isCustomHeaderAlign&&headerAlignData||isCustomFooterAlign&&footerAlignData||isCustomResizable&&resizableData||isCustomSort&&sortData||isCustomVisible&&visibleData||isCustomFixed&&fixedData||isCustomAggGroup&&aggGroupData||isCustomAggFunc&&aggFuncData||isCustomPager&&pagerData&&$xeGGWrapper){const sortColMaps={};if(isCustomSort&&sortData){// 转换兼容老版本数据,即将废弃兼容
8071
8071
  if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(sortData)){const sortRests=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(sortData,(index,colKey)=>{sortRests.push({key:colKey,index});});sortData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(sortRests,{field:'index',order:'asc'}).map(item=>({k:item.key}));}let colNum=1;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(sortData,(sObj,index,sOjs,path,pSObj)=>{sortColMaps[sObj.k]={key:sObj.k,sNum:colNum++,pKey:pSObj?pSObj.k:null};},{children:'c'});}const colKeyMaps={};const allCols=[];const aggGroupConfs=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const colKey=column.getKey();// 支持一级
8072
8072
  if(!parentColumn){if(isCustomFixed&&fixedData&&fixedData[colKey]!==undefined){column.fixed=fixedData[colKey];}}if(isCustomResizable&&resizableData&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(resizableData[colKey])){column.resizeWidth=resizableData[colKey];}if(isCustomVisible&&visibleData&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(visibleData[colKey])){column.visible=visibleData[colKey];}if(isCustomAggFunc&&aggFuncData&&(aggregateConfig||rowGroupConfig)&&aggFuncData[colKey]){column.aggFunc=aggFuncData[colKey];}if(isCustomAggGroup&&aggGroupData&&aggGroupData[colKey]){aggGroupConfs.push({field:column.field});}colKeyMaps[colKey]=column;allCols.push(column);});if((aggregateConfig||rowGroupConfig)&&aggGroupConfs.length){const groupRest=handleGroupData($xeTable,internalData.tableFullData,aggGroupConfs);internalData.tableFullTreeData=[];internalData.tableFullGroupData=groupRest.treeData;reactData.isRowGroupStatus=true;reactData.rowGroupList=aggGroupConfs;$xeTable.cacheRowMap(false);}// 如果自定义了顺序
@@ -8323,7 +8323,7 @@ if(expandColumn&&rowExpandedMaps[rowid]){offsetTop+=rowRest.expandHeight||expand
8323
8323
  const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;if(slotFunc){if($xeGGWrapper){return $xeGGWrapper.callSlot(slotFunc,params,h);}// if (XEUtils.isString(slotFunc)) {
8324
8324
  // slotFunc = slots[slotFunc] || null
8325
8325
  // }
8326
- if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(slotFunc)){return getSlotVNs(slotFunc.call(this,params,h,vNodes));}}return[];},getEl(){const $xeTable=this;return $xeTable.$refs.refElem;},/**
8326
+ if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(slotFunc)){return getSlotVNs(slotFunc.call(this,params,h,vNodes));}}return[];},getEl(){const $xeTable=this;return $xeTable.$refs.refElem;},getScrollViewElem(){const $xeTable=this;const internalData=$xeTable;const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);return viewEl;},/**
8327
8327
  * 获取父容器元素
8328
8328
  */getParentElem(){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const el=$xeTable.$refs.refElem;if(!el){return null;}const parentEl=el.parentElement;if(!parentEl){return null;}if($xeGantt&&hasClass(parentEl,'vxe-gantt--table-wrapper')){return $xeGantt.getParentElem();}else if($xeGrid&&hasClass(parentEl,'vxe-grid--table-wrapper')){return $xeGrid.getParentElem();}// 如果是虚拟滚动条
8329
8329
  if(parentEl&&hasClass(parentEl,'vxe-scrollbar--view-inner')){return parentEl.parentElement;}return parentEl;},/**
@@ -8952,20 +8952,14 @@ return $xeTable.removeMergeFooterCells(merges);},/**
8952
8952
  return $xeTable.getMergeFooterCells();},/**
8953
8953
  * 清除所有表尾合并
8954
8954
  */clearMergeFooterCells(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.mergeFooterList=[];internalData.mergeFooterMaps={};internalData.mergeFooterCellMaps={};internalData.mergeFooterRowMaps={};internalData.mergeFooterColMaps={};reactData.mergeFootFlag++;return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},clearMergeFooterItems(){const $xeTable=this;// errLog('vxe.error.delFunc', ['clearMergeFooterItems', 'clearMergeFooterCells'])
8955
- return $xeTable.clearMergeFooterCells();},handleUpdateAggData(){const $xeTable=this;const internalData=$xeTable;return loadTableData($xeTable,internalData.tableSynchData,false,true);},handlePushStack(){const $xeTable=this;const internalData=$xeTable;const keyboardOpts=$xeTable.computeKeyboardOpts;if(!keyboardOpts.isUndoRedo){return;}const{stackHistoryStore}=internalData;const stackObj=getSnapshotStackData($xeTable);stackHistoryStore.undoStacks.push(stackObj);stackHistoryStore.redoStacks=[];truncateStackHistory($xeTable);},handleUndoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(undoStacks.length){const stackObj=getSnapshotStackData($xeTable);redoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,undoStacks.pop());if(evnt){$xeTable.dispatchEvent('undo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleRedoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(redoStacks.length){const stackObj=getSnapshotStackData($xeTable);undoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,redoStacks.pop());if(evnt){$xeTable.dispatchEvent('redo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleClearStack(){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;stackHistoryStore.undoStacks=[];stackHistoryStore.redoStacks=[];return $xeTable.$nextTick();},updateZindex(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;if(props.zIndex){internalData.tZindex=props.zIndex;}else if(internalData.tZindex<getLastZIndex()){internalData.tZindex=nextZIndex();}},updateCellAreas(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleRecalculateCellAreaEvent){return $xeTable.handleRecalculateCellAreaEvent();}return $xeTable.$nextTick();},undo(){const $xeTable=this;return $xeTable.handleUndoStackEvent(null);},redo(){const $xeTable=this;return $xeTable.handleRedoStackEvent(null);},clearHistory(){const $xeTable=this;return $xeTable.handleClearStack();},// 滚动条
8956
- updateThumbSize(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}if(!viewEl.clientHeight||!viewEl.clientHeight){return;}const trackXEl=$xeTable.$refs.refTrackXElem;const xThumbWidth=trackXEl?getThumbSize(viewEl.clientWidth,viewEl.scrollWidth,trackXEl.clientWidth):0;const thumbXElem=$xeTable.$refs.refThumbXElem;if(thumbXElem){thumbXElem.style.width=xThumbWidth+'px';}reactData.xThumbWidth=xThumbWidth;const trackYEl=$xeTable.$refs.refTrackYElem;const yThumbHeight=trackYEl?getThumbSize(viewEl.clientHeight,viewEl.scrollHeight,trackYEl.clientHeight):0;const thumbYElem=$xeTable.$refs.refThumbYElem;if(thumbYElem){thumbYElem.style.height=yThumbHeight+'px';}reactData.yThumbHeight=yThumbHeight;},updateThumbOffset(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}if(!viewEl.clientHeight||!viewEl.clientHeight){return;}const{xThumbWidth,yThumbHeight}=reactData;const trackXEl=$xeTable.$refs.refTrackXElem;const thumbXElem=$xeTable.$refs.refThumbXElem;const xThumbLeft=trackXEl&&xThumbWidth?getThumbOffsetSize(viewEl.scrollLeft,viewEl.clientWidth,viewEl.scrollWidth,trackXEl.clientWidth,xThumbWidth):0;internalData.xThumbLeft=xThumbLeft;if(thumbXElem&&xThumbWidth){thumbXElem.style.width=xThumbWidth+'px';thumbXElem.style.transform=`translateX(${xThumbLeft}px)`;}const trackYEl=$xeTable.$refs.refTrackYElem;const thumbYElem=$xeTable.$refs.refThumbYElem;const yThumbTop=trackYEl&&yThumbHeight?getThumbOffsetSize(viewEl.scrollTop,viewEl.clientHeight,viewEl.scrollHeight,trackYEl.clientHeight,yThumbHeight):0;internalData.yThumbTop=yThumbTop;if(thumbYElem&&yThumbHeight){thumbYElem.style.height=yThumbHeight+'px';thumbYElem.style.transform=`translateY(${yThumbTop}px)`;}},clickTrackXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const trackEl=evnt.currentTarget;if(trackEl!==evnt.target){return;}const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const trackRect=trackEl.getBoundingClientRect();viewEl.scrollTo({left:getScrollFromClick(evnt.clientX-trackRect.left,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth),behavior:'auto'});},clickTrackYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const trackEl=evnt.currentTarget;if(trackEl!==evnt.target){return;}const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const trackRect=trackEl.getBoundingClientRect();viewEl.scrollTo({top:getScrollFromClick(evnt.clientY-trackRect.top,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight),behavior:'auto'});},pointerdownThumbXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const thumbEl=evnt.currentTarget;internalData.isThumbDrag=true;thumbEl.setPointerCapture(evnt.pointerId);const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();const pointerPosition=evnt.clientX-trackRect.left;// 记录 thumb 的偏移
8957
- const thumbOffset=getThumbOffsetSize(viewEl.scrollLeft,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth);internalData.thumbDragOffset=pointerPosition-thumbOffset;},pointermoveThumbXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const thumbEl=evnt.currentTarget;if(!thumbEl.hasPointerCapture(evnt.pointerId)){return;}const{elemStore,isThumbDrag,thumbDragOffset}=internalData;if(isThumbDrag){const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const thumbEl=evnt.currentTarget;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();// 更新偏移
8958
- viewEl.scrollLeft=getScrollFromDrag(evnt.clientX-trackRect.left,thumbDragOffset,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth);}},cleatPointerThumbEvent(evnt){const $xeTable=this;const internalData=$xeTable;const thumbEl=evnt.currentTarget;thumbEl.releasePointerCapture(evnt.pointerId);internalData.isThumbDrag=false;},pointerdownThumbYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const thumbEl=evnt.currentTarget;internalData.isThumbDrag=true;thumbEl.setPointerCapture(evnt.pointerId);const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();const pointerPosition=evnt.clientY-trackRect.top;// 记录 thumb 的偏移
8959
- const thumbOffset=getThumbOffsetSize(viewEl.scrollTop,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight);internalData.thumbDragOffset=pointerPosition-thumbOffset;},pointermoveThumbYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const thumbEl=evnt.currentTarget;if(!thumbEl.hasPointerCapture(evnt.pointerId)){return;}const{elemStore,isThumbDrag,thumbDragOffset}=internalData;if(isThumbDrag){const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const thumbEl=evnt.currentTarget;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();// 更新偏移
8960
- viewEl.scrollTop=getScrollFromDrag(evnt.clientY-trackRect.top,thumbDragOffset,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight);}},// 滚动条
8961
- dispatchEvent(type,params,evnt){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;$xeTable.$emit(type,createEvent(evnt,{$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt},params));},// 已废弃,使用 dispatchEvent
8955
+ return $xeTable.clearMergeFooterCells();},handleUpdateAggData(){const $xeTable=this;const internalData=$xeTable;return loadTableData($xeTable,internalData.tableSynchData,false,true);},handlePushStack(){const $xeTable=this;const internalData=$xeTable;const keyboardOpts=$xeTable.computeKeyboardOpts;if(!keyboardOpts.isUndoRedo){return;}const{stackHistoryStore}=internalData;const stackObj=getSnapshotStackData($xeTable);stackHistoryStore.undoStacks.push(stackObj);stackHistoryStore.redoStacks=[];truncateStackHistory($xeTable);},handleUndoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(undoStacks.length){const stackObj=getSnapshotStackData($xeTable);redoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,undoStacks.pop());if(evnt){$xeTable.dispatchEvent('undo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleRedoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(redoStacks.length){const stackObj=getSnapshotStackData($xeTable);undoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,redoStacks.pop());if(evnt){$xeTable.dispatchEvent('redo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleClearStack(){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;stackHistoryStore.undoStacks=[];stackHistoryStore.redoStacks=[];return $xeTable.$nextTick();},updateZindex(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;if(props.zIndex){internalData.tZindex=props.zIndex;}else if(internalData.tZindex<getLastZIndex()){internalData.tZindex=nextZIndex();}},updateCellAreas(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleRecalculateCellAreaEvent){return $xeTable.handleRecalculateCellAreaEvent();}return $xeTable.$nextTick();},undo(){const $xeTable=this;return $xeTable.handleUndoStackEvent(null);},redo(){const $xeTable=this;return $xeTable.handleRedoStackEvent(null);},clearHistory(){const $xeTable=this;return $xeTable.handleClearStack();},dispatchEvent(type,params,evnt){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;$xeTable.$emit(type,createEvent(evnt,{$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt},params));},// 已废弃,使用 dispatchEvent
8962
8956
  emitEvent(type,params,evnt){const $xeTable=this;$xeTable.dispatchEvent(type,params,evnt);},focus(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=true;return $xeTable.$nextTick();},blur(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=false;return $xeTable.$nextTick();},/**
8963
8957
  * 已废弃,被 connectToolbar 替换
8964
8958
  * @deprecated
8965
8959
  */connect($toolbar){const $xeTable=this;return $xeTable.connectToolbar($toolbar);},/**
8966
8960
  * 连接工具栏
8967
8961
  * @param $toolbar
8968
- */connectToolbar($toolbar){const $xeTable=this;const internalData=$xeTable;if($toolbar&&$toolbar.syncUpdate){$toolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});this.$toolbar=$toolbar;}else{methods_errLog('vxe.error.barUnableLink');}return $xeTable.$nextTick();},handleConnectGanttView($ganttView){const $xeTable=this;const internalData=$xeTable;if($ganttView&&$ganttView.connectUpdate){$ganttView.connectUpdate({$table:$xeTable});internalData.xeGanttView=$ganttView;}return $xeTable.$nextTick();},/*************************
8962
+ */connectToolbar($toolbar){const $xeTable=this;const internalData=$xeTable;if($toolbar&&$toolbar.syncUpdate){$toolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});this.$toolbar=$toolbar;}else{methods_errLog('vxe.error.barUnableLink');}return $xeTable.$nextTick();},handleConnectGanttView($ganttView){const $xeTable=this;const internalData=$xeTable;if($ganttView&&$ganttView.connectUpdate){$ganttView.connectUpdate({$table:$xeTable});internalData.xeGanttView=$ganttView;}return $xeTable.$nextTick();},getInternalData(){const $xeTable=this;const internalData=$xeTable;return internalData;},getReactData(){const $xeTable=this;const reactData=$xeTable;return reactData;},/*************************
8969
8963
  * Publish methods
8970
8964
  *************************//**
8971
8965
  * 已废弃,被 getCellElement 替换
@@ -21858,7 +21852,7 @@ function renderVirtualBody(h, $xeTable) {
21858
21852
  }
21859
21853
  /* harmony default export */ var table = ({
21860
21854
  name: 'VxeTable',
21861
- mixins: [table_globalMixins.sizeMixin, mixin, menu_mixin, edit_mixin, export_mixin, keyboard_mixin, validator_mixin, custom_mixin],
21855
+ mixins: [table_globalMixins.sizeMixin, table_globalMixins.vScrollbarMixin, table_globalMixins.initVScrollbarMixin, mixin, menu_mixin, edit_mixin, export_mixin, keyboard_mixin, validator_mixin, custom_mixin],
21862
21856
  props: tableProps,
21863
21857
  provide() {
21864
21858
  const $xeTable = this;