vxe-table 4.17.6 → 4.17.8

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 (37) hide show
  1. package/es/style.css +1 -1
  2. package/es/table/src/body.js +12 -20
  3. package/es/table/src/cell.js +41 -35
  4. package/es/table/src/footer.js +3 -12
  5. package/es/table/src/header.js +4 -12
  6. package/es/table/src/table.js +122 -58
  7. package/es/ui/index.js +1 -1
  8. package/es/ui/src/log.js +1 -1
  9. package/lib/index.umd.js +56 -75
  10. package/lib/index.umd.min.js +1 -1
  11. package/lib/style.css +1 -1
  12. package/lib/table/src/body.js +10 -23
  13. package/lib/table/src/body.min.js +1 -1
  14. package/lib/table/src/cell.js +8 -4
  15. package/lib/table/src/cell.min.js +1 -1
  16. package/lib/table/src/footer.js +4 -15
  17. package/lib/table/src/footer.min.js +1 -1
  18. package/lib/table/src/header.js +5 -14
  19. package/lib/table/src/header.min.js +1 -1
  20. package/lib/table/src/table.js +30 -19
  21. package/lib/table/src/table.min.js +1 -1
  22. package/lib/ui/index.js +1 -1
  23. package/lib/ui/index.min.js +1 -1
  24. package/lib/ui/src/log.js +1 -1
  25. package/lib/ui/src/log.min.js +1 -1
  26. package/package.json +1 -1
  27. package/packages/table/src/body.ts +8 -20
  28. package/packages/table/src/cell.ts +41 -35
  29. package/packages/table/src/footer.ts +3 -11
  30. package/packages/table/src/header.ts +4 -12
  31. package/packages/table/src/table.ts +122 -57
  32. /package/es/{iconfont.1761877377602.ttf → iconfont.1762324094489.ttf} +0 -0
  33. /package/es/{iconfont.1761877377602.woff → iconfont.1762324094489.woff} +0 -0
  34. /package/es/{iconfont.1761877377602.woff2 → iconfont.1762324094489.woff2} +0 -0
  35. /package/lib/{iconfont.1761877377602.ttf → iconfont.1762324094489.ttf} +0 -0
  36. /package/lib/{iconfont.1761877377602.woff → iconfont.1762324094489.woff} +0 -0
  37. /package/lib/{iconfont.1761877377602.woff2 → iconfont.1762324094489.woff2} +0 -0
@@ -59,7 +59,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
59
59
  computeRowDragOpts,
60
60
  computeResizableOpts,
61
61
  computeVirtualXOpts,
62
- computeVirtualYOpts
62
+ computeVirtualYOpts,
63
+ computeIsBodyRenderOptimize
63
64
  } = $xeTable.getComputeMaps();
64
65
  const refElem = (0, _vue.ref)();
65
66
  const refBodyScroll = (0, _vue.ref)();
@@ -813,8 +814,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
813
814
  tableColumn
814
815
  } = props;
815
816
  const {
816
- spanMethod,
817
- footerSpanMethod,
818
817
  mouseConfig
819
818
  } = tableProps;
820
819
  const {
@@ -824,8 +823,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
824
823
  overflowX,
825
824
  scrollXLoad,
826
825
  scrollYLoad,
827
- isAllOverflow,
828
- expandColumn,
829
826
  dragRow,
830
827
  dragCol
831
828
  } = tableReactData;
@@ -836,18 +833,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
836
833
  } = tableInternalData;
837
834
  const emptyOpts = computeEmptyOpts.value;
838
835
  const mouseOpts = computeMouseOpts.value;
839
- const expandOpts = computeExpandOpts.value;
836
+ const isBodyRenderOptimize = computeIsBodyRenderOptimize.value;
840
837
  let renderDataList = tableData;
841
838
  let renderColumnList = tableColumn;
842
- let isOptimizeMode = false;
843
- // 如果是使用优化模式
844
- if (scrollXLoad || scrollYLoad || isAllOverflow) {
845
- if (expandColumn && expandOpts.mode !== 'fixed' || spanMethod || footerSpanMethod) {
846
- // 如果不支持优化模式
847
- } else {
848
- isOptimizeMode = true;
849
- }
850
- }
839
+ const isOptimizeMode = isBodyRenderOptimize;
851
840
  if (!isColLoading && (fixedType || !overflowX)) {
852
841
  renderColumnList = visibleColumn;
853
842
  }
@@ -920,19 +909,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
920
909
  emptyContent = tableProps.emptyText || getI18n('vxe.table.emptyText');
921
910
  }
922
911
  }
