vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
3 lines (2 loc) • 2.43 kB
JavaScript
;const e=require("vue");require("./table-cell.vue.cjs");require("./table-row.vue.cjs");const v=require("@vexip-ui/config"),c=require("@vexip-ui/utils"),k=require("./symbol.cjs"),_=require("./table-row.vue2.cjs"),B=require("./table-cell.vue2.cjs"),b=e.defineComponent({name:"TableBody",__name:"table-body",props:{fixed:{type:String,default:null}},setup(a){const r=a,{state:t,getters:s}=e.inject(k.TABLE_STORE),d=v.useNameHelper("table"),g=e.toRef(t,"locale"),m=e.computed(()=>r.fixed==="left"?t.leftFixedColumns:r.fixed==="right"?t.rightFixedColumns:t.normalColumns),x=e.computed(()=>t.virtual?t.virtualData:s.processedData),p=e.computed(()=>t.rightFixedColumns.length?r.fixed==="right":t.leftFixedColumns.length?r.fixed==="left":!0),h=e.computed(()=>{var u,l;const i=r.fixed==="left"?c.getLast(s.leftFixedWidths):r.fixed==="right"?c.getLast(s.rightFixedWidths):c.getLast(s.normalWidths),o=((u=m.value[0])==null?void 0:u.fixed)==="left"&&t.sidePadding[0]||0,n=((l=c.getLast(m.value))==null?void 0:l.fixed)==="right"&&t.sidePadding[1]||0,f=p.value&&x.value.length===0;return{[d.cv("right-fixed-width")]:r.fixed==="right"&&i?`${i+o+n}px`:"0px",[f?"width":"minWidth"]:i&&`${i+o+n}px`,minHeight:`${t.totalHeight}px`}}),y=e.computed(()=>{const{rowHeight:i,rowMinHeight:o}=t;return{minHeight:`${i||o}px`}});return(i,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(d).be("body")),role:"rowgroup",style:e.normalizeStyle(h.value)},[x.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(x.value,(n,f)=>(e.openBlock(),e.createBlock(_,{key:f,row:n,index:n.listIndex,fixed:a.fixed,"aria-rowindex":n.index},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(u,l)=>(e.openBlock(),e.createBlock(B,{key:l,row:n,"row-index":n.listIndex,column:u,"col-index":l,fixed:a.fixed,"aria-colindex":l},null,8,["row","row-index","column","col-index","fixed","aria-colindex"]))),128))]),_:2},1032,["row","index","fixed","aria-rowindex"]))),128)):p.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass([e.unref(d).be("empty"),a.fixed==="right"&&e.unref(d).bem("empty","right")]),style:e.normalizeStyle(y.value)},[e.renderSlot(i.$slots,"empty",{},()=>[e.createTextVNode(e.toDisplayString(g.value.empty),1)])],6)):e.createCommentVNode("",!0)],6))}});module.exports=b;
//# sourceMappingURL=table-body.vue2.cjs.map