vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
3 lines (2 loc) • 5.52 kB
JavaScript
const e=require("vue");require("../ellipsis/index.cjs");require("../renderer/index.cjs");require("../resize-observer/index.cjs");const M=require("@vexip-ui/config"),V=require("@vexip-ui/hooks"),k=require("@vexip-ui/utils"),p=require("./symbol.cjs"),H=require("../resize-observer/resize-observer.cjs"),P=require("../ellipsis/ellipsis.vue2.cjs"),C=require("../renderer/renderer.cjs"),A=["scope","colspan","rowspan"],G=e.defineComponent({name:"TableFootCell",__name:"table-foot-cell",props:{row:{type:Object,default:()=>({})},column:{type:Object,default:()=>({})},colIndex:{type:Number,default:-1},summary:{type:Object,default:()=>({})},summaryIndex:{type:Number,default:-1},fixed:{type:String,default:null},above:{type:Boolean,default:!1}},setup(u){const t=u,{state:o,getters:i,mutations:I}=e.inject(p.TABLE_STORE),l=e.inject(p.TABLE_ACTIONS),r=M.useNameHelper("table"),{isRtl:S}=V.useRtl(),w=e.ref(),d=e.computed(()=>t.column.index+s.value.colSpan>=o.columns.length),x=e.computed(()=>t.fixed==="left"?o.leftFixedColumns:t.fixed==="right"?o.rightFixedColumns:o.normalColumns),B=e.computed(()=>t.above?"af":"bf"),E=e.computed(()=>t.above?o.aboveSummaries:o.belowSummaries),y=e.computed(()=>t.above?i.topFixedHeights:i.bottomFixedHeights),F=e.computed(()=>{let n=null;typeof o.footClass=="function"?n=o.footClass({column:t.column,columnIndex:t.column.index,summary:t.summary,summaryIndex:t.summaryIndex}):n=o.footClass;const a=p.columnTypes.includes(t.column.type);return[r.be("foot-cell"),{[r.bem("foot-cell","typed")]:a,[r.bem("foot-cell","center")]:a||t.column.textAlign==="center",[r.bem("foot-cell","right")]:t.column.textAlign==="right",[r.bem("foot-cell","last")]:d.value},t.column.class,n]}),s=e.computed(()=>o.cellSpanMap.get(t.fixed||"default").get(`${B.value}${t.summaryIndex},${t.column.index}`)||{colSpan:1,rowSpan:1}),q=e.computed(()=>typeof o.footStyle=="function"?o.footStyle({column:t.column,columnIndex:t.column.index,summary:t.summary,summaryIndex:t.summaryIndex}):o.cellStyle),N=e.computed(()=>{var b,g;const n=t.fixed==="left"?i.leftFixedWidths:t.fixed==="right"?i.rightFixedWidths:i.normalWidths,{colSpan:a,rowSpan:c}=s.value,v=((b=x.value[0])==null?void 0:b.fixed)==="left"&&o.sidePadding[0]||0,j=((g=k.getLast(x.value))==null?void 0:g.fixed)==="right"&&o.sidePadding[1]||0,D=n[t.colIndex+a]-n[t.colIndex];let f;return c>1&&(f=y.value[t.summaryIndex+c]-y.value[t.summaryIndex]),[t.column.style||"",q.value,{display:!a||!c?"none":void 0,width:`${(t.column.index?0:v)+(d.value?j:0)+D}px`,height:f?`${f}px`:void 0,visibility:t.column.fixed&&!t.fixed?"hidden":void 0,borderRightWidth:!o.border&&a>1&&t.colIndex+a>=n.length-1?0:void 0,borderBottomWidth:c>1&&t.summaryIndex+c>=E.value.length?0:void 0,transform:`translate3d(${S.value?"-":""}${(t.column.index?v:0)+n[t.colIndex]}px, 0, 0)`}]}),z=e.computed(()=>{let n;return typeof o.footAttrs=="function"?n=o.footAttrs({column:t.column,columnIndex:t.column.index,summary:t.summary,summaryIndex:t.summaryIndex}):n=o.footAttrs,{...t.column.attrs||{},...n||{}}}),h=e.computed(()=>i.summaryData.get(t.column.key));function m(n){return{column:t.column,columnIndex:t.column.index,summary:t.summary,summaryIndex:t.summaryIndex,event:n}}function W(n){l==null||l.emitFootEvent("Enter",m(n))}function L(n){l==null||l.emitFootEvent("Leave",m(n))}function R(n){l==null||l.emitFootEvent("Click",m(n))}function T(n){l==null||l.emitFootEvent("Dblclick",m(n))}function $(n){l==null||l.emitFootEvent("Contextmenu",m(n))}function O(n){var a,c;I.setCellHeight(t.row.key,t.column.key,(((c=(a=n.borderBoxSize)==null?void 0:a[0])==null?void 0:c.blockSize)??n.contentRect.height)+o.borderWidth)}return(n,a)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps(z.value,{ref_key:"wrapper",ref:w,class:F.value,role:"cell",scope:u.column.first?"row":void 0,colspan:s.value.colSpan!==1?s.value.colSpan:void 0,rowspan:s.value.rowSpan!==1?s.value.rowSpan:void 0,style:N.value,onMouseenter:W,onMouseleave:L,onClick:R,onDblclick:T,onContextmenu:$}),[u.column.index===0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).be("side-pad")),role:"none","aria-hidden":""},null,2)):e.createCommentVNode("",!0),e.unref(k.isFunction)(u.summary.renderer)?(e.openBlock(),e.createBlock(e.unref(H),{key:1,disabled:u.column.ellipsis??e.unref(o).ellipsis,"on-resize":O},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass({[e.unref(r).be("content")]:!0,[e.unref(r).bem("content","ellipsis")]:u.column.ellipsis??e.unref(o).ellipsis})},[u.column.ellipsis??e.unref(o).ellipsis?(e.openBlock(),e.createBlock(e.unref(P),{key:0,inherit:"",class:e.normalizeClass(e.unref(r).be("ellipsis")),"tooltip-theme":e.unref(o).tooltipTheme,"tip-max-width":e.unref(o).tooltipWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(C),{renderer:u.summary.renderer,data:{column:u.column,index:u.column.index,rows:e.unref(o).data,meta:h.value}},null,8,["renderer","data"])]),_:1},8,["class","tooltip-theme","tip-max-width"])):(e.openBlock(),e.createBlock(e.unref(C),{key:1,renderer:u.summary.renderer,data:{column:u.column,index:u.column.index,rows:e.unref(o).data,meta:h.value}},null,8,["renderer","data"]))],2)]),_:1},8,["disabled"])):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass([e.unref(r).be("side-pad"),e.unref(r).bem("side-pad","right")]),role:"none","aria-hidden":""},null,2)):e.createCommentVNode("",!0)],16,A))}});module.exports=G;
//# sourceMappingURL=table-foot-cell.vue2.cjs.map
;