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");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,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:C,props:_,reactData:b,internalData:w}=pe,{computeColumnOpts:a,computeColumnDragOpts:r,computeCellOpts:t,computeMouseOpts:y,computeHeaderCellOpts:n,computeDefaultRowHeight:i,computeVirtualXOpts:o}=pe.getComputeMaps(),D=(0,_vue.ref)([]),H=(0,_vue.ref)(),E=(0,_vue.ref)(),S=(0,_vue.ref)(),M=(0,_vue.ref)(),O=(0,_vue.ref)(),T=(0,_vue.ref)(),d=(0,_vue.ref)(),u=()=>{var e=_.showCustomHeader,{collectColumn:l,visibleColumn:a}=w,r=f.tableGroupColumn,t=b.isGroup;let n=t?(0,_util.convertHeaderColumnToRows)(r):[],i=[];e&&1{let F=pe.xeGrid,R=pe.xeGantt,U=f.fixedType,{resizable:$,columnKey:z,showCustomHeader:L,headerCellClassName:q,headerCellStyle:A,showHeaderOverflow:G,headerAlign:X,align:j,mouseConfig:N}=_,{currentColumn:V,dragCol:W,scrollXLoad:B,scrollYLoad:K,overflowX:P,mergeHeadFlag:Y,tableColumn:J}=b,{fullColumnIdData:Q,scrollXStore:Z,mergeHeaderList:ee,mergeHeaderCellMaps:le}=w,ae=o.value,re=a.value,te=r.value,ne=t.value;var l=i.value;let ie=n.value,oe=(0,_util.getCalcHeight)(ie.height)||l,{disabledMethod:de,isCrossDrag:se,isPeerDrag:ce}=te,ue=I===e.length-1;return k.map((e,l)=>{var{type:a,showHeaderOverflow:r,headerAlign:t,align:n,filters:i,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&&(U?e.fixed!==U:!!e.fixed),v=(_xeUtils.default.isBoolean(ie.padding)?ie:ne).padding,r=_xeUtils.default.eqNull(r)?G:r,t=t||(u?u.tableHeaderCellAlign:"")||X||n||(u?u.tableCellAlign:"")||j,n="ellipsis"===r,u="title"===r,r=!0===r||"tooltip"===r,h=u||r||n;let g=!1,x=null;i&&(x=i[0],g=i.some(e=>e.checked));var m=c.index,c=c._index;let f={$table:pe,$grid:F,$gantt:R,$rowIndex:I,column:e,columnIndex:m,$columnIndex:l,_columnIndex:c,firstFilterOption:x,fixed:U,type:renderType,isHidden:p,hasFilter:g};m={colid:s};let C=!1;if(L||(m.colspan=1pe.triggerHeaderCellClickEvent(e,f),onDblclick:e=>pe.triggerHeaderCellDblclickEvent(e,f)},b=re.drag&&"cell"===te.trigger;let w=!1;b&&(w=!(!de||!de(f))),(N||b)&&(_.onMousedown=e=>pe.triggerHeaderCellMousedownEvent(e,f)),re.drag&&(_.onDragstart=pe.handleHeaderCellDragDragstartEvent,_.onDragend=pe.handleHeaderCellDragDragendEvent,_.onDragover=pe.handleHeaderCellDragDragoverEvent,b)&&(_.onMouseup=pe.handleHeaderCellDragMouseupEvent);var b=l===k.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:re.resizable||$,D=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let H=!1;!T||!P||O||C||W&&W.id===s||B&&10Z.visibleEndIndex+Z.preloadSize)&&(H=!0);var E,S,M,c={};return h?c.height=oe+"px":c.minHeight=oe+"px",L||d&&!ue&&(S=getColumnFirstChild(e),E=getColumnLastChild(e),S)&&E&&S.id!==E.id&&(S=Q[S.id],M=Q[E.id],S)&&M&&(c.width=M.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--"+a]:a,"col--last":b,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":h,"fixed--width":!D,"is--padding":v,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":g,"is--drag-active":re.drag&&!e.fixed&&!w&&(se||ce||!e.parentId),"is--drag-disabled":re.drag&&w,"col--current":V===e},o?_xeUtils.default.isFunction(o)?o(f):o:"",q?_xeUtils.default.isFunction(q)?q(f):q:""],style:A?_xeUtils.default.isFunction(A)?A(f):A:null},m),_),{key:L?""+s+l:z||B||K||re.useKey||re.drag||d?s:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":r,"c--ellipsis":n}],style:c},H||T&&p?[]:[(0,_vue.h)("div",{colid:s,class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(f))]),p||!y||L&&!ue?renderEmptyElement(pe):(0,_vue.h)("div",{class:"vxe-cell--col-resizable",onMousedown:e=>pe.handleColResizeMousedownEvent(e,U,f),onDblclick:e=>pe.handleColResizeDblclickEvent(e,f)})])})};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"]=H,l[e+"scroll"]=E,l[e+"table"]=S,l[e+"colgroup"]=M,l[e+"list"]=O,l[e+"xSpace"]=T,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:a}=f;var{mouseConfig:r,showHeaderOverflow:t,spanMethod:n,footerSpanMethod:i}=_,{isGroup:o,isColLoading:d,overflowX:u,scrollXLoad:s,dragCol:c}=b,{visibleColumn:p,fullColumnIdData:v}=w,h=y.value;let g=D.value||[],x=a,m=!1;return o?x=p:(s&&t&&(n||i||(m=!0)),m&&(d||!l&&u)||(x=p),l&&m&&(x=e||[]),g=[x]),l||o||s&&c&&2(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("thead",{ref:O},((r,t,n)=>{let i=f.fixedType,{headerRowClassName:o,headerRowStyle:d}=_;return n.map((e,l)=>{var a={$table:pe,$rowIndex:l,fixed:i,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-header--row",o?_xeUtils.default.isFunction(o)?o(a):o:""],style:d?_xeUtils.default.isFunction(d)?d(a):d:null},I(r,t,n,l,e))})})(o,m,g))]),r&&h.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:C},[(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)])])}}});