vxe-table 3.12.9 → 3.12.10-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/es/grid/src/grid.js +6 -1
  2. package/es/index.css +1 -1
  3. package/es/index.min.css +1 -1
  4. package/es/style.css +1 -1
  5. package/es/style.min.css +1 -1
  6. package/es/table/module/export/mixin.js +3 -3
  7. package/es/table/module/filter/mixin.js +3 -3
  8. package/es/table/module/keyboard/mixin.js +4 -4
  9. package/es/table/module/menu/mixin.js +2 -2
  10. package/es/table/module/validator/mixin.js +2 -2
  11. package/es/table/src/body.js +247 -351
  12. package/es/table/src/footer.js +135 -154
  13. package/es/table/src/header.js +120 -100
  14. package/es/table/src/methods.js +1174 -790
  15. package/es/table/src/props.js +9 -3
  16. package/es/table/src/table.js +187 -103
  17. package/es/table/src/util.js +16 -7
  18. package/es/table/style.css +146 -63
  19. package/es/table/style.min.css +1 -1
  20. package/es/ui/index.js +14 -4
  21. package/es/ui/src/log.js +1 -1
  22. package/es/vxe-table/style.css +146 -63
  23. package/es/vxe-table/style.min.css +1 -1
  24. package/lib/grid/src/grid.js +4 -1
  25. package/lib/grid/src/grid.min.js +1 -1
  26. package/lib/index.css +1 -1
  27. package/lib/index.min.css +1 -1
  28. package/lib/index.umd.js +1896 -1543
  29. package/lib/index.umd.min.js +1 -1
  30. package/lib/style.css +1 -1
  31. package/lib/style.min.css +1 -1
  32. package/lib/table/module/export/mixin.js +3 -3
  33. package/lib/table/module/export/mixin.min.js +1 -1
  34. package/lib/table/module/filter/mixin.js +4 -4
  35. package/lib/table/module/filter/mixin.min.js +1 -1
  36. package/lib/table/module/keyboard/mixin.js +5 -5
  37. package/lib/table/module/keyboard/mixin.min.js +1 -1
  38. package/lib/table/module/menu/mixin.js +2 -2
  39. package/lib/table/module/menu/mixin.min.js +1 -1
  40. package/lib/table/module/validator/mixin.js +2 -2
  41. package/lib/table/module/validator/mixin.min.js +1 -1
  42. package/lib/table/src/body.js +185 -365
  43. package/lib/table/src/body.min.js +1 -1
  44. package/lib/table/src/footer.js +124 -151
  45. package/lib/table/src/footer.min.js +1 -1
  46. package/lib/table/src/header.js +97 -74
  47. package/lib/table/src/header.min.js +1 -1
  48. package/lib/table/src/methods.js +1258 -830
  49. package/lib/table/src/methods.min.js +1 -1
  50. package/lib/table/src/props.js +9 -3
  51. package/lib/table/src/props.min.js +1 -1
  52. package/lib/table/src/table.js +171 -90
  53. package/lib/table/src/table.min.js +1 -1
  54. package/lib/table/src/util.js +17 -7
  55. package/lib/table/src/util.min.js +1 -1
  56. package/lib/table/style/style.css +146 -63
  57. package/lib/table/style/style.min.css +1 -1
  58. package/lib/ui/index.js +14 -4
  59. package/lib/ui/index.min.js +1 -1
  60. package/lib/ui/src/log.js +1 -1
  61. package/lib/ui/src/log.min.js +1 -1
  62. package/lib/vxe-table/style/style.css +146 -63
  63. package/lib/vxe-table/style/style.min.css +1 -1
  64. package/package.json +2 -2
  65. package/packages/grid/src/grid.ts +6 -1
  66. package/packages/table/module/export/mixin.ts +3 -3
  67. package/packages/table/module/filter/mixin.ts +3 -3
  68. package/packages/table/module/keyboard/mixin.ts +4 -4
  69. package/packages/table/module/menu/mixin.ts +2 -2
  70. package/packages/table/module/validator/mixin.ts +2 -2
  71. package/packages/table/src/body.ts +281 -427
  72. package/packages/table/src/footer.ts +148 -164
  73. package/packages/table/src/header.ts +135 -111
  74. package/packages/table/src/methods.ts +1246 -845
  75. package/packages/table/src/props.ts +9 -3
  76. package/packages/table/src/table.ts +195 -146
  77. package/packages/table/src/util.ts +17 -7
  78. package/packages/ui/index.ts +13 -3
  79. package/styles/components/table.scss +164 -74
  80. /package/es/{iconfont.1736414871619.ttf → iconfont.1736688976404.ttf} +0 -0
  81. /package/es/{iconfont.1736414871619.woff → iconfont.1736688976404.woff} +0 -0
  82. /package/es/{iconfont.1736414871619.woff2 → iconfont.1736688976404.woff2} +0 -0
  83. /package/lib/{iconfont.1736414871619.ttf → iconfont.1736688976404.ttf} +0 -0
  84. /package/lib/{iconfont.1736414871619.woff → iconfont.1736688976404.woff} +0 -0
  85. /package/lib/{iconfont.1736414871619.woff2 → iconfont.1736688976404.woff2} +0 -0
