vxe-table 3.21.18 → 3.21.20

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.
@@ -1022,17 +1022,31 @@ var _default = exports.default = {
1022
1022
  treeConfig
1023
1023
  } = props;
1024
1024
  const {
1025
- tableFullData
1025
+ tableFullData,
1026
+ tableFullTreeData
1026
1027
  } = internalData;
1027
1028
  const treeOpts = $xeTable.computeTreeOpts;
1029
+ const updateRecords = [];
1028
1030
  if (keepSource) {
1029
1031
  syncActivedCell($xeTable);
1030
1032
  if (treeConfig) {
1031
- return _xeUtils.default.filterTree(tableFullData, row => $xeTable.isUpdateByRow(row), treeOpts);
1033
+ const childrenField = treeOpts.children || treeOpts.childrenField;
1034
+ _xeUtils.default.eachTree(tableFullTreeData, row => {
1035
+ if ($xeTable.isUpdateByRow(row)) {
1036
+ updateRecords.push(row);
1037
+ }
1038
+ }, {
1039
+ children: childrenField
1040
+ });
1041
+ } else {
1042
+ tableFullData.forEach(row => {
1043
+ if ($xeTable.isUpdateByRow(row)) {
1044
+ updateRecords.push(row);
1045
+ }
1046
+ });
1032
1047
  }
1033
- return tableFullData.filter(row => $xeTable.isUpdateByRow(row));
1034
1048
  }
1035
- return [];
1049
+ return updateRecords;
1036
1050
  },