923
- const ons = {
924
- onScroll(evnt) {
925
- $xeTable.triggerBodyScrollEvent(evnt, fixedType);
926
- }
927
- };
928
912
  return (0, _vue.h)('div', {
929
913
  ref: refElem,
930
914
  class: ['vxe-table--body-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'],
931
915
  xid: xID
932
- }, [(0, _vue.h)('div', Object.assign({
916
+ }, [(0, _vue.h)('div', {
933
917
  ref: refBodyScroll,
934
- class: 'vxe-table--body-inner-wrapper'
935
- }, ons), [fixedType ? renderEmptyElement($xeTable) : (0, _vue.h)('div', {
918
+ class: 'vxe-table--body-inner-wrapper',
919
+ onScroll(evnt) {
920
+ $xeTable.triggerBodyScrollEvent(evnt, fixedType);
921
+ }
922
+ }, [fixedType ? renderEmptyElement($xeTable) : (0, _vue.h)('div', {
936
923
  ref: refBodyXSpace,
937
924
  class: 'vxe-body--x-space'
938
925
  }), (0, _vue.h)('div', {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,sourceType="table",renderType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(S){let Je=(0,_vue.inject)("$xeTable",{}),{xID:M,props:Qe,context:T,reactData:Ze,internalData:el}=Je,{computeEditOpts:ll,computeMouseOpts:tl,computeCellOffsetWidth:al,computeAreaOpts:rl,computeDefaultRowHeight:ol,computeEmptyOpts:k,computeTooltipOpts:il,computeRadioOpts:e,computeExpandOpts:ae,computeTreeOpts:l,computeCheckboxOpts:nl,computeCellOpts:sl,computeValidOpts:dl,computeRowOpts:ul,computeColumnOpts:cl,computeRowDragOpts:pl,computeResizableOpts:vl,computeVirtualXOpts:gl,computeVirtualYOpts:xl}=Je.getComputeMaps(),$=(0,_vue.ref)(),z=(0,_vue.ref)(),q=(0,_vue.ref)(),A=(0,_vue.ref)(),H=(0,_vue.ref)(),F=(0,_vue.ref)(),j=(0,_vue.ref)(),L=(0,_vue.ref)(),hl=()=>{var e=Qe.delayHover,{lastScrollTime:l,isDragResize:t}=Ze;return!!(t||l&&Date.now()<l+e)},ml=(r,o,i)=>{var n=o.column,s=Qe.treeConfig,d=sl.value,u=ul.value,c=ol.value,p=l.value,{slots:n,treeNode:v}=n,g=el.fullAllDataRowIdData;if(s&&v&&(p.showLine||p.line)){if(n&&n.line)return Je.callSlot(n.line,o);s=g[r];let e=0,l=null,t=null,a="";return(s&&(e=s.level,l=s.items[s.treeIndex-1],t=s.parent),e||p.showRootLine)?(l?(v=g[(0,_util.getRowid)(Je,l)]||{},a=`${v.lineHeight||0}px`):e&&t&&(n=g[(0,_util.getRowid)(Je,t)]||{},a=`calc(-1em + ${Math.floor(i/2+(0,_util.getCellRestHeight)(n,d,u,c)/2)}px)`),[(0,_vue.h)("div",{key:"tl",class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:a,bottom:`-${Math.floor(i/2)}px`,left:`calc(${e*p.indent}px + 1em)`}})])]):[]}return[]},oe=(A,e,l,H,F,t,j,L,a,r,N,U,B)=>{var o=Je.xeGrid,i=Je.xeGantt,{columnKey:G,resizable:n,showOverflow:s,border:W,height:d,treeConfig:V,cellClassName:P,cellStyle:X,align:u,spanMethod:Y,mouseConfig:K,editConfig:J,editRules:c,tooltipConfig:p,padding:v}=Qe,{tableData:Q,tableColumn:Z,dragRow:ee,overflowX:le,overflowY:te,currentColumn:ae,scrollXLoad:g,scrollYLoad:re,mergeBodyFlag:oe,calcCellHeightFlag:x,resizeHeightFlag:h,resizeWidthFlag:ie,editStore:ne,isAllOverflow:se,validErrorMaps:de}=Ze,{fullAllDataRowIdData:ue,fullColumnIdData:m,mergeBodyCellMaps:ce,visibleColumn:pe,afterFullData:ve,mergeBodyList:ge,scrollXStore:xe,scrollYStore:he}=el,w=sl.value,_=dl.value,f=nl.value,me=ll.value,b=il.value,we=vl.value,_e=gl.value,fe=xl.value,{isAllColumnDrag:we,isAllRowDrag:be}=we,y=ul.value,C=pl.value,ye=ol.value,x=x?w.height||y.height:0,{disabledMethod:R,isCrossDrag:Ce,isPeerDrag:Re}=C,Ee=cl.value,De=tl.value,Ie=rl.value,Oe=al.value,Ie=Ie.selectCellToRow,{type:Se,cellRender:Me,editRender:Te,align:ke,showOverflow:E,className:$e,treeNode:ze,rowResize:qe,padding:D,verticalAlign:I,slots:Ae}=r,He=w.verticalAlign,ne=ne.actived,Fe=ue[e]||{},O=r.id,m=m[O]||{},S=Te||Me,S=S?renderer.get(S.name):null,je=S?S.tableCellClassName||S.cellClassName:null,Le=S?S.tableCellStyle||S.cellStyle:"";let Ne=b.showAll;var Ue=m.index,b=m._index,m=(0,_utils.isEnableConf)(Te),h=h?Fe.resizeHeight:0;let M=le&&(l?r.fixed!==l:!!r.fixed);v=_xeUtils.default.eqNull(D)?null===v?w.padding:v:D,D=_xeUtils.default.eqNull(E)?s:E,s="ellipsis"===D;let T="title"===D,k=!0===D||"tooltip"===D;E=se||T||k||s,D=_xeUtils.default.isBoolean(r.resizable)?r.resizable:Ee.resizable||n,n=!!x,x=0<h;let Be;h={},ke=ke||(S?S.tableCellAlign:"")||u,S=_xeUtils.default.eqNull(I)?He:I,u=de[e+":"+O],He=c&&_.showMessage&&("default"===_.message?d||1<Q.length:"inline"===_.message),I={colid:O};let $={$table:Je,$grid:o,$gantt:i,isEdit:!1,seq:A,rowid:e,row:t,rowIndex:j,$rowIndex:L,_rowIndex:a,column:r,columnIndex:Ue,$columnIndex:N,_columnIndex:b,fixed:l,source:sourceType,type:renderType,isHidden:!!M,level:F,visibleData:ve,data:Q,items:B},z=!1,Ge=!1,q=((z=y.drag?"row"===C.trigger||r.dragSort&&"cell"===C.trigger:z)&&(Ge=!(!R||!R($))),(T||k||Ne||p)&&(h.onMouseover=e=>{hl()||(T?(0,_dom.updateCellTitle)(e.currentTarget,r):(k||Ne)&&Je.triggerBodyTooltipEvent(e,$)),Je.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},$),e)}),(k||Ne||p)&&(h.onMouseleave=e=>{hl()||(k||Ne)&&Je.handleTargetLeaveEvent(e),Je.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},$),e)}),(z||f.range||K)&&(h.onMousedown=e=>{Je.triggerCellMousedownEvent(e,$)}),z&&(h.onMouseup=Je.triggerCellMouseupEvent),h.onClick=e=>{Je.triggerCellClickEvent(e,$)},!(h.onDblclick=e=>{Je.triggerCellDblclickEvent(e,$)})),We=1,Ve=1;if(oe&&ge.length){de=ce[a+":"+b];if(de){var{rowspan:c,colspan:d}=de;if(!c||!d)return renderEmptyElement(Je);1<c&&(q=!0,Ve=c,I.rowspan=c),1<d&&(q=!0,We=d,I.colspan=d)}}else if(Y){var{rowspan:o=1,colspan:i=1}=Y($)||{};if(!o||!i)return renderEmptyElement(Je);1<o&&(q=!0,Ve=o,I.rowspan=o),1<i&&(q=!0,We=i,I.colspan=i)}!(M=M&&q&&(1<I.colspan||1<I.rowspan)?!1:M)&&J&&(Te||Me)&&(me.showStatus||me.showUpdateStatus)&&(Be=Je.isUpdateByRow(t,r.field));A=!E&&(re||g);let Pe=(0,_util.getCellRestHeight)(Fe,w,y,ye);j=N===U.length-1,L=!r.resizeWidth&&("auto"===r.minWidth||"auto"===r.width);let Xe=!1;q||ee&&(0,_util.getRowid)(Je,ee)===e||(te&&re&&16<Q.length&&!V&&!fe.immediate&&(a<he.visibleStartIndex-he.preloadSize||a>he.visibleEndIndex+he.preloadSize)||le&&g&&10<Z.length&&!_e.immediate&&!r.fixed&&(b<xe.visibleStartIndex-xe.preloadSize||b>xe.visibleEndIndex+xe.preloadSize))&&(Xe=!0),1<Ve&&(B=ve[a+Ve-1])&&(C=ue[(0,_util.getRowid)(Je,B)])&&(Pe+=C.oTop+(0,_util.getCellRestHeight)(C,w,y,ye)-Fe.oTop-(0,_util.getCellRestHeight)(Fe,w,y,ye));R={};if(E&&ie){let l=0;if(1<We)for(let e=1;e<We;e++){var Ye=pe[Ue+e];Ye&&(l+=Ye.renderWidth)}R.width=r.renderWidth+l-Oe+"px"}re||g||E||n||x?R.height=Pe+"px":R.minHeight=Pe+"px";p=[];M&&se?p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":s}],style:R})):(V&&p.push(...ml(e,$,Pe)),p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":s}],style:R,title:T?Je.getCellLabel(t,r):null},Xe?[]:[(0,_vue.h)("div",{colid:O,rowid:e,class:"vxe-cell--wrapper vxe-body-cell--wrapper"},r.renderCell($))])),He&&u&&(f=u.rule,oe=Ae?Ae.valid:null,ge=Object.assign(Object.assign(Object.assign({},$),u),{rule:u}),p.push((0,_vue.h)("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(_.className,ge)],style:f&&f.maxWidth?{width:f.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(_.theme||"normal")},[oe?Je.callSlot(oe,ge):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},u.content)]])]))));let Ke=!1;return K&&De.area&&!b&&Ie&&(Ke=!0),!M&&D&&we&&p.push((0,_vue.h)("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],onMousedown:e=>Je.handleColResizeMousedownEvent(e,l,$),onDblclick:e=>Je.handleColResizeDblclickEvent(e,$)})),(qe||be)&&y.resizable&&p.push((0,_vue.h)("div",{key:"tcr",class:"vxe-cell--row-resizable",onMousedown:e=>Je.handleRowResizeMousedownEvent(e,$),onDblclick:e=>Je.handleRowResizeDblclickEvent(e,$)})),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-body--column",O,S?"col--vertical-"+S:"",ke?"col--"+ke:"",Se?"col--"+Se:"",{"col--last":j,"col--tree-node":ze,"col--edit":m,"col--ellipsis":E,"col--cs-height":n,"col--rs-height":x,"col--to-row":Ke,"col--auto-height":A,"fixed--width":!L,"fixed--hidden":M,"is--padding":v,"is--progress":M&&se||Xe,"is--drag-cell":z&&(Ce||Re||!F),"is--drag-disabled":Ge,"col--dirty":Be,"col--active":J&&m&&ne.row===t&&(ne.column===r||"row"===me.mode),"col--valid-error":!!u,"col--current":ae===r},(0,_dom.getPropClass)(je,$),(0,_dom.getPropClass)($e,$),(0,_dom.getPropClass)(P,$)],key:G||g||re||Ee.useKey||y.useKey||Ee.drag?O:N},I),{style:Object.assign({},_xeUtils.default.isFunction(Le)?Le($):Le,_xeUtils.default.isFunction(X)?X($):X)}),h),H&&M?[]:p)},re=(h,m,w,_)=>{let f=Je.xeGrid,b=Je.xeGantt,{stripe:y,rowKey:C,highlightHoverRow:R,rowClassName:E,rowStyle:D,editConfig:I,treeConfig:O}=Qe,{hasFixedColumn:S,treeExpandedFlag:M,scrollXLoad:T,scrollYLoad:k,isAllOverflow:$,rowExpandedFlag:z,expandColumn:q,selectRadioRow:A,pendingRowFlag:H,rowExpandHeightFlag:F,isRowGroupStatus:j}=Ze,{fullAllDataRowIdData:L,fullColumnIdData:N,treeExpandedMaps:U,pendingRowMaps:B,rowExpandedMaps:G}=el,W=nl.value,Q=e.value,V=l.value,P=ll.value,X=ul.value,Z=cl.value,{transform:Y,seqMode:K}=V,ee=V.children||V.childrenField,J=[],le=(0,_util.createHandleGetRowId)(Je).handleGetRowId,te=O||j;return w.forEach((a,r)=>{let o=le(a);var i=L[o]||{};let n=r,s=0,d=-1,u=-1;var c=j&&a.isAggregate,p={},v=((X.isHover||R)&&(p.onMouseover=e=>{hl()||Je.triggerHoverEvent(e,{row:a,rowIndex:n})},p.onMouseleave=()=>{hl()||Je.clearHoverRow()}),i&&(n=i.index,u=i._index,s=i.level,d=i.seq,c||O&&Y&&"increasing"===K?d=i._index+1:O&&"fixed"===K&&(d=i._tIndex+1)),{$table:Je,seq:d,rowid:o,fixed:h,type:renderType,level:s,row:a,rowIndex:n,$rowIndex:r,_rowIndex:u}),g=q&&!!z&&!!G[o];let e=!1,l=[],t=!1;I&&(t=Je.isInsertByRow(a)),!O||k||Y||(l=a[ee],e=!!M&&l&&0<l.length&&!!U[o]),!X.drag||j||O&&!Y||(p.onDragstart=Je.handleRowDragDragstartEvent,p.onDragend=Je.handleRowDragDragendEvent,p.onDragover=Je.handleRowDragDragoverEvent);var c=["vxe-body--row",te?"row--level-"+s:"",{"row--stripe":y&&(u+1)%2==0,"is--new":t,"is--expand-row":g,"is--expand-tree":e,"row--new":t&&(P.showStatus||P.showInsertStatus),"row--radio":Q.highlight&&Je.eqRow(A,a),"row--checked":W.highlight&&Je.isCheckedByCheckboxRow(a),"row--pending":!!H&&!!B[o],"row--group":c},(0,_dom.getPropClass)(E,v)],x=_.map((e,l)=>oe(d,o,h,m,s,a,n,r,u,e,l,_,w));if(J.push((0,_vue.h)("tr",Object.assign({class:c,rowid:o,style:D?_xeUtils.default.isFunction(D)?D(v):D:null,key:C||T||k||X.useKey||X.drag||Z.drag||j||O?o:r},p),x)),g){var{height:c,padding:v,mode:p}=ae.value;if("fixed"===p)J.push((0,_vue.h)("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+o,rowid:o},[(0,_vue.h)("td",{class:"vxe-body--row-expanded-place-column",colspan:_.length,style:{height:`${F?i.expandHeight||c:0}px`}})]));else{x={},g=(c&&(x.height=c+"px"),O&&(x.paddingLeft=s*V.indent+30+"px"),q||{}).showOverflow,p=q.id,i=N[p]||{},p=_xeUtils.default.eqNull(g)?$:g;let e=-1,l=-1,t=-1;i&&(e=i.index,l=i.$index,t=i._index);g={$table:Je,$grid:f,$gantt:b,seq:d,column:q,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,source:sourceType,type:renderType,level:s,row:a,rowid:o,rowIndex:n,$rowIndex:r,_rowIndex:u,isHidden:!1,isEdit:!1,visibleData:[],data:[],items:[]};J.push((0,_vue.h)("tr",{class:["vxe-body--expanded-row",{"is--padding":v}],key:"expand_"+o},[(0,_vue.h)("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!S,"col--ellipsis":p}],colspan:_.length},[(0,_vue.h)("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":c}],style:x},[q.renderData(g)])])]))}}e&&J.push(...re(h,m,l,_))}),J};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=S.fixedType,l=el.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=$,l[e+"scroll"]=z,l[e+"table"]=q,l[e+"colgroup"]=A,l[e+"list"]=H,l[e+"xSpace"]=F,l[e+"ySpace"]=j,l[e+"emptyBlock"]=L})}),(0,_vue.onUnmounted)(()=>{var e=S.fixedType,l=el.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});return()=>{var e=T.slots,l=Je.xeGrid,t=Je.xeGantt;let{fixedColumn:a,fixedType:r,tableColumn:o}=S;var{spanMethod:i,footerSpanMethod:n,mouseConfig:s}=Qe,{isGroup:d,tableData:u,isColLoading:c,overflowX:p,scrollXLoad:v,scrollYLoad:g,isAllOverflow:x,expandColumn:h,dragRow:m,dragCol:w}=Ze,{visibleColumn:_,fullAllDataRowIdData:f,fullColumnIdData:b}=el,y=k.value,C=tl.value,R=ae.value;let E=u,D=o,I=!1;!(v||g||x)||h&&"fixed"!==R.mode||i||n||(I=!0),c||!r&&p||(D=_),r&&I&&(D=a||[]),g&&m&&2<E.length&&(u=f[(0,_util.getRowid)(Je,m)])&&(x=u._index,h=E[0],R=E[E.length-1],i=f[(0,_util.getRowid)(Je,h)],n=f[(0,_util.getRowid)(Je,R)],i)&&n&&(c=i._index,p=n._index,x<c?E=[m].concat(E):p<x&&(E=E.concat([m]))),r||d||v&&w&&2<D.length&&(_=b[w.id])&&(g=_._index,u=D[0],h=D[D.length-1],f=b[u.id],R=b[h.id],f)&&R&&(i=f._index,n=R._index,g<i?D=[w].concat(D):n<g&&(D=D.concat([w])));let O;c=e?e.empty:null,p={$table:Je,$grid:l,$gantt:t},O=c?Je.callSlot(c,p):(m=(x=y.name?renderer.get(y.name):null)?x.renderTableEmpty||x.renderTableEmptyView||x.renderEmpty:null)?(0,_vn.getSlotVNs)(m(y,p)):Qe.emptyText||getI18n("vxe.table.emptyText"),d={onScroll(e){Je.triggerBodyScrollEvent(e,r)}};return(0,_vue.h)("div",{ref:$,class:["vxe-table--body-wrapper",r?`fixed-${r}--wrapper`:"body--wrapper"],xid:M},[(0,_vue.h)("div",Object.assign({ref:z,class:"vxe-table--body-inner-wrapper"},d),[r?renderEmptyElement(Je):(0,_vue.h)("div",{ref:F,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:j,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:q,class:"vxe-table--body",xid:M,cellspacing:0,cellpadding:0,border:0,xvm:I?"1":null},[(0,_vue.h)("colgroup",{ref:A},D.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tbody",{ref:H},re(r,I,E,D))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&C.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:M},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},C.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){Je.triggerCellAreaExtendMousedownEvent&&Je.triggerCellAreaExtendMousedownEvent(e,{$table:Je,fixed:r,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(Je),r?renderEmptyElement(Je):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:L},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},O)])])])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,sourceType="table",renderType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(C){let Je=(0,_vue.inject)("$xeTable",{}),{xID:R,props:Qe,context:E,reactData:Ze,internalData:el}=Je,{computeEditOpts:ll,computeMouseOpts:tl,computeCellOffsetWidth:al,computeAreaOpts:rl,computeDefaultRowHeight:ol,computeEmptyOpts:D,computeTooltipOpts:il,computeRadioOpts:e,computeExpandOpts:ae,computeTreeOpts:l,computeCheckboxOpts:nl,computeCellOpts:sl,computeValidOpts:dl,computeRowOpts:ul,computeColumnOpts:cl,computeRowDragOpts:pl,computeResizableOpts:vl,computeVirtualXOpts:gl,computeVirtualYOpts:xl,computeIsBodyRenderOptimize:q}=Je.getComputeMaps(),I=(0,_vue.ref)(),O=(0,_vue.ref)(),S=(0,_vue.ref)(),M=(0,_vue.ref)(),T=(0,_vue.ref)(),k=(0,_vue.ref)(),$=(0,_vue.ref)(),z=(0,_vue.ref)(),hl=()=>{var e=Qe.delayHover,{lastScrollTime:l,isDragResize:t}=Ze;return!!(t||l&&Date.now()<l+e)},ml=(r,o,i)=>{var n=o.column,s=Qe.treeConfig,d=sl.value,u=ul.value,c=ol.value,p=l.value,{slots:n,treeNode:v}=n,g=el.fullAllDataRowIdData;if(s&&v&&(p.showLine||p.line)){if(n&&n.line)return Je.callSlot(n.line,o);s=g[r];let e=0,l=null,t=null,a="";return(s&&(e=s.level,l=s.items[s.treeIndex-1],t=s.parent),e||p.showRootLine)?(l?(v=g[(0,_util.getRowid)(Je,l)]||{},a=`${v.lineHeight||0}px`):e&&t&&(n=g[(0,_util.getRowid)(Je,t)]||{},a=`calc(-1em + ${Math.floor(i/2+(0,_util.getCellRestHeight)(n,d,u,c)/2)}px)`),[(0,_vue.h)("div",{key:"tl",class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:a,bottom:`-${Math.floor(i/2)}px`,left:`calc(${e*p.indent}px + 1em)`}})])]):[]}return[]},oe=(H,e,l,A,F,t,B,L,a,r,N,U,j)=>{var o=Je.xeGrid,i=Je.xeGantt,{columnKey:G,resizable:n,showOverflow:s,border:W,height:d,treeConfig:V,cellClassName:P,cellStyle:X,align:u,spanMethod:Y,mouseConfig:K,editConfig:J,editRules:c,tooltipConfig:p,padding:v}=Qe,{tableData:Q,tableColumn:Z,dragRow:ee,overflowX:le,overflowY:te,currentColumn:ae,scrollXLoad:g,scrollYLoad:re,mergeBodyFlag:oe,calcCellHeightFlag:x,resizeHeightFlag:h,resizeWidthFlag:ie,editStore:ne,isAllOverflow:se,validErrorMaps:de}=Ze,{fullAllDataRowIdData:ue,fullColumnIdData:m,mergeBodyCellMaps:ce,visibleColumn:pe,afterFullData:ve,mergeBodyList:ge,scrollXStore:xe,scrollYStore:he}=el,w=sl.value,_=dl.value,b=nl.value,me=ll.value,f=il.value,we=vl.value,_e=gl.value,be=xl.value,{isAllColumnDrag:we,isAllRowDrag:fe}=we,y=ul.value,C=pl.value,ye=ol.value,x=x?w.height||y.height:0,{disabledMethod:R,isCrossDrag:Ce,isPeerDrag:Re}=C,Ee=cl.value,De=tl.value,Ie=rl.value,Oe=al.value,Ie=Ie.selectCellToRow,{type:Se,cellRender:Me,editRender:Te,align:ke,showOverflow:E,className:$e,treeNode:ze,rowResize:qe,padding:D,verticalAlign:I,slots:He}=r,Ae=w.verticalAlign,ne=ne.actived,Fe=ue[e]||{},O=r.id,m=m[O]||{},S=Te||Me,S=S?renderer.get(S.name):null,Be=S?S.tableCellClassName||S.cellClassName:null,Le=S?S.tableCellStyle||S.cellStyle:"";let Ne=f.showAll;var Ue=m.index,f=m._index,m=(0,_utils.isEnableConf)(Te),h=h?Fe.resizeHeight:0;let M=le&&(l?r.fixed!==l:!!r.fixed);v=_xeUtils.default.eqNull(D)?null===v?w.padding:v:D,D=_xeUtils.default.eqNull(E)?s:E,s="ellipsis"===D;let T="title"===D,k=!0===D||"tooltip"===D;E=se||T||k||s,D=_xeUtils.default.isBoolean(r.resizable)?r.resizable:Ee.resizable||n,n=!!x,x=0<h;let je;h={},ke=ke||(S?S.tableCellAlign:"")||u,S=_xeUtils.default.eqNull(I)?Ae:I,u=de[e+":"+O],Ae=c&&_.showMessage&&("default"===_.message?d||1<Q.length:"inline"===_.message),I={colid:O};let $={$table:Je,$grid:o,$gantt:i,isEdit:!1,seq:H,rowid:e,row:t,rowIndex:B,$rowIndex:L,_rowIndex:a,column:r,columnIndex:Ue,$columnIndex:N,_columnIndex:f,fixed:l,source:sourceType,type:renderType,isHidden:!!M,level:F,visibleData:ve,data:Q,items:j},z=!1,Ge=!1,q=((z=y.drag?"row"===C.trigger||r.dragSort&&"cell"===C.trigger:z)&&(Ge=!(!R||!R($))),(T||k||Ne||p)&&(h.onMouseover=e=>{hl()||(T?(0,_dom.updateCellTitle)(e.currentTarget,r):(k||Ne)&&Je.triggerBodyTooltipEvent(e,$)),Je.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},$),e)}),(k||Ne||p)&&(h.onMouseleave=e=>{hl()||(k||Ne)&&Je.handleTargetLeaveEvent(e),Je.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},$),e)}),(z||b.range||K)&&(h.onMousedown=e=>{Je.triggerCellMousedownEvent(e,$)}),z&&(h.onMouseup=Je.triggerCellMouseupEvent),h.onClick=e=>{Je.triggerCellClickEvent(e,$)},!(h.onDblclick=e=>{Je.triggerCellDblclickEvent(e,$)})),We=1,Ve=1;if(oe&&ge.length){de=ce[a+":"+f];if(de){var{rowspan:c,colspan:d}=de;if(!c||!d)return renderEmptyElement(Je);1<c&&(q=!0,Ve=c,I.rowspan=c),1<d&&(q=!0,We=d,I.colspan=d)}}else if(Y){var{rowspan:o=1,colspan:i=1}=Y($)||{};if(!o||!i)return renderEmptyElement(Je);1<o&&(q=!0,Ve=o,I.rowspan=o),1<i&&(q=!0,We=i,I.colspan=i)}!(M=M&&q&&(1<I.colspan||1<I.rowspan)?!1:M)&&J&&(Te||Me)&&(me.showStatus||me.showUpdateStatus)&&(je=Je.isUpdateByRow(t,r.field));H=!E&&(re||g);let Pe=(0,_util.getCellRestHeight)(Fe,w,y,ye);B=N===U.length-1,L=!r.resizeWidth&&("auto"===r.minWidth||"auto"===r.width);let Xe=!1;q||ee&&(0,_util.getRowid)(Je,ee)===e||(te&&re&&16<Q.length&&!V&&!be.immediate&&(a<he.visibleStartIndex-he.preloadSize||a>he.visibleEndIndex+he.preloadSize)||le&&g&&10<Z.length&&!_e.immediate&&!r.fixed&&(f<xe.visibleStartIndex-xe.preloadSize||f>xe.visibleEndIndex+xe.preloadSize))&&(Xe=!0),1<Ve&&(j=ve[a+Ve-1])&&(C=ue[(0,_util.getRowid)(Je,j)])&&(Pe+=C.oTop+(0,_util.getCellRestHeight)(C,w,y,ye)-Fe.oTop-(0,_util.getCellRestHeight)(Fe,w,y,ye));R={};if(E&&ie){let l=0;if(1<We)for(let e=1;e<We;e++){var Ye=pe[Ue+e];Ye&&(l+=Ye.renderWidth)}R.width=r.renderWidth+l-Oe+"px"}re||g||E||n||x?R.height=Pe+"px":R.minHeight=Pe+"px";p=[];M&&se?p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":s}],style:R})):(V&&p.push(...ml(e,$,Pe)),p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":s}],style:R,title:T?Je.getCellLabel(t,r):null},Xe?[]:[(0,_vue.h)("div",{colid:O,rowid:e,class:"vxe-cell--wrapper vxe-body-cell--wrapper"},r.renderCell($))])),Ae&&u&&(b=u.rule,oe=He?He.valid:null,ge=Object.assign(Object.assign(Object.assign({},$),u),{rule:u}),p.push((0,_vue.h)("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(_.className,ge)],style:b&&b.maxWidth?{width:b.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(_.theme||"normal")},[oe?Je.callSlot(oe,ge):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},u.content)]])]))));let Ke=!1;return K&&De.area&&!f&&Ie&&(Ke=!0),!M&&D&&we&&p.push((0,_vue.h)("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],onMousedown:e=>Je.handleColResizeMousedownEvent(e,l,$),onDblclick:e=>Je.handleColResizeDblclickEvent(e,$)})),(qe||fe)&&y.resizable&&p.push((0,_vue.h)("div",{key:"tcr",class:"vxe-cell--row-resizable",onMousedown:e=>Je.handleRowResizeMousedownEvent(e,$),onDblclick:e=>Je.handleRowResizeDblclickEvent(e,$)})),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-body--column",O,S?"col--vertical-"+S:"",ke?"col--"+ke:"",Se?"col--"+Se:"",{"col--last":B,"col--tree-node":ze,"col--edit":m,"col--ellipsis":E,"col--cs-height":n,"col--rs-height":x,"col--to-row":Ke,"col--auto-height":H,"fixed--width":!L,"fixed--hidden":M,"is--padding":v,"is--progress":M&&se||Xe,"is--drag-cell":z&&(Ce||Re||!F),"is--drag-disabled":Ge,"col--dirty":je,"col--active":J&&m&&ne.row===t&&(ne.column===r||"row"===me.mode),"col--valid-error":!!u,"col--current":ae===r},(0,_dom.getPropClass)(Be,$),(0,_dom.getPropClass)($e,$),(0,_dom.getPropClass)(P,$)],key:G||g||re||Ee.useKey||y.useKey||Ee.drag?O:N},I),{style:Object.assign({},_xeUtils.default.isFunction(Le)?Le($):Le,_xeUtils.default.isFunction(X)?X($):X)}),h),A&&M?[]:p)},re=(h,m,w,_)=>{let b=Je.xeGrid,f=Je.xeGantt,{stripe:y,rowKey:C,highlightHoverRow:R,rowClassName:E,rowStyle:D,editConfig:I,treeConfig:O}=Qe,{hasFixedColumn:S,treeExpandedFlag:M,scrollXLoad:T,scrollYLoad:k,isAllOverflow:$,rowExpandedFlag:z,expandColumn:q,selectRadioRow:H,pendingRowFlag:A,rowExpandHeightFlag:F,isRowGroupStatus:B}=Ze,{fullAllDataRowIdData:L,fullColumnIdData:N,treeExpandedMaps:U,pendingRowMaps:j,rowExpandedMaps:G}=el,W=nl.value,Q=e.value,V=l.value,P=ll.value,X=ul.value,Z=cl.value,{transform:Y,seqMode:K}=V,ee=V.children||V.childrenField,J=[],le=(0,_util.createHandleGetRowId)(Je).handleGetRowId,te=O||B;return w.forEach((a,r)=>{let o=le(a);var i=L[o]||{};let n=r,s=0,d=-1,u=-1;var c=B&&a.isAggregate,p={},v=((X.isHover||R)&&(p.onMouseover=e=>{hl()||Je.triggerHoverEvent(e,{row:a,rowIndex:n})},p.onMouseleave=()=>{hl()||Je.clearHoverRow()}),i&&(n=i.index,u=i._index,s=i.level,d=i.seq,c||O&&Y&&"increasing"===K?d=i._index+1:O&&"fixed"===K&&(d=i._tIndex+1)),{$table:Je,seq:d,rowid:o,fixed:h,type:renderType,level:s,row:a,rowIndex:n,$rowIndex:r,_rowIndex:u}),g=q&&!!z&&!!G[o];let e=!1,l=[],t=!1;I&&(t=Je.isInsertByRow(a)),!O||k||Y||(l=a[ee],e=!!M&&l&&0<l.length&&!!U[o]),!X.drag||B||O&&!Y||(p.onDragstart=Je.handleRowDragDragstartEvent,p.onDragend=Je.handleRowDragDragendEvent,p.onDragover=Je.handleRowDragDragoverEvent);var c=["vxe-body--row",te?"row--level-"+s:"",{"row--stripe":y&&(u+1)%2==0,"is--new":t,"is--expand-row":g,"is--expand-tree":e,"row--new":t&&(P.showStatus||P.showInsertStatus),"row--radio":Q.highlight&&Je.eqRow(H,a),"row--checked":W.highlight&&Je.isCheckedByCheckboxRow(a),"row--pending":!!A&&!!j[o],"row--group":c},(0,_dom.getPropClass)(E,v)],x=_.map((e,l)=>oe(d,o,h,m,s,a,n,r,u,e,l,_,w));if(J.push((0,_vue.h)("tr",Object.assign({class:c,rowid:o,style:D?_xeUtils.default.isFunction(D)?D(v):D:null,key:C||T||k||X.useKey||X.drag||Z.drag||B||O?o:r},p),x)),g){var{height:c,padding:v,mode:p}=ae.value;if("fixed"===p)J.push((0,_vue.h)("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+o,rowid:o},[(0,_vue.h)("td",{class:"vxe-body--row-expanded-place-column",colspan:_.length,style:{height:`${F?i.expandHeight||c:0}px`}})]));else{x={},g=(c&&(x.height=c+"px"),O&&(x.paddingLeft=s*V.indent+30+"px"),q||{}).showOverflow,p=q.id,i=N[p]||{},p=_xeUtils.default.eqNull(g)?$:g;let e=-1,l=-1,t=-1;i&&(e=i.index,l=i.$index,t=i._index);g={$table:Je,$grid:b,$gantt:f,seq:d,column:q,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,source:sourceType,type:renderType,level:s,row:a,rowid:o,rowIndex:n,$rowIndex:r,_rowIndex:u,isHidden:!1,isEdit:!1,visibleData:[],data:[],items:[]};J.push((0,_vue.h)("tr",{class:["vxe-body--expanded-row",{"is--padding":v}],key:"expand_"+o},[(0,_vue.h)("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!S,"col--ellipsis":p}],colspan:_.length},[(0,_vue.h)("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":c}],style:x},[q.renderData(g)])])]))}}e&&J.push(...re(h,m,l,_))}),J};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=C.fixedType,l=el.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=I,l[e+"scroll"]=O,l[e+"table"]=S,l[e+"colgroup"]=M,l[e+"list"]=T,l[e+"xSpace"]=k,l[e+"ySpace"]=$,l[e+"emptyBlock"]=z})}),(0,_vue.onUnmounted)(()=>{var e=C.fixedType,l=el.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});return()=>{var e=E.slots,l=Je.xeGrid,t=Je.xeGantt;let{fixedColumn:a,fixedType:r,tableColumn:o}=C;var i=Qe.mouseConfig,{isGroup:n,tableData:s,isColLoading:d,overflowX:u,scrollXLoad:c,scrollYLoad:p,dragRow:v,dragCol:g}=Ze,{visibleColumn:x,fullAllDataRowIdData:h,fullColumnIdData:m}=el,w=D.value,_=tl.value;let b=s,f=o;s=q.value;d||!r&&u||(f=x),r&&s&&(f=a||[]),p&&v&&2<b.length&&(d=h[(0,_util.getRowid)(Je,v)])&&(u=d._index,x=b[0],p=b[b.length-1],d=h[(0,_util.getRowid)(Je,x)],x=h[(0,_util.getRowid)(Je,p)],d)&&x&&(h=d._index,p=x._index,u<h?b=[v].concat(b):p<u&&(b=b.concat([v]))),r||n||c&&g&&2<f.length&&(d=m[g.id])&&(x=d._index,h=f[0],p=f[f.length-1],u=m[h.id],v=m[p.id],u)&&v&&(n=u._index,c=v._index,x<n?f=[g].concat(f):c<x&&(f=f.concat([g])));let y;d=e?e.empty:null,h={$table:Je,$grid:l,$gantt:t};return y=d?Je.callSlot(d,h):(p=(m=w.name?renderer.get(w.name):null)?m.renderTableEmpty||m.renderTableEmptyView||m.renderEmpty:null)?(0,_vn.getSlotVNs)(p(w,h)):Qe.emptyText||getI18n("vxe.table.emptyText"),(0,_vue.h)("div",{ref:I,class:["vxe-table--body-wrapper",r?`fixed-${r}--wrapper`:"body--wrapper"],xid:R},[(0,_vue.h)("div",{ref:O,class:"vxe-table--body-inner-wrapper",onScroll(e){Je.triggerBodyScrollEvent(e,r)}},[r?renderEmptyElement(Je):(0,_vue.h)("div",{ref:k,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:$,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--body",xid:R,cellspacing:0,cellpadding:0,border:0,xvm:s?"1":null},[(0,_vue.h)("colgroup",{ref:M},f.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tbody",{ref:T},re(r,s,b,f))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),i&&_.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:R},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},_.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){Je.triggerCellAreaExtendMousedownEvent&&Je.triggerCellAreaExtendMousedownEvent(e,{$table:Je,fixed:r,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(Je),r?renderEmptyElement(Je):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:z},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},y)])])])}}});
@@ -232,8 +232,10 @@ function renderTitleContent(params, content) {
232
232
  isRowGroupStatus
233
233
  } = tableReactData;
234
234
  const {
235
- showHeaderOverflow
235
+ showHeaderOverflow,
236
+ slots
236
237
  } = column;
238
+ const titleSlot = slots ? slots.title : null;
237
239
  const headerTooltipOpts = computeHeaderTooltipOpts.value;
238
240
  const showAllTip = headerTooltipOpts.showAll;
239
241
  const headOverflow = _xeUtils.default.eqNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
@@ -265,7 +267,7 @@ function renderTitleContent(params, content) {
265
267
  const titleVN = getRenderDefaultColumnTitle(column, content);
266
268
  return [(0, _vue.h)('span', Object.assign({
267
269
  class: 'vxe-cell--title'
268
- }, ons), isRowGroupStatus && column.aggFunc && $table.getPivotTableAggregateRenderColTitles ? $table.getPivotTableAggregateRenderColTitles(column, titleVN) : [titleVN])];
270
+ }, ons), isRowGroupStatus && column.aggFunc && $table.getPivotTableAggregateRenderColTitles ? $table.getPivotTableAggregateRenderColTitles(column, titleVN) : titleSlot ? $table.callSlot(titleSlot, params) : [titleVN])];
269
271
  }
270
272
  function getFooterContent(params) {
271
273
  const {
@@ -1338,10 +1340,12 @@ const Cell = exports.Cell = {
1338
1340
  iconVisibleMethod
1339
1341
  } = sortOpts;
1340
1342
  const {
1341
- order
1343
+ order,
1344
+ slots
1342
1345
  } = column;
1343
1346
  if (showIcon && (!iconVisibleMethod || iconVisibleMethod(params))) {
1344
- return [(0, _vue.h)('span', {
1347
+ const sortSlot = slots ? slots.sort : null;
1348
+ return sortSlot ? (0, _vn.getSlotVNs)($table.callSlot(sortSlot, params)) : [(0, _vue.h)('span', {
1345
1349
  class: ['vxe-cell--sort', `vxe-cell--sort-${iconLayout}-layout`]
1346
1350
  }, [(0, _vue.h)('i', {
1347
1351
  class: ['vxe-sort--asc-btn', iconAsc || getIcon().TABLE_SORT_ASC, {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,getIcon,renderer,formats,renderEmptyElement}=_ui.VxeUI;function renderTitlePrefixIcon(l){let{$table:t,column:e}=l,r=e.titlePrefix||e.titleHelp;return r?(0,_vue.h)("span",{class:["vxe-cell-title-prefix-icon",r.iconStatus?"theme--"+r.iconStatus:""],onMouseenter(e){t.triggerHeaderTitleEvent(e,r,l)},onMouseleave(e){t.handleTargetLeaveEvent(e)}},[(0,_vue.h)("i",{class:r.icon||getIcon().TABLE_TITLE_PREFIX})]):renderEmptyElement(t)}function renderTitleSuffixIcon(l){let{$table:t,column:e}=l,r=e.titleSuffix;return r?(0,_vue.h)("span",{class:["vxe-cell-title-suffix-icon",r.iconStatus?"theme--"+r.iconStatus:""],onMouseenter(e){t.triggerHeaderTitleEvent(e,r,l)},onMouseleave(e){t.handleTargetLeaveEvent(e)}},[(0,_vue.h)("i",{class:r.icon||getIcon().TABLE_TITLE_SUFFIX})]):renderEmptyElement(t)}function renderCellDragIcon(l){let{$table:t,column:e}=l;var r=t.context,r=r.slots,n=e.slots,a=t.props.dragConfig,o=t.getComputeMaps().computeRowDragOpts,{icon:o,trigger:d,disabledMethod:s}=o.value,s=s||(a?a.rowDisabledMethod:null);let i=s&&s(l);s=(n?n.rowDragIcon||n["row-drag-icon"]:null)||r.rowDragIcon||r["row-drag-icon"],n={};return"cell"!==d&&(n.onMousedown=e=>{i||t.handleCellDragMousedownEvent(e,l)},n.onMouseup=t.handleCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":i}]},n),s?t.callSlot(s,l):[(0,_vue.h)("i",{class:o||(a?a.rowIcon:"")||getIcon().TABLE_DRAG_ROW})])}function renderCellBaseVNs(e,l){var{$table:t,column:r,level:n}=e,r=r.dragSort,{treeConfig:a,dragConfig:o}=t.props,{computeRowOpts:t,computeRowDragOpts:d,computeTreeOpts:s}=t.getComputeMaps(),t=t.value,d=d.value,s=s.value,{showIcon:d,isPeerDrag:i,isCrossDrag:u,visibleMethod:c}=d,c=c||(o?o.rowVisibleMethod:null),C=[];return r&&t.drag&&(d||o&&o.showRowIcon)&&(!c||c(e))&&(!a||s.transform&&(i||u||!n))&&C.push(renderCellDragIcon(e)),C.concat(_xeUtils.default.isArray(l)?l:[l])}function renderHeaderCellDragIcon(t){let{$table:r,column:e}=t;var n=r.context,n=n.slots,a=e.slots,{computeColumnOpts:o,computeColumnDragOpts:d}=r.getComputeMaps(),o=o.value,{showIcon:d,icon:s,trigger:i,isPeerDrag:l,isCrossDrag:u,visibleMethod:c,disabledMethod:C}=d.value;if(!o.drag||!d||c&&!c(t)||e.fixed||!l&&!u&&e.parentId)return renderEmptyElement(r);{let l=C&&C(t);o=(a?a.columnDragIcon||a["column-drag-icon"]:null)||n.columnDragIcon||n["column-drag-icon"],d={};return"cell"!==i&&(d.onMousedown=e=>{l||r.handleHeaderCellDragMousedownEvent(e,t)},d.onMouseup=r.handleHeaderCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":l}]},d),o?r.callSlot(o,t):[(0,_vue.h)("i",{class:s||getIcon().TABLE_DRAG_COLUMN})])}}function renderHeaderCellBaseVNs(e,l){return[renderTitlePrefixIcon(e),renderHeaderCellDragIcon(e),..._xeUtils.default.isArray(l)?l:[l],renderTitleSuffixIcon(e)]}function getRenderDefaultColumnTitle(e,l){return"html"===e.type&&_xeUtils.default.isString(l)?(0,_vue.h)("span",{key:"ch",innerHTML:l}):(0,_vue.h)("span",{key:"ct"},(0,_vn.getSlotVNs)(l))}function renderTitleContent(l,e){let{$table:t,column:r}=l;var n=t.props;let a=t.reactData;var o=t.getComputeMaps().computeHeaderTooltipOpts,n=n.showHeaderOverflow,d=a.isRowGroupStatus,s=r.showHeaderOverflow;let i=o.value.showAll;o=_xeUtils.default.eqNull(s)?n:s;let u="title"===o,c=!0===o||"tooltip"===o;n={},(u||c||i)&&(n.onMouseenter=e=>{a.isDragResize||(u?(0,_dom.updateCellTitle)(e.currentTarget,r):(c||i)&&t.triggerHeaderTooltipEvent(e,l))}),(c||i)&&(n.onMouseleave=e=>{a.isDragResize||(c||i)&&t.handleTargetLeaveEvent(e)}),s=getRenderDefaultColumnTitle(r,e);return[(0,_vue.h)("span",Object.assign({class:"vxe-cell--title"},n),d&&r.aggFunc&&t.getPivotTableAggregateRenderColTitles?t.getPivotTableAggregateRenderColTitles(r,s):[s])]}function getFooterContent(e){var{$table:l,column:t,_columnIndex:r,items:n,row:a}=e,{slots:o,editRender:d,cellRender:s,footerFormatter:i}=t,d=d||s,s=o?o.footer:null;if(s)return l.callSlot(s,e);let u="";u=_xeUtils.default.isArray(n)?n[r]:_xeUtils.default.get(a,t.field);o=Object.assign(e,{itemValue:u});if(i)return _xeUtils.default.isFunction(i)?[(0,_vue.h)("span",{class:"vxe-cell--label"},""+i(o))]:(n=(s=(l=_xeUtils.default.isArray(i))?formats.get(i[0]):formats.get(i))?s.tableFooterCellFormatMethod:null)?[(0,_vue.h)("span",{class:"vxe-cell--label"},""+(l?n(o,...i.slice(1)):n(o)))]:[(0,_vue.h)("span",{class:"vxe-cell--label"},"")];if(d){r=renderer.get(d.name);if(r){a=r.renderTableFooter||r.renderFooter;if(a)return(0,_vn.getSlotVNs)(a(d,o))}}return[(0,_vue.h)("span",{class:"vxe-cell--label"},(0,_utils.formatText)(u,1))]}function getDefaultCellLabel(e){var{$table:e,row:l,column:t}=e;return(0,_utils.formatText)(e.getCellLabel(l,t),1)}function renderCellHandle(e){var{column:l,row:t,$table:r}=e,n=r.props,a=r.reactData.isRowGroupStatus,n=n.editConfig,{type:o,treeNode:d,rowGroupNode:s,editRender:i}=l,{computeEditOpts:r,computeCheckboxOpts:u,computeAggregateOpts:c}=r.getComputeMaps(),c=c.value.mode,C=u.value,u=r.value,p=d||a&&("column"===c?l.field===t.groupField:s);switch(o){case"seq":return p?Cell.renderDeepIndexCell(e):Cell.renderSeqCell(e);case"radio":return p?Cell.renderDeepRadioCell(e):Cell.renderRadioCell(e);case"checkbox":return C.checkField?p?Cell.renderDeepSelectionCellByProp(e):Cell.renderCheckboxCellByProp(e):p?Cell.renderDeepSelectionCell(e):Cell.renderCheckboxCell(e);case"expand":return Cell.renderExpandCell(e);case"html":return p?Cell.renderDeepHTMLCell(e):Cell.renderHTMLCell(e)}return n&&(0,_utils.isEnableConf)(u)&&i?"cell"===u.mode?p?Cell.renderDeepCellEdit(e):Cell.renderCellEdit(e):p?Cell.renderDeepRowEdit(e):Cell.renderRowEdit(e):p?Cell.renderDeepCell(e):Cell.renderDefaultCell(e)}function renderHeaderHandle(e){var{column:l,$table:t}=e,r=t.props,t=t.getComputeMaps().computeEditOpts,r=r.editConfig,t=t.value,{type:l,filters:n,sortable:a,editRender:o}=l;switch(l){case"seq":return Cell.renderSeqHeader(e);case"radio":return Cell.renderRadioHeader(e);case"checkbox":return Cell.renderCheckboxHeader(e);case"html":if(n&&a)return Cell.renderSortAndFilterHeader(e);if(a)return Cell.renderSortHeader(e);if(n)return Cell.renderFilterHeader(e)}return r&&(0,_utils.isEnableConf)(t)&&o?Cell.renderEditHeader(e):n&&a?Cell.renderSortAndFilterHeader(e):a?Cell.renderSortHeader(e):n?Cell.renderFilterHeader(e):Cell.renderDefaultHeader(e)}function renderFooterHandle(e){return Cell.renderDefaultFooter(e)}let Cell=exports.Cell={createColumn(e,l){var t=l.type,r={renderHeader:renderHeaderHandle,renderCell:renderCellHandle,renderFooter:renderFooterHandle};return"expand"===t&&(r.renderData=Cell.renderExpandData),(0,_util.createColumn)(e,l,r)},renderHeaderTitle(e){var{$table:l,column:t}=e,{slots:r,editRender:n,cellRender:a}=t,n=n||a,a=r?r.header:null;if(a)return renderTitleContent(e,l.callSlot(a,e));if(n){r=renderer.get(n.name);if(r){l=r.renderTableHeader||r.renderHeader;if(l)return renderTitleContent(e,(0,_vn.getSlotVNs)(l(n,e)))}}return renderTitleContent(e,(0,_utils.formatText)(t.getTitle(),1))},renderDefaultHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e))},renderDefaultCell(e){var{$table:l,row:t,column:r}=e,n=l.props,a=l.internalData,o=l.reactData.isRowGroupStatus,n=n.editConfig,{field:d,slots:s,editRender:i,cellRender:u,rowGroupNode:c,aggFunc:C,formatter:p}=r,n=n&&(0,_utils.isEnableConf)(i)?i:(0,_utils.isEnableConf)(u)?u:null,u=s?s.default:null,s=s?s.groupContent||s["group-content"]:null;let g="";if(o&&d&&t.isAggregate){var o=t,a=a.fullColumnFieldData,v=l.getComputeMaps().computeAggregateOpts,v=v.value,{mode:h,showTotal:_,totalMethod:E,countFields:b,contentMethod:m,mapChildrenField:f}=v,v=v.calcValuesMethod||v.countMethod||v.aggregateMethod,x=o.groupField,D=o.groupContent,f=f&&o[f]||[],T=o.childCount,a=a[x]||{},a={$table:l,groupField:x,groupColumn:a?a.column:null,column:r,groupValue:D,childList:f,childCount:T,aggValue:null,children:f,totalValue:T};if(s)return renderCellBaseVNs(e,l.callSlot(s,Object.assign({groupField:x,groupContent:D,childList:f,childCount:T},e)));("column"===h?d===o.groupField:c)?(g=D,m&&(g=""+m(a)),_&&(g=getI18n("vxe.table.rowGroupContentTotal",[g,E?E(a):T,T]))):l.getPivotTableAggregateCellAggValue?g=l.getPivotTableAggregateCellAggValue(e):(!0===C||b&&b.includes(d))&&v&&(a.aggValue=T,g=""+v(a))}else{if(u)return renderCellBaseVNs(e,l.callSlot(u,e));if(n&&!p){s=renderer.get(n.name);if(s){x=s.renderTableCell||s.renderCell,f=s.renderTableDefault||s.renderDefault,h=i?x:f;if(h)return renderCellBaseVNs(e,(0,_vn.getSlotVNs)(h(n,Object.assign({$type:i?"edit":"cell"},e))))}}g=l.getCellLabel(t,r)}o=i?i.placeholder:"";return renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},[i&&(0,_utils.eqEmptyValue)(g)?(0,_vue.h)("span",{class:"vxe-cell--placeholder"},(0,_utils.formatText)((0,_utils.getFuncText)(o),1)):(0,_vue.h)("span",(0,_utils.formatText)(g,1))])])},renderDeepCell(e){return Cell.renderDeepNodeBtn(e,Cell.renderDefaultCell(e))},renderDefaultFooter(e){return getFooterContent(e)},renderRowGroupBtn(l,e){let t=l.$table;var r=t.reactData,n=t.internalData,{row:a,level:o}=l,d=t.getComputeMaps().computeAggregateOpts,r=r.rowGroupExpandedFlag,n=n.rowGroupExpandedMaps,{mode:d,padding:s,indent:i}=d.value,u=(0,_util.getRowid)(t,a),r=!!r&&!!n[u];return(0,_vue.h)("div",{class:["vxe-row-group--tree-node",{"is--expanded":r}],style:"column"!==d&&s&&i?{paddingLeft:o*i+"px"}:void 0},[a.isAggregate?(0,_vue.h)("span",{class:"vxe-row-group--node-btn",onClick(e){t.triggerRowGroupExpandEvent(e,l)}},[(0,_vue.h)("i",{class:r?getIcon().TABLE_ROW_GROUP_OPEN:getIcon().TABLE_ROW_GROUP_CLOSE})]):renderEmptyElement(t),(0,_vue.h)("div",{class:"vxe-row-group-cell"},e)])},renderTreeNodeBtn(l,e){let{$table:t,isHidden:r}=l;var n=t.reactData,a=t.internalData,{row:o,column:d,level:s}=l,d=d.slots,d=d?d.icon:null;if(d)return t.callSlot(d,l);var d=t.getComputeMaps().computeTreeOpts,n=n.treeExpandedFlag,{fullAllDataRowIdData:a,treeExpandedMaps:i,treeExpandLazyLoadedMaps:u}=a,d=d.value,{padding:c,indent:C,lazy:p,trigger:g,iconLoaded:v,showIcon:h,iconOpen:_,iconClose:E}=d,b=d.children||d.childrenField,d=d.hasChild||d.hasChildField,b=o[b],b=b&&b.length;let m=!1,f=!1,x=!1,D=!1;var T,w={};return r||(T=(0,_util.getRowid)(t,o),f=!!n&&!!i[T],p&&(n=a[T],x=!!u[T],m=o[d],D=!!n.treeLoaded)),g&&"default"!==g||(w.onClick=e=>{t.triggerTreeExpandEvent(e,l)}),(0,_vue.h)("div",{class:["vxe-cell--tree-node",{"is--active":f}],style:c&&C?{paddingLeft:s*C+"px"}:void 0},[h&&(!p||D?b:b||m)?[(0,_vue.h)("div",Object.assign({class:"vxe-cell--tree-btn"},w),[(0,_vue.h)("i",{class:x?v||getIcon().TABLE_TREE_LOADED:f?_||getIcon().TABLE_TREE_OPEN:E||getIcon().TABLE_TREE_CLOSE})])]:null,(0,_vue.h)("div",{class:"vxe-tree-cell"},e)])},renderDeepNodeBtn(e,l){var{$table:t,row:r,column:n}=e,a=n.rowGroupNode,o=t.reactData.rowGroupList;if(o.length){o=t.getComputeMaps().computeAggregateOpts,t=o.value.mode;if("column"===t?n.field===r.groupField:a)return[Cell.renderRowGroupBtn(e,l)]}return[Cell.renderTreeNodeBtn(e,l)]},renderSeqHeader(e){var{$table:l,column:t}=e,r=t.slots,r=r?r.header:null;return renderHeaderCellBaseVNs(e,renderTitleContent(e,r?l.callSlot(r,e):(0,_utils.formatText)(t.getTitle(),1)))},renderSeqCell(e){var{$table:l,column:t}=e,r=l.props.treeConfig,n=l.getComputeMaps().computeSeqOpts,n=n.value,t=t.slots,t=t?t.default:null;return t?renderCellBaseVNs(e,l.callSlot(t,e)):(l=e.seq,t=n.seqMethod,renderCellBaseVNs(e,[(0,_vue.h)("span",""+(0,_utils.formatText)(t?t(e):r?l:(n.startIndex||0)+l,1))]))},renderDeepIndexCell(e){return Cell.renderDeepNodeBtn(e,Cell.renderSeqCell(e))},renderRadioHeader(e){var{$table:l,column:t}=e,r=t.slots,n=r?r.header:null,r=r?r.title:null;return renderHeaderCellBaseVNs(e,renderTitleContent(e,n?l.callSlot(n,e):[(0,_vue.h)("span",{class:"vxe-radio--label"},r?l.callSlot(r,e):(0,_utils.formatText)(t.getTitle(),1))]))},renderRadioCell(l){let{$table:t,column:e,isHidden:r}=l;var n=t.reactData,a=t.getComputeMaps().computeRadioOpts,n=n.selectRadioRow,o=e.slots,{labelField:a,checkMethod:d,visibleMethod:s}=a.value,i=l.row,u=o?o.default:null,o=o?o.radio:null,n=t.eqRow(i,n);let c=!s||s({$table:t,row:i}),C=!!d,p;r||(p={onClick(e){!C&&c&&t.triggerRadioRowEvent(e,l)}},d&&(C=!d({$table:t,row:i})));s=Object.assign(Object.assign({},l),{checked:n,disabled:C,visible:c});return o?renderCellBaseVNs(l,t.callSlot(o,s)):(d=[],c&&d.push((0,_vue.h)("span",{class:["vxe-radio--icon",n?getIcon().TABLE_RADIO_CHECKED:C?getIcon().TABLE_RADIO_DISABLED_UNCHECKED:getIcon().TABLE_RADIO_UNCHECKED]})),(u||a)&&d.push((0,_vue.h)("span",{class:"vxe-radio--label"},u?t.callSlot(u,s):_xeUtils.default.get(i,a))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--radio",{"is--checked":n,"is--disabled":C}]},p),d)]))},renderDeepRadioCell(e){return Cell.renderDeepNodeBtn(e,Cell.renderRadioCell(e))},renderCheckboxHeader(e){let{$table:l,column:t,isHidden:r}=e;var n=l.reactData,{computeIsAllCheckboxDisabled:a,computeCheckboxOpts:o}=l.getComputeMaps();let{isAllSelected:d,isIndeterminate:s}=n,i=a.value;var n=t.slots,a=n?n.header:null,n=n?n.title:null,{checkStrictly:o,showHeader:u,headerTitle:c}=o.value,C=t.getTitle(),p={},g=(r||(p.onClick=e=>{i||l.triggerCheckAllEvent(e,!d)}),Object.assign(Object.assign({},e),{checked:d,disabled:i,indeterminate:s}));return renderHeaderCellBaseVNs(e,renderTitleContent(g,a?l.callSlot(a,g):(o?u:!1!==u)?[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":d,"is--disabled":i,"is--indeterminate":s}],title:_xeUtils.default.eqNull(c)?getI18n("vxe.table.allTitle"):""+(c||"")},p),[(0,_vue.h)("span",{class:["vxe-checkbox--icon",s?getIcon().TABLE_CHECKBOX_INDETERMINATE:d?getIcon().TABLE_CHECKBOX_CHECKED:i?getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})].concat(n||C?[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,g):C)]:[]))]:[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,g):C)]))},renderCheckboxCell(l){let{$table:t,row:e,column:r,isHidden:n}=l;var a=t.props.treeConfig,{updateCheckboxFlag:o,isRowGroupStatus:d}=t.reactData,{selectCheckboxMaps:s,treeIndeterminateRowMaps:i}=t.internalData,{computeCheckboxOpts:u,computeAggregateOpts:c}=t.getComputeMaps(),c=c.value.mapChildrenField;let{labelField:C,checkMethod:p,visibleMethod:g}=u.value;var u=r.slots,v=u?u.default:null,u=u?u.checkbox:null;let h=!1,_=!1,E=!0,b=!1;var m,f={},s=(n||(m=(0,_util.getRowid)(t,e),_=!!o&&!!s[m],p&&d&&t.isAggregateRecord(e)?(o=e[c||""])&&o.length&&!o.every(e=>!p({$table:t,row:e}))||(b=!0):(E=!g||g({$table:t,row:e}),b=p?!p({$table:t,row:e}):!!p),(a||d)&&(h=!!i[m]),f.onClick=e=>{!b&&E&&t.triggerCheckRowEvent(e,l,!_)}),Object.assign(Object.assign({},l),{checked:_,disabled:b,visible:E,indeterminate:h}));return u?renderCellBaseVNs(l,t.callSlot(u,s)):(c=[],E&&c.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",h?getIcon().TABLE_CHECKBOX_INDETERMINATE:_?getIcon().TABLE_CHECKBOX_CHECKED:b?getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),(v||C)&&c.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},v?t.callSlot(v,s):_xeUtils.default.get(e,C))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":_,"is--disabled":b,"is--indeterminate":h,"is--hidden":!E}]},f),c)]))},renderDeepSelectionCell(e){return Cell.renderDeepNodeBtn(e,Cell.renderCheckboxCell(e))},renderCheckboxCellByProp(l){let{$table:t,row:e,column:r,isHidden:n}=l;var a=t.props.treeConfig,{updateCheckboxFlag:o,isRowGroupStatus:d}=t.reactData,s=t.internalData.treeIndeterminateRowMaps,{computeCheckboxOpts:i,computeAggregateOpts:u}=t.getComputeMaps(),u=u.value.mapChildrenField,i=i.value;let{labelField:c,checkField:C,checkMethod:p,visibleMethod:g}=i;var i=i.indeterminateField||i.halfField,v=r.slots,h=v?v.default:null,v=v?v.checkbox:null;let _=!1,E=!1,b=!0,m=!1;var f,x={},u=(n||(f=(0,_util.getRowid)(t,e),E=!!o&&_xeUtils.default.get(e,C),p&&d&&t.isAggregateRecord(e)?(o=e[u||""])&&o.length&&!o.every(e=>!p({$table:t,row:e}))||(m=!0):(b=!g||g({$table:t,row:e}),m=p?!p({$table:t,row:e}):!!p),(a||d)&&(_=!!s[f]),x.onClick=e=>{!m&&b&&t.triggerCheckRowEvent(e,l,!E)}),Object.assign(Object.assign({},l),{checked:E,disabled:m,visible:b,indeterminate:_}));return v?renderCellBaseVNs(l,t.callSlot(v,u)):(o=[],b&&(o.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",_?getIcon().TABLE_CHECKBOX_INDETERMINATE:E?getIcon().TABLE_CHECKBOX_CHECKED:m?getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),h||c)&&o.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},h?t.callSlot(h,u):_xeUtils.default.get(e,c))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":E,"is--disabled":m,"is--indeterminate":i&&!E?e[i]:_,"is--hidden":!b}]},x),o)]))},renderDeepSelectionCellByProp(e){return Cell.renderDeepNodeBtn(e,Cell.renderCheckboxCellByProp(e))},renderExpandCell(l){let{$table:t,isHidden:e,row:r,column:n}=l;var a=t.reactData.isRowGroupStatus,{rowExpandedMaps:o,rowExpandLazyLoadedMaps:d}=t.internalData,s=t.getComputeMaps().computeExpandOpts,{lazy:s,labelField:i,iconLoaded:u,showIcon:c,iconOpen:C,iconClose:p,visibleMethod:g}=s.value,v=n.slots,h=v?v.default:null,v=v?v.icon:null;let _=!1,E=!1;return a&&r.isAggregate?renderCellBaseVNs(l,[]):v?renderCellBaseVNs(l,t.callSlot(v,l)):(e||(a=(0,_util.getRowid)(t,r),_=!!o[a],s&&(E=!!d[a])),renderCellBaseVNs(l,[!c||g&&!g(l)?renderEmptyElement(t):(0,_vue.h)("span",{class:["vxe-table--expanded",{"is--active":_}],onMousedown(e){e.stopPropagation()},onClick(e){t.triggerRowExpandEvent(e,l)}},[(0,_vue.h)("i",{class:["vxe-table--expand-btn",E?u||getIcon().TABLE_EXPAND_LOADED:_?C||getIcon().TABLE_EXPAND_OPEN:p||getIcon().TABLE_EXPAND_CLOSE]})]),h||i?(0,_vue.h)("span",{class:"vxe-table--expand-label"},h?t.callSlot(h,l):_xeUtils.default.get(r,i)):renderEmptyElement(t)]))},renderExpandData(e){var{$table:l,column:t}=e,{slots:t,contentRender:r}=t,t=t?t.content:null;if(t)return l.callSlot(t,e);if(r){l=renderer.get(r.name);if(l){t=l.renderTableExpand||l.renderExpand;if(t)return(0,_vn.getSlotVNs)(t(r,e))}}return[]},renderHTMLCell(e){var{$table:l,column:t}=e,t=t.slots,t=t?t.default:null;return renderCellBaseVNs(e,t?l.callSlot(t,e):[(0,_vue.h)("span",{class:"vxe-cell--html",innerHTML:getDefaultCellLabel(e)})])},renderDeepHTMLCell(e){return Cell.renderDeepNodeBtn(e,Cell.renderHTMLCell(e))},renderSortAndFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e).concat(Cell.renderFilterIcon(e))))},renderSortHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e)))},renderSortIcon(e){let{$table:l,column:t}=e;var r=l.getComputeMaps().computeSortOpts,{showIcon:r,allowBtn:n,ascTitle:a,descTitle:o,iconLayout:d,iconAsc:s,iconDesc:i,iconVisibleMethod:u}=r.value,c=t.order;return!r||u&&!u(e)?[]:[(0,_vue.h)("span",{class:["vxe-cell--sort",`vxe-cell--sort-${d}-layout`]},[(0,_vue.h)("i",{class:["vxe-sort--asc-btn",s||getIcon().TABLE_SORT_ASC,{"sort--active":"asc"===c}],title:_xeUtils.default.eqNull(a)?getI18n("vxe.table.sortAsc"):""+(a||""),onClick:n?e=>{e.stopPropagation(),l.triggerSortEvent(e,t,"asc")}:void 0}),(0,_vue.h)("i",{class:["vxe-sort--desc-btn",i||getIcon().TABLE_SORT_DESC,{"sort--active":"desc"===c}],title:_xeUtils.default.eqNull(o)?getI18n("vxe.table.sortDesc"):""+(o||""),onClick:n?e=>{e.stopPropagation(),l.triggerSortEvent(e,t,"desc")}:void 0})])]},renderFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderFilterIcon(e)))},renderFilterIcon(l){let{$table:t,column:e,hasFilter:r}=l;var n=t.reactData.filterStore,a=t.getComputeMaps().computeFilterOpts,{showIcon:a,iconNone:o,iconMatch:d,iconVisibleMethod:s}=a.value;return!a||s&&!s(l)?[]:[(0,_vue.h)("span",{class:["vxe-cell--filter",{"is--active":n.visible&&n.column===e}],onClick(e){t.triggerFilterEvent&&t.triggerFilterEvent(e,l.column,l)}},[(0,_vue.h)("i",{class:["vxe-filter--btn",r?d||getIcon().TABLE_FILTER_MATCH:o||getIcon().TABLE_FILTER_NONE],title:getI18n("vxe.table.filter")})])]},renderEditHeader(e){var{$table:l,column:t}=e,r=l.props,n=l.getComputeMaps().computeEditOpts,{editConfig:r,editRules:a}=r,n=n.value,{sortable:o,filters:d,editRender:s}=t;let i=!1,u=(a&&(a=_xeUtils.default.get(a,t.field))&&(i=a.some(e=>e.required)),[]);return(0,_utils.isEnableConf)(r)&&({showAsterisk:t,showIcon:a,icon:r}=n,u=[i&&t?(0,_vue.h)("span",{class:"vxe-cell--required-icon"},[(0,_vue.h)("i")]):renderEmptyElement(l),(0,_utils.isEnableConf)(s)&&a?(0,_vue.h)("span",{class:"vxe-cell--edit-icon"},_xeUtils.default.isFunction(r)?(0,_vn.getSlotVNs)(r({})):[(0,_vue.h)("i",{class:r||getIcon().TABLE_EDIT})]):renderEmptyElement(l)]),renderHeaderCellBaseVNs(e,u.concat(Cell.renderHeaderTitle(e)).concat(o?Cell.renderSortIcon(e):[]).concat(d?Cell.renderFilterIcon(e):[]))},renderRowEdit(e){var{$table:l,column:t}=e,l=l.reactData.editStore,l=l.actived,t=t.editRender;return Cell.runRenderer(e,(0,_utils.isEnableConf)(t)&&l&&l.row===e.row)},renderDeepRowEdit(e){return Cell.renderDeepNodeBtn(e,Cell.renderRowEdit(e))},renderCellEdit(e){var{$table:l,column:t}=e,l=l.reactData.editStore,l=l.actived,t=t.editRender;return Cell.runRenderer(e,(0,_utils.isEnableConf)(t)&&l&&l.row===e.row&&l.column===e.column)},renderDeepCellEdit(e){return Cell.renderDeepNodeBtn(e,Cell.renderCellEdit(e))},runRenderer(e,l){var{$table:t,row:r,column:n}=e,a=t.reactData.isRowGroupStatus,{slots:n,field:o,editRender:d,formatter:s}=n,i=n?n.default:null,u=n?n.groupContent||n["group-content"]:null,n=n?n.edit:null,c=renderer.get(d.name),c=c?c.renderTableEdit||c.renderEdit:null,C=Object.assign({$type:"",isEdit:l},e);if(l)return C.$type="edit",n?t.callSlot(n,C):c?(0,_vn.getSlotVNs)(c(d,C)):[];if(a&&o&&r.isAggregate){l=r,n=t.getComputeMaps().computeAggregateOpts,c=n.value.mapChildrenField,d=l.groupField,a=l.groupContent,o=c&&l[c]||[],r=l.childCount;if(u)return renderCellBaseVNs(e,t.callSlot(u,Object.assign({groupField:d,groupContent:a,childList:o,childCount:r},e)))}else if(i)return renderCellBaseVNs(e,t.callSlot(i,C));return s?renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},getDefaultCellLabel(C))]):Cell.renderDefaultCell(C)}};var _default=exports.default=Cell;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,getIcon,renderer,formats,renderEmptyElement}=_ui.VxeUI;function renderTitlePrefixIcon(l){let{$table:t,column:e}=l,r=e.titlePrefix||e.titleHelp;return r?(0,_vue.h)("span",{class:["vxe-cell-title-prefix-icon",r.iconStatus?"theme--"+r.iconStatus:""],onMouseenter(e){t.triggerHeaderTitleEvent(e,r,l)},onMouseleave(e){t.handleTargetLeaveEvent(e)}},[(0,_vue.h)("i",{class:r.icon||getIcon().TABLE_TITLE_PREFIX})]):renderEmptyElement(t)}function renderTitleSuffixIcon(l){let{$table:t,column:e}=l,r=e.titleSuffix;return r?(0,_vue.h)("span",{class:["vxe-cell-title-suffix-icon",r.iconStatus?"theme--"+r.iconStatus:""],onMouseenter(e){t.triggerHeaderTitleEvent(e,r,l)},onMouseleave(e){t.handleTargetLeaveEvent(e)}},[(0,_vue.h)("i",{class:r.icon||getIcon().TABLE_TITLE_SUFFIX})]):renderEmptyElement(t)}function renderCellDragIcon(l){let{$table:t,column:e}=l;var r=t.context,r=r.slots,n=e.slots,a=t.props.dragConfig,o=t.getComputeMaps().computeRowDragOpts,{icon:o,trigger:s,disabledMethod:d}=o.value,d=d||(a?a.rowDisabledMethod:null);let i=d&&d(l);d=(n?n.rowDragIcon||n["row-drag-icon"]:null)||r.rowDragIcon||r["row-drag-icon"],n={};return"cell"!==s&&(n.onMousedown=e=>{i||t.handleCellDragMousedownEvent(e,l)},n.onMouseup=t.handleCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":i}]},n),d?t.callSlot(d,l):[(0,_vue.h)("i",{class:o||(a?a.rowIcon:"")||getIcon().TABLE_DRAG_ROW})])}function renderCellBaseVNs(e,l){var{$table:t,column:r,level:n}=e,r=r.dragSort,{treeConfig:a,dragConfig:o}=t.props,{computeRowOpts:t,computeRowDragOpts:s,computeTreeOpts:d}=t.getComputeMaps(),t=t.value,s=s.value,d=d.value,{showIcon:s,isPeerDrag:i,isCrossDrag:u,visibleMethod:c}=s,c=c||(o?o.rowVisibleMethod:null),C=[];return r&&t.drag&&(s||o&&o.showRowIcon)&&(!c||c(e))&&(!a||d.transform&&(i||u||!n))&&C.push(renderCellDragIcon(e)),C.concat(_xeUtils.default.isArray(l)?l:[l])}function renderHeaderCellDragIcon(t){let{$table:r,column:e}=t;var n=r.context,n=n.slots,a=e.slots,{computeColumnOpts:o,computeColumnDragOpts:s}=r.getComputeMaps(),o=o.value,{showIcon:s,icon:d,trigger:i,isPeerDrag:l,isCrossDrag:u,visibleMethod:c,disabledMethod:C}=s.value;if(!o.drag||!s||c&&!c(t)||e.fixed||!l&&!u&&e.parentId)return renderEmptyElement(r);{let l=C&&C(t);o=(a?a.columnDragIcon||a["column-drag-icon"]:null)||n.columnDragIcon||n["column-drag-icon"],s={};return"cell"!==i&&(s.onMousedown=e=>{l||r.handleHeaderCellDragMousedownEvent(e,t)},s.onMouseup=r.handleHeaderCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":l}]},s),o?r.callSlot(o,t):[(0,_vue.h)("i",{class:d||getIcon().TABLE_DRAG_COLUMN})])}}function renderHeaderCellBaseVNs(e,l){return[renderTitlePrefixIcon(e),renderHeaderCellDragIcon(e),..._xeUtils.default.isArray(l)?l:[l],renderTitleSuffixIcon(e)]}function getRenderDefaultColumnTitle(e,l){return"html"===e.type&&_xeUtils.default.isString(l)?(0,_vue.h)("span",{key:"ch",innerHTML:l}):(0,_vue.h)("span",{key:"ct"},(0,_vn.getSlotVNs)(l))}function renderTitleContent(l,e){let{$table:t,column:r}=l;var n=t.props;let a=t.reactData;var o=t.getComputeMaps().computeHeaderTooltipOpts,n=n.showHeaderOverflow,s=a.isRowGroupStatus,{showHeaderOverflow:d,slots:i}=r,i=i?i.title:null;let u=o.value.showAll;o=_xeUtils.default.eqNull(d)?n:d;let c="title"===o,C=!0===o||"tooltip"===o;n={},(c||C||u)&&(n.onMouseenter=e=>{a.isDragResize||(c?(0,_dom.updateCellTitle)(e.currentTarget,r):(C||u)&&t.triggerHeaderTooltipEvent(e,l))}),(C||u)&&(n.onMouseleave=e=>{a.isDragResize||(C||u)&&t.handleTargetLeaveEvent(e)}),d=getRenderDefaultColumnTitle(r,e);return[(0,_vue.h)("span",Object.assign({class:"vxe-cell--title"},n),s&&r.aggFunc&&t.getPivotTableAggregateRenderColTitles?t.getPivotTableAggregateRenderColTitles(r,d):i?t.callSlot(i,l):[d])]}function getFooterContent(e){var{$table:l,column:t,_columnIndex:r,items:n,row:a}=e,{slots:o,editRender:s,cellRender:d,footerFormatter:i}=t,s=s||d,d=o?o.footer:null;if(d)return l.callSlot(d,e);let u="";u=_xeUtils.default.isArray(n)?n[r]:_xeUtils.default.get(a,t.field);o=Object.assign(e,{itemValue:u});if(i)return _xeUtils.default.isFunction(i)?[(0,_vue.h)("span",{class:"vxe-cell--label"},""+i(o))]:(n=(d=(l=_xeUtils.default.isArray(i))?formats.get(i[0]):formats.get(i))?d.tableFooterCellFormatMethod:null)?[(0,_vue.h)("span",{class:"vxe-cell--label"},""+(l?n(o,...i.slice(1)):n(o)))]:[(0,_vue.h)("span",{class:"vxe-cell--label"},"")];if(s){r=renderer.get(s.name);if(r){a=r.renderTableFooter||r.renderFooter;if(a)return(0,_vn.getSlotVNs)(a(s,o))}}return[(0,_vue.h)("span",{class:"vxe-cell--label"},(0,_utils.formatText)(u,1))]}function getDefaultCellLabel(e){var{$table:e,row:l,column:t}=e;return(0,_utils.formatText)(e.getCellLabel(l,t),1)}function renderCellHandle(e){var{column:l,row:t,$table:r}=e,n=r.props,a=r.reactData.isRowGroupStatus,n=n.editConfig,{type:o,treeNode:s,rowGroupNode:d,editRender:i}=l,{computeEditOpts:r,computeCheckboxOpts:u,computeAggregateOpts:c}=r.getComputeMaps(),c=c.value.mode,C=u.value,u=r.value,p=s||a&&("column"===c?l.field===t.groupField:d);switch(o){case"seq":return p?Cell.renderDeepIndexCell(e):Cell.renderSeqCell(e);case"radio":return p?Cell.renderDeepRadioCell(e):Cell.renderRadioCell(e);case"checkbox":return C.checkField?p?Cell.renderDeepSelectionCellByProp(e):Cell.renderCheckboxCellByProp(e):p?Cell.renderDeepSelectionCell(e):Cell.renderCheckboxCell(e);case"expand":return Cell.renderExpandCell(e);case"html":return p?Cell.renderDeepHTMLCell(e):Cell.renderHTMLCell(e)}return n&&(0,_utils.isEnableConf)(u)&&i?"cell"===u.mode?p?Cell.renderDeepCellEdit(e):Cell.renderCellEdit(e):p?Cell.renderDeepRowEdit(e):Cell.renderRowEdit(e):p?Cell.renderDeepCell(e):Cell.renderDefaultCell(e)}function renderHeaderHandle(e){var{column:l,$table:t}=e,r=t.props,t=t.getComputeMaps().computeEditOpts,r=r.editConfig,t=t.value,{type:l,filters:n,sortable:a,editRender:o}=l;switch(l){case"seq":return Cell.renderSeqHeader(e);case"radio":return Cell.renderRadioHeader(e);case"checkbox":return Cell.renderCheckboxHeader(e);case"html":if(n&&a)return Cell.renderSortAndFilterHeader(e);if(a)return Cell.renderSortHeader(e);if(n)return Cell.renderFilterHeader(e)}return r&&(0,_utils.isEnableConf)(t)&&o?Cell.renderEditHeader(e):n&&a?Cell.renderSortAndFilterHeader(e):a?Cell.renderSortHeader(e):n?Cell.renderFilterHeader(e):Cell.renderDefaultHeader(e)}function renderFooterHandle(e){return Cell.renderDefaultFooter(e)}let Cell=exports.Cell={createColumn(e,l){var t=l.type,r={renderHeader:renderHeaderHandle,renderCell:renderCellHandle,renderFooter:renderFooterHandle};return"expand"===t&&(r.renderData=Cell.renderExpandData),(0,_util.createColumn)(e,l,r)},renderHeaderTitle(e){var{$table:l,column:t}=e,{slots:r,editRender:n,cellRender:a}=t,n=n||a,a=r?r.header:null;if(a)return renderTitleContent(e,l.callSlot(a,e));if(n){r=renderer.get(n.name);if(r){l=r.renderTableHeader||r.renderHeader;if(l)return renderTitleContent(e,(0,_vn.getSlotVNs)(l(n,e)))}}return renderTitleContent(e,(0,_utils.formatText)(t.getTitle(),1))},renderDefaultHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e))},renderDefaultCell(e){var{$table:l,row:t,column:r}=e,n=l.props,a=l.internalData,o=l.reactData.isRowGroupStatus,n=n.editConfig,{field:s,slots:d,editRender:i,cellRender:u,rowGroupNode:c,aggFunc:C,formatter:p}=r,n=n&&(0,_utils.isEnableConf)(i)?i:(0,_utils.isEnableConf)(u)?u:null,u=d?d.default:null,d=d?d.groupContent||d["group-content"]:null;let g="";if(o&&s&&t.isAggregate){var o=t,a=a.fullColumnFieldData,v=l.getComputeMaps().computeAggregateOpts,v=v.value,{mode:h,showTotal:_,totalMethod:E,countFields:b,contentMethod:m,mapChildrenField:f}=v,v=v.calcValuesMethod||v.countMethod||v.aggregateMethod,x=o.groupField,D=o.groupContent,f=f&&o[f]||[],T=o.childCount,a=a[x]||{},a={$table:l,groupField:x,groupColumn:a?a.column:null,column:r,groupValue:D,childList:f,childCount:T,aggValue:null,children:f,totalValue:T};if(d)return renderCellBaseVNs(e,l.callSlot(d,Object.assign({groupField:x,groupContent:D,childList:f,childCount:T},e)));("column"===h?s===o.groupField:c)?(g=D,m&&(g=""+m(a)),_&&(g=getI18n("vxe.table.rowGroupContentTotal",[g,E?E(a):T,T]))):l.getPivotTableAggregateCellAggValue?g=l.getPivotTableAggregateCellAggValue(e):(!0===C||b&&b.includes(s))&&v&&(a.aggValue=T,g=""+v(a))}else{if(u)return renderCellBaseVNs(e,l.callSlot(u,e));if(n&&!p){d=renderer.get(n.name);if(d){x=d.renderTableCell||d.renderCell,f=d.renderTableDefault||d.renderDefault,h=i?x:f;if(h)return renderCellBaseVNs(e,(0,_vn.getSlotVNs)(h(n,Object.assign({$type:i?"edit":"cell"},e))))}}g=l.getCellLabel(t,r)}o=i?i.placeholder:"";return renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},[i&&(0,_utils.eqEmptyValue)(g)?(0,_vue.h)("span",{class:"vxe-cell--placeholder"},(0,_utils.formatText)((0,_utils.getFuncText)(o),1)):(0,_vue.h)("span",(0,_utils.formatText)(g,1))])])},renderDeepCell(e){return Cell.renderDeepNodeBtn(e,Cell.renderDefaultCell(e))},renderDefaultFooter(e){return getFooterContent(e)},renderRowGroupBtn(l,e){let t=l.$table;var r=t.reactData,n=t.internalData,{row:a,level:o}=l,s=t.getComputeMaps().computeAggregateOpts,r=r.rowGroupExpandedFlag,n=n.rowGroupExpandedMaps,{mode:s,padding:d,indent:i}=s.value,u=(0,_util.getRowid)(t,a),r=!!r&&!!n[u];return(0,_vue.h)("div",{class:["vxe-row-group--tree-node",{"is--expanded":r}],style:"column"!==s&&d&&i?{paddingLeft:o*i+"px"}:void 0},[a.isAggregate?(0,_vue.h)("span",{class:"vxe-row-group--node-btn",onClick(e){t.triggerRowGroupExpandEvent(e,l)}},[(0,_vue.h)("i",{class:r?getIcon().TABLE_ROW_GROUP_OPEN:getIcon().TABLE_ROW_GROUP_CLOSE})]):renderEmptyElement(t),(0,_vue.h)("div",{class:"vxe-row-group-cell"},e)])},renderTreeNodeBtn(l,e){let{$table:t,isHidden:r}=l;var n=t.reactData,a=t.internalData,{row:o,column:s,level:d}=l,s=s.slots,s=s?s.icon:null;if(s)return t.callSlot(s,l);var s=t.getComputeMaps().computeTreeOpts,n=n.treeExpandedFlag,{fullAllDataRowIdData:a,treeExpandedMaps:i,treeExpandLazyLoadedMaps:u}=a,s=s.value,{padding:c,indent:C,lazy:p,trigger:g,iconLoaded:v,showIcon:h,iconOpen:_,iconClose:E}=s,b=s.children||s.childrenField,s=s.hasChild||s.hasChildField,b=o[b],b=b&&b.length;let m=!1,f=!1,x=!1,D=!1;var T,w={};return r||(T=(0,_util.getRowid)(t,o),f=!!n&&!!i[T],p&&(n=a[T],x=!!u[T],m=o[s],D=!!n.treeLoaded)),g&&"default"!==g||(w.onClick=e=>{t.triggerTreeExpandEvent(e,l)}),(0,_vue.h)("div",{class:["vxe-cell--tree-node",{"is--active":f}],style:c&&C?{paddingLeft:d*C+"px"}:void 0},[h&&(!p||D?b:b||m)?[(0,_vue.h)("div",Object.assign({class:"vxe-cell--tree-btn"},w),[(0,_vue.h)("i",{class:x?v||getIcon().TABLE_TREE_LOADED:f?_||getIcon().TABLE_TREE_OPEN:E||getIcon().TABLE_TREE_CLOSE})])]:null,(0,_vue.h)("div",{class:"vxe-tree-cell"},e)])},renderDeepNodeBtn(e,l){var{$table:t,row:r,column:n}=e,a=n.rowGroupNode,o=t.reactData.rowGroupList;if(o.length){o=t.getComputeMaps().computeAggregateOpts,t=o.value.mode;if("column"===t?n.field===r.groupField:a)return[Cell.renderRowGroupBtn(e,l)]}return[Cell.renderTreeNodeBtn(e,l)]},renderSeqHeader(e){var{$table:l,column:t}=e,r=t.slots,r=r?r.header:null;return renderHeaderCellBaseVNs(e,renderTitleContent(e,r?l.callSlot(r,e):(0,_utils.formatText)(t.getTitle(),1)))},renderSeqCell(e){var{$table:l,column:t}=e,r=l.props.treeConfig,n=l.getComputeMaps().computeSeqOpts,n=n.value,t=t.slots,t=t?t.default:null;return t?renderCellBaseVNs(e,l.callSlot(t,e)):(l=e.seq,t=n.seqMethod,renderCellBaseVNs(e,[(0,_vue.h)("span",""+(0,_utils.formatText)(t?t(e):r?l:(n.startIndex||0)+l,1))]))},renderDeepIndexCell(e){return Cell.renderDeepNodeBtn(e,Cell.renderSeqCell(e))},renderRadioHeader(e){var{$table:l,column:t}=e,r=t.slots,n=r?r.header:null,r=r?r.title:null;return renderHeaderCellBaseVNs(e,renderTitleContent(e,n?l.callSlot(n,e):[(0,_vue.h)("span",{class:"vxe-radio--label"},r?l.callSlot(r,e):(0,_utils.formatText)(t.getTitle(),1))]))},renderRadioCell(l){let{$table:t,column:e,isHidden:r}=l;var n=t.reactData,a=t.getComputeMaps().computeRadioOpts,n=n.selectRadioRow,o=e.slots,{labelField:a,checkMethod:s,visibleMethod:d}=a.value,i=l.row,u=o?o.default:null,o=o?o.radio:null,n=t.eqRow(i,n);let c=!d||d({$table:t,row:i}),C=!!s,p;r||(p={onClick(e){!C&&c&&t.triggerRadioRowEvent(e,l)}},s&&(C=!s({$table:t,row:i})));d=Object.assign(Object.assign({},l),{checked:n,disabled:C,visible:c});return o?renderCellBaseVNs(l,t.callSlot(o,d)):(s=[],c&&s.push((0,_vue.h)("span",{class:["vxe-radio--icon",n?getIcon().TABLE_RADIO_CHECKED:C?getIcon().TABLE_RADIO_DISABLED_UNCHECKED:getIcon().TABLE_RADIO_UNCHECKED]})),(u||a)&&s.push((0,_vue.h)("span",{class:"vxe-radio--label"},u?t.callSlot(u,d):_xeUtils.default.get(i,a))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--radio",{"is--checked":n,"is--disabled":C}]},p),s)]))},renderDeepRadioCell(e){return Cell.renderDeepNodeBtn(e,Cell.renderRadioCell(e))},renderCheckboxHeader(e){let{$table:l,column:t,isHidden:r}=e;var n=l.reactData,{computeIsAllCheckboxDisabled:a,computeCheckboxOpts:o}=l.getComputeMaps();let{isAllSelected:s,isIndeterminate:d}=n,i=a.value;var n=t.slots,a=n?n.header:null,n=n?n.title:null,{checkStrictly:o,showHeader:u,headerTitle:c}=o.value,C=t.getTitle(),p={},g=(r||(p.onClick=e=>{i||l.triggerCheckAllEvent(e,!s)}),Object.assign(Object.assign({},e),{checked:s,disabled:i,indeterminate:d}));return renderHeaderCellBaseVNs(e,renderTitleContent(g,a?l.callSlot(a,g):(o?u:!1!==u)?[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":s,"is--disabled":i,"is--indeterminate":d}],title:_xeUtils.default.eqNull(c)?getI18n("vxe.table.allTitle"):""+(c||"")},p),[(0,_vue.h)("span",{class:["vxe-checkbox--icon",d?getIcon().TABLE_CHECKBOX_INDETERMINATE:s?getIcon().TABLE_CHECKBOX_CHECKED:i?getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})].concat(n||C?[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,g):C)]:[]))]:[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,g):C)]))},renderCheckboxCell(l){let{$table:t,row:e,column:r,isHidden:n}=l;var a=t.props.treeConfig,{updateCheckboxFlag:o,isRowGroupStatus:s}=t.reactData,{selectCheckboxMaps:d,treeIndeterminateRowMaps:i}=t.internalData,{computeCheckboxOpts:u,computeAggregateOpts:c}=t.getComputeMaps(),c=c.value.mapChildrenField;let{labelField:C,checkMethod:p,visibleMethod:g}=u.value;var u=r.slots,v=u?u.default:null,u=u?u.checkbox:null;let h=!1,_=!1,E=!0,b=!1;var m,f={},d=(n||(m=(0,_util.getRowid)(t,e),_=!!o&&!!d[m],p&&s&&t.isAggregateRecord(e)?(o=e[c||""])&&o.length&&!o.every(e=>!p({$table:t,row:e}))||(b=!0):(E=!g||g({$table:t,row:e}),b=p?!p({$table:t,row:e}):!!p),(a||s)&&(h=!!i[m]),f.onClick=e=>{!b&&E&&t.triggerCheckRowEvent(e,l,!_)}),Object.assign(Object.assign({},l),{checked:_,disabled:b,visible:E,indeterminate:h}));return u?renderCellBaseVNs(l,t.callSlot(u,d)):(c=[],E&&c.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",h?getIcon().TABLE_CHECKBOX_INDETERMINATE:_?getIcon().TABLE_CHECKBOX_CHECKED:b?getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),(v||C)&&c.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},v?t.callSlot(v,d):_xeUtils.default.get(e,C))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":_,"is--disabled":b,"is--indeterminate":h,"is--hidden":!E}]},f),c)]))},renderDeepSelectionCell(e){return Cell.renderDeepNodeBtn(e,Cell.renderCheckboxCell(e))},renderCheckboxCellByProp(l){let{$table:t,row:e,column:r,isHidden:n}=l;var a=t.props.treeConfig,{updateCheckboxFlag:o,isRowGroupStatus:s}=t.reactData,d=t.internalData.treeIndeterminateRowMaps,{computeCheckboxOpts:i,computeAggregateOpts:u}=t.getComputeMaps(),u=u.value.mapChildrenField,i=i.value;let{labelField:c,checkField:C,checkMethod:p,visibleMethod:g}=i;var i=i.indeterminateField||i.halfField,v=r.slots,h=v?v.default:null,v=v?v.checkbox:null;let _=!1,E=!1,b=!0,m=!1;var f,x={},u=(n||(f=(0,_util.getRowid)(t,e),E=!!o&&_xeUtils.default.get(e,C),p&&s&&t.isAggregateRecord(e)?(o=e[u||""])&&o.length&&!o.every(e=>!p({$table:t,row:e}))||(m=!0):(b=!g||g({$table:t,row:e}),m=p?!p({$table:t,row:e}):!!p),(a||s)&&(_=!!d[f]),x.onClick=e=>{!m&&b&&t.triggerCheckRowEvent(e,l,!E)}),Object.assign(Object.assign({},l),{checked:E,disabled:m,visible:b,indeterminate:_}));return v?renderCellBaseVNs(l,t.callSlot(v,u)):(o=[],b&&(o.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",_?getIcon().TABLE_CHECKBOX_INDETERMINATE:E?getIcon().TABLE_CHECKBOX_CHECKED:m?getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),h||c)&&o.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},h?t.callSlot(h,u):_xeUtils.default.get(e,c))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":E,"is--disabled":m,"is--indeterminate":i&&!E?e[i]:_,"is--hidden":!b}]},x),o)]))},renderDeepSelectionCellByProp(e){return Cell.renderDeepNodeBtn(e,Cell.renderCheckboxCellByProp(e))},renderExpandCell(l){let{$table:t,isHidden:e,row:r,column:n}=l;var a=t.reactData.isRowGroupStatus,{rowExpandedMaps:o,rowExpandLazyLoadedMaps:s}=t.internalData,d=t.getComputeMaps().computeExpandOpts,{lazy:d,labelField:i,iconLoaded:u,showIcon:c,iconOpen:C,iconClose:p,visibleMethod:g}=d.value,v=n.slots,h=v?v.default:null,v=v?v.icon:null;let _=!1,E=!1;return a&&r.isAggregate?renderCellBaseVNs(l,[]):v?renderCellBaseVNs(l,t.callSlot(v,l)):(e||(a=(0,_util.getRowid)(t,r),_=!!o[a],d&&(E=!!s[a])),renderCellBaseVNs(l,[!c||g&&!g(l)?renderEmptyElement(t):(0,_vue.h)("span",{class:["vxe-table--expanded",{"is--active":_}],onMousedown(e){e.stopPropagation()},onClick(e){t.triggerRowExpandEvent(e,l)}},[(0,_vue.h)("i",{class:["vxe-table--expand-btn",E?u||getIcon().TABLE_EXPAND_LOADED:_?C||getIcon().TABLE_EXPAND_OPEN:p||getIcon().TABLE_EXPAND_CLOSE]})]),h||i?(0,_vue.h)("span",{class:"vxe-table--expand-label"},h?t.callSlot(h,l):_xeUtils.default.get(r,i)):renderEmptyElement(t)]))},renderExpandData(e){var{$table:l,column:t}=e,{slots:t,contentRender:r}=t,t=t?t.content:null;if(t)return l.callSlot(t,e);if(r){l=renderer.get(r.name);if(l){t=l.renderTableExpand||l.renderExpand;if(t)return(0,_vn.getSlotVNs)(t(r,e))}}return[]},renderHTMLCell(e){var{$table:l,column:t}=e,t=t.slots,t=t?t.default:null;return renderCellBaseVNs(e,t?l.callSlot(t,e):[(0,_vue.h)("span",{class:"vxe-cell--html",innerHTML:getDefaultCellLabel(e)})])},renderDeepHTMLCell(e){return Cell.renderDeepNodeBtn(e,Cell.renderHTMLCell(e))},renderSortAndFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e).concat(Cell.renderFilterIcon(e))))},renderSortHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e)))},renderSortIcon(e){let{$table:l,column:t}=e;var r=l.getComputeMaps().computeSortOpts,{showIcon:r,allowBtn:n,ascTitle:a,descTitle:o,iconLayout:s,iconAsc:d,iconDesc:i,iconVisibleMethod:u}=r.value,{order:c,slots:C}=t;return!r||u&&!u(e)?[]:(r=C?C.sort:null)?(0,_vn.getSlotVNs)(l.callSlot(r,e)):[(0,_vue.h)("span",{class:["vxe-cell--sort",`vxe-cell--sort-${s}-layout`]},[(0,_vue.h)("i",{class:["vxe-sort--asc-btn",d||getIcon().TABLE_SORT_ASC,{"sort--active":"asc"===c}],title:_xeUtils.default.eqNull(a)?getI18n("vxe.table.sortAsc"):""+(a||""),onClick:n?e=>{e.stopPropagation(),l.triggerSortEvent(e,t,"asc")}:void 0}),(0,_vue.h)("i",{class:["vxe-sort--desc-btn",i||getIcon().TABLE_SORT_DESC,{"sort--active":"desc"===c}],title:_xeUtils.default.eqNull(o)?getI18n("vxe.table.sortDesc"):""+(o||""),onClick:n?e=>{e.stopPropagation(),l.triggerSortEvent(e,t,"desc")}:void 0})])]},renderFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderFilterIcon(e)))},renderFilterIcon(l){let{$table:t,column:e,hasFilter:r}=l;var n=t.reactData.filterStore,a=t.getComputeMaps().computeFilterOpts,{showIcon:a,iconNone:o,iconMatch:s,iconVisibleMethod:d}=a.value;return!a||d&&!d(l)?[]:[(0,_vue.h)("span",{class:["vxe-cell--filter",{"is--active":n.visible&&n.column===e}],onClick(e){t.triggerFilterEvent&&t.triggerFilterEvent(e,l.column,l)}},[(0,_vue.h)("i",{class:["vxe-filter--btn",r?s||getIcon().TABLE_FILTER_MATCH:o||getIcon().TABLE_FILTER_NONE],title:getI18n("vxe.table.filter")})])]},renderEditHeader(e){var{$table:l,column:t}=e,r=l.props,n=l.getComputeMaps().computeEditOpts,{editConfig:r,editRules:a}=r,n=n.value,{sortable:o,filters:s,editRender:d}=t;let i=!1,u=(a&&(a=_xeUtils.default.get(a,t.field))&&(i=a.some(e=>e.required)),[]);return(0,_utils.isEnableConf)(r)&&({showAsterisk:t,showIcon:a,icon:r}=n,u=[i&&t?(0,_vue.h)("span",{class:"vxe-cell--required-icon"},[(0,_vue.h)("i")]):renderEmptyElement(l),(0,_utils.isEnableConf)(d)&&a?(0,_vue.h)("span",{class:"vxe-cell--edit-icon"},_xeUtils.default.isFunction(r)?(0,_vn.getSlotVNs)(r({})):[(0,_vue.h)("i",{class:r||getIcon().TABLE_EDIT})]):renderEmptyElement(l)]),renderHeaderCellBaseVNs(e,u.concat(Cell.renderHeaderTitle(e)).concat(o?Cell.renderSortIcon(e):[]).concat(s?Cell.renderFilterIcon(e):[]))},renderRowEdit(e){var{$table:l,column:t}=e,l=l.reactData.editStore,l=l.actived,t=t.editRender;return Cell.runRenderer(e,(0,_utils.isEnableConf)(t)&&l&&l.row===e.row)},renderDeepRowEdit(e){return Cell.renderDeepNodeBtn(e,Cell.renderRowEdit(e))},renderCellEdit(e){var{$table:l,column:t}=e,l=l.reactData.editStore,l=l.actived,t=t.editRender;return Cell.runRenderer(e,(0,_utils.isEnableConf)(t)&&l&&l.row===e.row&&l.column===e.column)},renderDeepCellEdit(e){return Cell.renderDeepNodeBtn(e,Cell.renderCellEdit(e))},runRenderer(e,l){var{$table:t,row:r,column:n}=e,a=t.reactData.isRowGroupStatus,{slots:n,field:o,editRender:s,formatter:d}=n,i=n?n.default:null,u=n?n.groupContent||n["group-content"]:null,n=n?n.edit:null,c=renderer.get(s.name),c=c?c.renderTableEdit||c.renderEdit:null,C=Object.assign({$type:"",isEdit:l},e);if(l)return C.$type="edit",n?t.callSlot(n,C):c?(0,_vn.getSlotVNs)(c(s,C)):[];if(a&&o&&r.isAggregate){l=r,n=t.getComputeMaps().computeAggregateOpts,c=n.value.mapChildrenField,s=l.groupField,a=l.groupContent,o=c&&l[c]||[],r=l.childCount;if(u)return renderCellBaseVNs(e,t.callSlot(u,Object.assign({groupField:s,groupContent:a,childList:o,childCount:r},e)))}else if(i)return renderCellBaseVNs(e,t.callSlot(i,C));return d?renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},getDefaultCellLabel(C))]):Cell.renderDefaultCell(C)}};var _default=exports.default=Cell;
