UNPKG

ll-package

Version:

2 lines (1 loc) 11.1 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const v=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),u=require("../../../@babel/runtime/helpers/esm/extends.js"),e=require("vue"),be=require("./Header/Header.js"),Qe=require("./Body/index.js"),Ze=require("./hooks/useColumns.js"),Se=require("./hooks/useFrame.js"),b=require("./utils/valueUtil.js"),et=require("./hooks/useStickyOffsets.js"),tt=require("./ColGroup.js"),Ne=require("./Panel/index.js"),I=require("./Footer/index.js"),ke=require("./utils/expandUtil.js"),lt=require("./utils/fixUtil.js"),at=require("./stickyScrollBar.js"),ot=require("./hooks/useSticky.js"),Te=require("./FixedHolder/index.js"),_=require("../vc-util/warning.js"),Ee=require("../_util/reactivePick.js"),le=require("../_util/hooks/useState.js"),qe=require("../_util/util.js"),nt=require("../vc-util/Dom/isVisible.js"),ut=require("../_util/getScrollBarSize.js"),ae=require("../_util/classNames.js"),dt=require("../vc-resize-observer/index.js"),st=require("./context/TableContext.js"),rt=require("./context/BodyContext.js"),ct=require("./context/ResizeContext.js"),it=require("./context/StickyContext.js"),ft=require("../_util/pickAttrs.js"),vt=require("./context/ExpandedRowContext.js"),mt=[],xt={},oe="rc-table-internal-hook",yt=e.defineComponent({name:"VcTable",inheritAttrs:!1,props:["prefixCls","data","columns","rowKey","tableLayout","scroll","rowClassName","title","footer","id","showHeader","components","customRow","customHeaderRow","direction","expandFixed","expandColumnWidth","expandedRowKeys","defaultExpandedRowKeys","expandedRowRender","expandRowByClick","expandIcon","onExpand","onExpandedRowsChange","onUpdate:expandedRowKeys","defaultExpandAllRows","indentSize","expandIconColumnIndex","expandedRowClassName","childrenColumnName","rowExpandable","sticky","transformColumns","internalHooks","internalRefs","canExpandable","onUpdateInternalRefs","transformCellText"],emits:["expand","expandedRowsChange","updateInternalRefs","update:expandedRowKeys"],setup(a,Ve){let{attrs:S,slots:m,emit:z}=Ve;const r=e.computed(()=>a.data||mt),ne=e.computed(()=>!!r.value.length),We=e.computed(()=>b.mergeObject(a.components,{})),P=(l,t)=>b.getPathValue(We.value,l)||t,N=e.computed(()=>{const l=a.rowKey;return typeof l=="function"?l:t=>{const o=t&&t[l];return process.env.NODE_ENV!=="production"&&_.warning(o!==void 0,"Each record in table should have a unique `key` prop, or set `rowKey` to an unique primary key."),o}}),ue=e.computed(()=>a.expandIcon||ke.renderExpandIcon),k=e.computed(()=>a.childrenColumnName||"children"),Ke=e.computed(()=>a.expandedRowRender?"row":a.canExpandable||r.value.some(l=>l&&typeof l=="object"&&l[k.value])?"nest":!1),T=e.shallowRef([]);e.watchEffect(()=>{a.defaultExpandedRowKeys&&(T.value=a.defaultExpandedRowKeys),a.defaultExpandAllRows&&(T.value=ke.findAllChildrenKeys(r.value,N.value,k.value))})();const x=e.computed(()=>new Set(a.expandedRowKeys||T.value||[])),de=l=>{const t=N.value(l,r.value.indexOf(l));let o;const s=x.value.has(t);s?(x.value.delete(t),o=[...x.value]):o=[...x.value,t],T.value=o,z("expand",!s,l),z("update:expandedRowKeys",o),z("expandedRowsChange",o)};process.env.NODE_ENV!=="production"&&a.expandedRowRender&&r.value.some(l=>Array.isArray(l==null?void 0:l[k.value]))&&_.warning(!1,"`expandedRowRender` should not use with nested Table");const E=e.ref(0),[H,n]=Ze.default(u.default(u.default({},e.toRefs(a)),{expandable:e.computed(()=>!!a.expandedRowRender),expandedKeys:x,getRowKey:N,onTriggerExpand:de,expandIcon:ue}),e.computed(()=>a.internalHooks===oe?a.transformColumns:null)),se=e.computed(()=>({columns:H.value,flattenColumns:n.value})),q=e.ref(),re=e.ref(),d=e.ref(),w=e.ref({scrollWidth:0,clientWidth:0}),ce=e.ref(),[Le,B]=le.default(!1),[$e,A]=le.default(!1),[Oe,Ie]=Se.useLayoutState(new Map),_e=e.computed(()=>b.getColumnsKey(n.value)),ie=e.computed(()=>_e.value.map(l=>Oe.value.get(l))),D=e.computed(()=>n.value.length),V=et.default(ie,D,e.toRef(a,"direction")),i=e.computed(()=>a.scroll&&b.validateValue(a.scroll.y)),f=e.computed(()=>a.scroll&&b.validateValue(a.scroll.x)||!!a.expandFixed),F=e.computed(()=>f.value&&n.value.some(l=>{let{fixed:t}=l;return t})),fe=e.ref(),R=ot.default(e.toRef(a,"sticky"),e.toRef(a,"prefixCls")),M=e.reactive({}),W=e.computed(()=>{const l=Object.values(M)[0];return(i.value||R.value.isSticky)&&l}),ze=(l,t)=>{t?M[l]=t:delete M[l]},U=e.ref({}),K=e.ref({}),j=e.ref({});e.watchEffect(()=>{i.value&&(K.value={overflowY:"scroll",maxHeight:qe.toPx(a.scroll.y)}),f.value&&(U.value={overflowX:"auto"},i.value||(K.value={overflowY:"hidden"}),j.value={width:a.scroll.x===!0?"auto":qe.toPx(a.scroll.x),minWidth:"100%"})});const Pe=(l,t)=>{nt.default(q.value)&&Ie(o=>{if(o.get(l)!==t){const s=new Map(o);return s.set(l,t),s}return o})},[He,ve]=Se.useTimeoutLock(null);function L(l,t){if(!t)return;if(typeof t=="function"){t(l);return}const o=t.$el||t;o.scrollLeft!==l&&(o.scrollLeft=l)}const y=l=>{let{currentTarget:t,scrollLeft:o}=l;var s;const $=a.direction==="rtl",c=typeof o=="number"?o:t.scrollLeft,g=t||xt;if((!ve()||ve()===g)&&(He(g),L(c,re.value),L(c,d.value),L(c,ce.value),L(c,(s=fe.value)===null||s===void 0?void 0:s.setScrollLeft)),t){const{scrollWidth:O,clientWidth:C}=t;$?(B(-c<O-C),A(-c>0)):(B(c>0),A(c<O-C))}},Y=()=>{f.value&&d.value?y({currentTarget:d.value}):(B(!1),A(!1))};let me;const xe=l=>{l!==E.value&&(Y(),E.value=q.value?q.value.offsetWidth:l)},Be=l=>{let{width:t}=l;if(clearTimeout(me),E.value===0){xe(t);return}me=setTimeout(()=>{xe(t)},100)};e.watch([f,()=>a.data,()=>a.columns],()=>{f.value&&Y()},{flush:"post"});const[G,Ae]=le.default(0);it.useProvideSticky(),e.onMounted(()=>{e.nextTick(()=>{var l,t;Y(),Ae(ut.getTargetScrollBarSize(d.value).width),w.value={scrollWidth:((l=d.value)===null||l===void 0?void 0:l.scrollWidth)||0,clientWidth:((t=d.value)===null||t===void 0?void 0:t.clientWidth)||0}})}),e.onUpdated(()=>{e.nextTick(()=>{var l,t;const o=((l=d.value)===null||l===void 0?void 0:l.scrollWidth)||0,s=((t=d.value)===null||t===void 0?void 0:t.clientWidth)||0;(w.value.scrollWidth!==o||w.value.clientWidth!==s)&&(w.value={scrollWidth:o,clientWidth:s})})}),e.watchEffect(()=>{a.internalHooks===oe&&a.internalRefs&&a.onUpdateInternalRefs({body:d.value?d.value.$el||d.value:null})},{flush:"post"});const X=e.computed(()=>a.tableLayout?a.tableLayout:F.value?a.scroll.x==="max-content"?"auto":"fixed":i.value||R.value.isSticky||n.value.some(l=>{let{ellipsis:t}=l;return t})?"fixed":"auto"),De=()=>{var l;return ne.value?null:((l=m.emptyText)===null||l===void 0?void 0:l.call(m))||"No Data"};st.useProvideTable(e.reactive(u.default(u.default({},e.toRefs(Ee.reactivePick(a,"prefixCls","direction","transformCellText"))),{getComponent:P,scrollbarSize:G,fixedInfoList:e.computed(()=>n.value.map((l,t)=>lt.getCellFixedInfo(t,t,n.value,V.value,a.direction))),isSticky:e.computed(()=>R.value.isSticky),summaryCollect:ze}))),rt.useProvideBody(e.reactive(u.default(u.default({},e.toRefs(Ee.reactivePick(a,"rowClassName","expandedRowClassName","expandRowByClick","expandedRowRender","expandIconColumnIndex","indentSize"))),{columns:H,flattenColumns:n,tableLayout:X,expandIcon:ue,expandableType:Ke,onTriggerExpand:de}))),ct.useProvideResize({onColumnResize:Pe}),vt.useProvideExpandedRow({componentWidth:E,fixHeader:i,fixColumn:F,horizonScroll:f});const ye=()=>e.createVNode(Qe.default,{data:r.value,measureColumnWidth:i.value||f.value||R.value.isSticky,expandedKeys:x.value,rowExpandable:a.rowExpandable,getRowKey:N.value,customRow:a.customRow,childrenColumnName:k.value},{emptyNode:De}),he=()=>e.createVNode(tt.default,{colWidths:n.value.map(l=>{let{width:t}=l;return t}),columns:n.value},null);return()=>{var l;const{prefixCls:t,scroll:o,tableLayout:s,direction:$,title:c=m.title,footer:g=m.footer,id:O,showHeader:C,customHeaderRow:Fe}=a,{isSticky:pe,offsetHeader:Me,offsetSummary:Ue,offsetScroll:je,stickyClassName:Ye,container:Ge}=R.value,we=P(["table"],"table"),J=P(["body"]),h=(l=m.summary)===null||l===void 0?void 0:l.call(m,{pageData:r.value});let Q=()=>null;const Z={colWidths:ie.value,columCount:n.value.length,stickyOffsets:V.value,customHeaderRow:Fe,fixHeader:i.value,scroll:o};if(process.env.NODE_ENV!=="production"&&typeof J=="function"&&ne.value&&!i.value&&_.warning(!1,"`components.body` with render props is only work on `scroll.y`."),i.value||pe){let ee=()=>null;typeof J=="function"?(ee=()=>J(r.value,{scrollbarSize:G.value,ref:d,onScroll:y}),Z.colWidths=n.value.map((p,Je)=>{let{width:Ce}=p;const te=Je===H.value.length-1?Ce-G.value:Ce;return typeof te=="number"&&!Number.isNaN(te)?te:(_.warning(!1,"When use `components.body` with render props. Each column should have a fixed `width` value."),0)})):ee=()=>e.createVNode("div",{style:u.default(u.default({},U.value),K.value),onScroll:y,ref:d,class:ae.default(`${t}-body`)},[e.createVNode(we,{style:u.default(u.default({},j.value),{tableLayout:X.value})},{default:()=>[he(),ye(),!W.value&&h&&e.createVNode(I.default,{stickyOffsets:V.value,flattenColumns:n.value},{default:()=>[h]})]})]);const ge=u.default(u.default(u.default({noData:!r.value.length,maxContentScroll:f.value&&o.x==="max-content"},Z),se.value),{direction:$,stickyClassName:Ye,onScroll:y});Q=()=>e.createVNode(e.Fragment,null,[C!==!1&&e.createVNode(Te.default,v.default(v.default({},ge),{},{stickyTopOffset:Me,class:`${t}-header`,ref:re}),{default:p=>e.createVNode(e.Fragment,null,[e.createVNode(be.default,p,null),W.value==="top"&&e.createVNode(I.default,p,{default:()=>[h]})])}),ee(),W.value&&W.value!=="top"&&e.createVNode(Te.default,v.default(v.default({},ge),{},{stickyBottomOffset:Ue,class:`${t}-summary`,ref:ce}),{default:p=>e.createVNode(I.default,p,{default:()=>[h]})}),pe&&d.value&&e.createVNode(at.default,{ref:fe,offsetScroll:je,scrollBodyRef:d,onScroll:y,container:Ge,scrollBodySizeInfo:w.value},null)])}else Q=()=>e.createVNode("div",{style:u.default(u.default({},U.value),K.value),class:ae.default(`${t}-content`),onScroll:y,ref:d},[e.createVNode(we,{style:u.default(u.default({},j.value),{tableLayout:X.value})},{default:()=>[he(),C!==!1&&e.createVNode(be.default,v.default(v.default({},Z),se.value),null),ye(),h&&e.createVNode(I.default,{stickyOffsets:V.value,flattenColumns:n.value},{default:()=>[h]})]})]);const Xe=ft.default(S,{aria:!0,data:!0}),Re=()=>e.createVNode("div",v.default(v.default({},Xe),{},{class:ae.default(t,{[`${t}-rtl`]:$==="rtl",[`${t}-ping-left`]:Le.value,[`${t}-ping-right`]:$e.value,[`${t}-layout-fixed`]:s==="fixed",[`${t}-fixed-header`]:i.value,[`${t}-fixed-column`]:F.value,[`${t}-scroll-horizontal`]:f.value,[`${t}-has-fix-left`]:n.value[0]&&n.value[0].fixed,[`${t}-has-fix-right`]:n.value[D.value-1]&&n.value[D.value-1].fixed==="right",[S.class]:S.class}),style:S.style,id:O,ref:q}),[c&&e.createVNode(Ne.default,{class:`${t}-title`},{default:()=>[c(r.value)]}),e.createVNode("div",{class:`${t}-container`},[Q()]),g&&e.createVNode(Ne.default,{class:`${t}-footer`},{default:()=>[g(r.value)]})]);return f.value?e.createVNode(dt.default,{onResize:Be},{default:Re}):Re()}}});exports.INTERNAL_HOOKS=oe;exports.default=yt;