@@ -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("./util"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body";function isVMScrollProcess(e){return e._isResize||e.lastScrollTime&&Date.now()<e.lastScrollTime+e.delayHover}function renderLine(e,l,t,r){var{row:o,column:s}=r,a=t.afterFullData,i=t.treeConfig,n=t.computeTreeOpts,{slots:s,treeNode:d}=s,c=t.fullAllDataRowIdData;if(s&&s.line)return t.callSlot(s.line,r,e);s=c[(0,_util.getRowid)(t,o)];let p=0,u=null;s&&(p=s.level,u=s.items[s._index-1]);c=t.eqRow(a[0],o);return i&&d&&(n.showLine||n.line)?[e("div",{class:"vxe-tree--line-wrapper"},[e("div",{class:"vxe-tree--line",style:{height:`${c?1:(0,_util.calcTreeLine)(r,u)}px`,left:p*n.indent+(p?2-(0,_util.getOffsetSize)(t):0)+16+"px"}})])]:[]}function renderColumn(e,H,l,t,r,o,B,s,a,i,U,n,d,q,c){var{$listeners:p,fullAllDataRowIdData:A,afterFullData:u,tableData:g,height:h,columnKey:F,overflowX:m,sYOpts:v,scrollXLoad:N,scrollYLoad:W,isCalcCellHeight:V,highlightCurrentRow:P,showOverflow:X,isAllOverflow:z,align:j,currentColumn:K,cellClassName:G,cellStyle:J,mergeList:Q,spanMethod:Z,radioOpts:ee,checkboxOpts:le,expandOpts:te,treeOpts:re,tooltipOpts:w,mouseConfig:oe,editConfig:x,editOpts:y,editRules:se,validOpts:f,editStore:ae,tooltipConfig:ie,rowOpts:b,columnOpts:ne,mouseOpts:de,areaOpts:S,validErrorMaps:T}=l,_=l.computeRowDragOpts,{disabledMethod:ce,isCrossDrag:pe,isPeerDrag:ue}=_,S=S.selectCellToRow,{type:ge,cellRender:he,editRender:C,align:me,showOverflow:$,className:ve,treeNode:we,slots:xe}=n,ye=l.computeCellOpts.verticalAlign,ae=ae.actived,v=v.rHeight,E=b.height,O=C||he,O=O?renderer.get(O.name):null,fe=O?O.tableCellClassName||O.cellClassName:"",be=O?O.tableCellStyle||O.cellStyle:"";let R=w.showAll||w.enabled;var w=l.getColumnIndex(n),Se=l.getVTColumnIndex(n),Te=(0,_utils.isEnableConf)(C);let D=o?n.fixed!==o:n.fixed&&m;m=_xeUtils.default.isUndefined($)||_xeUtils.default.isNull($)?X:$,$="ellipsis"===m;let I="title"===m,M=!0===m||"tooltip"===m;m=X||I||M||$;let _e;var L={},A=A[r],me=me||(O?O.tableCellAlign:"")||j,O=T[r+":"+n.id],j=se&&f.showMessage&&("default"===f.message?h||1<g.length:"inline"===f.message),T={colid:n.id};let Ce=p["cell-mouseenter"],$e=p["cell-mouseleave"];se=C&&x&&"dblclick"===y.trigger;let Y={$table:l,$grid:l.$xegrid,isEdit:!1,seq:t,rowid:r,row:s,rowIndex:a,$rowIndex:i,_rowIndex:U,column:n,columnIndex:w,$columnIndex:d,_columnIndex:Se,fixed:o,type:renderType,isHidden:D,level:B,visibleData:u,data:g,items:c},k=!1,Ee=!1;if((k=b.drag?"row"===_.trigger||n.dragSort&&"cell"===_.trigger:k)&&(Ee=!(!ce||!ce(Y))),(I||M||R||Ce||ie)&&(L.mouseenter=e=>{isVMScrollProcess(l)||(I?(0,_dom.updateCellTitle)(e.currentTarget,n):(M||R)&&l.triggerBodyTooltipEvent(e,Y),Ce&&l.emitEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},Y),e))}),(M||R||$e||ie)&&(L.mouseleave=e=>{isVMScrollProcess(l)||((M||R)&&l.handleTargetLeaveEvent(e),$e&&l.emitEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},Y),e))}),(k||le.range||oe)&&(L.mousedown=e=>{l.triggerCellMousedownEvent(e,Y)}),k&&(L.mouseup=l.triggerCellMouseupEvent),(b.isCurrent||P||p["cell-click"]||C&&x||"row"===te.trigger||"cell"===te.trigger||"row"===ee.trigger||"radio"===n.type&&"cell"===ee.trigger||"row"===le.trigger||"checkbox"===n.type&&"cell"===le.trigger||"row"===re.trigger||n.treeNode&&"cell"===re.trigger)&&(L.click=e=>{l.triggerCellClickEvent(e,Y)}),(se||p["cell-dblclick"])&&(L.dblclick=e=>{l.triggerCellDblclickEvent(e,Y)}),Q.length){h=(0,_util.mergeBodyMethod)(Q,U,Se);if(h){var{rowspan:t,colspan:r}=h;if(!t||!r)return null;1<t&&(T.rowspan=t),1<r&&(T.colspan=r)}}else if(Z){var{rowspan:a=1,colspan:i=1}=Z(Y)||{};if(!a||!i)return null;1<a&&(T.rowspan=a),1<i&&(T.colspan=i)}!(D=D&&Q&&(1<T.colspan||1<T.rowspan)?!1:D)&&x&&(C||he)&&(y.showStatus||y.showUpdateStatus)&&(_e=l.isUpdateByRow(s,n.field));w=[];D&&X&&z?w.push(e("div",{class:["vxe-cell",{"c--title":I,"c--tooltip":M,"c--ellipsis":$}],style:{maxHeight:m&&(v||E)?`${v||E}px`:""}})):(w.push(...renderLine(e,H,l,Y),e("div",{class:["vxe-cell",{"c--title":I,"c--tooltip":M,"c--ellipsis":$}],style:{maxHeight:m&&(v||E)?`${v||E}px`:""},attrs:{title:I?l.getCellLabel(s,n):null}},n.renderCell(e,Y))),j&&O&&(o=O.rule,u=xe?xe.valid:null,g=Object.assign(Object.assign(Object.assign({},Y),O),{rule:O}),w.push(e("div",{class:["vxe-cell--valid-error-tip",(0,_utils.getClass)(f.className,O)],style:o&&o.maxWidth?{width:o.maxWidth+"px"}:null},[e("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(f.theme||"normal")},[u?l.callSlot(u,g,e):[e("span",{class:"vxe-cell--valid-error-msg"},O.content)]])]))));let Oe="";c=V?A.height:0,m?v||E?Oe=`${v||E}px`:z||(Oe=`${c||E||18}px`):Oe=`${c||E||18}px`,oe&&de.area&&S&&((d||!0!==S)&&S!==n.field||w.push(e("div",{class:"vxe-cell--area-status"}))),_=!n.resizeWidth&&("auto"===n.minWidth||"auto"===n.width);return e("td",{class:["vxe-body--column",n.id,{["col--"+me]:me,["col--vertical-"+ye]:ye,["col--"+ge]:ge,"col--last":d===q.length-1,"col--tree-node":we,"col--edit":Te,"col--ellipsis":m,"fixed--width":!_,"fixed--hidden":D,"is--drag-cell":k&&(pe||ue||!B),"is--drag-disabled":Ee,"col--dirty":_e,"col--active":x&&Te&&ae.row===s&&(ae.column===n||"row"===y.mode),"col--valid-error":!!O,"col--current":K===n},(0,_utils.getClass)(fe,Y),(0,_utils.getClass)(ve,Y),(0,_utils.getClass)(G,Y)],key:F||N||W||ne.useKey||b.useKey||ne.drag?n.id:d,attrs:T,style:Object.assign({height:Oe},_xeUtils.default.isFunction(be)?be(Y):be,_xeUtils.default.isFunction(J)?J(Y):J),on:L},w)}function renderRows(v,w,x,y,f,b){let S=x.computeColumnOpts,T=x.computeColumnDragOpts,{stripe:_,rowKey:C,highlightHoverRow:$,rowClassName:E,rowStyle:O,editConfig:R,showOverflow:D,treeConfig:I,treeOpts:M,expandOpts:L,editOpts:Y,treeExpandedMaps:k,scrollXLoad:H,scrollYLoad:B,rowExpandedMaps:U,radioOpts:q,checkboxOpts:A,expandColumn:F,hasFixedColumn:N,fullAllDataRowIdData:W,rowOpts:V,pendingRowMaps:P,isDragColMove:X}=x,{transform:z,seqMode:j}=M,K=M.children||M.childrenField,G=[];return f.forEach((t,r)=>{var e={};let o,s=(o=x.getRowIndex(t),(V.isHover||$)&&(e.mouseenter=e=>{isVMScrollProcess(x)||x.triggerHoverEvent(e,{row:t,rowIndex:o})},e.mouseleave=()=>{isVMScrollProcess(x)||x.clearHoverRow()}),(0,_util.getRowid)(x,t));var l=W[s];let a=0,i=-1,n=0;l&&(a=l.level,i=I&&z&&"increasing"===j?l._index+1:l.seq,n=l._index);var l={$table:x,seq:i,rowid:s,fixed:y,type:renderType,level:a,row:t,rowIndex:o,$rowIndex:r},d=F&&!!U[s];let c=!1,p=[],u=!1;R&&(u=x.isInsertByRow(t)),!I||B||z||(p=t[K],c=p&&p.length&&!!k[s]),!V.drag||I&&!z||(e.dragstart=x.handleRowDragDragstartEvent,e.dragend=x.handleRowDragDragendEvent,e.dragover=x.handleRowDragDragoverEvent);var g,h=["vxe-body--row",I?"row--level-"+a:"",{"row--stripe":_&&(n+1)%2==0,"is--new":u,"is--expand-row":d,"is--expand-tree":c,"row--new":u&&(Y.showStatus||Y.showInsertStatus),"row--radio":q.highlight&&x.selectRadioRow===t,"row--checked":A.highlight&&x.isCheckedByCheckboxRow(t),"row--pending":!!P[s]},E?_xeUtils.default.isFunction(E)?E(l):E:""],m=b.map((e,l)=>renderColumn(v,w,x,i,s,y,a,t,o,r,n,e,l,b,f));G.push(S.drag&&T.animation?v("transition-group",{props:{tag:"tr",name:"vxe-header--col-list"+(X?"":"-disabled")},class:h,attrs:{rowid:s},style:O?_xeUtils.default.isFunction(O)?O(l):O:null,key:C||H||B||V.useKey||V.drag||S.drag||I?s:r,nativeOn:e},m):v("tr",{class:h,attrs:{rowid:s},style:O?_xeUtils.default.isFunction(O)?O(l):O:null,key:C||H||B||V.useKey||V.drag||S.drag||I?s:r,on:e},m)),d&&({height:h,padding:l}=L,m={},d=(h&&(m.height=h+"px"),I&&(m.paddingLeft=a*M.indent+30+"px"),F).showOverflow,d=_xeUtils.default.isUndefined(d)||_xeUtils.default.isNull(d)?D:d,g={$table:x,seq:i,column:F,fixed:y,type:renderType,level:a,row:t,rowIndex:o,$rowIndex:r},G.push(v("tr",{class:["vxe-body--expanded-row",{"is--padding":l}],key:"expand_"+s,style:O?_xeUtils.default.isFunction(O)?O(g):O:null,on:e},[v("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":y&&!N,"col--ellipsis":d},attrs:{colspan:b.length}},[v("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":h},style:m},[F.renderData(v,g)])])]))),c&&G.push(...renderRows(v,w,x,y,p,b))}),G}var _default=exports.default={name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,size:String,fixedType:String},data(){return{wheelTime:null,wheelYSize:0,wheelYInterval:0,wheelYTotal:0}},mounted(){var{$parent:e,$el:l,$refs:t,fixedType:r}=this,e=e.elemStore,r=`${r||"main"}-body-`;e[r+"wrapper"]=l,e[r+"table"]=t.table,e[r+"colgroup"]=t.colgroup,e[r+"list"]=t.tbody,e[r+"xSpace"]=t.xSpace,e[r+"ySpace"]=t.ySpace,e[r+"emptyBlock"]=t.emptyBlock},beforeDestroy(){clearTimeout(this.wheelTime)},destroyed(){var{$parent:e,fixedType:l}=this,e=e.elemStore,l=`${l||"main"}-body-`;e[l+"wrapper"]=null,e[l+"table"]=null,e[l+"colgroup"]=null,e[l+"list"]=null,e[l+"xSpace"]=null,e[l+"ySpace"]=null,e[l+"emptyBlock"]=null},render(t){let l=this.$parent;var e=l,r=l,o=l,{tId:s,$scopedSlots:a}=l;let{fixedColumn:i,fixedType:n,tableColumn:d}=this;var{showOverflow:c,spanMethod:p,footerSpanMethod:u,mouseConfig:g}=e,{isGroup:r,tableData:h,scrollXLoad:m,scrollYLoad:v,isAllOverflow:w,isDragRowMove:x,expandColumn:y,dragRow:f,dragCol:b}=r,{visibleColumn:o,fullAllDataRowIdData:S,fullColumnIdData:T}=o,_=l.computeRowOpts,C=l.computeSYOpts,$=l.computeEmptyOpts,E=l.computeMouseOpts,O=l.computeRowDragOpts;let R=h,D=d;n&&(D=!(m||v||c&&w)||y||p||u?o:i||[]),v&&f&&2<R.length&&(h=S[(0,_util.getRowid)(l,f)])&&(c=h._index,w=R[0],y=R[R.length-1],p=S[(0,_util.getRowid)(l,w)],u=S[(0,_util.getRowid)(l,y)],p)&&u&&(o=p._index,v=u._index,c<o?R=[f].concat(R):v<c&&(R=R.concat([f]))),n||r||m&&b&&2<D.length&&(h=T[b.id])&&(w=h._index,S=D[0],y=D[D.length-1],p=T[S.id],u=T[y.id],p)&&u&&(o=p._index,v=u._index,w<o?D=[b].concat(D):v<w&&(D=D.concat([b])));let I;I=a.empty?a.empty.call(this,{$table:l,$grid:l.xegrid},t):(f=(c=$.name?renderer.get($.name):null)?c.renderTableEmpty||c.renderTableEmptyView||c.renderEmpty:null)?(0,_vn.getSlotVNs)(f.call(this,t,$,{$table:l})):e.emptyText||getI18n("vxe.table.emptyText");r={scroll:this.scrollEvent};return"wheel"===C.mode&&(r.wheel=this.wheelEvent),t("div",{ref:"refElem",class:["vxe-table--body-wrapper",n?`fixed-${n}--wrapper`:"body--wrapper"],attrs:{xid:s},on:r},[n?renderEmptyElement(l):t("div",{class:"vxe-body--x-space",ref:"xSpace"}),t("div",{class:"vxe-body--y-space",ref:"ySpace"}),t("table",{class:"vxe-table--body",attrs:{xid:s,cellspacing:0,cellpadding:0,border:0},ref:"table"},[t("colgroup",{ref:"colgroup"},D.map((e,l)=>t("col",{attrs:{name:e.id},key:l}))),_.drag&&O.animation?t("transition-group",{props:{tag:"tbody",name:"vxe-body--row-list"+(x?"":"-disabled")}},renderRows(t,this,l,n,R,D)):t("tbody",{ref:"tbody"},renderRows(t,this,l,n,R,D))]),t("div",{class:"vxe-table--checkbox-range"}),g&&E.area?t("div",{class:"vxe-table--cell-area"},[t("span",{class:"vxe-table--cell-main-area"},E.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellAreaExtendMousedownEvent&&l.triggerCellAreaExtendMousedownEvent(e,{$table:l,fixed:n,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-copy-area"}),t("span",{class:"vxe-table--cell-extend-area"}),t("span",{class:"vxe-table--cell-multi-area"}),t("span",{class:"vxe-table--cell-active-area"})]):renderEmptyElement(l),n?renderEmptyElement(l):t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},I)])])},methods:{scrollEvent(e){var l,t,r,o,s,a=this.$parent,i=a,n=this.fixedType,{lastScrollTop:d,lastScrollLeft:c,inVirtualScroll:p,inBodyScroll:u,bodyScrollType:g,inFooterScroll:h}=i;p||h||u&&g!==n||({tableHeader:p,tableBody:h,leftBody:u,rightBody:g,tableFooter:l}=a.$refs,o=this.$el,p=p?p.$el:null,l=l?l.$el:null,(h=h?h.$el:null)&&(u=u?u.$el:null,g=g?g.$el:null,t=a.$refs.refScrollXHandleElem,r=a.$refs.refScrollYHandleElem,o=o.scrollTop,c=(s=h.scrollLeft)!==c,d=o!==d,i.inBodyScroll=!0,i.bodyScrollType=n,d&&(u&&"left"===n?((0,_dom.setScrollTop)(h,o),(0,_dom.setScrollTop)(g,o)):g&&"right"===n?((0,_dom.setScrollTop)(h,o),(0,_dom.setScrollTop)(u,o)):((0,_dom.setScrollTop)(u,o),(0,_dom.setScrollTop)(g,o)),(0,_dom.setScrollTop)(r,o),a.triggerScrollYEvent(e)),c&&((0,_dom.setScrollLeft)(t,s),(0,_dom.setScrollLeft)(p,s),(0,_dom.setScrollLeft)(l,s),a.triggerScrollXEvent(e)),a.handleScrollEvent(e,d,c,o,s,{type:renderType,fixed:n})))},handleWheel(i,n,e,d,c){let p=this.$parent;var{$refs:l,elemStore:t,scrollYLoad:r,scrollXLoad:o}=p,{tableBody:l,leftBody:s,rightBody:a}=l;let u=l.$el,g=s?s.$el:null,h=a?a.$el:null;l=this.isPrevWheelTop===n?Math.max(0,this.wheelYSize-this.wheelYTotal):0,s=t["main-body-ySpace"],a=t["main-body-xSpace"];let m=(r&&s?s:u).clientHeight,v=(o&&a?a:u).clientWidth,w=(this.isPrevWheelTop=n,this.wheelYSize=Math.abs(n?e-l:e+l),this.wheelYInterval=0,this.wheelYTotal=0,clearTimeout(this.wheelTime),()=>{let{fixedType:e,wheelYTotal:l,wheelYSize:t,wheelYInterval:r}=this;var o,s,a;l<t&&(t<(l+=r=Math.max(5,Math.floor(1.5*r)))&&(r-=l-t),{scrollTop:a,clientHeight:o,scrollHeight:s}=u,a=a+r*(n?-1:1),u.scrollTop=a,g&&(g.scrollTop=a),h&&(h.scrollTop=a),(n?a<s-o:0<=a)&&(this.wheelTime=setTimeout(w,10)),this.wheelYTotal=l,this.wheelYInterval=r,p.emitEvent("scroll",{type:renderType,fixed:e,scrollTop:u.scrollTop,scrollLeft:u.scrollLeft,scrollHeight:u.scrollHeight,scrollWidth:u.scrollWidth,bodyHeight:m,bodyWidth:v,isX:d,isY:c},i))});w()},wheelEvent(e){var{deltaY:l,deltaX:t}=e,{$el:r,$parent:o}=this,{$refs:s,highlightHoverRow:a,scrollYLoad:i,lastScrollTop:n,lastScrollLeft:d,rowOpts:c}=o,s=s.tableBody,s=s.$el,p=l<0;(p?r.scrollTop<=0:r.scrollTop>=r.scrollHeight-r.clientHeight)||(r=r.scrollTop+l,t=(s=s.scrollLeft+t)!==d,(d=r!==n)&&(e.preventDefault(),o.lastScrollTop=r,o.lastScrollLeft=s,o.lastScrollTime=Date.now(),(c.isHover||a)&&o.clearHoverRow(),this.handleWheel(e,p,l,t,d),i)&&o.triggerScrollYEvent(e))}}};
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("./util"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body",isVMScrollProcess=e=>{var l=e.delayHover,{lastScrollTime:e,_isResize:t}=e;return!!(t||e&&Date.now()<e+l)};function renderLine(e,l,t){var l=l.$parent,{row:r,column:o}=t,a=l.afterFullData,s=l.treeConfig,i=l.computeTreeOpts,{slots:o,treeNode:d}=o,n=l.fullAllDataRowIdData;if(o&&o.line)return l.callSlot(o.line,t,e);o=n[(0,_util.getRowid)(l,r)];let c=0,p=null;o&&(c=o.level,p=o.items[o._index-1]);n=l.eqRow(a[0],r);return s&&d&&(i.showLine||i.line)?[e("div",{class:"vxe-tree--line-wrapper"},[e("div",{class:"vxe-tree--line",style:{height:`${n?1:(0,_util.calcTreeLine)(t,p)}px`,left:c*i.indent+(c?2-(0,_util.getOffsetSize)(l):0)+16+"px"}})])]:[]}function renderTdColumn(e,A,l,t,r,L,q,o,a,s,i,d,n,F,N){let c=A.$parent;var V=c,p=c,H=c.fullAllDataRowIdData,{columnKey:V,height:u,showOverflow:g,cellClassName:j,cellStyle:x,align:P,spanMethod:W,mouseConfig:X,editConfig:K,editRules:v,tooltipConfig:Y}=V,{tableData:p,overflowX:m,currentColumn:z,scrollXLoad:G,scrollYLoad:J,isCalcCellHeight:Q,mergeList:w,editStore:Z,isAllOverflow:ee,validErrorMaps:f}=p,{afterFullData:y,scrollXStore:le,scrollYStore:te}=c,re=c.computeCellOpts,h=c.computeValidOpts,oe=c.computeCheckboxOpts,ae=c.computeEditOpts,b=c.computeTooltipOpts,se=c.computeRowOpts,ie=c.computeRowDragOpts,C=c.computeDefaultRowHeight,{disabledMethod:de,isCrossDrag:ne,isPeerDrag:ce}=ie,pe=c.computeColumnOpts,ue=c.computeMouseOpts,ge=c.computeAreaOpts.selectCellToRow,{type:xe,cellRender:ve,editRender:me,align:we,showOverflow:_,className:fe,treeNode:ye,slots:he}=d,re=re.verticalAlign,Z=Z.actived,E=se.height,R=d.id,S=me||ve,S=S?renderer.get(S.name):null,be=S?S.tableCellClassName||S.cellClassName:null,Ce=S?S.tableCellStyle||S.cellStyle:"";let O=b.showAll;var b=c.getColumnIndex(d),D=c.getVTColumnIndex(d),_e=(0,_utils.isEnableConf)(me);let $=r?d.fixed!==r:d.fixed&&m;m=_xeUtils.default.isUndefined(_)||_xeUtils.default.isNull(_)?g:_,_="ellipsis"===m;let T="title"===m,I=!0===m||"tooltip"===m;m=g||T||I||_;let Ee;var B={},H=H[t],we=we||(S?S.tableCellAlign:"")||P,S=f[t+":"+R],P=v&&h.showMessage&&("default"===h.message?u||1<p.length:"inline"===h.message),f={colid:R};let M={$table:c,$grid:c.xegrid,isEdit:!1,seq:l,rowid:t,row:o,rowIndex:a,$rowIndex:s,_rowIndex:i,column:d,columnIndex:b,$columnIndex:n,_columnIndex:D,fixed:r,type:renderType,isHidden:!!$,level:q,visibleData:y,data:p,items:N},k=!1,Re=!1;if((k=se.drag?"row"===ie.trigger||d.dragSort&&"cell"===ie.trigger:k)&&(Re=!(!de||!de(M))),(T||I||O||Y)&&(B.mouseenter=e=>{isVMScrollProcess(c)||(T?(0,_dom.updateCellTitle)(e.currentTarget,d):(I||O)&&c.triggerBodyTooltipEvent(e,M),c.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},M),e))}),(I||O||Y)&&(B.mouseleave=e=>{isVMScrollProcess(c)||((I||O)&&c.handleTargetLeaveEvent(e),c.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},M),e))}),(k||oe.range||X)&&(B.mousedown=e=>{c.triggerCellMousedownEvent(e,M)}),k&&(B.mouseup=c.triggerCellMouseupEvent),B.click=e=>{c.triggerCellClickEvent(e,M)},B.dblclick=e=>{c.triggerCellDblclickEvent(e,M)},w.length){v=(0,_util.mergeBodyMethod)(w,i,D);if(v){var{rowspan:u,colspan:R}=v;if(!u||!R)return null;1<u&&(f.rowspan=u),1<R&&(f.colspan=R)}}else if(W){var{rowspan:l=1,colspan:t=1}=W(M)||{};if(!l||!t)return null;1<l&&(f.rowspan=l),1<t&&(f.colspan=t)}!($=$&&w&&(1<f.colspan||1<f.rowspan)?!1:$)&&K&&(me||ve)&&(ae.showStatus||ae.showUpdateStatus)&&(Ee=c.isUpdateByRow(o,d.field));a=[];$&&g&&ee?a.push(e("div",{class:["vxe-cell",{"c--title":T,"c--tooltip":I,"c--ellipsis":_}],style:{maxHeight:m&&(E||C)?`${E||C}px`:""}})):(a.push(...renderLine(e,A,M),e("div",{class:["vxe-cell",{"c--title":T,"c--tooltip":I,"c--ellipsis":_}],style:{maxHeight:m&&(E||C)?`${E||C}px`:""},attrs:{title:T?c.getCellLabel(o,d):null}},d.renderCell(e,M))),P&&S&&(s=S.rule,b=he?he.valid:null,r=Object.assign(Object.assign(Object.assign({},M),S),{rule:S}),a.push(e("div",{class:["vxe-cell--valid-error-tip",(0,_utils.getClass)(h.className,S)],style:s&&s.maxWidth?{width:s.maxWidth+"px"}:void 0},[e("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(h.theme||"normal")},[b?c.callSlot(b,r,e):[e("span",{class:"vxe-cell--valid-error-msg"},S.content)]])]))));let U="";y=Q?H.height:0,m?E?U=E+"px":ee||(U=`${y||C||18}px`):U=`${y||C||18}px`,X&&ue.area&&ge&&((n||!0!==ge)&&ge!==d.field||a.push(e("div",{class:"vxe-cell--area-status"}))),p=!d.resizeWidth&&("auto"===d.minWidth||"auto"===d.width);let Se=!1;return(J&&(i<te.visibleStartIndex||i>te.visibleEndIndex)||G&&!d.fixed&&(D<le.visibleStartIndex||D>le.visibleEndIndex))&&(Se=!0),e("td",{class:["vxe-body--column",d.id,{["col--"+we]:we,["col--vertical-"+re]:re,["col--"+xe]:xe,"col--last":n===F.length-1,"col--tree-node":ye,"col--edit":_e,"col--ellipsis":m,"fixed--width":!p,"fixed--hidden":$,"is--drag-cell":k&&(ne||ce||!q),"is--drag-disabled":Re,"col--dirty":Ee,"col--active":K&&_e&&Z.row===o&&(Z.column===d||"row"===ae.mode),"col--valid-error":!!S,"col--current":z===d},(0,_utils.getClass)(be,M),(0,_utils.getClass)(fe,M),(0,_utils.getClass)(j,M)],key:V||G||J||pe.useKey||se.useKey||pe.drag?d.id:n,attrs:f,style:Object.assign({height:U},_xeUtils.default.isFunction(Ce)?Ce(M):Ce,_xeUtils.default.isFunction(x)?x(M):x),on:B},Se||L&&$?[]:a)}function renderRows(m,w,f,y,h,b){let C=w.$parent;var e=C,l=C,t=C;let{stripe:_,rowKey:E,highlightHoverRow:R,rowClassName:S,rowStyle:O,showOverflow:D,editConfig:$,treeConfig:T}=e,{hasFixedColumn:I,treeExpandedMaps:B,scrollXLoad:M,scrollYLoad:k,rowExpandedMaps:U,expandColumn:A,selectRadioRow:L,pendingRowMaps:q,isDragColMove:F}=l,N=t.fullAllDataRowIdData,V=C.computeCheckboxOpts,H=C.computeRadioOpts,j=C.computeTreeOpts,P=C.computeEditOpts,W=C.computeRowOpts,X=C.computeColumnOpts,z=C.computeColumnDragOpts,{transform:K,seqMode:G}=j,J=j.children||j.childrenField,Y=[];return h.forEach((t,r)=>{var e={};let o,a=(o=C.getRowIndex(t),(W.isHover||R)&&(e.mouseenter=e=>{isVMScrollProcess(C)||C.triggerHoverEvent(e,{row:t,rowIndex:o})},e.mouseleave=()=>{isVMScrollProcess(C)||C.clearHoverRow()}),(0,_util.getRowid)(C,t));var l=N[a];let s=0,i=-1,d=0;l&&(s=l.level,i=T&&K&&"increasing"===G?l._index+1:l.seq,d=l._index);var l={$table:C,seq:i,rowid:a,fixed:f,type:renderType,level:s,row:t,rowIndex:o,$rowIndex:r,_rowIndex:d},n=A&&!!U[a];let c=!1,p=[],u=!1;$&&(u=C.isInsertByRow(t)),!T||k||K||(p=t[J],c=p&&p.length&&!!B[a]),!W.drag||T&&!K||(e.dragstart=C.handleRowDragDragstartEvent,e.dragend=C.handleRowDragDragendEvent,e.dragover=C.handleRowDragDragoverEvent);var g,x=["vxe-body--row",T?"row--level-"+s:"",{"row--stripe":_&&(d+1)%2==0,"is--new":u,"is--expand-row":n,"is--expand-tree":c,"row--new":u&&(P.showStatus||P.showInsertStatus),"row--radio":H.highlight&&L===t,"row--checked":V.highlight&&C.isCheckedByCheckboxRow(t),"row--pending":!!q[a]},S?_xeUtils.default.isFunction(S)?S(l):S:""],v=b.map((e,l)=>renderTdColumn(m,w,i,a,f,y,s,t,o,r,d,e,l,b,h));Y.push(X.drag&&z.animation?m("transition-group",{props:{tag:"tr",name:"vxe-header--col-list"+(F?"":"-disabled")},class:x,attrs:{rowid:a},style:O?_xeUtils.default.isFunction(O)?O(l):O:void 0,key:E||M||k||W.useKey||W.drag||X.drag||T?a:r,nativeOn:e},v):m("tr",{class:x,attrs:{rowid:a},style:O?_xeUtils.default.isFunction(O)?O(l):O:void 0,key:E||M||k||W.useKey||W.drag||X.drag||T?a:r,on:e},v)),n&&({height:x,padding:l}=C.computeExpandOpts,v={},n=(x&&(v.height=x+"px"),T&&(v.paddingLeft=s*j.indent+30+"px"),A).showOverflow,n=_xeUtils.default.isUndefined(n)||_xeUtils.default.isNull(n)?D:n,g={$table:C,seq:i,column:A,fixed:f,type:renderType,level:s,row:t,rowIndex:o,$rowIndex:r,_rowIndex:d},Y.push(m("tr",{class:["vxe-body--expanded-row",{"is--padding":l}],key:"expand_"+a,style:O?_xeUtils.default.isFunction(O)?O(g):O:void 0,on:e},[m("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":f&&!I,"col--ellipsis":n},attrs:{colspan:b.length}},[m("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":x},style:v},[A.renderData(m,g)])])]))),c&&Y.push(...renderRows(m,w,f,y,p,b))}),Y}var _default=exports.default={name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},mounted(){var e=this,l=e.fixedType,t=e.$parent.elemStore,l=`${l||"main"}-body-`;t[l+"wrapper"]=e.$refs.refElem,t[l+"scroll"]=e.$refs.refBodyScroll,t[l+"table"]=e.$refs.refBodyTable,t[l+"colgroup"]=e.$refs.refBodyColgroup,t[l+"list"]=e.$refs.refBodyTBody,t[l+"xSpace"]=e.$refs.refBodyXSpace,t[l+"ySpace"]=e.$refs.refBodyYSpace,t[l+"emptyBlock"]=e.$refs.refBodyEmptyBlock},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null},render(t){let l=this.$parent;var e=l,r=l,o=l,{xID:a,$scopedSlots:s}=l;let{fixedColumn:i,fixedType:d,tableColumn:n}=this;var{showOverflow:c,spanMethod:p,footerSpanMethod:u,mouseConfig:g}=e,{isGroup:r,tableData:x,scrollXLoad:v,scrollYLoad:m,isAllOverflow:w,isDragRowMove:f,expandColumn:y,dragRow:h,dragCol:b}=r,{visibleColumn:o,fullAllDataRowIdData:C,fullColumnIdData:_}=o,E=l.computeRowOpts,R=l.computeEmptyOpts,S=l.computeMouseOpts,O=l.computeRowDragOpts,D=l.computeLeftFixedWidth,$=l.computeRightFixedWidth;let T=x,I=n,B=!(v||m||c&&w)||y||p||u?!1:!0;d&&(I=o,B)&&(I=i||[]),m&&h&&2<T.length&&(x=C[(0,_util.getRowid)(l,h)])&&(c=x._index,w=T[0],y=T[T.length-1],p=C[(0,_util.getRowid)(l,w)],u=C[(0,_util.getRowid)(l,y)],p)&&u&&(o=p._index,x=u._index,c<o?T=[h].concat(T):x<c&&(T=T.concat([h]))),d||r||v&&b&&2<I.length&&(w=_[b.id])&&(C=w._index,y=I[0],p=I[I.length-1],u=_[y.id],o=_[p.id],u)&&o&&(x=u._index,c=o._index,C<x?I=[b].concat(I):c<C&&(I=I.concat([b])));let M;M=s.empty?s.empty.call(this,{$table:l,$grid:l.xegrid}):(r=(h=R.name?renderer.get(R.name):null)?h.renderTableEmpty||h.renderTableEmptyView||h.renderEmpty:null)?(0,_vn.getSlotVNs)(r.call(this,t,R,{$table:l})):e.emptyText||getI18n("vxe.table.emptyText");v={scroll(e){l.triggerBodyScrollEvent(e,d)}};return(m||D||$)&&(v.wheel=l.triggerBodyWheelEvent),t("div",{ref:"refElem",class:["vxe-table--body-wrapper",d?`fixed-${d}--wrapper`:"body--wrapper"],attrs:{xid:a}},[t("div",{ref:"refBodyScroll",class:"vxe-table--body-inner-wrapper",on:v},[d?renderEmptyElement(l):t("div",{ref:"refBodyXSpace",class:"vxe-body--x-space"}),t("div",{ref:"refBodyYSpace",class:"vxe-body--y-space"}),t("table",{ref:"refBodyTable",class:"vxe-table--body",attrs:{xid:a,cellspacing:0,cellpadding:0,border:0}},[t("colgroup",{ref:"refBodyColgroup"},I.map((e,l)=>t("col",{attrs:{name:e.id},key:l}))),E.drag&&O.animation?t("transition-group",{ref:"refBodyTBody",props:{tag:"tbody",name:"vxe-body--row-list"+(f?"":"-disabled")}},renderRows(t,this,d,B,T,I)):t("tbody",{ref:"refBodyTBody"},renderRows(t,this,d,B,T,I))]),t("div",{class:"vxe-table--checkbox-range"}),g&&S.area?t("div",{class:"vxe-table--cell-area"},[t("span",{class:"vxe-table--cell-main-area"},S.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellAreaExtendMousedownEvent&&l.triggerCellAreaExtendMousedownEvent(e,{$table:l,fixed:d,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-copy-area"}),t("span",{class:"vxe-table--cell-extend-area"}),t("span",{class:"vxe-table--cell-multi-area"}),t("span",{class:"vxe-table--cell-active-area"})]):renderEmptyElement(l),d?renderEmptyElement(l):t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},M)])])])}};
@@ -39,28 +39,35 @@ function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
39
39
  }
40
40
  }
41
41
  function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIndex) {
42
+ const props = _vm;
43
+ const $xeTable = _vm.$parent;
44
+ const tableProps = $xeTable;
45
+ const tableReactData = $xeTable;
46
+ const tableInternalData = $xeTable;
42
47
  const {
43
- $parent: $xetable,
44
48
  fixedType
45
- } = _vm;
49
+ } = props;
46
50
  const {
47
- $listeners: tableListeners,
48
51
  footerCellClassName,
49
52
  footerCellStyle,
50
53
  footerAlign: allFooterAlign,
51
- mergeFooterList,
52
54
  footerSpanMethod,
53
55
  align: allAlign,
54
- scrollXLoad,
55
56
  columnKey,
56
- columnOpts,
57
- showFooterOverflow: allColumnFooterOverflow,
58
- currentColumn,
59
- overflowX,
57
+ showFooterOverflow: allColumnFooterOverflow
58
+ } = tableProps;
59
+ const {
60
+ scrollXLoad,
60
61
  scrollYLoad,
61
- scrollbarWidth,
62
- tooltipOpts
63
- } = $xetable;
62
+ overflowX,
63
+ currentColumn,
64
+ mergeFooterList
65
+ } = tableReactData;
66
+ const {
67
+ scrollXStore
68
+ } = tableInternalData;
69
+ const tooltipOpts = $xeTable.computeTooltipOpts;
70
+ const columnOpts = $xeTable.computeColumnOpts;
64
71
  return tableColumn.map((column, $columnIndex) => {
65
72
  const {
66
73
  type,
@@ -73,10 +80,10 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
73
80
  } = column;
74
81
  const renderOpts = editRender || cellRender;
75
82
  const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
76
- const showAllTip = tooltipOpts.showAll || tooltipOpts.enabled;
83
+ const showAllTip = tooltipOpts.showAll;
77
84
  const isColGroup = column.children && column.children.length;
78
85
  const fixedHiddenColumn = fixedType ? column.fixed !== fixedType && !isColGroup : column.fixed && overflowX;
79
- const footOverflow = _xeUtils.default.isUndefined(showFooterOverflow) || _xeUtils.default.isNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
86
+ const footOverflow = _xeUtils.default.eqNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
80
87
  const footAlign = footerAlign || (compConf ? compConf.tableFooterCellAlign : '') || allFooterAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
81
88
  let showEllipsis = footOverflow === 'ellipsis';
82
89
  const showTitle = footOverflow === 'title';
@@ -86,13 +93,14 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
86
93
  colid: column.id
87
94
  };
88
95
  const tfOns = {};
89
- const columnIndex = $xetable.getColumnIndex(column);
90
- const _columnIndex = $xetable.getVTColumnIndex(column);
96
+ const columnIndex = $xeTable.getColumnIndex(column);
97
+ const _columnIndex = $xeTable.getVTColumnIndex(column);
91
98
  const itemIndex = _columnIndex;
92
99
  const cellParams = {
93
- $table: $xetable,
94
- $grid: $xetable.xegrid,
100
+ $table: $xeTable,
101
+ $grid: $xeTable.xegrid,
95
102
  row,
103
+ rowIndex: _rowIndex,
96
104
  _rowIndex,
97
105
  $rowIndex,
98
106
  column,
@@ -105,7 +113,7 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
105
113
  type: renderType,
106
114
  data: footerTableData
107
115
  };
108
- // 虚拟滚动不支持动态高度
116
+ // 纵向虚拟滚动不支持动态行高
109
117
  if (scrollXLoad && !hasEllipsis) {
110
118
  showEllipsis = hasEllipsis = true;
111
119
  }
@@ -114,31 +122,27 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
114
122
  if (showTitle) {
115
123
  (0, _dom.updateCellTitle)(evnt.currentTarget, column);
116
124
  } else if (showTooltip || showAllTip) {
117
- $xetable.triggerFooterTooltipEvent(evnt, cellParams);
125
+ $xeTable.triggerFooterTooltipEvent(evnt, cellParams);
118
126
  }
119
127
  };
120
128
  }
121
129
  if (showTooltip || showAllTip) {
122
130
  tfOns.mouseleave = evnt => {
123
131
  if (showTooltip || showAllTip) {
124
- $xetable.handleTargetLeaveEvent(evnt);
132
+ $xeTable.handleTargetLeaveEvent(evnt);
125
133
  }
126
134
  };
127
135
  }
128
- if (tableListeners['footer-cell-click']) {
129
- tfOns.click = evnt => {
130
- $xetable.emitEvent('footer-cell-click', Object.assign({
131
- cell: evnt.currentTarget
132
- }, cellParams), evnt);
133
- };
134
- }
135
- if (tableListeners['footer-cell-dblclick']) {
136
- tfOns.dblclick = evnt => {
137
- $xetable.emitEvent('footer-cell-dblclick', Object.assign({
138
- cell: evnt.currentTarget
139
- }, cellParams), evnt);
140
- };
141
- }
136
+ tfOns.click = evnt => {
137
+ $xeTable.dispatchEvent('footer-cell-click', Object.assign({
138
+ cell: evnt.currentTarget
139
+ }, cellParams), evnt);
140
+ };
141
+ tfOns.dblclick = evnt => {
142
+ $xeTable.dispatchEvent('footer-cell-dblclick', Object.assign({
143
+ cell: evnt.currentTarget
144
+ }, cellParams), evnt);
145
+ };
142
146
  // 合并行或列
143
147
  if (mergeFooterList.length) {
144
148
  const spanRest = mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex);
@@ -174,6 +178,10 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
174
178
  }
175
179
  }
176
180
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
181
+ let isPreLoadStatus = false;
182
+ if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex || _columnIndex > scrollXStore.visibleEndIndex)) {
183
+ isPreLoadStatus = true;
184
+ }
177
185
  return h('td', {
178
186
  class: ['vxe-footer--column', column.id, {
179
187
  [`col--${footAlign}`]: footAlign,
@@ -185,7 +193,7 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
185
193
  'col--current': currentColumn === column
186
194
  }, (0, _utils.getClass)(footerClassName, cellParams), (0, _utils.getClass)(footerCellClassName, cellParams)],
187
195
  attrs,
188
- style: footerCellStyle ? _xeUtils.default.isFunction(footerCellStyle) ? footerCellStyle(cellParams) : footerCellStyle : null,
196
+ style: footerCellStyle ? _xeUtils.default.isFunction(footerCellStyle) ? footerCellStyle(cellParams) : footerCellStyle : undefined,
189
197
  on: tfOns,
190
198
  key: columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag ? column.id : $columnIndex
191
199
  }, [h('div', {
@@ -194,26 +202,27 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
194
202
  'c--tooltip': showTooltip,
195
203
  'c--ellipsis': showEllipsis
196
204
  }]
197
- }, column.renderFooter(h, cellParams))]);
198
- }).concat(scrollbarWidth ? [h('td', {
199
- key: `gr${$rowIndex}`,
200
- class: 'vxe-footer--gutter col--gutter'
201
- })] : []);
205
+ }, isPreLoadStatus ? [] : column.renderFooter(h, cellParams))]);
206
+ });
202
207
  }