@@ -52,7 +52,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
52
52
  computeFooterCellOpts,
53
53
  computeDefaultRowHeight,
54
54
  computeResizableOpts,
55
- computeVirtualXOpts
55
+ computeVirtualXOpts,
56
+ computeIsFooterRenderOptimize
56
57
  } = $xeTable.getComputeMaps();
57
58
  const refElem = (0, _vue.ref)();
58
59
  const refFooterScroll = (0, _vue.ref)();
@@ -298,11 +299,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
298
299
  fixedColumn,
299
300
  tableColumn
300
301
  } = props;
301
- const {
302
- spanMethod,
303
- footerSpanMethod,
304
- showFooterOverflow: allColumnFooterOverflow
305
- } = tableProps;
306
302
  const {
307
303
  visibleColumn,
308
304
  fullColumnIdData
@@ -314,16 +310,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
314
310
  scrollXLoad,
315
311
  dragCol
316
312
  } = tableReactData;
313
+ const isFooterRenderOptimize = computeIsFooterRenderOptimize.value;
317
314
  let renderColumnList = tableColumn;
318
- let isOptimizeMode = false;
319
- // 如果是使用优化模式
320
- if (scrollXLoad && allColumnFooterOverflow) {
321
- if (spanMethod || footerSpanMethod) {
322
- // 如果不支持优化模式
323
- } else {
324
- isOptimizeMode = true;
325
- }
326
- }
315
+ const isOptimizeMode = isFooterRenderOptimize;
327
316
  if (!isOptimizeMode || !isColLoading && (fixedType || !overflowX)) {
328
317
  renderColumnList = visibleColumn;
329
318
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,sourceType="table",renderType="footer";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},setup(x){let te=(0,_vue.inject)("$xeTable",{}),{xID:m,props:g,reactData:_,internalData:h}=te,{computeFooterTooltipOpts:l,computeColumnOpts:t,computeCellOpts:o,computeFooterCellOpts:r,computeDefaultRowHeight:a,computeResizableOpts:i,computeVirtualXOpts:n}=te.getComputeMaps(),b=(0,_vue.ref)(),y=(0,_vue.ref)(),w=(0,_vue.ref)(),C=(0,_vue.ref)(),T=(0,_vue.ref)(),F=(0,_vue.ref)(),O=(w,C,T,F,O,I)=>{let S=te.xeGrid,D=te.xeGantt,E=x.fixedType,{resizable:M,border:z,footerCellClassName:$,footerCellStyle:k,footerAlign:R,footerSpanMethod:q,align:A,columnKey:U,showFooterOverflow:j}=g,{scrollXLoad:L,scrollYLoad:X,overflowX:N,currentColumn:V,mergeFootFlag:G}=_,{fullColumnIdData:H,mergeFooterList:P,mergeFooterCellMaps:W,scrollXStore:B}=h,K=n.value,Y=l.value;let J=i.value.isAllColumnDrag,Q=t.value;var e=a.value;let Z=o.value,ee=r.value,le=(0,_util.getCalcHeight)(ee.height)||e;return C.map((l,e)=>{var{type:t,showFooterOverflow:o,footerAlign:r,align:a,footerClassName:i,editRender:n,cellRender:u}=l,d=l.id,s=H[d]||{},n=n||u,u=n?renderer.get(n.name):null;let p=Y.showAll;var n=N&&(E?l.fixed!==E:!!l.fixed),c=(_xeUtils.default.isBoolean(ee.padding)?ee:Z).padding,o=_xeUtils.default.eqNull(o)?j:o,r=r||(u?u.tableFooterCellAlign:"")||R||a||(u?u.tableCellAlign:"")||A,a="ellipsis"===o;let f="title"===o,v=!0===o||"tooltip"===o;var u=f||v||a,o=_xeUtils.default.isBoolean(l.resizable)?l.resizable:Q.resizable||M,x={colid:d},m={},g=s.index,s=s._index,_=s;let h={$table:te,$grid:S,$gantt:D,row:F,rowIndex:I,_rowIndex:I,$rowIndex:O,column:l,columnIndex:g,$columnIndex:e,_columnIndex:s,itemIndex:_,items:F,fixed:E,source:sourceType,type:renderType,data:T},b=((f||v||p)&&(m.onMouseenter=e=>{f?(0,_dom.updateCellTitle)(e.currentTarget,l):(v||p)&&te.triggerFooterTooltipEvent(e,h)}),(v||p)&&(m.onMouseleave=e=>{(v||p)&&te.handleTargetLeaveEvent(e)}),m.onClick=e=>{te.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},h),e)},!(m.onDblclick=e=>{te.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},h),e)}));if(G&&P.length){g=W[I+":"+s];if(g){var{rowspan:_,colspan:g}=g;if(!_||!g)return null;1<_&&(b=!0,x.rowspan=_),1<g&&(b=!0,x.colspan=g)}}else if(q){var{rowspan:_=1,colspan:g=1}=q(h)||{};if(!_||!g)return null;1<_&&(x.rowspan=_),1<g&&(x.colspan=g)}_=e===C.length-1,g=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let y=!1;w&&N&&!b&&L&&10<C.length&&!l.fixed&&!K.immediate&&(s<B.visibleStartIndex-B.preloadSize||s>B.visibleEndIndex+B.preloadSize)&&(y=!0);s={};return u?s.height=le+"px":s.minHeight=le+"px",(0,_vue.h)("td",Object.assign(Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-footer--column",l.id,{["col--"+r]:r,["col--"+t]:t,"col--last":_,"fixed--width":!g,"fixed--hidden":n,"is--padding":c,"col--ellipsis":u,"col--current":V===l},(0,_dom.getPropClass)(i,h),(0,_dom.getPropClass)($,h)]},x),{style:k?_xeUtils.default.isFunction(k)?k(h):k:null}),m),{key:U||L||X||Q.useKey||Q.drag?l.id:e}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":f,"c--tooltip":v,"c--ellipsis":a}],style:s},y?[]:[(0,_vue.h)("div",{colid:d,class:"vxe-cell--wrapper vxe-footer-cell--wrapper"},l.renderFooter(h))]),!n&&o&&J?(0,_vue.h)("div",{class:["vxe-cell--col-resizable",{"is--line":!z||"none"===z}],onMousedown:e=>te.handleColResizeMousedownEvent(e,E,h),onDblclick:e=>te.handleColResizeDblclickEvent(e,h)}):renderEmptyElement(te)])})};return(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=x.fixedType,l=h.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=b,l[e+"scroll"]=y,l[e+"table"]=w,l[e+"colgroup"]=C,l[e+"list"]=T,l[e+"xSpace"]=F})}),(0,_vue.onUnmounted)(()=>{var e=x.fixedType,l=h.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:t}=x;var{spanMethod:o,footerSpanMethod:r,showFooterOverflow:a}=g,{visibleColumn:i,fullColumnIdData:n}=h,{isGroup:u,isColLoading:d,overflowX:s,scrollXLoad:p,dragCol:c}=_;let f=t,v=!1;return p&&a&&(o||r||(v=!0)),v&&(d||!l&&s)||(f=i),l&&v&&(f=e||[]),l||u||p&&c&&2<f.length&&(a=n[c.id])&&(o=a._index,r=f[0],d=f[f.length-1],s=n[r.id],i=n[d.id],s)&&i&&(u=s._index,p=i._index,o<u?f=[c].concat(f):p<o&&(f=f.concat([c]))),(0,_vue.h)("div",{ref:b,class:["vxe-table--footer-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:m},[(0,_vue.h)("div",{ref:y,class:"vxe-table--footer-inner-wrapper",onScroll(e){te.triggerFooterScrollEvent(e,l)}},[l?renderEmptyElement(te):(0,_vue.h)("div",{ref:F,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:w,class:"vxe-table--footer",xid:m,cellspacing:0,cellpadding:0,border:0,xvm:v?"1":null},[(0,_vue.h)("colgroup",{ref:C},f.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tfoot",{ref:T},((r,a)=>{let{fixedType:i,footerTableData:n}=x,{footerRowClassName:u,footerRowStyle:d}=g;return n.map((e,l)=>{var t=l,o={$table:te,row:e,_rowIndex:t,$rowIndex:l,fixed:i,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(o):u:""],style:d?_xeUtils.default.isFunction(d)?d(o):d:null},O(r,a,n,e,l,t))})})(v,f))])])])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,sourceType="table",renderType="footer";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},setup(p){let te=(0,_vue.inject)("$xeTable",{}),{xID:f,props:v,reactData:x,internalData:m}=te,{computeFooterTooltipOpts:l,computeColumnOpts:t,computeCellOpts:o,computeFooterCellOpts:r,computeDefaultRowHeight:i,computeResizableOpts:a,computeVirtualXOpts:n,computeIsFooterRenderOptimize:g}=te.getComputeMaps(),_=(0,_vue.ref)(),b=(0,_vue.ref)(),h=(0,_vue.ref)(),y=(0,_vue.ref)(),w=(0,_vue.ref)(),C=(0,_vue.ref)(),T=(w,C,T,F,I,O)=>{let D=te.xeGrid,E=te.xeGantt,S=p.fixedType,{resizable:z,border:R,footerCellClassName:$,footerCellStyle:k,footerAlign:M,footerSpanMethod:q,align:A,columnKey:U,showFooterOverflow:j}=v,{scrollXLoad:L,scrollYLoad:X,overflowX:N,currentColumn:V,mergeFootFlag:G}=x,{fullColumnIdData:H,mergeFooterList:P,mergeFooterCellMaps:W,scrollXStore:B}=m,K=n.value,Y=l.value;let J=a.value.isAllColumnDrag,Q=t.value;var e=i.value;let Z=o.value,ee=r.value,le=(0,_util.getCalcHeight)(ee.height)||e;return C.map((l,e)=>{var{type:t,showFooterOverflow:o,footerAlign:r,align:i,footerClassName:a,editRender:n,cellRender:u}=l,d=l.id,s=H[d]||{},n=n||u,u=n?renderer.get(n.name):null;let c=Y.showAll;var n=N&&(S?l.fixed!==S:!!l.fixed),p=(_xeUtils.default.isBoolean(ee.padding)?ee:Z).padding,o=_xeUtils.default.eqNull(o)?j:o,r=r||(u?u.tableFooterCellAlign:"")||M||i||(u?u.tableCellAlign:"")||A,i="ellipsis"===o;let f="title"===o,v=!0===o||"tooltip"===o;var u=f||v||i,o=_xeUtils.default.isBoolean(l.resizable)?l.resizable:Q.resizable||z,x={colid:d},m={},g=s.index,s=s._index,_=s;let b={$table:te,$grid:D,$gantt:E,row:F,rowIndex:O,_rowIndex:O,$rowIndex:I,column:l,columnIndex:g,$columnIndex:e,_columnIndex:s,itemIndex:_,items:F,fixed:S,source:sourceType,type:renderType,data:T},h=((f||v||c)&&(m.onMouseenter=e=>{f?(0,_dom.updateCellTitle)(e.currentTarget,l):(v||c)&&te.triggerFooterTooltipEvent(e,b)}),(v||c)&&(m.onMouseleave=e=>{(v||c)&&te.handleTargetLeaveEvent(e)}),m.onClick=e=>{te.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},b),e)},!(m.onDblclick=e=>{te.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},b),e)}));if(G&&P.length){g=W[O+":"+s];if(g){var{rowspan:_,colspan:g}=g;if(!_||!g)return null;1<_&&(h=!0,x.rowspan=_),1<g&&(h=!0,x.colspan=g)}}else if(q){var{rowspan:_=1,colspan:g=1}=q(b)||{};if(!_||!g)return null;1<_&&(x.rowspan=_),1<g&&(x.colspan=g)}_=e===C.length-1,g=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let y=!1;w&&N&&!h&&L&&10<C.length&&!l.fixed&&!K.immediate&&(s<B.visibleStartIndex-B.preloadSize||s>B.visibleEndIndex+B.preloadSize)&&(y=!0);s={};return u?s.height=le+"px":s.minHeight=le+"px",(0,_vue.h)("td",Object.assign(Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-footer--column",l.id,{["col--"+r]:r,["col--"+t]:t,"col--last":_,"fixed--width":!g,"fixed--hidden":n,"is--padding":p,"col--ellipsis":u,"col--current":V===l},(0,_dom.getPropClass)(a,b),(0,_dom.getPropClass)($,b)]},x),{style:k?_xeUtils.default.isFunction(k)?k(b):k:null}),m),{key:U||L||X||Q.useKey||Q.drag?l.id:e}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":f,"c--tooltip":v,"c--ellipsis":i}],style:s},y?[]:[(0,_vue.h)("div",{colid:d,class:"vxe-cell--wrapper vxe-footer-cell--wrapper"},l.renderFooter(b))]),!n&&o&&J?(0,_vue.h)("div",{class:["vxe-cell--col-resizable",{"is--line":!R||"none"===R}],onMousedown:e=>te.handleColResizeMousedownEvent(e,S,b),onDblclick:e=>te.handleColResizeDblclickEvent(e,b)}):renderEmptyElement(te)])})};return(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=p.fixedType,l=m.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=_,l[e+"scroll"]=b,l[e+"table"]=h,l[e+"colgroup"]=y,l[e+"list"]=w,l[e+"xSpace"]=C})}),(0,_vue.onUnmounted)(()=>{var e=p.fixedType,l=m.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:t}=p;var{visibleColumn:o,fullColumnIdData:r}=m,{isGroup:i,isColLoading:a,overflowX:n,scrollXLoad:u,dragCol:d}=x;let s=t;var c=g.value;return c&&(a||!l&&n)||(s=o),l&&c&&(s=e||[]),l||i||u&&d&&2<s.length&&(a=r[d.id])&&(n=a._index,o=s[0],i=s[s.length-1],u=r[o.id],a=r[i.id],u)&&a&&(o=u._index,r=a._index,n<o?s=[d].concat(s):r<n&&(s=s.concat([d]))),(0,_vue.h)("div",{ref:_,class:["vxe-table--footer-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:f},[(0,_vue.h)("div",{ref:b,class:"vxe-table--footer-inner-wrapper",onScroll(e){te.triggerFooterScrollEvent(e,l)}},[l?renderEmptyElement(te):(0,_vue.h)("div",{ref:C,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:h,class:"vxe-table--footer",xid:f,cellspacing:0,cellpadding:0,border:0,xvm:c?"1":null},[(0,_vue.h)("colgroup",{ref:y},s.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tfoot",{ref:w},((r,i)=>{let{fixedType:a,footerTableData:n}=p,{footerRowClassName:u,footerRowStyle:d}=v;return n.map((e,l)=>{var t=l,o={$table:te,row:e,_rowIndex:t,$rowIndex:l,fixed:a,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(o):u:""],style:d?_xeUtils.default.isFunction(d)?d(o):d:null},T(r,i,n,e,l,t))})})(c,s))])])])}}});
@@ -64,7 +64,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
64
64
  computeHeaderCellOpts,
