UNPKG

@wetspace/pro-components

Version:
2 lines (1 loc) 6.78 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),c=require("element-plus"),E=require("./types.js"),H=require("../../node_modules/.pnpm/@vueuse_core@10.11.1_vue@3.5.12_typescript@5.4.2_/node_modules/@vueuse/core/index.js"),J=require("./components/selection.vue.js"),L=require("./components/enum.vue.js"),d=require("../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.js"),Q=require("../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/difference.js"),U=require("../../node_modules/.pnpm/@vueuse_shared@10.11.1_vue@3.5.12_typescript@5.4.2_/node_modules/@vueuse/shared/index.js"),K=e=>Array.isArray(e)?e.join(""):e,_=n.defineComponent({name:"WetSchemaTable",props:E.wetSchemaTableProps,emits:["update:selections"],setup(e,{emit:y,expose:A}){const C=n.shallowRef(),{height:M}=H.useElementBounding(C),g=c.useNamespace("schema-table"),m=n.useSlots(),S=n.shallowRef(),f=n.shallowRef([]),R=n.computed(()=>{const t={...e};return delete t.columns,t}),x=n.shallowRef(!0),P=U.useDebounceFn(()=>{x.value=!0},200);n.watch(()=>e.size,()=>{e.fill&&(x.value=!1,P())});const F=n.computed(()=>Array.isArray(e.rowKey)?e.rowKey.join("."):e.rowKey),q=n.computed(()=>e.rowKey?e.selections.map(t=>d.default(t,e.rowKey,void 0)):[]),D=(t,l)=>{var u;let a=e.selections;!e.rowKey||!l||(t?a.push(l):a=a.filter(r=>{const o=d.default(l,e.rowKey,void 0),i=d.default(r,e.rowKey,void 0);return o!==i}),(u=e.rowSelection)!=null&&u.onChange&&e.rowSelection.onChange(a),y("update:selections",a))},O=t=>{let l=[...e.selections];const a=e.rowKey||"";if(t){let u=l.map(r=>d.default(r,a,void 0));u=u.filter(r=>r!==void 0),e.data.forEach(r=>{const o=d.default(r,a,void 0);u.includes(o)||l.push(r)}),f.value=["1"]}else{f.value=[];let u=e.data.map(r=>d.default(r,a,void 0));u=u.filter(r=>r!==void 0),l=l.filter(r=>{const o=d.default(r,a,void 0);return!u.includes(o)})}y("update:selections",l)},b=n.computed(()=>{const t=e.rowKey||[],l=[...e.selections];let a=(e.data||[]).map(o=>d.default(o,t,void 0));a=a.filter(o=>o!==void 0);let u=l.map(o=>d.default(o,t,void 0));return u=u.filter(o=>o!==void 0),Q.default(a,u).length===0}),j=n.computed(()=>b.value?!b.value:e.selections.length!==0);n.watch(b,t=>{t&&e.selections.length!==0?f.value=["1"]:f.value=[]});const z=t=>{var l,a;!e.rowKey||t===void 0||(((l=e.rowSelection)==null?void 0:l.type)==="line"||((a=e.rowSelection)==null?void 0:a.type)==="radio")&&(e.rowSelection.onChange&&e.rowSelection.onChange([t]),y("update:selections",[t]))},B=n.computed(()=>{var t,l,a;return((t=e.rowSelection)==null?void 0:t.type)==="line"||((l=e.rowSelection)==null?void 0:l.type)==="radio"?!0:!!((a=e.columns)==null?void 0:a.find(r=>r.isScrollMark===!0))||e.highlightCurrentRow}),N=(t,l)=>{const a=Array.isArray(l)?l:[l];return d.default(t,a,e.emptyFormat||void 0)},v=n.computed(()=>{var l;let t=!1;return(l=e.columns)==null||l.forEach(a=>{a.fixed&&(t=!0)}),t}),V=n.shallowRef({}),I=t=>{const l=Array.isArray(t.dataIndex)?t.dataIndex.join(""):t.dataIndex,a={};return Object.keys(E.wetBaseColumnProps).forEach(u=>{t[u]!==void 0&&(a[u]=t[u])}),a.prop=l,t.columns&&t.columns.length!==0?n.createVNode(c.ElTableColumn,n.mergeProps(a,{showOverflowTooltip:t.ellipsis?e.ellipsisProps:!1,key:l}),{default(){return t.columns.map(u=>I(u))}}):n.createVNode(c.ElTableColumn,n.mergeProps(a,{label:a.label||t.title,key:l}),{default({row:u,$index:r}){return n.createVNode(n.Fragment,null,[t.isScrollMark&&n.createVNode("span",{ref:o=>V.value[r]=o},null),t.isRender?m[l]&&m[l]({row:u,$index:r}):t.render?t.render({row:u,$index:r}):t.valueEnum?n.createVNode(L.default,{valueEnum:t.valueEnum,value:N(u,t.dataIndex)},null):N(u,t.dataIndex)])}})},T=n.shallowRef({}),W=(t,l)=>{const a=[...t,{}],u=[];let r="",o=[],i=0;return a.forEach((s,w)=>{if(!r)r=s[l],o.push(s);else if(r===s[l])o.push(s);else{r=s[l];const h=i;i=w,u.push({start:h,lg:o.length}),o=[],o.push(s)}}),u};e.mergeDataIndexs&&n.watch(()=>e.data,t=>{var l;t&&((l=e.mergeDataIndexs)==null||l.forEach(a=>{const u=K(a);T.value[u]=W(t,u)}))},{immediate:!0,deep:!0});const $=n.computed(()=>{if(e.mergeDataIndexs||e.spanMethod)return t=>{const{column:l,rowIndex:a}=t;if(e.spanMethod)return e.spanMethod(t);if((e.mergeDataIndexs||[]).map(r=>K(r)).includes(l.property)){const r=T.value[l.property].find(o=>o.start===a);return r?[r.lg,1]:[0,0]}else return[1,1]}});return A({scrollToIndex:t=>{var a;V.value[t]&&V.value[t].scrollIntoView({behavior:"smooth",block:"center"});const l=e.data[t];l&&((a=S.value)==null||a.setCurrentRow(l))}}),()=>{var t;return n.createVNode("div",{ref:C,class:[g.b(),g.is("fill",e.fill)]},[n.createVNode(J.default,{type:(t=e.rowSelection)==null?void 0:t.type,modelValue:q.value},{default:()=>[n.createVNode(c.ElTable,n.mergeProps(R.value,{rowKey:F.value,highlightCurrentRow:B.value,height:e.height?e.height:e.fill?M.value:void 0,"onCurrent-change":z,ref:S,style:{display:x.value?"block":"none"},spanMethod:$.value}),{default:()=>[e.expandable&&n.createVNode(c.ElTableColumn,{fixed:v.value,type:"expand"},{default({row:l,$index:a}){var u,r,o,i,s,w;if(typeof e.expandable=="boolean")return m.expandable&&m.expandable({row:l,$index:a});{let h;const k=(u=e.expandable)==null?void 0:u.dataIndex;return(r=e.expandable)!=null&&r.dataOutput?h=e.expandable.dataOutput:h=G=>k?d.default(G,k,[]):[],n.createVNode(_,{size:((o=e.expandable)==null?void 0:o.size)||"small",class:[g.e("expandable")],expandable:(i=e.expandable)==null?void 0:i.expandable,showIndex:(s=e.expandable)==null?void 0:s.showIndex,columns:(w=e.expandable)==null?void 0:w.columns,ellipsisProps:e.ellipsisProps,data:h(l,a)},null)}}}),e.rowSelection&&e.rowKey&&n.createVNode(c.ElTableColumn,{width:50,fixed:e.rowSelection.fixed||v.value,align:"center"},{default({row:l}){var u,r;if(!e.rowKey)return n.createVNode(n.Fragment,null,null);const a=d.default(l,e.rowKey,void 0);return((u=e.rowSelection)==null?void 0:u.type)==="checkbox"?n.createVNode(c.ElCheckbox,{label:a,value:a,onChange:o=>D(o,l)},{default:()=>[n.createTextVNode(" ")]}):((r=e.rowSelection)==null?void 0:r.type)==="radio"?n.createVNode(c.ElRadio,{label:a,value:a},{default:()=>[n.createTextVNode(" ")]}):n.createVNode(n.Fragment,null,null)},header(){var l;return n.createVNode(n.Fragment,null,[((l=e.rowSelection)==null?void 0:l.type)==="checkbox"&&n.createVNode(c.ElCheckboxGroup,{modelValue:f.value},{default:()=>[n.createVNode(c.ElCheckbox,{indeterminate:j.value,label:"1",value:"1",onChange:O},{default:()=>[n.createTextVNode(" ")]})]})])}}),e.showIndex&&n.createVNode(c.ElTableColumn,{fixed:v.value,label:"序号",showOverflowTooltip:e.ellipsisProps,width:60},{default({$index:l}){return n.createVNode(n.Fragment,null,[l+1])}}),(e.columns||[]).map(l=>I(l))]})]})])}}});exports.default=_;