203
208
  function renderHeads(h, _vm, renderColumnList) {
204
- const $xeTable = _vm.$parent;
205
209
  const props = _vm;
206
- const columnOpts = $xeTable.computeColumnOpts;
207
- const columnDragOpts = $xeTable.computeColumnDragOpts;
210
+ const $xeTable = _vm.$parent;
211
+ const tableProps = $xeTable;
212
+ const tableReactData = $xeTable;
208
213
  const {
209
214
  fixedType,
210
215
  footerTableData
211
216
  } = props;
212
217
  const {
213
218
  footerRowClassName,
214
- footerRowStyle,
219
+ footerRowStyle
220
+ } = tableProps;
221
+ const {
215
222
  isDragColMove
216
- } = $xeTable;
223
+ } = tableReactData;
224
+ const columnOpts = $xeTable.computeColumnOpts;
225
+ const columnDragOpts = $xeTable.computeColumnDragOpts;
217
226
  return footerTableData.map((row, $rowIndex) => {
218
227
  const _rowIndex = $rowIndex;
219
228
  const rowParams = {
@@ -231,53 +240,69 @@ function renderHeads(h, _vm, renderColumnList) {
231
240
  tag: 'tr',
232
241
  name: `vxe-header--col-list${isDragColMove ? '' : '-disabled'}`,
233
242
  class: ['vxe-footer--row', footerRowClassName ? _xeUtils.default.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''],
234
- style: footerRowStyle ? _xeUtils.default.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle : null
243
+ style: footerRowStyle ? _xeUtils.default.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle : undefined
235
244
  }
236
245
  }, renderRows(h, _vm, renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
237
246
  }
238
247
  return h('tr', {
239
248
  key: $rowIndex,
240
249
  class: ['vxe-footer--row', footerRowClassName ? _xeUtils.default.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''],
241
- style: footerRowStyle ? _xeUtils.default.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle : null
250
+ style: footerRowStyle ? _xeUtils.default.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle : undefined
242
251
  }, renderRows(h, _vm, renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
243
252
  });
244
253
  }
245
254
  var _default = exports.default = {
246
255
  name: 'VxeTableFooter',
247
256
  props: {
248
- footerTableData: Array,
249
- tableColumn: Array,
250
- fixedColumn: Array,
251
- fixedType: String,
252
- size: String
257
+ footerTableData: {
258
+ type: Array,
259
+ default: () => []
260
+ },
261
+ tableColumn: {
262
+ type: Array,
263
+ default: () => []
264
+ },
265
+ fixedColumn: {
266
+ type: Array,
267
+ default: () => []
268
+ },
269
+ fixedType: {
270
+ type: String,
271
+ default: null
272
+ }
253
273
  },
254
274
  mounted() {
275
+ const _vm = this;
276
+ const props = _vm;
277
+ const $xeTable = _vm.$parent;
278
+ const tableInternalData = $xeTable;
255
279
  const {
256
- $parent: $xetable,
257
- $el,
258
- $refs,
259
280
  fixedType
260
- } = this;
281
+ } = props;
261
282
  const {
262
283
  elemStore
263
- } = $xetable;
284
+ } = tableInternalData;
264
285
  const prefix = `${fixedType || 'main'}-footer-`;
265
- elemStore[`${prefix}wrapper`] = $el;
266
- elemStore[`${prefix}table`] = $refs.table;
267
- elemStore[`${prefix}colgroup`] = $refs.colgroup;
268
- elemStore[`${prefix}list`] = $refs.tfoot;
269
- elemStore[`${prefix}xSpace`] = $refs.xSpace;
286
+ elemStore[`${prefix}wrapper`] = _vm.$refs.refElem;
287
+ elemStore[`${prefix}scroll`] = _vm.$refs.refFooterScroll;
288
+ elemStore[`${prefix}table`] = _vm.$refs.refFooterTable;
289
+ elemStore[`${prefix}colgroup`] = _vm.$refs.refFooterColgroup;
290
+ elemStore[`${prefix}list`] = _vm.$refs.refFooterTFoot;
291
+ elemStore[`${prefix}xSpace`] = _vm.$refs.refFooterXSpace;
270
292
  },