65
65
  computeDefaultRowHeight,
66
66
  computeVirtualXOpts,
67
- computeFloatingFilterOpts
67
+ computeFloatingFilterOpts,
68
+ computeIsHeaderRenderOptimize
68
69
  } = $xeTable.getComputeMaps();
69
70
  const headerColumn = (0, _vue.ref)([]);
70
71
  const refElem = (0, _vue.ref)();
@@ -473,10 +474,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
473
474
  tableColumn
474
475
  } = props;
475
476
  const {
476
- mouseConfig,
477
- showHeaderOverflow: allColumnHeaderOverflow,
478
- spanMethod,
479
- footerSpanMethod
477
+ mouseConfig
480
478
  } = tableProps;
481
479
  const {
482
480
  isGroup,
@@ -490,20 +488,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
490
488
  fullColumnIdData
491
489
  } = tableInternalData;
492
490
  const mouseOpts = computeMouseOpts.value;
491
+ const isHeaderRenderOptimize = computeIsHeaderRenderOptimize.value;
493
492
  let renderHeaderList = headerColumn.value || [];
494
493
  let renderColumnList = tableColumn;
495
- let isOptimizeMode = false;
494
+ const isOptimizeMode = isHeaderRenderOptimize;
496
495
  if (isGroup) {
497
496
  renderColumnList = visibleColumn;
498
497
  } else {
499
- // 如果是使用优化模式
500
- if (scrollXLoad && allColumnHeaderOverflow) {
501
- if (spanMethod || footerSpanMethod) {
502
- // 如果不支持优化模式
503
- } else {
504
- isOptimizeMode = true;
505
- }
506
- }
507
498
  if (!isOptimizeMode || !isColLoading && (fixedType || !overflowX)) {
508
499
  renderColumnList = visibleColumn;
509
500
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,sourceType="table",renderType="header";function getColumnFirstChild(e){var l=e.children;return l&&l.length?getColumnFirstChild(l[0]):e}function getColumnLastChild(e){var l=e.children;return l&&l.length?getColumnLastChild(l[l.length-1]):e}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(f){let pe=(0,_vue.inject)("$xeTable",{}),{xID:_,props:C,reactData:b,internalData:w}=pe,{computeColumnOpts:r,computeColumnDragOpts:a,computeCellOpts:t,computeMouseOpts:y,computeHeaderCellOpts:i,computeDefaultRowHeight:n,computeVirtualXOpts:o,computeFloatingFilterOpts:H}=pe.getComputeMaps(),D=(0,_vue.ref)([]),E=(0,_vue.ref)(),S=(0,_vue.ref)(),T=(0,_vue.ref)(),F=(0,_vue.ref)(),I=(0,_vue.ref)(),O=(0,_vue.ref)(),d=(0,_vue.ref)(),u=()=>{var e=C.showCustomHeader,{collectColumn:l,visibleColumn:r}=w,a=f.tableGroupColumn,t=b.isGroup;let i=t?(0,_util.convertHeaderColumnToRows)(a):[],n=[];e&&1<i.length&&(n=(0,_util.convertHeaderToGridRows)(i),i=n),D.value=i,pe.dispatchEvent("columns-change",{visibleColgroups:n,collectColumn:l,visibleColumn:r},null)},$=(F,I,e,O,$)=>{let M=pe.xeGrid,k=pe.xeGantt,R=f.fixedType,{resizable:U,columnKey:A,showCustomHeader:q,headerCellClassName:z,headerCellStyle:L,showHeaderOverflow:G,headerAlign:X,align:j,mouseConfig:N}=C,{currentColumn:W,dragCol:V,scrollXLoad:B,scrollYLoad:K,overflowX:P,mergeHeadFlag:Y,tableColumn:J}=b,{fullColumnIdData:Q,scrollXStore:Z,mergeHeaderList:ee,mergeHeaderCellMaps:le}=w,re=o.value,ae=r.value,te=a.value,ie=t.value;var l=n.value;let ne=i.value,oe=(0,_util.getCalcHeight)(ne.height)||l,{disabledMethod:de,isCrossDrag:se,isPeerDrag:ce}=te,ue=O===e.length-1;return $.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:i,filters:n,headerClassName:o,editRender:d,cellRender:u}=e,s=e.id,c=Q[s]||{},d=d||u,u=d?renderer.get(d.name):null,d=e.children&&e.children.length,p=P&&!d&&(R?e.fixed!==R:!!e.fixed),v=(_xeUtils.default.isBoolean(ne.padding)?ne:ie).padding,a=_xeUtils.default.eqNull(a)?G:a,t=t||(u?u.tableHeaderCellAlign:"")||X||i||(u?u.tableCellAlign:"")||j,i="ellipsis"===a,u="title"===a,a=!0===a||"tooltip"===a,h=u||a||i;let g=!1,x=null;n&&(x=n[0],g=n.some(e=>e.checked));var m=c.index,c=c._index;let f={$table:pe,$grid:M,$gantt:k,$rowIndex:O,column:e,columnIndex:m,$columnIndex:l,_columnIndex:c,firstFilterOption:x,fixed:R,source:sourceType,type:renderType,isHidden:p,hasFilter:g};m={colid:s};let _=!1;if(q||(m.colspan=1<e.colSpan?e.colSpan:null,m.rowspan=1<e.rowSpan?e.rowSpan:null),Y&&ee.length&&(q||ue)){var C=le[O+":"+(q?l:c)];if(C){var{rowspan:C,colspan:b}=C;if(!C||!b)return null;1<C&&(_=!0,m.rowspan=C),1<b&&(_=!0,m.colspan=b)}}C={onClick:e=>pe.triggerHeaderCellClickEvent(e,f),onDblclick:e=>pe.triggerHeaderCellDblclickEvent(e,f)},b=ae.drag&&"cell"===te.trigger;let w=!1;b&&(w=!(!de||!de(f))),(N||b)&&(C.onMousedown=e=>pe.triggerHeaderCellMousedownEvent(e,f)),ae.drag&&(C.onDragstart=pe.handleHeaderCellDragDragstartEvent,C.onDragend=pe.handleHeaderCellDragDragendEvent,C.onDragover=pe.handleHeaderCellDragDragoverEvent,b)&&(C.onMouseup=pe.handleHeaderCellDragMouseupEvent);var b=l===$.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:ae.resizable||U,H=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let D=!1;!I||!P||F||_||V&&V.id===s||B&&10<J.length&&!e.fixed&&!re.immediate&&(c<Z.visibleStartIndex-Z.preloadSize||c>Z.visibleEndIndex+Z.preloadSize)&&(D=!0);var E,S,T,c={};return h?c.height=oe+"px":c.minHeight=oe+"px",q||d&&!ue&&(S=getColumnFirstChild(e),E=getColumnLastChild(e),S)&&E&&S.id!==E.id&&(S=Q[S.id],T=Q[E.id],S)&&T&&(c.width=T.oLeft-S.oLeft+E.renderWidth+"px"),(0,_vue.h)("th",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-header--column",s,p?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+r]:r,"col--last":b,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":h,"fixed--width":!H,"is--padding":v,"is--sortable":e.sortable,"col--filter":!!n,"is--filter-active":g,"is--drag-active":ae.drag&&!e.fixed&&!w&&(se||ce||!e.parentId),"is--drag-disabled":ae.drag&&w,"col--current":W===e},o?_xeUtils.default.isFunction(o)?o(f):o:"",z?_xeUtils.default.isFunction(z)?z(f):z:""],style:L?_xeUtils.default.isFunction(L)?L(f):L:null},m),C),{key:q?""+s+l:A||B||K||ae.useKey||ae.drag||d?s:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":a,"c--ellipsis":i}],style:c},D||I&&p?[]:[(0,_vue.h)("div",{colid:s,class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(f))]),p||!y||q&&!ue?renderEmptyElement(pe):(0,_vue.h)("div",{class:"vxe-cell--col-resizable",onMousedown:e=>pe.handleColResizeMousedownEvent(e,R,f),onDblclick:e=>pe.handleColResizeDblclickEvent(e,f)})])})},M=(y,H)=>{let D=pe.xeGrid,E=pe.xeGantt,S=f.fixedType,{showHeaderOverflow:T,headerAlign:F,align:I}=C,{currentColumn:O,overflowX:$}=b,M=w.fullColumnIdData,k=t.value;var e=n.value;let R=i.value,U=(0,_util.getCalcHeight)(R.height)||e;return H.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:i,filters:n,editRender:o,cellRender:d,floatingFilters:u,filterRender:s,slots:c}=e,p=e.id,v=M[p]||{},o=o||d,d=c?c.floatingFilter||c["floating-filter"]:null,c=o?renderer.get(o.name):null,o=(0,_utils.isEnableConf)(s)?renderer.get(s.name):null,o=o?o.renderTableFloatingFilter:null,h=$&&(S?e.fixed!==S:!!e.fixed),g=(_xeUtils.default.isBoolean(R.padding)?R:k).padding,a=_xeUtils.default.eqNull(a)?T:a,t=t||(c?c.tableHeaderCellAlign:"")||F||i||(c?c.tableCellAlign:"")||I,i="ellipsis"===a,c="title"===a,a=!0===a||"tooltip"===a,x=c||a||i;let m=!1,f=null;n&&(f=n[0],m=n.some(e=>e.checked));var n=v.index,v=v._index,v={$table:pe,$grid:D,$gantt:E,column:e,columnIndex:n,$columnIndex:l,_columnIndex:v,option:f,fixed:S,source:sourceType,type:renderType,isHidden:h,hasFilter:m},_={colid:p},C=l===H.length-1,b=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width),w={};return x?w.height=U+"px":w.minHeight=U+"px",(0,_vue.h)("th",Object.assign({class:["vxe-table--column vxe-header--column",p,h?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+r]:r,"col--last":C,"col--fixed":e.fixed,"col--ellipsis":x,"fixed--width":!b,"is--padding":g,"is--sortable":e.sortable,"col--current":O===e}],key:p},_),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":c,"c--tooltip":a,"c--ellipsis":i}],style:w},y&&h&&!u?[]:[(0,_vue.h)("div",{colid:p,class:"vxe-cell--wrapper vxe-header-cell--wrapper"},d?pe.callSlot(d,v):o&&f?(0,_vn.getSlotVNs)(o(s,{$table:pe,option:f,column:e,columnIndex:n,$columnIndex:l})):[])])])})};return(0,_vue.watch)(()=>f.tableColumn,u),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=f.fixedType,l=pe.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=E,l[e+"scroll"]=S,l[e+"table"]=T,l[e+"colgroup"]=F,l[e+"list"]=I,l[e+"xSpace"]=O,l[e+"repair"]=d,u()})}),(0,_vue.onUnmounted)(()=>{var e=f.fixedType,l=pe.internalData,l=l.elemStore,e=`${e||"main"}-header-`;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+"repair"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:r}=f;var{mouseConfig:a,showHeaderOverflow:t,spanMethod:i,footerSpanMethod:n}=C,{isGroup:o,isColLoading:d,overflowX:u,scrollXLoad:s,dragCol:c}=b,{visibleColumn:p,fullColumnIdData:v}=w,h=y.value;let g=D.value||[],x=r,m=!1;return o?x=p:(s&&t&&(i||n||(m=!0)),m&&(d||!l&&u)||(x=p),l&&m&&(x=e||[]),g=[x]),l||o||s&&c&&2<x.length&&(t=v[c.id])&&(i=t._index,n=x[0],d=x[x.length-1],u=v[n.id],p=v[d.id],u)&&p&&(s=u._index,t=p._index,i<s?(x=[c].concat(x),g=[[c].concat(g[0])].concat(g.slice(1))):t<i&&(x=x.concat([c]),g=[g[0].concat([c])].concat(g.slice(1)))),(0,_vue.h)("div",{ref:E,class:["vxe-table--header-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:_},[(0,_vue.h)("div",{ref:S,class:"vxe-table--header-inner-wrapper",onScroll(e){pe.triggerHeaderScrollEvent(e,l)}},[l?renderEmptyElement(pe):(0,_vue.h)("div",{ref:O,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:T,class:"vxe-table--header",xid:_,cellspacing:0,cellpadding:0,border:0,xvm:m?"1":null},[(0,_vue.h)("colgroup",{ref:F},x.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("thead",{ref:I},((a,t,i)=>{let{fixedType:n,fixedColumn:e}=f,{headerRowClassName:o,headerRowStyle:d}=C;var l=w.visibleColumn,r=H.value,u=i.map((e,l)=>{var r={$table:pe,$rowIndex:l,fixed:n,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-header--row",o?_xeUtils.default.isFunction(o)?o(r):o:""],style:d?_xeUtils.default.isFunction(d)?d(r):d:null},$(a,t,i,l,e))});return r.enabled&&u.push((0,_vue.h)("tr",{key:"ff",class:["vxe-header--row"]},M(t,t&&n?e:l))),u})(o,m,g))]),a&&h.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:_},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(pe)])])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,sourceType="table",renderType="header";function getColumnFirstChild(e){var l=e.children;return l&&l.length?getColumnFirstChild(l[0]):e}function getColumnLastChild(e){var l=e.children;return l&&l.length?getColumnLastChild(l[l.length-1]):e}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(g){let pe=(0,_vue.inject)("$xeTable",{}),{xID:x,props:m,reactData:f,internalData:_}=pe,{computeColumnOpts:r,computeColumnDragOpts:a,computeCellOpts:t,computeMouseOpts:C,computeHeaderCellOpts:i,computeDefaultRowHeight:n,computeVirtualXOpts:o,computeFloatingFilterOpts:b,computeIsHeaderRenderOptimize:w}=pe.getComputeMaps(),y=(0,_vue.ref)([]),H=(0,_vue.ref)(),D=(0,_vue.ref)(),E=(0,_vue.ref)(),T=(0,_vue.ref)(),I=(0,_vue.ref)(),S=(0,_vue.ref)(),d=(0,_vue.ref)(),u=()=>{var e=m.showCustomHeader,{collectColumn:l,visibleColumn:r}=_,a=g.tableGroupColumn,t=f.isGroup;let i=t?(0,_util.convertHeaderColumnToRows)(a):[],n=[];e&&1<i.length&&(n=(0,_util.convertHeaderToGridRows)(i),i=n),y.value=i,pe.dispatchEvent("columns-change",{visibleColgroups:n,collectColumn:l,visibleColumn:r},null)},F=(S,F,e,O,$)=>{let R=pe.xeGrid,k=pe.xeGantt,M=g.fixedType,{resizable:U,columnKey:z,showCustomHeader:A,headerCellClassName:q,headerCellStyle:L,showHeaderOverflow:G,headerAlign:X,align:j,mouseConfig:N}=m,{currentColumn:W,dragCol:V,scrollXLoad:B,scrollYLoad:K,overflowX:P,mergeHeadFlag:Y,tableColumn:J}=f,{fullColumnIdData:Q,scrollXStore:Z,mergeHeaderList:ee,mergeHeaderCellMaps:le}=_,re=o.value,ae=r.value,te=a.value,ie=t.value;var l=n.value;let ne=i.value,oe=(0,_util.getCalcHeight)(ne.height)||l,{disabledMethod:de,isCrossDrag:se,isPeerDrag:ce}=te,ue=O===e.length-1;return $.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:i,filters:n,headerClassName:o,editRender:d,cellRender:u}=e,s=e.id,c=Q[s]||{},d=d||u,u=d?renderer.get(d.name):null,d=e.children&&e.children.length,p=P&&!d&&(M?e.fixed!==M:!!e.fixed),v=(_xeUtils.default.isBoolean(ne.padding)?ne:ie).padding,a=_xeUtils.default.eqNull(a)?G:a,t=t||(u?u.tableHeaderCellAlign:"")||X||i||(u?u.tableCellAlign:"")||j,i="ellipsis"===a,u="title"===a,a=!0===a||"tooltip"===a,h=u||a||i;let g=!1,x=null;n&&(x=n[0],g=n.some(e=>e.checked));var m=c.index,c=c._index;let f={$table:pe,$grid:R,$gantt:k,$rowIndex:O,column:e,columnIndex:m,$columnIndex:l,_columnIndex:c,firstFilterOption:x,fixed:M,source:sourceType,type:renderType,isHidden:p,hasFilter:g};m={colid:s};let _=!1;if(A||(m.colspan=1<e.colSpan?e.colSpan:null,m.rowspan=1<e.rowSpan?e.rowSpan:null),Y&&ee.length&&(A||ue)){var C=le[O+":"+(A?l:c)];if(C){var{rowspan:C,colspan:b}=C;if(!C||!b)return null;1<C&&(_=!0,m.rowspan=C),1<b&&(_=!0,m.colspan=b)}}C={onClick:e=>pe.triggerHeaderCellClickEvent(e,f),onDblclick:e=>pe.triggerHeaderCellDblclickEvent(e,f)},b=ae.drag&&"cell"===te.trigger;let w=!1;b&&(w=!(!de||!de(f))),(N||b)&&(C.onMousedown=e=>pe.triggerHeaderCellMousedownEvent(e,f)),ae.drag&&(C.onDragstart=pe.handleHeaderCellDragDragstartEvent,C.onDragend=pe.handleHeaderCellDragDragendEvent,C.onDragover=pe.handleHeaderCellDragDragoverEvent,b)&&(C.onMouseup=pe.handleHeaderCellDragMouseupEvent);var b=l===$.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:ae.resizable||U,H=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let D=!1;!F||!P||S||_||V&&V.id===s||B&&10<J.length&&!e.fixed&&!re.immediate&&(c<Z.visibleStartIndex-Z.preloadSize||c>Z.visibleEndIndex+Z.preloadSize)&&(D=!0);var E,T,I,c={};return h?c.height=oe+"px":c.minHeight=oe+"px",A||d&&!ue&&(T=getColumnFirstChild(e),E=getColumnLastChild(e),T)&&E&&T.id!==E.id&&(T=Q[T.id],I=Q[E.id],T)&&I&&(c.width=I.oLeft-T.oLeft+E.renderWidth+"px"),(0,_vue.h)("th",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-header--column",s,p?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+r]:r,"col--last":b,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":h,"fixed--width":!H,"is--padding":v,"is--sortable":e.sortable,"col--filter":!!n,"is--filter-active":g,"is--drag-active":ae.drag&&!e.fixed&&!w&&(se||ce||!e.parentId),"is--drag-disabled":ae.drag&&w,"col--current":W===e},o?_xeUtils.default.isFunction(o)?o(f):o:"",q?_xeUtils.default.isFunction(q)?q(f):q:""],style:L?_xeUtils.default.isFunction(L)?L(f):L:null},m),C),{key:A?""+s+l:z||B||K||ae.useKey||ae.drag||d?s:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":a,"c--ellipsis":i}],style:c},D||F&&p?[]:[(0,_vue.h)("div",{colid:s,class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(f))]),p||!y||A&&!ue?renderEmptyElement(pe):(0,_vue.h)("div",{class:"vxe-cell--col-resizable",onMousedown:e=>pe.handleColResizeMousedownEvent(e,M,f),onDblclick:e=>pe.handleColResizeDblclickEvent(e,f)})])})},O=(y,H)=>{let D=pe.xeGrid,E=pe.xeGantt,T=g.fixedType,{showHeaderOverflow:I,headerAlign:S,align:F}=m,{currentColumn:O,overflowX:$}=f,R=_.fullColumnIdData,k=t.value;var e=n.value;let M=i.value,U=(0,_util.getCalcHeight)(M.height)||e;return H.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:i,filters:n,editRender:o,cellRender:d,floatingFilters:u,filterRender:s,slots:c}=e,p=e.id,v=R[p]||{},o=o||d,d=c?c.floatingFilter||c["floating-filter"]:null,c=o?renderer.get(o.name):null,o=(0,_utils.isEnableConf)(s)?renderer.get(s.name):null,o=o?o.renderTableFloatingFilter:null,h=$&&(T?e.fixed!==T:!!e.fixed),g=(_xeUtils.default.isBoolean(M.padding)?M:k).padding,a=_xeUtils.default.eqNull(a)?I:a,t=t||(c?c.tableHeaderCellAlign:"")||S||i||(c?c.tableCellAlign:"")||F,i="ellipsis"===a,c="title"===a,a=!0===a||"tooltip"===a,x=c||a||i;let m=!1,f=null;n&&(f=n[0],m=n.some(e=>e.checked));var n=v.index,v=v._index,v={$table:pe,$grid:D,$gantt:E,column:e,columnIndex:n,$columnIndex:l,_columnIndex:v,option:f,fixed:T,source:sourceType,type:renderType,isHidden:h,hasFilter:m},_={colid:p},C=l===H.length-1,b=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width),w={};return x?w.height=U+"px":w.minHeight=U+"px",(0,_vue.h)("th",Object.assign({class:["vxe-table--column vxe-header--column",p,h?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+r]:r,"col--last":C,"col--fixed":e.fixed,"col--ellipsis":x,"fixed--width":!b,"is--padding":g,"is--sortable":e.sortable,"col--current":O===e}],key:p},_),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":c,"c--tooltip":a,"c--ellipsis":i}],style:w},y&&h&&!u?[]:[(0,_vue.h)("div",{colid:p,class:"vxe-cell--wrapper vxe-header-cell--wrapper"},d?pe.callSlot(d,v):o&&f?(0,_vn.getSlotVNs)(o(s,{$table:pe,option:f,column:e,columnIndex:n,$columnIndex:l})):[])])])})};return(0,_vue.watch)(()=>g.tableColumn,u),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=g.fixedType,l=pe.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=H,l[e+"scroll"]=D,l[e+"table"]=E,l[e+"colgroup"]=T,l[e+"list"]=I,l[e+"xSpace"]=S,l[e+"repair"]=d,u()})}),(0,_vue.onUnmounted)(()=>{var e=g.fixedType,l=pe.internalData,l=l.elemStore,e=`${e||"main"}-header-`;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+"repair"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:r}=g;var a=m.mouseConfig,{isGroup:t,isColLoading:i,overflowX:n,scrollXLoad:o,dragCol:d}=f,{visibleColumn:u,fullColumnIdData:s}=_,c=C.value,p=w.value;let v=y.value||[],h=r;return t?h=u:(p&&(i||!l&&n)||(h=u),l&&p&&(h=e||[]),v=[h]),l||t||o&&d&&2<h.length&&(i=s[d.id])&&(n=i._index,u=h[0],o=h[h.length-1],i=s[u.id],u=s[o.id],i)&&u&&(s=i._index,o=u._index,n<s?(h=[d].concat(h),v=[[d].concat(v[0])].concat(v.slice(1))):o<n&&(h=h.concat([d]),v=[v[0].concat([d])].concat(v.slice(1)))),(0,_vue.h)("div",{ref:H,class:["vxe-table--header-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:x},[(0,_vue.h)("div",{ref:D,class:"vxe-table--header-inner-wrapper",onScroll(e){pe.triggerHeaderScrollEvent(e,l)}},[l?renderEmptyElement(pe):(0,_vue.h)("div",{ref:S,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:E,class:"vxe-table--header",xid:x,cellspacing:0,cellpadding:0,border:0,xvm:p?"1":null},[(0,_vue.h)("colgroup",{ref:T},h.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("thead",{ref:I},((a,t,i)=>{let{fixedType:n,fixedColumn:e}=g,{headerRowClassName:o,headerRowStyle:d}=m;var l=_.visibleColumn,r=b.value,u=i.map((e,l)=>{var r={$table:pe,$rowIndex:l,fixed:n,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-header--row",o?_xeUtils.default.isFunction(o)?o(r):o:""],style:d?_xeUtils.default.isFunction(d)?d(r):d:null},F(a,t,i,l,e))});return r.enabled&&u.push((0,_vue.h)("tr",{key:"ff",class:["vxe-header--row"]},O(t,t&&n?e:l))),u})(t,p,v))]),a&&c.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:x},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(pe)])])}}});