1037
1051
  /**
1038
1052
  * 处理激活编辑
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("table"),{getConfig,renderer,getI18n}=_ui.VxeUI,browseObj=_xeUtils.default.browse();function getEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)}function setEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)}function removeCellSelectedClass(e){var e=e.$refs.refElem;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}function syncActivedCell(e){var{editStore:t,tableColumn:l}=e,e=e.computeEditOpts,t=t.actived;let{row:r,column:o}=t;r&&o&&("row"===e.mode?l.forEach(e=>setEditColumnModel(r,e)):setEditColumnModel(r,o))}function insertTreeRow(n,e,t){let{tableFullTreeData:a,afterFullData:d,fullDataRowIdData:s,fullAllDataRowIdData:u}=n;var l=n.computeTreeOpts;let{rowField:c,parentField:h,mapChildrenField:w}=l,g=l.children||l.childrenField,f=t?"push":"unshift";e.forEach(l=>{let t=l[h];var r=(0,_util.getRowid)(n,l),o=t?_xeUtils.default.findTree(a,e=>t===e[c],{children:w}):null;if(o){var o=o.item,i=u[(0,_util.getRowid)(n,o)],i=i?i.level:0;let e=o[g],t=o[w];_xeUtils.default.isArray(e)||(e=o[g]=[]),_xeUtils.default.isArray(t)||(t=o[w]=[]),e[f](l),t[f](l);o={row:l,rowid:r,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:e,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=o,u[r]=o}else{t&&warnLog("vxe.error.unableInsert"),d[f](l),a[f](l);i={row:l,rowid:r,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=i,u[r]=i}})}function handleInsertRowAt(a,t,e,d){var l=a;let o=a.treeConfig;var r=l.isRowGroupStatus;let{tableFullTreeData:s,afterFullData:i,mergeBodyList:n,tableFullData:u,fullDataRowIdData:c,fullAllDataRowIdData:h,insertRowMaps:w,removeRowMaps:g}=a;var f=a.computeTreeOpts;let{transform:x,parentField:m,rowField:v,mapChildrenField:p}=f,C=f.children||f.childrenField,R=(_xeUtils.default.isArray(t)||(t=[t]),e);if((_xeUtils.default.isString(e)||_xeUtils.default.isNumber(e))&&(f=h[e])&&(R=f.row),!t.length)return Promise.resolve({row:null,rows:[]});a.handlePushStack();let _=a.defineField(t.map(e=>Object.assign(o&&x?{[p]:[],[C]:[]}:{},e))),I=[];if(o&&x&&(I=_xeUtils.default.toArrayTree(_,{key:v,parentKey:m,children:C})),_xeUtils.default.eqNull(R))if(o&&x)insertTreeRow(a,_,!1);else if(r){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));errLog(getI18n("vxe.error.noGroup",["insert"]))}else _.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};c[t]=l,h[t]=l,i.unshift(e),u.unshift(e)}),n.forEach(e=>{var t=e.row;0<=t&&(e.row=t+_.length)});else if(-1===R)if(o&&x)insertTreeRow(a,_,!0);else if(r){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));errLog(getI18n("vxe.error.noGroup",["insert"]))}else _.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};c[t]=l,h[t]=l,i.push(e),u.push(e)});else if(o&&x){let n=_xeUtils.default.findTree(s,e=>R[v]===e[v],{children:p});if(n){let r=n.parent,o=r?r[p]:s;e=h[(0,_util.getRowid)(a,r)];let i=e?e.level:0;if(I.forEach((e,t)=>{r?e[m]!==r[v]&&(errLog("vxe.error.errProp",[m+"="+e[m],m+"="+r[v]]),e[m]=r[v]):null!==e[m]&&(_xeUtils.default.eqNull(e[m])||errLog("vxe.error.errProp",[m+"="+e[m],"null"]),e[m]=null);let l=n.index+t;d&&(l+=1),o.splice(l,0,e)}),_xeUtils.default.eachTree(I,e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:o,parent:r,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};e[C]&&(e[p]=e[C]),c[t]=l,h[t]=l},{children:C}),r){f=_xeUtils.default.findTree(s,e=>R[v]===e[v],{children:C});if(f){t=f.items;let e=f.index;d&&(e+=1),t.splice(e,0,...I)}}}else warnLog("vxe.error.unableInsert"),insertTreeRow(a,_,!0)}else if(r){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));errLog(getI18n("vxe.error.noGroup",["insert"]))}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(R)?R<i.length&&(r=R):r=a.findRowIndexOf(i,R),-1===(r=d?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,..._);e=a.findRowIndexOf(u,R);-1<e?u.splice(e+(d?1:0),0,..._):u.push(..._),n.forEach(e=>{var{row:t,rowspan:l}=e;t>=r?e.row=t+_.length:(d?t+l>=r:t+l>r)&&(e.rowspan=l+_.length)})}f=e=>{var t=(0,_util.getRowid)(a,e);g[t]?(delete g[t],w[t]&&delete w[t]):w[t]=e};return o&&x?_xeUtils.default.eachTree(I,f,{children:p}):_.forEach(f),l.removeRowFlag++,l.insertRowFlag++,a.cacheRowMap(!1),a.updateScrollYStatus(),a.handleTableData(o&&x),o&&x||a.updateAfterDataIndex(),a.updateFooter(),a.handleUpdateBodyMerge(),a.checkSelectionStatus(),l.scrollYLoad&&a.updateScrollYSpace(),a.$nextTick().then(()=>(a.updateCellAreas(),a.recalculate(!0))).then(()=>({row:_.length?_[_.length-1]:null,rows:_}))}function handleInsertChildRowAt(e,l,r,o,i){var n=e.treeConfig,a=e.fullAllDataRowIdData;let{transform:t,rowField:d,parentField:s}=e.computeTreeOpts;if(n&&t){_xeUtils.default.isArray(l)||(l=[l]);let t=r;return(_xeUtils.default.isString(r)||_xeUtils.default.isNumber(r))&&(n=a[r])&&(t=n.row),handleInsertRowAt(e,l.map(e=>Object.assign({},e,{[s]:t[d]})),o,i)}return errLog("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]})}function handleClearEdit(e,t,l){var r=e.editStore,{actived:r,focused:o}=r,{row:i,column:n}=r,a=e.computeValidOpts;if(i||n){if(l&&(0,_util.getRowid)(e,l)!==(0,_util.getRowid)(e,i))return e.$nextTick();syncActivedCell(e),e.updateFooter(),r.args=null,r.row=null,r.column=null,e.dispatchEvent("edit-closed",{row:i,rowIndex:e.getRowIndex(i),$rowIndex:e.getVMRowIndex(i),column:n,columnIndex:e.getColumnIndex(n),$columnIndex:e.getVMColumnIndex(n)},t||null)}return o.row=null,o.column=null,a.autoClear&&("full"!==a.msgMode||"obsolete"===getConfig().cellVaildMode)&&e.clearValidate?e.clearValidate():e.$nextTick().then(()=>e.updateCellAreas())}function handleEditActive(l,r,o,i){let n=l.$xeGrid;var{editConfig:e,mouseConfig:a}=l,{editStore:d,tableColumn:s}=l,u=l.computeEditOpts,c=u.mode,{actived:d,focused:t}=d;let{row:h,column:w}=r;var g=w.editRender;let{isFocus:f,isPos:x,isClear:m}=i;var i=r.cell||l.getCellElement(h,w),v=u.beforeEditMethod||u.activeMethod;if((r.cell=i)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(g)&&!l.isPendingByRow(h)&&!l.isAggregateRecord(h)){if(d.row!==h||"cell"===c&&d.column!==w){let t="edit-disabled";if(!v||v(Object.assign(Object.assign({},r),{$table:l,$grid:n}))){a&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),l.closeTooltip(),d.column&&handleClearEdit(l,o),t="edit-activated",w.renderHeight=i.offsetHeight,d.args=r,d.row=h,d.column=w,l.handlePushStack(),m&&(0,_util.setCellValue)(h,w,null),"row"===c?s.forEach(e=>getEditColumnModel(h,e)):getEditColumnModel(h,w);let e=u.afterEditMethod;l.$nextTick(()=>{f&&l.handleFocus(r,o),e&&e(Object.assign(Object.assign({},r),{$table:l,$grid:n}))})}l.dispatchEvent(t,{row:h,rowIndex:l.getRowIndex(h),$rowIndex:l.getVMRowIndex(h),column:w,columnIndex:l.getColumnIndex(w),$columnIndex:l.getVMColumnIndex(w)},o),"edit-activated"===t&&l.dispatchEvent("edit-actived",{row:h,rowIndex:l.getRowIndex(h),$rowIndex:l.getVMRowIndex(h),column:w,columnIndex:l.getColumnIndex(w),$columnIndex:l.getVMColumnIndex(w)},o)}else{e=d.column;a&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),e&&e!==w&&(g=e.model,g.update&&(0,_util.setCellValue)(h,e,g.value),l.clearValidate)&&l.clearValidate(h,w),w.renderHeight=i.offsetHeight,d.args=r,d.column=w,x&&setTimeout(()=>{l.handleFocus(r,o)})}t.column=null,t.row=null,l.focus()}return l.$nextTick()}function handleEditCell(t,l,e,r){let o=t;var i=t.editConfig,n=r.isPos;let a=_xeUtils.default.isString(e)?t.getColumnByField(e):e;return l&&a&&(0,_utils.isEnableConf)(i)&&(0,_utils.isEnableConf)(a.editRender)&&!t.isAggregateRecord(l)?Promise.resolve(n?t.scrollToRow(l,a):null).then(()=>{var e=t.getCellElement(l,a);return e&&(handleEditActive(t,{row:l,rowIndex:t.getRowIndex(l),column:a,columnIndex:t.getColumnIndex(a),cell:e,$table:t},null,r),o._lastCallTime=Date.now()),t.$nextTick()}):t.$nextTick()}var _default=exports.default={methods:{_insert(e){return handleInsertRowAt(this,e,null)},_insertAt(e,t){return handleInsertRowAt(this,e,t)},_insertNextAt(e,t){return handleInsertRowAt(this,e,t,!0)},_insertChild(e,t){return handleInsertChildRowAt(this,e,t,null)},_insertChildAt(e,t,l){return handleInsertChildRowAt(this,e,t,l)},_insertChildNextAt(e,t,l){return handleInsertChildRowAt(this,e,t,l,!0)},_remove(e){let o=this;var t=o,l=o,r=o,t=t.treeConfig,{editStore:i,isRowGroupStatus:n}=l;let{tableFullTreeData:a,selectCheckboxMaps:d,afterFullData:s,mergeBodyList:u,tableFullData:c,pendingRowMaps:h,insertRowMaps:w,removeRowMaps:g}=r;var f=o.computeCheckboxOpts,x=o.computeTreeOpts;let{transform:m,mapChildrenField:v}=x,p=x.children||x.childrenField;x=i.actived,i=f.checkField;let C=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=c,e.length?(o.handlePushStack(),e.forEach(e=>{var t;o.isInsertByRow(e)||(t=(0,_util.getRowid)(o,e),g[t]=e)}),i||(e.forEach(e=>{e=(0,_util.getRowid)(this,e);d[e]&&delete d[e]}),l.updateCheckboxFlag++),c===e?(e=C=c.slice(0),r.tableFullData=[],r.afterFullData=[],o.clearMergeCells()):t&&m?e.forEach(e=>{let t=(0,_util.getRowid)(o,e);var l=_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(o,e),{children:v}),l=(l&&(l=l.items.splice(l.index,1),C.push(l[0])),_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(o,e),{children:p})),l=(l&&l.items.splice(l.index,1),o.findRowIndexOf(s,e));-1<l&&s.splice(l,1)}):n?warnLog(getI18n("vxe.error.noGroup",["remove"])):e.forEach(e=>{var t=o.findRowIndexOf(c,e);-1<t&&(t=c.splice(t,1),C.push(t[0]));let r=o.findRowIndexOf(s,e);-1<r&&(u.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),s.splice(r,1))}),x.row&&-1<o.findRowIndexOf(e,x.row)&&o.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(o,e);w[e]&&delete w[e],h[e]&&delete h[e]}),l.removeRowFlag++,l.insertRowFlag++,l.pendingRowFlag++,o.cacheRowMap(!1),o.handleTableData(t&&m),o.updateFooter(),o.handleUpdateBodyMerge(),t&&m||o.updateAfterDataIndex(),o.checkSelectionStatus(),l.scrollYLoad&&o.updateScrollYSpace(),o.$nextTick().then(()=>(o.updateCellAreas(),o.recalculate(!0))).then(()=>({row:C.length?C[C.length-1]:null,rows:C}))):Promise.resolve({row:null,rows:[]})},_removeCheckboxRow(){let t=this;return t.remove(t.getCheckboxRecords()).then(e=>(t.clearCheckboxRow(),e))},_removeRadioRow(){let t=this;var e=t.getRadioRecord();return t.remove(e||[]).then(e=>(t.clearRadioRow(),e))},_removeCurrentRow(){let t=this;var e=t.getCurrentRecord();return t.remove(e||[]).then(e=>(t.clearCurrentRow(),e))},_getRecordset(){let l=this;var e=l.getRemoveRecords(),t=l.getPendingRecords();let r=e.concat(t);var o=l.getUpdateRecords().filter(t=>!r.some(e=>l.eqRow(e,t)));return{insertRecords:l.getInsertRecords(),removeRecords:e,updateRecords:o,pendingRecords:t}},_getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=this,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},_getRemoveRecords(){var e=this.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},_getUpdateRecords(){let t=this;var{keepSource:e,treeConfig:l}=t,r=t.tableFullData,o=t.computeTreeOpts;return e?(syncActivedCell(t),l?_xeUtils.default.filterTree(r,e=>t.isUpdateByRow(e),o):r.filter(e=>t.isUpdateByRow(e))):[]},handleEdit(e,t,l){return handleEditActive(this,e,t,Object.assign({isFocus:!0,isPos:!0},l))},handleActived(e,t){return this.handleEdit(e,t)},_getColumnModel(e,t){getEditColumnModel(e,t)},_setColumnModel(e,t){setEditColumnModel(e,t)},_syncActivedCell(){syncActivedCell(this)},_clearActived(e){return warnLog("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},_clearEdit(e){return handleClearEdit(this,null,e)},handleClearEdit(e,t){return handleClearEdit(this,e,t)},_getActiveRecord(){var e=(warnLog("vxe.error.delFunc",["getActiveRecord","getEditCell"]),this).editStore,t=this.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(this,l)]?Object.assign({},e,{row:l}):null},_getEditRecord(){var e=(warnLog("vxe.error.delFunc",["getEditRecord","getEditCell"]),this).editStore,t=this.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(this,l)]?Object.assign({},e,{row:l}):null},_getEditCell(){var e=this.editStore,{row:e,column:t}=e.actived;return t&&e?{row:e,rowIndex:this.getRowIndex(e),column:t,columnIndex:this.getColumnIndex(t)}:null},_isActiveByRow(e){return warnLog("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},_isEditByRow(e){var t=this.editStore;return t.actived.row===e},handleFocus(r){var{row:o,column:i,cell:n}=r,a=i.editRender,d=this.computeEditOpts;if((0,_utils.isEnableConf)(a)){var s=renderer.get(a.name);let e=a.autofocus||a.autoFocus,t=a.autoSelect||a.autoselect,l;d.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autoFocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e.call(this,r):e&&(l=!0===e?n.querySelector("input,textarea"):n.querySelector(e))&&l.focus()),l?t?l.select():browseObj.msie&&((a=l.createTextRange()).collapse(!1),a.select()):d.autoPos&&!i.fixed&&this.scrollToRow(o,i)}},_setActiveRow(e){return warnLog("vxe.error.delFunc",["setActiveRow","setEditRow"]),this.setEditRow(e)},_setEditRow(e,t,l){var r=this.visibleColumn;let o=_xeUtils.default.find(r,e=>(0,_utils.isEnableConf)(e.editRender)),i=!1;return t&&(i=!0)!==t&&(o=_xeUtils.default.isString(t)?this.getColumnByField(t):t),handleEditCell(this,e,o,Object.assign({isPos:i,isFocus:i},l))},_setActiveCell(e,t){return warnLog("vxe.error.delFunc",["setActiveCell","setEditCell"]),this.setEditCell(e,t)},_setEditCell(e,t,l){return handleEditCell(this,e,t,Object.assign({isFocus:!0,isPos:!0},l))},_setSelectCell(e,t){var l=this,r=l.tableData,o=l.computeEditOpts,t=_xeUtils.default.isString(t)?l.getColumnByField(t):t;return e&&t&&"manual"!==o.trigger&&-1<(o=l.findRowIndexOf(r,e))&&(r=l.getCellElement(e,t),e={row:e,rowIndex:o,column:t,columnIndex:l.getColumnIndex(t),cell:r},l.handleSelected(e,{})),l.$nextTick()},handleSelected(e,t){let l=this;var r=l.mouseConfig,o=l.editStore,i=l.computeMouseOpts;let n=l.computeEditOpts,{actived:a,selected:d}=o,{row:s,column:u}=e,c=r&&i.selected;return!c||d.row===s&&d.column===u||(a.row!==s||"cell"===n.mode&&a.column!==u)&&(handleClearEdit(l,t),l.clearSelected(),l.clearCellAreas&&(l.clearCellAreas(),l.clearCopyCellArea()),d.args=e,d.row=s,d.column=u,c&&l.addCellSelectedClass(),l.focus(),t)&&l.dispatchEvent("cell-selected",e,t),l.$nextTick()},_getSelectedCell(){var e=this.editStore,{row:e,column:t}=e.selected;return e&&t?{row:e,column:t}:null},_clearSelected(){var e=this.editStore,e=e.selected;return e.row=null,e.column=null,removeCellSelectedClass(this),this.$nextTick()},reColTitleSdCls(){var e=this.elemStore,e=e["main-header-list"];e&&_xeUtils.default.arrayEach(e.querySelectorAll(".col--title-selected"),e=>(0,_dom.removeClass)(e,"col--title-selected"))},addCellSelectedClass(){var e=this.editStore,e=e.selected,{row:e,column:t}=e;removeCellSelectedClass(this),e&&t&&(e=this.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("table"),{getConfig,renderer,getI18n}=_ui.VxeUI,browseObj=_xeUtils.default.browse();function getEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)}function setEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)}function removeCellSelectedClass(e){var e=e.$refs.refElem;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}function syncActivedCell(e){var{editStore:t,tableColumn:l}=e,e=e.computeEditOpts,t=t.actived;let{row:r,column:o}=t;r&&o&&("row"===e.mode?l.forEach(e=>setEditColumnModel(r,e)):setEditColumnModel(r,o))}function insertTreeRow(n,e,t){let{tableFullTreeData:a,afterFullData:d,fullDataRowIdData:s,fullAllDataRowIdData:u}=n;var l=n.computeTreeOpts;let{rowField:c,parentField:h,mapChildrenField:w}=l,g=l.children||l.childrenField,f=t?"push":"unshift";e.forEach(l=>{let t=l[h];var r=(0,_util.getRowid)(n,l),o=t?_xeUtils.default.findTree(a,e=>t===e[c],{children:w}):null;if(o){var o=o.item,i=u[(0,_util.getRowid)(n,o)],i=i?i.level:0;let e=o[g],t=o[w];_xeUtils.default.isArray(e)||(e=o[g]=[]),_xeUtils.default.isArray(t)||(t=o[w]=[]),e[f](l),t[f](l);o={row:l,rowid:r,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:e,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=o,u[r]=o}else{t&&warnLog("vxe.error.unableInsert"),d[f](l),a[f](l);i={row:l,rowid:r,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=i,u[r]=i}})}function handleInsertRowAt(a,t,e,d){var l=a;let o=a.treeConfig;var r=l.isRowGroupStatus;let{tableFullTreeData:s,afterFullData:i,mergeBodyList:n,tableFullData:u,fullDataRowIdData:c,fullAllDataRowIdData:h,insertRowMaps:w,removeRowMaps:g}=a;var f=a.computeTreeOpts;let{transform:x,parentField:m,rowField:v,mapChildrenField:p}=f,C=f.children||f.childrenField,R=(_xeUtils.default.isArray(t)||(t=[t]),e);if((_xeUtils.default.isString(e)||_xeUtils.default.isNumber(e))&&(f=h[e])&&(R=f.row),!t.length)return Promise.resolve({row:null,rows:[]});a.handlePushStack();let _=a.defineField(t.map(e=>Object.assign(o&&x?{[p]:[],[C]:[]}:{},e))),I=[];if(o&&x&&(I=_xeUtils.default.toArrayTree(_,{key:v,parentKey:m,children:C})),_xeUtils.default.eqNull(R))if(o&&x)insertTreeRow(a,_,!1);else if(r){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));errLog(getI18n("vxe.error.noGroup",["insert"]))}else _.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};c[t]=l,h[t]=l,i.unshift(e),u.unshift(e)}),n.forEach(e=>{var t=e.row;0<=t&&(e.row=t+_.length)});else if(-1===R)if(o&&x)insertTreeRow(a,_,!0);else if(r){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));errLog(getI18n("vxe.error.noGroup",["insert"]))}else _.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};c[t]=l,h[t]=l,i.push(e),u.push(e)});else if(o&&x){let n=_xeUtils.default.findTree(s,e=>R[v]===e[v],{children:p});if(n){let r=n.parent,o=r?r[p]:s;e=h[(0,_util.getRowid)(a,r)];let i=e?e.level:0;if(I.forEach((e,t)=>{r?e[m]!==r[v]&&(errLog("vxe.error.errProp",[m+"="+e[m],m+"="+r[v]]),e[m]=r[v]):null!==e[m]&&(_xeUtils.default.eqNull(e[m])||errLog("vxe.error.errProp",[m+"="+e[m],"null"]),e[m]=null);let l=n.index+t;d&&(l+=1),o.splice(l,0,e)}),_xeUtils.default.eachTree(I,e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:o,parent:r,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};e[C]&&(e[p]=e[C]),c[t]=l,h[t]=l},{children:C}),r){f=_xeUtils.default.findTree(s,e=>R[v]===e[v],{children:C});if(f){t=f.items;let e=f.index;d&&(e+=1),t.splice(e,0,...I)}}}else warnLog("vxe.error.unableInsert"),insertTreeRow(a,_,!0)}else if(r){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));errLog(getI18n("vxe.error.noGroup",["insert"]))}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(R)?R<i.length&&(r=R):r=a.findRowIndexOf(i,R),-1===(r=d?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,..._);e=a.findRowIndexOf(u,R);-1<e?u.splice(e+(d?1:0),0,..._):u.push(..._),n.forEach(e=>{var{row:t,rowspan:l}=e;t>=r?e.row=t+_.length:(d?t+l>=r:t+l>r)&&(e.rowspan=l+_.length)})}f=e=>{var t=(0,_util.getRowid)(a,e);g[t]?(delete g[t],w[t]&&delete w[t]):w[t]=e};return o&&x?_xeUtils.default.eachTree(I,f,{children:p}):_.forEach(f),l.removeRowFlag++,l.insertRowFlag++,a.cacheRowMap(!1),a.updateScrollYStatus(),a.handleTableData(o&&x),o&&x||a.updateAfterDataIndex(),a.updateFooter(),a.handleUpdateBodyMerge(),a.checkSelectionStatus(),l.scrollYLoad&&a.updateScrollYSpace(),a.$nextTick().then(()=>(a.updateCellAreas(),a.recalculate(!0))).then(()=>({row:_.length?_[_.length-1]:null,rows:_}))}function handleInsertChildRowAt(e,l,r,o,i){var n=e.treeConfig,a=e.fullAllDataRowIdData;let{transform:t,rowField:d,parentField:s}=e.computeTreeOpts;if(n&&t){_xeUtils.default.isArray(l)||(l=[l]);let t=r;return(_xeUtils.default.isString(r)||_xeUtils.default.isNumber(r))&&(n=a[r])&&(t=n.row),handleInsertRowAt(e,l.map(e=>Object.assign({},e,{[s]:t[d]})),o,i)}return errLog("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]})}function handleClearEdit(e,t,l){var r=e.editStore,{actived:r,focused:o}=r,{row:i,column:n}=r,a=e.computeValidOpts;if(i||n){if(l&&(0,_util.getRowid)(e,l)!==(0,_util.getRowid)(e,i))return e.$nextTick();syncActivedCell(e),e.updateFooter(),r.args=null,r.row=null,r.column=null,e.dispatchEvent("edit-closed",{row:i,rowIndex:e.getRowIndex(i),$rowIndex:e.getVMRowIndex(i),column:n,columnIndex:e.getColumnIndex(n),$columnIndex:e.getVMColumnIndex(n)},t||null)}return o.row=null,o.column=null,a.autoClear&&("full"!==a.msgMode||"obsolete"===getConfig().cellVaildMode)&&e.clearValidate?e.clearValidate():e.$nextTick().then(()=>e.updateCellAreas())}function handleEditActive(l,r,o,i){let n=l.$xeGrid;var{editConfig:e,mouseConfig:a}=l,{editStore:d,tableColumn:s}=l,u=l.computeEditOpts,c=u.mode,{actived:d,focused:t}=d;let{row:h,column:w}=r;var g=w.editRender;let{isFocus:f,isPos:x,isClear:m}=i;var i=r.cell||l.getCellElement(h,w),v=u.beforeEditMethod||u.activeMethod;if((r.cell=i)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(g)&&!l.isPendingByRow(h)&&!l.isAggregateRecord(h)){if(d.row!==h||"cell"===c&&d.column!==w){let t="edit-disabled";if(!v||v(Object.assign(Object.assign({},r),{$table:l,$grid:n}))){a&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),l.closeTooltip(),d.column&&handleClearEdit(l,o),t="edit-activated",w.renderHeight=i.offsetHeight,d.args=r,d.row=h,d.column=w,l.handlePushStack(),m&&(0,_util.setCellValue)(h,w,null),"row"===c?s.forEach(e=>getEditColumnModel(h,e)):getEditColumnModel(h,w);let e=u.afterEditMethod;l.$nextTick(()=>{f&&l.handleFocus(r,o),e&&e(Object.assign(Object.assign({},r),{$table:l,$grid:n}))})}l.dispatchEvent(t,{row:h,rowIndex:l.getRowIndex(h),$rowIndex:l.getVMRowIndex(h),column:w,columnIndex:l.getColumnIndex(w),$columnIndex:l.getVMColumnIndex(w)},o),"edit-activated"===t&&l.dispatchEvent("edit-actived",{row:h,rowIndex:l.getRowIndex(h),$rowIndex:l.getVMRowIndex(h),column:w,columnIndex:l.getColumnIndex(w),$columnIndex:l.getVMColumnIndex(w)},o)}else{e=d.column;a&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),e&&e!==w&&(g=e.model,g.update&&(0,_util.setCellValue)(h,e,g.value),l.clearValidate)&&l.clearValidate(h,w),w.renderHeight=i.offsetHeight,d.args=r,d.column=w,x&&setTimeout(()=>{l.handleFocus(r,o)})}t.column=null,t.row=null,l.focus()}return l.$nextTick()}function handleEditCell(t,l,e,r){let o=t;var i=t.editConfig,n=r.isPos;let a=_xeUtils.default.isString(e)?t.getColumnByField(e):e;return l&&a&&(0,_utils.isEnableConf)(i)&&(0,_utils.isEnableConf)(a.editRender)&&!t.isAggregateRecord(l)?Promise.resolve(n?t.scrollToRow(l,a):null).then(()=>{var e=t.getCellElement(l,a);return e&&(handleEditActive(t,{row:l,rowIndex:t.getRowIndex(l),column:a,columnIndex:t.getColumnIndex(a),cell:e,$table:t},null,r),o._lastCallTime=Date.now()),t.$nextTick()}):t.$nextTick()}var _default=exports.default={methods:{_insert(e){return handleInsertRowAt(this,e,null)},_insertAt(e,t){return handleInsertRowAt(this,e,t)},_insertNextAt(e,t){return handleInsertRowAt(this,e,t,!0)},_insertChild(e,t){return handleInsertChildRowAt(this,e,t,null)},_insertChildAt(e,t,l){return handleInsertChildRowAt(this,e,t,l)},_insertChildNextAt(e,t,l){return handleInsertChildRowAt(this,e,t,l,!0)},_remove(e){let o=this;var t=o,l=o,r=o,t=t.treeConfig,{editStore:i,isRowGroupStatus:n}=l;let{tableFullTreeData:a,selectCheckboxMaps:d,afterFullData:s,mergeBodyList:u,tableFullData:c,pendingRowMaps:h,insertRowMaps:w,removeRowMaps:g}=r;var f=o.computeCheckboxOpts,x=o.computeTreeOpts;let{transform:m,mapChildrenField:v}=x,p=x.children||x.childrenField;x=i.actived,i=f.checkField;let C=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=c,e.length?(o.handlePushStack(),e.forEach(e=>{var t;o.isInsertByRow(e)||(t=(0,_util.getRowid)(o,e),g[t]=e)}),i||(e.forEach(e=>{e=(0,_util.getRowid)(this,e);d[e]&&delete d[e]}),l.updateCheckboxFlag++),c===e?(e=C=c.slice(0),r.tableFullData=[],r.afterFullData=[],o.clearMergeCells()):t&&m?e.forEach(e=>{let t=(0,_util.getRowid)(o,e);var l=_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(o,e),{children:v}),l=(l&&(l=l.items.splice(l.index,1),C.push(l[0])),_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(o,e),{children:p})),l=(l&&l.items.splice(l.index,1),o.findRowIndexOf(s,e));-1<l&&s.splice(l,1)}):n?warnLog(getI18n("vxe.error.noGroup",["remove"])):e.forEach(e=>{var t=o.findRowIndexOf(c,e);-1<t&&(t=c.splice(t,1),C.push(t[0]));let r=o.findRowIndexOf(s,e);-1<r&&(u.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),s.splice(r,1))}),x.row&&-1<o.findRowIndexOf(e,x.row)&&o.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(o,e);w[e]&&delete w[e],h[e]&&delete h[e]}),l.removeRowFlag++,l.insertRowFlag++,l.pendingRowFlag++,o.cacheRowMap(!1),o.handleTableData(t&&m),o.updateFooter(),o.handleUpdateBodyMerge(),t&&m||o.updateAfterDataIndex(),o.checkSelectionStatus(),l.scrollYLoad&&o.updateScrollYSpace(),o.$nextTick().then(()=>(o.updateCellAreas(),o.recalculate(!0))).then(()=>({row:C.length?C[C.length-1]:null,rows:C}))):Promise.resolve({row:null,rows:[]})},_removeCheckboxRow(){let t=this;return t.remove(t.getCheckboxRecords()).then(e=>(t.clearCheckboxRow(),e))},_removeRadioRow(){let t=this;var e=t.getRadioRecord();return t.remove(e||[]).then(e=>(t.clearRadioRow(),e))},_removeCurrentRow(){let t=this;var e=t.getCurrentRecord();return t.remove(e||[]).then(e=>(t.clearCurrentRow(),e))},_getRecordset(){let l=this;var e=l.getRemoveRecords(),t=l.getPendingRecords();let r=e.concat(t);var o=l.getUpdateRecords().filter(t=>!r.some(e=>l.eqRow(e,t)));return{insertRecords:l.getInsertRecords(),removeRecords:e,updateRecords:o,pendingRecords:t}},_getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=this,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},_getRemoveRecords(){var e=this.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},_getUpdateRecords(){let t=this;var{keepSource:e,treeConfig:l}=t,{tableFullData:r,tableFullTreeData:o}=t,i=t.computeTreeOpts;let n=[];return e&&(syncActivedCell(t),l?(e=i.children||i.childrenField,_xeUtils.default.eachTree(o,e=>{t.isUpdateByRow(e)&&n.push(e)},{children:e})):r.forEach(e=>{t.isUpdateByRow(e)&&n.push(e)})),n},handleEdit(e,t,l){return handleEditActive(this,e,t,Object.assign({isFocus:!0,isPos:!0},l))},handleActived(e,t){return this.handleEdit(e,t)},_getColumnModel(e,t){getEditColumnModel(e,t)},_setColumnModel(e,t){setEditColumnModel(e,t)},_syncActivedCell(){syncActivedCell(this)},_clearActived(e){return warnLog("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},_clearEdit(e){return handleClearEdit(this,null,e)},handleClearEdit(e,t){return handleClearEdit(this,e,t)},_getActiveRecord(){var e=(warnLog("vxe.error.delFunc",["getActiveRecord","getEditCell"]),this).editStore,t=this.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(this,l)]?Object.assign({},e,{row:l}):null},_getEditRecord(){var e=(warnLog("vxe.error.delFunc",["getEditRecord","getEditCell"]),this).editStore,t=this.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(this,l)]?Object.assign({},e,{row:l}):null},_getEditCell(){var e=this.editStore,{row:e,column:t}=e.actived;return t&&e?{row:e,rowIndex:this.getRowIndex(e),column:t,columnIndex:this.getColumnIndex(t)}:null},_isActiveByRow(e){return warnLog("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},_isEditByRow(e){var t=this.editStore;return t.actived.row===e},handleFocus(r){var{row:o,column:i,cell:n}=r,a=i.editRender,d=this.computeEditOpts;if((0,_utils.isEnableConf)(a)){var s=renderer.get(a.name);let e=a.autofocus||a.autoFocus,t=a.autoSelect||a.autoselect,l;d.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autoFocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e.call(this,r):e&&(l=!0===e?n.querySelector("input,textarea"):n.querySelector(e))&&l.focus()),l?t?l.select():browseObj.msie&&((a=l.createTextRange()).collapse(!1),a.select()):d.autoPos&&!i.fixed&&this.scrollToRow(o,i)}},_setActiveRow(e){return warnLog("vxe.error.delFunc",["setActiveRow","setEditRow"]),this.setEditRow(e)},_setEditRow(e,t,l){var r=this.visibleColumn;let o=_xeUtils.default.find(r,e=>(0,_utils.isEnableConf)(e.editRender)),i=!1;return t&&(i=!0)!==t&&(o=_xeUtils.default.isString(t)?this.getColumnByField(t):t),handleEditCell(this,e,o,Object.assign({isPos:i,isFocus:i},l))},_setActiveCell(e,t){return warnLog("vxe.error.delFunc",["setActiveCell","setEditCell"]),this.setEditCell(e,t)},_setEditCell(e,t,l){return handleEditCell(this,e,t,Object.assign({isFocus:!0,isPos:!0},l))},_setSelectCell(e,t){var l=this,r=l.tableData,o=l.computeEditOpts,t=_xeUtils.default.isString(t)?l.getColumnByField(t):t;return e&&t&&"manual"!==o.trigger&&-1<(o=l.findRowIndexOf(r,e))&&(r=l.getCellElement(e,t),e={row:e,rowIndex:o,column:t,columnIndex:l.getColumnIndex(t),cell:r},l.handleSelected(e,{})),l.$nextTick()},handleSelected(e,t){let l=this;var r=l.mouseConfig,o=l.editStore,i=l.computeMouseOpts;let n=l.computeEditOpts,{actived:a,selected:d}=o,{row:s,column:u}=e,c=r&&i.selected;return!c||d.row===s&&d.column===u||(a.row!==s||"cell"===n.mode&&a.column!==u)&&(handleClearEdit(l,t),l.clearSelected(),l.clearCellAreas&&(l.clearCellAreas(),l.clearCopyCellArea()),d.args=e,d.row=s,d.column=u,c&&l.addCellSelectedClass(),l.focus(),t)&&l.dispatchEvent("cell-selected",e,t),l.$nextTick()},_getSelectedCell(){var e=this.editStore,{row:e,column:t}=e.selected;return e&&t?{row:e,column:t}:null},_clearSelected(){var e=this.editStore,e=e.selected;return e.row=null,e.column=null,removeCellSelectedClass(this),this.$nextTick()},reColTitleSdCls(){var e=this.elemStore,e=e["main-header-list"];e&&_xeUtils.default.arrayEach(e.querySelectorAll(".col--title-selected"),e=>(0,_dom.removeClass)(e,"col--title-selected"))},addCellSelectedClass(){var e=this.editStore,e=e.selected,{row:e,column:t}=e;removeCellSelectedClass(this),e&&t&&(e=this.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}}};
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils"));var _dom=require("../../ui/src/dom");var _utils=require("../../ui/src/utils");var _ui=require("../../ui");var _cell=_interopRequireDefault(require("./cell"));var _util=require("./util");var _vn=require("../../ui/src/vn");var _anime=require("../../ui/src/anime");var _log=require("../../ui/src/log");var _store=require("./store");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e};}const{warnLog,errLog}=(0,_log.createComponentLog)('table');const{getConfig,getI18n,renderer,formats,interceptor,createEvent,globalEvents,GLOBAL_EVENT_KEYS}=_ui.VxeUI;const browseObj=_xeUtils.default.browse();const supportMaxRow=5e6;const customStorageKey='VXE_CUSTOM_STORE';const maxYHeight=5e6;const maxXWidth=5e6;const sourceType='table';let crossTableDragRowObj=null;function eqCellValue(row1,row2,field){const val1=_xeUtils.default.get(row1,field);const val2=_xeUtils.default.get(row2,field);if((0,_utils.eqEmptyValue)(val1)&&(0,_utils.eqEmptyValue)(val2)){return true;}if(_xeUtils.default.isString(val1)||_xeUtils.default.isNumber(val1)){return''+val1===''+val2;}return _xeUtils.default.isEqual(val1,val2);}function hangleStorageDefaultValue(value,isAll){return _xeUtils.default.isBoolean(value)?value:isAll;}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=getConfig().version;const rest=_xeUtils.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=getConfig().version;const maps=getCustomStorageMap();maps[id]=data||undefined;maps._v=version;localStorage.setItem(customStorageKey,_xeUtils.default.toJSONString(maps));};const getRecoverRowMaps=($xeTable,keyMaps)=>{const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const restKeys={};_xeUtils.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=[];_xeUtils.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=(0,_util.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{aggregateConfig,rowGroupConfig}=props;const{collectColumn}=internalData;const customOpts=$xeTable.computeCustomOpts;const{storage,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=Object.assign({},isAllCustom?{}:storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);const isCustomAggGroup=hangleStorageDefaultValue(storageOpts.aggGroup,isAllCustom);const isCustomAggFunc=hangleStorageDefaultValue(storageOpts.aggFunc,isAllCustom);let{resizableData,sortData,visibleData,fixedData,aggGroupData,aggFuncData}=storeData;// 处理还原
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils"));var _dom=require("../../ui/src/dom");var _utils=require("../../ui/src/utils");var _ui=require("../../ui");var _cell=_interopRequireDefault(require("./cell"));var _util=require("./util");var _vn=require("../../ui/src/vn");var _anime=require("../../ui/src/anime");var _log=require("../../ui/src/log");var _store=require("./store");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e};}const{warnLog,errLog}=(0,_log.createComponentLog)('table');const{getConfig,getI18n,renderer,formats,interceptor,createEvent,globalEvents,GLOBAL_EVENT_KEYS}=_ui.VxeUI;const browseObj=_xeUtils.default.browse();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=_xeUtils.default.get(newRow,field);const val2=_xeUtils.default.get(oldRow,field);let result=false;if((0,_utils.eqEmptyValue)(val1)&&(0,_utils.eqEmptyValue)(val2)){result=true;}else if(_xeUtils.default.isString(val1)||_xeUtils.default.isNumber(val1)){result=''+val1===''+val2;}else{result=_xeUtils.default.isEqual(val1,val2);}return{newValue:val1,oldValue:val2,result};}function hangleStorageDefaultValue(value,isAll){return _xeUtils.default.isBoolean(value)?value:isAll;}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=getConfig().version;const rest=_xeUtils.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=getConfig().version;const maps=getCustomStorageMap();maps[id]=data||undefined;maps._v=version;localStorage.setItem(customStorageKey,_xeUtils.default.toJSONString(maps));};const getRecoverRowMaps=($xeTable,keyMaps)=>{const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const restKeys={};_xeUtils.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=[];_xeUtils.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=(0,_util.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{aggregateConfig,rowGroupConfig}=props;const{collectColumn}=internalData;const customOpts=$xeTable.computeCustomOpts;const{storage,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=Object.assign({},isAllCustom?{}:storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);const isCustomAggGroup=hangleStorageDefaultValue(storageOpts.aggGroup,isAllCustom);const isCustomAggFunc=hangleStorageDefaultValue(storageOpts.aggFunc,isAllCustom);let{resizableData,sortData,visibleData,fixedData,aggGroupData,aggFuncData}=storeData;// 处理还原
2
2
  if(isCustomResizable&&resizableData||isCustomSort&&sortData||isCustomVisible&&visibleData||isCustomFixed&&fixedData||isCustomAggGroup&&aggGroupData||isCustomAggFunc&&aggFuncData){const sortColMaps={};if(isCustomSort&&sortData){// 转换兼容老版本数据,即将废弃兼容
3
3
  if(!_xeUtils.default.isArray(sortData)){const sortRests=[];_xeUtils.default.each(sortData,(index,colKey)=>{sortRests.push({key:colKey,index});});sortData=_xeUtils.default.orderBy(sortRests,{field:'index',order:'asc'}).map(item=>({k:item.key}));}let colNum=1;_xeUtils.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=[];_xeUtils.default.eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const colKey=column.getKey();// 支持一级
4
4
  if(!parentColumn){if(isCustomFixed&&fixedData&&fixedData[colKey]!==undefined){column.fixed=fixedData[colKey];}}if(isCustomResizable&&resizableData&&_xeUtils.default.isNumber(resizableData[colKey])){column.resizeWidth=resizableData[colKey];}if(isCustomVisible&&visibleData&&_xeUtils.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);}// 如果自定义了顺序
@@ -149,7 +149,7 @@ remainList.forEach(column=>{const width=Math.max(meanWidth,minCellWidth);column.
149
149
  * 计算自适应行高
150
150
  */const calcCellAutoHeight=($xeTable,rowid,rowRest,wrapperEl)=>{const internalData=$xeTable;const{fullCellHeightMaps}=internalData;let chRest=fullCellHeightMaps[rowid];if(!chRest){chRest={};fullCellHeightMaps[rowid]=chRest;}const wrapperElemList=wrapperEl.querySelectorAll(`.vxe-cell--wrapper[rowid="${rowRest.rowid}"]`);let firstCellStyle=null;let topBottomPadding=0;let changeCH=false;for(let i=0;i<wrapperElemList.length;i++){const wrapperElem=wrapperElemList[i];const cellElem=wrapperElem.parentElement;const cellStyle=cellElem.style;const orHeight=cellStyle.height;const colid=wrapperElem.getAttribute('colid')||'';cellStyle.height='';if(!firstCellStyle){firstCellStyle=getComputedStyle(cellElem);topBottomPadding=firstCellStyle?Math.ceil(_xeUtils.default.toNumber(firstCellStyle.paddingTop)+_xeUtils.default.toNumber(firstCellStyle.paddingBottom)):0;}const cellHeight=wrapperElem?wrapperElem.clientHeight:0;const colHeight=Math.ceil(cellHeight+topBottomPadding);if(chRest[colid]!==colHeight){changeCH=true;chRest[colid]=colHeight;}cellStyle.height=orHeight;}const cellMaxHeight=(0,_util.getRowMaxHeight)(chRest,changeCH);return cellMaxHeight;};/**
151
151
  * 自适应行高
152
- */const calcCellHeight=$xeTable=>{const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{tableData,isAllOverflow,scrollYLoad,scrollXLoad}=reactData;const{fullAllDataRowIdData}=internalData;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const treeOpts=$xeTable.computeTreeOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;if(!isAllOverflow&&(scrollYLoad||scrollXLoad||treeConfig&&treeOpts.showLine)){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);el.setAttribute('data-calc-row','Y');tableData.forEach(row=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const height=calcCellAutoHeight($xeTable,rowid,rowRest,el);rowRest.height=Math.max(defaultRowHeight,height);}el.removeAttribute('data-calc-row');});reactData.calcCellHeightFlag++;}};function getOrderField($xeTable,column){const reactData=$xeTable;const{isRowGroupStatus}=reactData;const{sortBy,sortType,aggFunc}=column;return isRowGroupStatus&&aggFunc?row=>{if(row.isAggregate){const aggData=row.aggData;const currAggData=aggData?aggData[column.field]:null;return currAggData?currAggData.value:null;}let cellValue;if(sortBy){cellValue=_xeUtils.default.isFunction(sortBy)?sortBy({row,column}):_xeUtils.default.get(row,sortBy);}else{cellValue=$xeTable.getCellLabel(row,column);}if(!sortType||sortType==='auto'){return isNaN(cellValue)?cellValue:_xeUtils.default.toNumber(cellValue);}else if(sortType==='number'){return _xeUtils.default.toNumber(cellValue);}else if(sortType==='string'){return _xeUtils.default.toValueString(cellValue);}return cellValue;}:row=>{let cellValue;if(sortBy){cellValue=_xeUtils.default.isFunction(sortBy)?sortBy({row,column}):_xeUtils.default.get(row,sortBy);}else{cellValue=$xeTable.getCellLabel(row,column);}if(!sortType||sortType==='auto'){return isNaN(cellValue)?cellValue:_xeUtils.default.toNumber(cellValue);}else if(sortType==='number'){return _xeUtils.default.toNumber(cellValue);}else if(sortType==='string'){return _xeUtils.default.toValueString(cellValue);}return cellValue;};}function handleTargetEnterEvent($xeTable,isClear){const internalData=$xeTable;const $tooltip=$xeTable.$refs.refTooltip;clearTimeout(internalData.tooltipTimeout);if(isClear){$xeTable.closeTooltip();}else{if($tooltip&&$tooltip.setActived){$tooltip.setActived(true);}}}function clearCrossTableDragStatus($xeTable){const crossTableDragRowInfo=(0,_store.getCrossTableDragRowInfo)($xeTable);crossTableDragRowObj=null;crossTableDragRowInfo.row=null;}function clearDragStatus($xeTable){const reactData=$xeTable;const{dragRow,dragCol}=reactData;if(dragRow||dragCol){clearColDropOrigin($xeTable);clearRowDropOrigin($xeTable);hideDropTip($xeTable);clearCrossTableDragStatus($xeTable);reactData.dragRow=null;reactData.dragCol=null;}}function handleRowDragEndClearStatus($xeTable){clearRowDragData($xeTable);clearCrossTableDragStatus($xeTable);handleRecalculateStyle($xeTable,false,true,true);}function handleColDragEndClearStatus($xeTable){clearColDragData($xeTable);clearCrossTableDragStatus($xeTable);handleRecalculateStyle($xeTable,true,true,true);}function clearRowDropOrigin($xeTable){const el=$xeTable.$el;if(el){const clss='row--drag-origin';_xeUtils.default.arrayEach(el.querySelectorAll(`.${clss}`),elem=>{elem.draggable=false;(0,_dom.removeClass)(elem,clss);});}}function updateRowDropOrigin($xeTable,row){const el=$xeTable.$el;if(el){const clss='row--drag-origin';const rowid=(0,_util.getRowid)($xeTable,row);_xeUtils.default.arrayEach(el.querySelectorAll(`[rowid="${rowid}"]`),elem=>{(0,_dom.addClass)(elem,clss);});}}function updateRowDropTipContent($xeTable,tdEl){const reactData=$xeTable;const props=$xeTable;const{dragConfig}=props;const{dragRow}=reactData;const rowDragOpts=$xeTable.computeRowDragOpts;const{tooltipMethod}=rowDragOpts;const rTooltipMethod=tooltipMethod||(dragConfig?dragConfig.rowTooltipMethod:null);let tipContent='';if(rTooltipMethod){const rtParams={$table:$xeTable,row:dragRow};tipContent=`${rTooltipMethod(rtParams)||''}`;}else{tipContent=getI18n('vxe.table.dragTip',[tdEl.textContent||'']);}reactData.dragTipText=tipContent;}function updateColDropOrigin($xeTable,column){const el=$xeTable.$el;if(el){const colQuerys=[];_xeUtils.default.eachTree([column],item=>{colQuerys.push(`[colid="${item.id}"]`);});const clss='col--drag-origin';_xeUtils.default.arrayEach(el.querySelectorAll(colQuerys.join(',')),elem=>{(0,_dom.addClass)(elem,clss);});}}function clearColDropOrigin($xeTable){const el=$xeTable.$el;if(el){const clss='col--drag-origin';_xeUtils.default.arrayEach(el.querySelectorAll(`.${clss}`),elem=>{elem.draggable=false;(0,_dom.removeClass)(elem,clss);});}}function updateColDropTipContent($xeTable,tdEl){const reactData=$xeTable;const{dragCol}=reactData;const columnDragOpts=$xeTable.computeColumnDragOpts;const{tooltipMethod}=columnDragOpts;let tipContent='';if(tooltipMethod){const dtParams={$table:$xeTable,column:dragCol};tipContent=`${tooltipMethod(dtParams)||''}`;}else{tipContent=getI18n('vxe.table.dragTip',[tdEl.textContent||'']);}reactData.dragTipText=tipContent;}function showDropTip($xeTable,evnt,trEl,thEl,showLine,dragPos){const $xeGantt=$xeTable.$xeGantt;const reactData=$xeTable;const internalData=$xeTable;let wrapperEl=$xeTable.$refs.refElem;if($xeGantt&&trEl){const ganttContainerElem=$xeGantt.$refs.refGanttContainerElem;if(ganttContainerElem){wrapperEl=ganttContainerElem;}}if(!wrapperEl){return;}const{overflowX,scrollbarWidth,overflowY,scrollbarHeight}=reactData;const{prevDragToChild}=internalData;const wrapperRect=wrapperEl.getBoundingClientRect();const osbWidth=overflowY?scrollbarWidth:0;const osbHeight=overflowX?scrollbarHeight:0;const tableWrapperWidth=wrapperEl.clientWidth;const tableWrapperHeight=wrapperEl.clientHeight;if(trEl){const rdLineEl=$xeTable.$refs.refDragRowLineElem;if(rdLineEl){if(showLine){const scrollbarYToLeft=$xeTable.computeScrollbarYToLeft;const trRect=trEl.getBoundingClientRect();let trHeight=trEl.clientHeight;const offsetTop=Math.max(1,trRect.y-wrapperRect.y);if(offsetTop+trHeight>tableWrapperHeight-osbHeight){trHeight=tableWrapperHeight-offsetTop-osbHeight;}rdLineEl.style.display='block';rdLineEl.style.left=`${scrollbarYToLeft?osbWidth:0}px`;rdLineEl.style.top=`${offsetTop}px`;rdLineEl.style.height=`${trHeight}px`;rdLineEl.style.width=`${tableWrapperWidth-osbWidth}px`;rdLineEl.setAttribute('drag-pos',dragPos);rdLineEl.setAttribute('drag-to-child',prevDragToChild?'y':'n');}else{rdLineEl.style.display='';}}}else if(thEl){const cdLineEl=$xeTable.$refs.refDragColLineElem;if(cdLineEl){if(showLine){const scrollbarXToTop=$xeTable.computeScrollbarXToTop;const leftContainerElem=$xeTable.$refs.refLeftContainer;const leftContainerWidth=leftContainerElem?leftContainerElem.clientWidth:0;const rightContainerElem=$xeTable.$refs.refRightContainer;const rightContainerWidth=rightContainerElem?rightContainerElem.clientWidth:0;const thRect=thEl.getBoundingClientRect();let thWidth=thEl.clientWidth;const offsetTop=Math.max(0,thRect.y-wrapperRect.y);const startX=leftContainerWidth;let offsetLeft=thRect.x-wrapperRect.x;if(offsetLeft<startX){thWidth-=startX-offsetLeft;offsetLeft=startX;}const endX=tableWrapperWidth-rightContainerWidth-(rightContainerWidth?0:osbWidth);if(offsetLeft+thWidth>endX){thWidth=endX-offsetLeft;}cdLineEl.style.display='block';cdLineEl.style.top=`${offsetTop}px`;cdLineEl.style.left=`${offsetLeft}px`;cdLineEl.style.width=`${thWidth}px`;if(prevDragToChild){cdLineEl.style.height=`${thRect.height}px`;}else{cdLineEl.style.height=`${tableWrapperHeight-offsetTop-(scrollbarXToTop?0:osbHeight)}px`;}cdLineEl.setAttribute('drag-pos',dragPos);cdLineEl.setAttribute('drag-to-child',prevDragToChild?'y':'n');}else{cdLineEl.style.display='';}}}const rdTipEl=$xeTable.$refs.refDragTipElem;if(rdTipEl){rdTipEl.style.display='block';rdTipEl.style.top=`${Math.min(wrapperEl.clientHeight-wrapperEl.scrollTop-rdTipEl.clientHeight,evnt.clientY-wrapperRect.y)}px`;rdTipEl.style.left=`${Math.min(wrapperEl.clientWidth-wrapperEl.scrollLeft-rdTipEl.clientWidth-16,evnt.clientX-wrapperRect.x)}px`;rdTipEl.setAttribute('drag-status',showLine?prevDragToChild?'sub':'normal':'disabled');}}function hideDropTip($xeTable){const rdTipEl=$xeTable.$refs.refDragTipElem;const rdLineEl=$xeTable.$refs.refDragRowLineElem;const cdLineEl=$xeTable.$refs.refDragColLineElem;if(rdTipEl){rdTipEl.style.display='';}if(rdLineEl){rdLineEl.style.display='';}if(cdLineEl){cdLineEl.style.display='';}}function clearRowDragData($xeTable){const $xeGantt=$xeTable.$xeGantt;const reactData=$xeTable;const internalData=$xeTable;let wrapperEl=$xeTable.$refs.refElem;const dtClss=['.vxe-body--row'];if($xeGantt){const ganttContainerElem=$xeGantt.$refs.refGanttContainerElem;if(ganttContainerElem){wrapperEl=ganttContainerElem;}dtClss.push('.vxe-gantt-view--body-row','.vxe-gantt-view--chart-row');}hideDropTip($xeTable);clearRowDropOrigin($xeTable);(0,_anime.clearRowAnimate)(wrapperEl,dtClss);internalData.prevDragToChild=false;reactData.dragRow=null;reactData.dragCol=null;}function clearColDragData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const el=$xeTable.$refs.refElem;hideDropTip($xeTable);clearColDropOrigin($xeTable);(0,_anime.clearColAnimate)(el,['.vxe-table--column']);internalData.prevDragToChild=false;reactData.dragRow=null;reactData.dragCol=null;}/**
152
+ */const calcCellHeight=$xeTable=>{const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{tableData,isAllOverflow,scrollYLoad,scrollXLoad}=reactData;const{fullAllDataRowIdData}=internalData;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const treeOpts=$xeTable.computeTreeOpts;const defaultRowHeight=$xeTable.computeDefaultRowHeight;if(!isAllOverflow&&(scrollYLoad||scrollXLoad||treeConfig&&treeOpts.showLine)){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);el.setAttribute('data-calc-row','Y');tableData.forEach(row=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const height=calcCellAutoHeight($xeTable,rowid,rowRest,el);rowRest.height=Math.max(defaultRowHeight,height);}el.removeAttribute('data-calc-row');});reactData.calcCellHeightFlag++;}};function getOrderField($xeTable,column){const reactData=$xeTable;const{isRowGroupStatus}=reactData;const{sortBy,sortType,aggFunc}=column;return isRowGroupStatus&&aggFunc?row=>{if(row.isAggregate){const aggData=row.aggData;const currAggData=aggData?aggData[column.field]:null;return currAggData?currAggData.value:null;}let cellValue;if(sortBy){cellValue=_xeUtils.default.isFunction(sortBy)?sortBy({row,column}):_xeUtils.default.get(row,sortBy);}else{cellValue=$xeTable.getCellLabel(row,column);}if(!sortType||sortType==='auto'){return(0,_utils.eqEmptyValue)(cellValue)||isNaN(cellValue)?cellValue:_xeUtils.default.toNumber(cellValue);}else if(sortType==='number'){return _xeUtils.default.toNumber(cellValue);}else if(sortType==='string'){return _xeUtils.default.toValueString(cellValue);}return cellValue;}:row=>{let cellValue;if(sortBy){cellValue=_xeUtils.default.isFunction(sortBy)?sortBy({row,column}):_xeUtils.default.get(row,sortBy);}else{cellValue=$xeTable.getCellLabel(row,column);}if(!sortType||sortType==='auto'){return(0,_utils.eqEmptyValue)(cellValue)||isNaN(cellValue)?cellValue:_xeUtils.default.toNumber(cellValue);}else if(sortType==='number'){return _xeUtils.default.toNumber(cellValue);}else if(sortType==='string'){return _xeUtils.default.toValueString(cellValue);}return cellValue;};}function handleTargetEnterEvent($xeTable,isClear){const internalData=$xeTable;const $tooltip=$xeTable.$refs.refTooltip;clearTimeout(internalData.tooltipTimeout);if(isClear){$xeTable.closeTooltip();}else{if($tooltip&&$tooltip.setActived){$tooltip.setActived(true);}}}function clearCrossTableDragStatus($xeTable){const crossTableDragRowInfo=(0,_store.getCrossTableDragRowInfo)($xeTable);crossTableDragRowObj=null;crossTableDragRowInfo.row=null;}function clearDragStatus($xeTable){const reactData=$xeTable;const{dragRow,dragCol}=reactData;if(dragRow||dragCol){clearColDropOrigin($xeTable);clearRowDropOrigin($xeTable);hideDropTip($xeTable);clearCrossTableDragStatus($xeTable);reactData.dragRow=null;reactData.dragCol=null;}}function handleRowDragEndClearStatus($xeTable){clearRowDragData($xeTable);clearCrossTableDragStatus($xeTable);handleRecalculateStyle($xeTable,false,true,true);}function handleColDragEndClearStatus($xeTable){clearColDragData($xeTable);clearCrossTableDragStatus($xeTable);handleRecalculateStyle($xeTable,true,true,true);}function clearRowDropOrigin($xeTable){const el=$xeTable.$el;if(el){const clss='row--drag-origin';_xeUtils.default.arrayEach(el.querySelectorAll(`.${clss}`),elem=>{elem.draggable=false;(0,_dom.removeClass)(elem,clss);});}}function updateRowDropOrigin($xeTable,row){const el=$xeTable.$el;if(el){const clss='row--drag-origin';const rowid=(0,_util.getRowid)($xeTable,row);_xeUtils.default.arrayEach(el.querySelectorAll(`[rowid="${rowid}"]`),elem=>{(0,_dom.addClass)(elem,clss);});}}function updateRowDropTipContent($xeTable,tdEl){const reactData=$xeTable;const props=$xeTable;const{dragConfig}=props;const{dragRow}=reactData;const rowDragOpts=$xeTable.computeRowDragOpts;const{tooltipMethod}=rowDragOpts;const rTooltipMethod=tooltipMethod||(dragConfig?dragConfig.rowTooltipMethod:null);let tipContent='';if(rTooltipMethod){const rtParams={$table:$xeTable,row:dragRow};tipContent=`${rTooltipMethod(rtParams)||''}`;}else{tipContent=getI18n('vxe.table.dragTip',[tdEl.textContent||'']);}reactData.dragTipText=tipContent;}function updateColDropOrigin($xeTable,column){const el=$xeTable.$el;if(el){const colQuerys=[];_xeUtils.default.eachTree([column],item=>{colQuerys.push(`[colid="${item.id}"]`);});const clss='col--drag-origin';_xeUtils.default.arrayEach(el.querySelectorAll(colQuerys.join(',')),elem=>{(0,_dom.addClass)(elem,clss);});}}function clearColDropOrigin($xeTable){const el=$xeTable.$el;if(el){const clss='col--drag-origin';_xeUtils.default.arrayEach(el.querySelectorAll(`.${clss}`),elem=>{elem.draggable=false;(0,_dom.removeClass)(elem,clss);});}}function updateColDropTipContent($xeTable,tdEl){const reactData=$xeTable;const{dragCol}=reactData;const columnDragOpts=$xeTable.computeColumnDragOpts;const{tooltipMethod}=columnDragOpts;let tipContent='';if(tooltipMethod){const dtParams={$table:$xeTable,column:dragCol};tipContent=`${tooltipMethod(dtParams)||''}`;}else{tipContent=getI18n('vxe.table.dragTip',[tdEl.textContent||'']);}reactData.dragTipText=tipContent;}function showDropTip($xeTable,evnt,trEl,thEl,showLine,dragPos){const $xeGantt=$xeTable.$xeGantt;const reactData=$xeTable;const internalData=$xeTable;let wrapperEl=$xeTable.$refs.refElem;if($xeGantt&&trEl){const ganttContainerElem=$xeGantt.$refs.refGanttContainerElem;if(ganttContainerElem){wrapperEl=ganttContainerElem;}}if(!wrapperEl){return;}const{overflowX,scrollbarWidth,overflowY,scrollbarHeight}=reactData;const{prevDragToChild}=internalData;const wrapperRect=wrapperEl.getBoundingClientRect();const osbWidth=overflowY?scrollbarWidth:0;const osbHeight=overflowX?scrollbarHeight:0;const tableWrapperWidth=wrapperEl.clientWidth;const tableWrapperHeight=wrapperEl.clientHeight;if(trEl){const rdLineEl=$xeTable.$refs.refDragRowLineElem;if(rdLineEl){if(showLine){const scrollbarYToLeft=$xeTable.computeScrollbarYToLeft;const trRect=trEl.getBoundingClientRect();let trHeight=trEl.clientHeight;const offsetTop=Math.max(1,trRect.y-wrapperRect.y);if(offsetTop+trHeight>tableWrapperHeight-osbHeight){trHeight=tableWrapperHeight-offsetTop-osbHeight;}rdLineEl.style.display='block';rdLineEl.style.left=`${scrollbarYToLeft?osbWidth:0}px`;rdLineEl.style.top=`${offsetTop}px`;rdLineEl.style.height=`${trHeight}px`;rdLineEl.style.width=`${tableWrapperWidth-osbWidth}px`;rdLineEl.setAttribute('drag-pos',dragPos);rdLineEl.setAttribute('drag-to-child',prevDragToChild?'y':'n');}else{rdLineEl.style.display='';}}}else if(thEl){const cdLineEl=$xeTable.$refs.refDragColLineElem;if(cdLineEl){if(showLine){const scrollbarXToTop=$xeTable.computeScrollbarXToTop;const leftContainerElem=$xeTable.$refs.refLeftContainer;const leftContainerWidth=leftContainerElem?leftContainerElem.clientWidth:0;const rightContainerElem=$xeTable.$refs.refRightContainer;const rightContainerWidth=rightContainerElem?rightContainerElem.clientWidth:0;const thRect=thEl.getBoundingClientRect();let thWidth=thEl.clientWidth;const offsetTop=Math.max(0,thRect.y-wrapperRect.y);const startX=leftContainerWidth;let offsetLeft=thRect.x-wrapperRect.x;if(offsetLeft<startX){thWidth-=startX-offsetLeft;offsetLeft=startX;}const endX=tableWrapperWidth-rightContainerWidth-(rightContainerWidth?0:osbWidth);if(offsetLeft+thWidth>endX){thWidth=endX-offsetLeft;}cdLineEl.style.display='block';cdLineEl.style.top=`${offsetTop}px`;cdLineEl.style.left=`${offsetLeft}px`;cdLineEl.style.width=`${thWidth}px`;if(prevDragToChild){cdLineEl.style.height=`${thRect.height}px`;}else{cdLineEl.style.height=`${tableWrapperHeight-offsetTop-(scrollbarXToTop?0:osbHeight)}px`;}cdLineEl.setAttribute('drag-pos',dragPos);cdLineEl.setAttribute('drag-to-child',prevDragToChild?'y':'n');}else{cdLineEl.style.display='';}}}const rdTipEl=$xeTable.$refs.refDragTipElem;if(rdTipEl){rdTipEl.style.display='block';rdTipEl.style.top=`${Math.min(wrapperEl.clientHeight-wrapperEl.scrollTop-rdTipEl.clientHeight,evnt.clientY-wrapperRect.y)}px`;rdTipEl.style.left=`${Math.min(wrapperEl.clientWidth-wrapperEl.scrollLeft-rdTipEl.clientWidth-16,evnt.clientX-wrapperRect.x)}px`;rdTipEl.setAttribute('drag-status',showLine?prevDragToChild?'sub':'normal':'disabled');}}function hideDropTip($xeTable){const rdTipEl=$xeTable.$refs.refDragTipElem;const rdLineEl=$xeTable.$refs.refDragRowLineElem;const cdLineEl=$xeTable.$refs.refDragColLineElem;if(rdTipEl){rdTipEl.style.display='';}if(rdLineEl){rdLineEl.style.display='';}if(cdLineEl){cdLineEl.style.display='';}}function clearRowDragData($xeTable){const $xeGantt=$xeTable.$xeGantt;const reactData=$xeTable;const internalData=$xeTable;let wrapperEl=$xeTable.$refs.refElem;const dtClss=['.vxe-body--row'];if($xeGantt){const ganttContainerElem=$xeGantt.$refs.refGanttContainerElem;if(ganttContainerElem){wrapperEl=ganttContainerElem;}dtClss.push('.vxe-gantt-view--body-row','.vxe-gantt-view--chart-row');}hideDropTip($xeTable);clearRowDropOrigin($xeTable);(0,_anime.clearRowAnimate)(wrapperEl,dtClss);internalData.prevDragToChild=false;reactData.dragRow=null;reactData.dragCol=null;}function clearColDragData($xeTable){const reactData=$xeTable;const internalData=$xeTable;const el=$xeTable.$refs.refElem;hideDropTip($xeTable);clearColDropOrigin($xeTable);(0,_anime.clearColAnimate)(el,['.vxe-table--column']);internalData.prevDragToChild=false;reactData.dragRow=null;reactData.dragCol=null;}/**
153
153
  * 处理显示 tooltip
154
154
  * @param {Event} evnt 事件
155
155
  * @param {Row} row 行对象
@@ -374,7 +374,8 @@ if(_xeUtils.default.isArray(row)){itemValue=row[_columnIndex];}else{itemValue=_x
374
374
  */removeInsertRow(){const $xeTable=this;const internalData=$xeTable;const{insertRowMaps}=internalData;return $xeTable.remove(_xeUtils.default.values(insertRowMaps));},/**
375
375
  * 检查行或列数据是否发生改变
376
376
  */isUpdateByRow(rowOrId,field){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{keepSource,editConfig}=props;const{fullDataRowIdData,sourceDataRowIdData}=internalData;const keepFields=$xeTable.computeKeepFields;if(keepSource&&editConfig){const rowid=_xeUtils.default.isString(rowOrId)||_xeUtils.default.isNumber(rowOrId)?rowOrId:(0,_util.getRowid)($xeTable,rowOrId);const rowRest=fullDataRowIdData[rowid];// 新增的数据不需要检测
377
- if(!rowRest){return false;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid];if(oRow){if(arguments.length>1){return!eqCellValue(oRow,row,field);}for(let i=0;i<keepFields.length;i++){if(!eqCellValue(oRow,row,keepFields[i])){return true;}}}}return false;},/**
377
+ if(!rowRest){return false;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid];if(!oRow){return false;}if(arguments.length>1){return!eqCellValue(oRow,row,field).result;}for(let i=0;i<keepFields.length;i++){if(!eqCellValue(oRow,row,keepFields[i]).result){return true;}}}return false;},getUpdateCells(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{keepSource,treeConfig}=props;const{tableFullData,tableFullTreeData,fullDataRowIdData,sourceDataRowIdData,fullColumnFieldData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const keepFields=$xeTable.computeKeepFields;const cellList=[];if(keepSource){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);const handleCell=item=>{const rowid=handleGetRowId(item);const rowRest=fullDataRowIdData[rowid];// 新增的数据不需要检测
378
+ if(!rowRest){return;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid];if(!oRow){return;}for(let i=0;i<keepFields.length;i++){const field=keepFields[i];const{result,newValue,oldValue}=eqCellValue(oRow,row,field);if(!result){const column=fullColumnFieldData[field]?fullColumnFieldData[field].column:null;cellList.push({row,rowid,column,field,newValue,oldValue});}}};if(treeConfig){_xeUtils.default.eachTree(tableFullTreeData,handleCell,treeOpts);}else{tableFullData.forEach(handleCell);}}return cellList;},/**
378
379
  * 获取表格的可视列,也可以指定索引获取列
379
380
  * @param {Number} columnIndex 索引
380
381
  */getColumns(columnIndex){const $xeTable=this;const internalData=$xeTable;const{visibleColumn}=internalData;return _xeUtils.default.isUndefined(columnIndex)?visibleColumn.slice(0):visibleColumn[columnIndex];},/**