271
293
  destroyed() {
294
+ const props = this;
295
+ const $xeTable = this.$parent;
296
+ const tableInternalData = $xeTable;
272
297
  const {
273
- $parent: $xetable,
274
298
  fixedType
275
- } = this;
299
+ } = props;
276
300
  const {
277
301
  elemStore
278
- } = $xetable;
302
+ } = tableInternalData;
279
303
  const prefix = `${fixedType || 'main'}-footer-`;
280
304
  elemStore[`${prefix}wrapper`] = null;
305
+ elemStore[`${prefix}scroll`] = null;
281
306
  elemStore[`${prefix}table`] = null;
282
307
  elemStore[`${prefix}colgroup`] = null;
283
308
  elemStore[`${prefix}list`] = null;
@@ -290,7 +315,7 @@ var _default = exports.default = {
290
315
  const tableReactData = $xeTable;
291
316
  const tableInternalData = $xeTable;
292
317
  const {
293
- tId
318
+ xID
294
319
  } = $xeTable;
295
320
  const {
296
321
  fixedType,
@@ -310,22 +335,22 @@ var _default = exports.default = {
310
335
  isGroup,
311
336
  scrollXLoad,
312
337
  scrollYLoad,
313
- scrollbarWidth,
314
338
  dragCol
315
339
  } = tableReactData;
316
340
  let renderColumnList = tableColumn;
341
+ let isOptimizeMode = false;
317
342
  // 如果是使用优化模式
318
- if (fixedType) {
319
- // 如果是使用优化模式
320
- if (scrollXLoad || scrollYLoad || allColumnFooterOverflow) {
343
+ if (scrollXLoad || scrollYLoad || allColumnFooterOverflow) {
344
+ if (spanMethod || footerSpanMethod) {
321
345
  // 如果不支持优化模式
322
- if (spanMethod || footerSpanMethod) {
323
- renderColumnList = visibleColumn;
324
- } else {
325
- renderColumnList = fixedColumn || [];
326
- }
327
346
  } else {
328
- renderColumnList = visibleColumn;
347
+ isOptimizeMode = true;
348
+ }
349
+ }
350
+ if (fixedType) {
351
+ renderColumnList = visibleColumn;
352
+ if (isOptimizeMode) {
353
+ renderColumnList = fixedColumn || [];
329
354
  }
330
355
  }
331
356
  if (!fixedType && !isGroup) {
@@ -352,34 +377,38 @@ var _default = exports.default = {
352
377
  }
353
378
  }
354
379
  }
355
- const ons = {};
356
- if (!fixedType) {
357
- ons.scroll = this.scrollEvent;
358
- }
359
380
  return h('div', {
381
+ ref: 'refElem',
360
382
  class: ['vxe-table--footer-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'],
361
383
  attrs: {
362
- xid: tId
363
- },
364
- on: ons
384
+ xid: xID
385
+ }
386
+ }, [h('div', {
387
+ ref: 'refFooterScroll',
388
+ class: 'vxe-table--footer-inner-wrapper',
389
+ on: {
390
+ scroll(evnt) {
391
+ $xeTable.triggerFooterScrollEvent(evnt, fixedType);
392
+ }
393
+ }
365
394
  }, [fixedType ? renderEmptyElement($xeTable) : h('div', {
366
- class: 'vxe-body--x-space',
367
- ref: 'xSpace'
395
+ ref: 'refFooterXSpace',
396
+ class: 'vxe-body--x-space'
368
397
  }), h('table', {
398
+ ref: 'refFooterTable',
369
399
  class: 'vxe-table--footer',
370
400
  attrs: {
371
- xid: tId,
401
+ xid: xID,
372
402
  cellspacing: 0,
373
403
  cellpadding: 0,
374
404
  border: 0
375
- },
376
- ref: 'table'
405
+ }
377
406
  }, [
378
407
  /**
379
408
  * 列宽
380
409
  */
381
410
  h('colgroup', {
382
- ref: 'colgroup'
411
+ ref: 'refFooterColgroup'
383
412
  }, renderColumnList.map((column, $columnIndex) => {
384
413
  return h('col', {
385
414
  attrs: {
@@ -387,68 +416,12 @@ var _default = exports.default = {
387
416
  },
388
417
  key: $columnIndex
389
418
  });
390
- }).concat(scrollbarWidth ? [h('col', {
391
- attrs: {
392
- name: 'col_gutter'
393
- }
394
- })] : [])),
419
+ })),
395
420
  /**
396
- * 底部
397
- */
421
+ * 底部
422
+ */
398
423
  h('tfoot', {
399
- ref: 'tfoot'
400
- }, renderHeads(h, this, renderColumnList))])]);
401
- },
402
- methods: {
403
- /**
404
- * 滚动处理
405
- * 如果存在列固定左侧,同步更新滚动状态
406
- * 如果存在列固定右侧,同步更新滚动状态
407
- */
408
- scrollEvent(evnt) {
409
- const $xeTable = this.$parent;
410
- const tableInternalData = $xeTable;
411
- const {
412
- inVirtualScroll,
413
- inBodyScroll
414
- } = tableInternalData;
415
- if (inVirtualScroll) {
416
- return;
417
- }
418
- if (inBodyScroll) {
419
- return;
420
- }
421
- const {
422
- fixedType
423
- } = this;
424
- const {
425
- tableHeader,
426
- tableBody,
427
- tableFooter
428
- } = $xeTable.$refs;
429
- const headerElem = tableHeader ? tableHeader.$el : null;
430
- const footerElem = tableFooter ? tableFooter.$el : null;
431
- if (!footerElem) {
432
- return;
433
- }
434
- const bodyElem = tableBody ? tableBody.$el : null;
435
- if (!bodyElem) {
436
- return;
437
- }
438
- const xHandleEl = $xeTable.$refs.refScrollXHandleElem;
439
- const scrollLeft = footerElem.scrollLeft;
440
- const isRollX = true;
441
- const isRollY = false;
442
- const scrollTop = bodyElem.scrollTop;
443
- tableInternalData.inFooterScroll = true;
444
- (0, _dom.setScrollLeft)(xHandleEl, scrollLeft);
445
- (0, _dom.setScrollLeft)(headerElem, scrollLeft);
446
- (0, _dom.setScrollLeft)(bodyElem, scrollLeft);
447
- $xeTable.triggerScrollXEvent(evnt);
448
- $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
449
- type: renderType,
450
- fixed: fixedType
451
- });
452
- }
424
+ ref: 'refFooterTFoot'
425
+ }, renderHeads(h, this, renderColumnList))])])]);
453
426
  }
454
427
  };
@@ -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"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",{renderer,renderEmptyElement}=_ui.VxeUI;function mergeFooterMethod(l,t,r){for(let e=0;e<l.length;e++){var{row:o,col:n,rowspan:i,colspan:a}=l[e];if(-1<n&&-1<o&&i&&a){if(o===t&&n===r)return{rowspan:i,colspan:a};if(o<=t&&t<o+i&&n<=r&&r<n+a)return{rowspan:0,colspan:0}}}}function renderRows(v,e,y,h,w,b,_){let{$parent:C,fixedType:$}=e,{$listeners:T,footerCellClassName:S,footerCellStyle:F,footerAlign:E,mergeFooterList:I,footerSpanMethod:k,align:L,scrollXLoad:O,columnKey:U,columnOpts:R,showFooterOverflow:A,currentColumn:M,overflowX:D,scrollYLoad:q,scrollbarWidth:l,tooltipOpts:X}=C;return y.map((l,e)=>{var{type:t,showFooterOverflow:r,footerAlign:o,align:n,footerClassName:i,editRender:a,cellRender:s}=l,a=a||s,s=a?renderer.get(a.name):null;let d=X.showAll||X.enabled;a=l.children&&l.children.length,a=$?l.fixed!==$&&!a:l.fixed&&D,r=_xeUtils.default.isUndefined(r)||_xeUtils.default.isNull(r)?A:r,o=o||(s?s.tableFooterCellAlign:"")||E||n||(s?s.tableCellAlign:"")||L;let c="ellipsis"===r,u="title"===r,p=!0===r||"tooltip"===r,f=u||p||c;var n={colid:l.id},s={},r=C.getColumnIndex(l),x=C.getVTColumnIndex(l),m=x;let g={$table:C,$grid:C.xegrid,row:w,_rowIndex:_,$rowIndex:b,column:l,columnIndex:r,$columnIndex:e,_columnIndex:x,itemIndex:m,items:w,fixed:$,type:renderType,data:h};if(O&&!f&&(c=f=!0),(u||p||d)&&(s.mouseenter=e=>{u?(0,_dom.updateCellTitle)(e.currentTarget,l):(p||d)&&C.triggerFooterTooltipEvent(e,g)}),(p||d)&&(s.mouseleave=e=>{(p||d)&&C.handleTargetLeaveEvent(e)}),T["footer-cell-click"]&&(s.click=e=>{C.emitEvent("footer-cell-click",Object.assign({cell:e.currentTarget},g),e)}),T["footer-cell-dblclick"]&&(s.dblclick=e=>{C.emitEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},g),e)}),I.length){r=mergeFooterMethod(I,_,x);if(r){var{rowspan:m,colspan:x}=r;if(!m||!x)return null;1<m&&(n.rowspan=m),1<x&&(n.colspan=x)}}else if(k){var{rowspan:r=1,colspan:m=1}=k(g)||{};if(!r||!m)return null;1<r&&(n.rowspan=r),1<m&&(n.colspan=m)}x=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);return v("td",{class:["vxe-footer--column",l.id,{["col--"+o]:o,["col--"+t]:t,"col--last":e===y.length-1,"fixed--width":!x,"fixed--hidden":a,"col--ellipsis":f,"col--current":M===l},(0,_utils.getClass)(i,g),(0,_utils.getClass)(S,g)],attrs:n,style:F?_xeUtils.default.isFunction(F)?F(g):F:null,on:s,key:U||O||q||R.useKey||R.drag?l.id:e},[v("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":p,"c--ellipsis":c}]},l.renderFooter(v,g))])}).concat(l?[v("td",{key:"gr"+b,class:"vxe-footer--gutter col--gutter"})]:[])}function renderHeads(o,n,i){let a=n.$parent;let s=a.computeColumnOpts,d=a.computeColumnDragOpts,{fixedType:c,footerTableData:u}=n,{footerRowClassName:p,footerRowStyle:f,isDragColMove:x}=a;return u.map((e,l)=>{var t=l,r={$table:a,row:e,_rowIndex:t,$rowIndex:l,fixed:c,type:renderType};return s.drag&&d.animation?o("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(x?"":"-disabled"),class:["vxe-footer--row",p?_xeUtils.default.isFunction(p)?p(r):p:""],style:f?_xeUtils.default.isFunction(f)?f(r):f:null}},renderRows(o,n,i,u,e,l,t)):o("tr",{key:l,class:["vxe-footer--row",p?_xeUtils.default.isFunction(p)?p(r):p:""],style:f?_xeUtils.default.isFunction(f)?f(r):f:null},renderRows(o,n,i,u,e,l,t))})}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:String,size:String},mounted(){var{$parent:e,$el:l,$refs:t,fixedType:r}=this,e=e.elemStore,r=`${r||"main"}-footer-`;e[r+"wrapper"]=l,e[r+"table"]=t.table,e[r+"colgroup"]=t.colgroup,e[r+"list"]=t.tfoot,e[r+"xSpace"]=t.xSpace},destroyed(){var{$parent:e,fixedType:l}=this,e=e.elemStore,l=`${l||"main"}-footer-`;e[l+"wrapper"]=null,e[l+"table"]=null,e[l+"colgroup"]=null,e[l+"list"]=null,e[l+"xSpace"]=null},render(t){var e=this.$parent,l=e.tId,{fixedType:r,fixedColumn:o,tableColumn:n}=this,{spanMethod:i,footerSpanMethod:a,showFooterOverflow:s}=e,{visibleColumn:d,fullColumnIdData:c}=e,{isGroup:u,scrollXLoad:p,scrollYLoad:f,scrollbarWidth:x,dragCol:m}=e;let g=r?!(p||f||s)||i||a?d:o||[]:n;r||u||p&&m&&2<g.length&&(f=c[m.id])&&(s=f._index,i=g[0],a=g[g.length-1],d=c[i.id],o=c[a.id],d)&&o&&(n=d._index,u=o._index,s<n?g=[m].concat(g):u<s&&(g=g.concat([m])));p={};return r||(p.scroll=this.scrollEvent),t("div",{class:["vxe-table--footer-wrapper",r?`fixed-${r}--wrapper`:"body--wrapper"],attrs:{xid:l},on:p},[r?renderEmptyElement(e):t("div",{class:"vxe-body--x-space",ref:"xSpace"}),t("table",{class:"vxe-table--footer",attrs:{xid:l,cellspacing:0,cellpadding:0,border:0},ref:"table"},[t("colgroup",{ref:"colgroup"},g.map((e,l)=>t("col",{attrs:{name:e.id},key:l})).concat(x?[t("col",{attrs:{name:"col_gutter"}})]:[])),t("tfoot",{ref:"tfoot"},renderHeads(t,this,g))])])},methods:{scrollEvent(e){var l,t,r,o,n=this.$parent,i=n,{inVirtualScroll:a,inBodyScroll:s}=i;a||s||(a=this.fixedType,{tableHeader:s,tableBody:l,tableFooter:r}=n.$refs,s=s?s.$el:null,(r=r?r.$el:null)&&(l=l?l.$el:null)&&(t=n.$refs.refScrollXHandleElem,r=r.scrollLeft,o=l.scrollTop,i.inFooterScroll=!0,(0,_dom.setScrollLeft)(t,r),(0,_dom.setScrollLeft)(s,r),(0,_dom.setScrollLeft)(l,r),n.triggerScrollXEvent(e),n.handleScrollEvent(e,!1,!0,o,r,{type:renderType,fixed:a})))}}};
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"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",{renderer,renderEmptyElement}=_ui.VxeUI;function mergeFooterMethod(r,t,o){for(let e=0;e<r.length;e++){var{row:l,col:n,rowspan:a,colspan:i}=r[e];if(-1<n&&-1<l&&a&&i){if(l===t&&n===o)return{rowspan:a,colspan:i};if(l<=t&&t<l+a&&n<=o&&o<n+i)return{rowspan:0,colspan:0}}}}function renderRows(w,e,y,h,b,F,_){let C=e.$parent;var r=C,t=C,o=C;let T=e.fixedType,{footerCellClassName:$,footerCellStyle:I,footerAlign:S,footerSpanMethod:E,align:O,columnKey:R,showFooterOverflow:k}=r,{scrollXLoad:A,scrollYLoad:D,overflowX:M,currentColumn:U,mergeFooterList:q}=t,L=o.scrollXStore,X=C.computeTooltipOpts,N=C.computeColumnOpts;return y.map((r,e)=>{var{type:t,showFooterOverflow:o,footerAlign:l,align:n,footerClassName:a,editRender:i,cellRender:s}=r,i=i||s,s=i?renderer.get(i.name):null;let d=X.showAll;i=r.children&&r.children.length,i=T?r.fixed!==T&&!i:r.fixed&&M,o=_xeUtils.default.eqNull(o)?k:o,l=l||(s?s.tableFooterCellAlign:"")||S||n||(s?s.tableCellAlign:"")||O;let u="ellipsis"===o,c="title"===o,f=!0===o||"tooltip"===o,p=c||f||u;var n={colid:r.id},s={},o=C.getColumnIndex(r),x=C.getVTColumnIndex(r),m=x;let g={$table:C,$grid:C.xegrid,row:b,rowIndex:_,_rowIndex:_,$rowIndex:F,column:r,columnIndex:o,$columnIndex:e,_columnIndex:x,itemIndex:m,items:b,fixed:T,type:renderType,data:h};if(A&&!p&&(u=p=!0),(c||f||d)&&(s.mouseenter=e=>{c?(0,_dom.updateCellTitle)(e.currentTarget,r):(f||d)&&C.triggerFooterTooltipEvent(e,g)}),(f||d)&&(s.mouseleave=e=>{(f||d)&&C.handleTargetLeaveEvent(e)}),s.click=e=>{C.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},g),e)},s.dblclick=e=>{C.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},g),e)},q.length){o=mergeFooterMethod(q,_,x);if(o){var{rowspan:m,colspan:o}=o;if(!m||!o)return null;1<m&&(n.rowspan=m),1<o&&(n.colspan=o)}}else if(E){var{rowspan:m=1,colspan:o=1}=E(g)||{};if(!m||!o)return null;1<m&&(n.rowspan=m),1<o&&(n.colspan=o)}m=!r.resizeWidth&&("auto"===r.minWidth||"auto"===r.width);let v=!1;return A&&!r.fixed&&(x<L.visibleStartIndex||x>L.visibleEndIndex)&&(v=!0),w("td",{class:["vxe-footer--column",r.id,{["col--"+l]:l,["col--"+t]:t,"col--last":e===y.length-1,"fixed--width":!m,"fixed--hidden":i,"col--ellipsis":p,"col--current":U===r},(0,_utils.getClass)(a,g),(0,_utils.getClass)($,g)],attrs:n,style:I?_xeUtils.default.isFunction(I)?I(g):I:void 0,on:s,key:R||A||D||N.useKey||N.drag?r.id:e},[w("div",{class:["vxe-cell",{"c--title":c,"c--tooltip":f,"c--ellipsis":u}]},v?[]:r.renderFooter(w,g))])})}function renderHeads(l,n,a){let i=n.$parent;var e=i,r=i;let{fixedType:s,footerTableData:d}=n,{footerRowClassName:u,footerRowStyle:c}=e,f=r.isDragColMove,p=i.computeColumnOpts,x=i.computeColumnDragOpts;return d.map((e,r)=>{var t=r,o={$table:i,row:e,_rowIndex:t,$rowIndex:r,fixed:s,type:renderType};return p.drag&&x.animation?l("transition-group",{key:r,props:{tag:"tr",name:"vxe-header--col-list"+(f?"":"-disabled"),class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(o):u:""],style:c?_xeUtils.default.isFunction(c)?c(o):c:void 0}},renderRows(l,n,a,d,e,r,t)):l("tr",{key:r,class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(o):u:""],style:c?_xeUtils.default.isFunction(c)?c(o):c:void 0},renderRows(l,n,a,d,e,r,t))})}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},mounted(){var e=this,r=e.fixedType,t=e.$parent.elemStore,r=`${r||"main"}-footer-`;t[r+"wrapper"]=e.$refs.refElem,t[r+"scroll"]=e.$refs.refFooterScroll,t[r+"table"]=e.$refs.refFooterTable,t[r+"colgroup"]=e.$refs.refFooterColgroup,t[r+"list"]=e.$refs.refFooterTFoot,t[r+"xSpace"]=e.$refs.refFooterXSpace},destroyed(){var e=this.fixedType,r=this.$parent.elemStore,e=`${e||"main"}-footer-`;r[e+"wrapper"]=null,r[e+"scroll"]=null,r[e+"table"]=null,r[e+"colgroup"]=null,r[e+"list"]=null,r[e+"xSpace"]=null},render(t){let r=this.$parent;var e=r,o=r,l=r,n=r.xID;let{fixedType:a,fixedColumn:i,tableColumn:s}=this;var{spanMethod:e,footerSpanMethod:d,showFooterOverflow:u}=e,{visibleColumn:l,fullColumnIdData:c}=l,{isGroup:o,scrollXLoad:f,scrollYLoad:p,dragCol:x}=o;let m=s,g=!(f||p||u)||e||d?!1:!0;return a&&(m=l,g)&&(m=i||[]),a||o||f&&x&&2<m.length&&(p=c[x.id])&&(u=p._index,e=m[0],d=m[m.length-1],l=c[e.id],o=c[d.id],l)&&o&&(f=l._index,p=o._index,u<f?m=[x].concat(m):p<u&&(m=m.concat([x]))),t("div",{ref:"refElem",class:["vxe-table--footer-wrapper",a?`fixed-${a}--wrapper`:"body--wrapper"],attrs:{xid:n}},[t("div",{ref:"refFooterScroll",class:"vxe-table--footer-inner-wrapper",on:{scroll(e){r.triggerFooterScrollEvent(e,a)}}},[a?renderEmptyElement(r):t("div",{ref:"refFooterXSpace",class:"vxe-body--x-space"}),t("table",{ref:"refFooterTable",class:"vxe-table--footer",attrs:{xid:n,cellspacing:0,cellpadding:0,border:0}},[t("colgroup",{ref:"refFooterColgroup"},m.map((e,r)=>t("col",{attrs:{name:e.id},key:r}))),t("tfoot",{ref:"refFooterTFoot"},renderHeads(t,this,m))])])])}};