mirror of
https://github.com/ZeroCatDev/Classworks.git
synced 2026-03-21 09:13:10 +00:00
2 lines
33 KiB
JavaScript
2 lines
33 KiB
JavaScript
import{n as q,p as _,l as He,z as be,f as J,an as ce,u as te,a5 as Pe,I as G,at as vt,s as R,au as yt,w as Z,ah as ht,o as $e,av as ue,aw as ne,F as bt,a0 as we,ax as ke,ag as pe,aj as xe,ay as Be,ai as re,j as pt}from"./vendor-vuetify-B0GHMr1h.js";import{l as j,e as I,d as X,o as Ie,p as Y,k as S,j as w,m as $,n as ie,w as xt,a as St,b as U,s as Pt,t as N,F as Q,N as wt,I as kt,a1 as Oe,x as oe,a9 as se,S as It,y as Dt}from"./vendor-vue-PFj_oO9L.js";import{V as Ee}from"./VPagination-Cb_slen7.js";import{V as Le,u as Tt,m as Vt}from"./VSelect-CAHRYPW1.js";import{a4 as Ct,H as Ft,a5 as Bt,f as _e,a6 as Ot,L as De,h as je,i as Et}from"./index-Bt6o_4oU.js";import{V as _t}from"./VChip-DaYeKNE7.js";import{V as de}from"./VCheckboxBtn-OBAFJm_G.js";import{b as Ae,m as At}from"./VTable-ClwXRb3K.js";const Nt=_({page:{type:[Number,String],default:1},itemsPerPage:{type:[Number,String],default:10},pageBy:{type:String,default:"any"}},"DataTable-paginate"),Me=Symbol.for("vuetify:data-table-pagination");function Rt(e){const a=q(e,"page",void 0,t=>Number(t??1)),l=q(e,"itemsPerPage",void 0,t=>Number(t??10));return{page:a,itemsPerPage:l}}function Gt(e){const{page:a,itemsPerPage:l,itemsLength:t}=e,n=I(()=>l.value===-1?0:l.value*(a.value-1)),r=I(()=>l.value===-1?t.value:Math.min(t.value,n.value+l.value)),o=I(()=>l.value===-1||t.value===0?1:Math.ceil(t.value/l.value));Ie([a,o],()=>{a.value>o.value&&(a.value=o.value)});function i(f){l.value=f,a.value=1}function u(){a.value=be(a.value+1,1,o.value)}function c(){a.value=be(a.value-1,1,o.value)}function g(f){a.value=be(f,1,o.value)}const v={page:a,itemsPerPage:l,startIndex:n,stopIndex:r,pageCount:o,itemsLength:t,nextPage:u,prevPage:c,setPage:g,setItemsPerPage:i};return Y(Me,v),v}function Ht(){const e=X(Me);if(!e)throw new Error("Missing pagination!");return e}function $t(e){const a=He("usePaginatedItems"),{items:l,startIndex:t,stopIndex:n,itemsPerPage:r}=e,o=I(()=>r.value<=0?j(l):j(l).slice(t.value,n.value));return Ie(o,i=>{a.emit("update:currentItems",i)},{immediate:!0}),{paginatedItems:o}}function Lt(e){const{sortedItems:a,paginate:l,group:t}=e,n=j(e.pageBy);if(n==="item"){const{paginatedItems:r,pageCount:o,setItemsPerPage:i}=l(a),{flatItems:u}=t(r);return{pageCount:o,setItemsPerPage:i,paginatedItems:u}}if(n==="group"){const{flatItems:r,groups:o}=t(a),{paginatedItems:i,pageCount:u,setItemsPerPage:c}=l(o),g=I(()=>{if(!i.value.length)return[];const v=i.value.at(0).id,f=i.value.at(-1).id,p=r.value.findIndex(d=>d.type==="group"&&d.id===v),y=r.value.findIndex(d=>d.type==="group"&&d.id===f),h=r.value.findIndex((d,b)=>b>y&&d.type==="group"&&d.depth===0);return r.value.slice(p,h===-1?void 0:h)});return{pageCount:u,setItemsPerPage:c,paginatedItems:g}}if(n==="any"){const{flatItems:r}=t(a),{paginatedItems:o,pageCount:i,setItemsPerPage:u}=l(r);return{pageCount:i,setItemsPerPage:u,paginatedItems:o}}throw new Error(`Unrecognized pagination target ${n}`)}const We=_({color:String,prevIcon:{type:G,default:"$prev"},nextIcon:{type:G,default:"$next"},firstIcon:{type:G,default:"$first"},lastIcon:{type:G,default:"$last"},itemsPerPageText:{type:String,default:"$vuetify.dataFooter.itemsPerPageText"},pageText:{type:String,default:"$vuetify.dataFooter.pageText"},firstPageLabel:{type:String,default:"$vuetify.dataFooter.firstPage"},prevPageLabel:{type:String,default:"$vuetify.dataFooter.prevPage"},nextPageLabel:{type:String,default:"$vuetify.dataFooter.nextPage"},lastPageLabel:{type:String,default:"$vuetify.dataFooter.lastPage"},itemsPerPageOptions:{type:Array,default:()=>[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"},{value:-1,title:"$vuetify.dataFooter.itemsPerPageAll"}]},showCurrentPage:Boolean},"VDataTableFooter"),Ne=J()({name:"VDataTableFooter",props:We(),setup(e,a){let{slots:l}=a;const{t}=ce(),{page:n,pageCount:r,startIndex:o,stopIndex:i,itemsLength:u,itemsPerPage:c,setItemsPerPage:g}=Ht(),v=I(()=>e.itemsPerPageOptions.map(f=>typeof f=="number"?{value:f,title:f===-1?t("$vuetify.dataFooter.itemsPerPageAll"):String(f)}:{...f,title:isNaN(Number(f.title))?t(f.title):f.title}));return te(()=>{var p;const f=Ee.filterProps(e);return S("div",{class:"v-data-table-footer"},[(p=l.prepend)==null?void 0:p.call(l),S("div",{class:"v-data-table-footer__items-per-page"},[S("span",null,[t(e.itemsPerPageText)]),w(Le,{items:v.value,itemColor:e.color,modelValue:c.value,"onUpdate:modelValue":y=>g(Number(y)),density:"compact",variant:"outlined","aria-label":t(e.itemsPerPageText),hideDetails:!0},null)]),S("div",{class:"v-data-table-footer__info"},[S("div",null,[t(e.pageText,u.value?o.value+1:0,i.value,u.value)])]),S("div",{class:"v-data-table-footer__pagination"},[w(Ee,$({modelValue:n.value,"onUpdate:modelValue":y=>n.value=y,density:"comfortable",firstAriaLabel:e.firstPageLabel,lastAriaLabel:e.lastPageLabel,length:r.value,nextAriaLabel:e.nextPageLabel,previousAriaLabel:e.prevPageLabel,rounded:!0,showFirstLastPage:!0,totalVisible:e.showCurrentPage?1:0,variant:"plain"},Pe(f,["color"])),null)])])}),{}}}),ee=vt({align:{type:String,default:"start"},fixed:{type:[Boolean,String],default:!1},fixedOffset:[Number,String],fixedEndOffset:[Number,String],height:[Number,String],lastFixed:Boolean,firstFixedEnd:Boolean,noPadding:Boolean,indent:[Number,String],empty:Boolean,tag:String,width:[Number,String],maxWidth:[Number,String],nowrap:Boolean},(e,a)=>{let{slots:l}=a;const t=e.tag??"td",n=typeof e.fixed=="string"?e.fixed:e.fixed?"start":"none";return w(t,{class:ie(["v-data-table__td",{"v-data-table-column--fixed":n==="start","v-data-table-column--fixed-end":n==="end","v-data-table-column--last-fixed":e.lastFixed,"v-data-table-column--first-fixed-end":e.firstFixedEnd,"v-data-table-column--no-padding":e.noPadding,"v-data-table-column--nowrap":e.nowrap,"v-data-table-column--empty":e.empty},`v-data-table-column--align-${e.align}`]),style:{height:R(e.height),width:R(e.width),maxWidth:R(e.maxWidth),left:n==="start"?R(e.fixedOffset||null):void 0,right:n==="end"?R(e.fixedEndOffset||null):void 0,paddingInlineStart:e.indent?R(e.indent):void 0}},{default:()=>{var r;return[(r=l.default)==null?void 0:r.call(l)]}})}),jt=_({headers:Array},"DataTable-header"),Ke=Symbol.for("vuetify:data-table-headers"),ze={title:"",sortable:!1},Mt={...ze,width:48};function Wt(){const a=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).map(l=>({element:l,priority:0}));return{enqueue:(l,t)=>{let n=!1;for(let r=0;r<a.length;r++)if(a[r].priority>t){a.splice(r,0,{element:l,priority:t}),n=!0;break}n||a.push({element:l,priority:t})},size:()=>a.length,count:()=>{let l=0;if(!a.length)return 0;const t=Math.floor(a[0].priority);for(let n=0;n<a.length;n++)Math.floor(a[n].priority)===t&&(l+=1);return l},dequeue:()=>a.shift()}}function Se(e){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(!e.children)a.push(e);else for(const l of e.children)Se(l,a);return a}function Ue(e){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new Set;for(const l of e)l.key&&a.add(l.key),l.children&&Ue(l.children,a);return a}function Kt(e){if(e.key){if(e.key==="data-table-group")return ze;if(["data-table-expand","data-table-select"].includes(e.key))return Mt}}function Te(e){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.children?Math.max(a,...e.children.map(l=>Te(l,a+1))):a}function zt(e){let a=!1;function l(r,o){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"none";if(r)if(i!=="none"&&(r.fixed=i),r.fixed===!0&&(r.fixed="start"),r.fixed===o)if(r.children)if(o==="start")for(let u=r.children.length-1;u>=0;u--)l(r.children[u],o,o);else for(let u=0;u<r.children.length;u++)l(r.children[u],o,o);else!a&&o==="start"?r.lastFixed=!0:!a&&o==="end"?r.firstFixedEnd=!0:isNaN(Number(r.width))?yt(`Multiple fixed columns should have a static width (key: ${r.key})`):r.minWidth=Math.max(Number(r.width)||0,Number(r.minWidth)||0),a=!0;else if(r.children)if(o==="start")for(let u=r.children.length-1;u>=0;u--)l(r.children[u],o);else for(let u=0;u<r.children.length;u++)l(r.children[u],o);else a=!1}for(let r=e.length-1;r>=0;r--)l(e[r],"start");for(let r=0;r<e.length;r++)l(e[r],"end");let t=0;for(let r=0;r<e.length;r++)t=qe(e[r],t);let n=0;for(let r=e.length-1;r>=0;r--)n=Qe(e[r],n)}function qe(e){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!e)return a;if(e.children){e.fixedOffset=a;for(const l of e.children)a=qe(l,a)}else e.fixed&&e.fixed!=="end"&&(e.fixedOffset=a,a+=parseFloat(e.width||"0")||0);return a}function Qe(e){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!e)return a;if(e.children){e.fixedEndOffset=a;for(const l of e.children)a=Qe(l,a)}else e.fixed==="end"&&(e.fixedEndOffset=a,a+=parseFloat(e.width||"0")||0);return a}function Ut(e,a){const l=[];let t=0;const n=Wt(e);for(;n.size()>0;){let o=n.count();const i=[];let u=1;for(;o>0;){const{element:c,priority:g}=n.dequeue(),v=a-t-Te(c);if(i.push({...c,rowspan:v??1,colspan:c.children?Se(c).length:1}),c.children)for(const f of c.children){const p=g%1+u/Math.pow(10,t+2);n.enqueue(f,t+v+p)}u+=1,o-=1}t+=1,l.push(i)}return{columns:e.map(o=>Se(o)).flat(),headers:l}}function Je(e){const a=[];for(const l of e){const t={...Kt(l),...l},n=t.key??(typeof t.value=="string"?t.value:null),r=t.value??n??null,o={...t,key:n,value:r,sortable:t.sortable??(t.key!=null||!!t.sort),children:t.children?Je(t.children):void 0};a.push(o)}return a}function qt(e,a){const l=U([]),t=U([]),n=U({}),r=U({}),o=U({});xt(()=>{var h,d,b;const c=(e.headers||Object.keys(e.items[0]??{}).map(s=>({key:s,title:St(s)}))).slice(),g=Ue(c);(h=a==null?void 0:a.groupBy)!=null&&h.value.length&&!g.has("data-table-group")&&c.unshift({key:"data-table-group",title:"Group"}),(d=a==null?void 0:a.showSelect)!=null&&d.value&&!g.has("data-table-select")&&c.unshift({key:"data-table-select"}),(b=a==null?void 0:a.showExpand)!=null&&b.value&&!g.has("data-table-expand")&&c.push({key:"data-table-expand"});const v=Je(c);zt(v);const f=Math.max(...v.map(s=>Te(s)))+1,p=Ut(v,f);l.value=p.headers,t.value=p.columns;const y=p.headers.flat(1);for(const s of y)s.key&&(s.sortable&&(s.sort&&(n.value[s.key]=s.sort),s.sortRaw&&(r.value[s.key]=s.sortRaw)),s.filter&&(o.value[s.key]=s.filter))});const i={headers:l,columns:t,sortFunctions:n,sortRawFunctions:r,filterFunctions:o};return Y(Ke,i),i}function fe(){const e=X(Ke);if(!e)throw new Error("Missing headers!");return e}const Qt={showSelectAll:!1,allSelected:()=>[],select:e=>{var t;let{items:a,value:l}=e;return new Set(l?[(t=a[0])==null?void 0:t.value]:[])},selectAll:e=>{let{selected:a}=e;return a}},Xe={showSelectAll:!0,allSelected:e=>{let{currentPage:a}=e;return a},select:e=>{let{items:a,value:l,selected:t}=e;for(const n of a)l?t.add(n.value):t.delete(n.value);return t},selectAll:e=>{let{value:a,currentPage:l,selected:t}=e;return Xe.select({items:l,value:a,selected:t})}},Jt={showSelectAll:!0,allSelected:e=>{let{allItems:a}=e;return a},select:e=>{let{items:a,value:l,selected:t}=e;for(const n of a)l?t.add(n.value):t.delete(n.value);return t},selectAll:e=>{let{value:a,allItems:l}=e;return new Set(a?l.map(t=>t.value):[])}},Xt=_({showSelect:Boolean,selectStrategy:{type:[String,Object],default:"page"},modelValue:{type:Array,default:()=>[]},valueComparator:Function},"DataTable-select"),Ye=Symbol.for("vuetify:data-table-selection");function Yt(e,a){let{allItems:l,currentPage:t}=a;const n=q(e,"modelValue",e.modelValue,s=>{const x=e.valueComparator;return x?new Set(Z(s).map(D=>{var P;return((P=l.value.find(F=>x(D,F.value)))==null?void 0:P.value)??D})):new Set(Z(s).map(D=>{var P,F;return ht(D)?((P=l.value.find(V=>D===V.value))==null?void 0:P.value)??D:((F=l.value.find(V=>$e(D,V.value)))==null?void 0:F.value)??D}))},s=>[...s.values()]),r=I(()=>l.value.filter(s=>s.selectable)),o=I(()=>j(t).filter(s=>s.selectable)),i=I(()=>{if(typeof e.selectStrategy=="object")return e.selectStrategy;switch(e.selectStrategy){case"single":return Qt;case"all":return Jt;case"page":default:return Xe}}),u=Pt(null);function c(s){return Z(s).every(x=>n.value.has(x.value))}function g(s){return Z(s).some(x=>n.value.has(x.value))}function v(s,x){const D=i.value.select({items:s,value:x,selected:new Set(n.value)});n.value=D}function f(s,x,D){const P=[],F=j(t);if(x=x??F.findIndex(V=>V.value===s.value),e.selectStrategy!=="single"&&(D!=null&&D.shiftKey)&&u.value!==null){const[V,W]=[u.value,x].sort((k,m)=>k-m);P.push(...F.slice(V,W+1).filter(k=>k.selectable))}else P.push(s),u.value=x;v(P,!c([s]))}function p(s){const x=i.value.selectAll({value:s,allItems:r.value,currentPage:o.value,selected:new Set(n.value)});n.value=x}const y=I(()=>n.value.size>0),h=I(()=>{const s=i.value.allSelected({allItems:r.value,currentPage:o.value});return!!s.length&&c(s)}),d=N(()=>i.value.showSelectAll),b={toggleSelect:f,select:v,selectAll:p,isSelected:c,isSomeSelected:g,someSelected:y,allSelected:h,showSelectAll:d,lastSelectedIndex:u,selectStrategy:i};return Y(Ye,b),b}function ge(){const e=X(Ye);if(!e)throw new Error("Missing selection!");return e}const Zt=_({initialSortOrder:{type:String,default:"asc",validator:e=>!e||["asc","desc"].includes(e)},sortBy:{type:Array,default:()=>[]},customKeySort:Object,multiSort:{type:[Boolean,Object],default:!1},mustSort:Boolean},"DataTable-sort"),Ze=Symbol.for("vuetify:data-table-sort");function ea(e){const a=N(()=>e.initialSortOrder),l=q(e,"sortBy"),t=N(()=>e.mustSort),n=N(()=>e.multiSort);return{initialSortOrder:a,sortBy:l,multiSort:n,mustSort:t}}function ta(e,a){if(!bt(e))return{active:!!e};const{key:l,mode:t,modifier:n}=e,r=n==="alt"&&(a==null?void 0:a.altKey)||n==="shift"&&(a==null?void 0:a.shiftKey);return{active:!l||(a==null?void 0:a.ctrlKey)||(a==null?void 0:a.metaKey)||!1,mode:r?t==="append"?"prepend":"append":t}}function aa(e){const{initialSortOrder:a,sortBy:l,mustSort:t,multiSort:n,page:r}=e,o=function(c,g){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(c.key==null)return;let f=l.value.map(d=>({...d}))??[];const p=f.find(d=>d.key===c.key),y=a.value,h=a.value==="desc"?"asc":"desc";if(p)p.order===h?v||t.value&&f.length===1?p.order=a.value:f=f.filter(d=>d.key!==c.key):p.order=h;else{const{active:d,mode:b}=ta(n.value,g);d?b==="prepend"?f.unshift({key:c.key,order:y}):f.push({key:c.key,order:y}):f=[{key:c.key,order:y}]}l.value=f,r&&(r.value=1)};function i(c){return!!l.value.find(g=>g.key===c.key)}const u={sortBy:l,toggleSort:o,isSorted:i};return Y(Ze,u),u}function et(){const e=X(Ze);if(!e)throw new Error("Missing sort!");return e}function la(e,a,l,t){const n=ce();return{sortedItems:I(()=>{var o,i;return l.value.length?na(a.value,l.value,n.current.value,{transform:t==null?void 0:t.transform,sortFunctions:{...e.customKeySort,...(o=t==null?void 0:t.sortFunctions)==null?void 0:o.value},sortRawFunctions:(i=t==null?void 0:t.sortRawFunctions)==null?void 0:i.value}):a.value})}}function na(e,a,l,t){const n=new Intl.Collator(l,{sensitivity:"accent",usage:"sort"});return e.map(o=>[o,t!=null&&t.transform?t.transform(o):o]).sort((o,i)=>{var u,c;for(let g=0;g<a.length;g++){let v=!1;const f=a[g].key,p=a[g].order??"asc";if(p===!1)continue;let y=ue(o[1],f),h=ue(i[1],f),d=o[0].raw,b=i[0].raw;if(p==="desc"&&([y,h]=[h,y],[d,b]=[b,d]),(u=t==null?void 0:t.sortRawFunctions)!=null&&u[f]){const s=t.sortRawFunctions[f](d,b);if(s==null)continue;if(v=!0,s)return s}if((c=t==null?void 0:t.sortFunctions)!=null&&c[f]){const s=t.sortFunctions[f](y,h);if(s==null)continue;if(v=!0,s)return s}if(!v&&(y instanceof Date&&h instanceof Date&&(y=y.getTime(),h=h.getTime()),[y,h]=[y,h].map(s=>s!=null?s.toString().toLocaleLowerCase():s),y!==h))return ne(y)&&ne(h)?0:ne(y)?-1:ne(h)?1:!isNaN(y)&&!isNaN(h)?Number(y)-Number(h):n.compare(y,h)}return 0}).map(o=>{let[i]=o;return i})}const tt=_({color:String,disableSort:Boolean,fixedHeader:Boolean,multiSort:Boolean,initialSortOrder:String,sortIcon:{type:G},sortAscIcon:{type:G,default:"$sortAsc"},sortDescIcon:{type:G,default:"$sortDesc"},headerProps:{type:Object},sticky:Boolean,...De(),...ke(),...Ot()},"VDataTableHeaders"),Re=J()({name:"VDataTableHeaders",props:tt(),setup(e,a){let{slots:l}=a;const{t}=ce(),{toggleSort:n,sortBy:r,isSorted:o}=et(),{someSelected:i,allSelected:u,selectAll:c,showSelectAll:g}=ge(),{columns:v,headers:f}=fe(),{loaderClasses:p}=Ct(e);function y(k,m){if(!(e.sticky||e.fixedHeader)&&!k.fixed)return;const E=typeof k.fixed=="string"?k.fixed:k.fixed?"start":"none";return{position:"sticky",left:E==="start"?R(k.fixedOffset):void 0,right:E==="end"?R(k.fixedEndOffset):void 0,top:e.sticky||e.fixedHeader?`calc(var(--v-table-header-height) * ${m})`:void 0}}function h(k,m){k.key==="Enter"&&!e.disableSort&&n(m,k)}function d(k){const m=r.value.find(E=>E.key===k.key);switch(m==null?void 0:m.order){case"asc":return e.sortAscIcon;case"desc":return e.sortDescIcon;default:return e.sortIcon||(e.initialSortOrder==="asc"?e.sortAscIcon:e.sortDescIcon)}}const{backgroundColorClasses:b,backgroundColorStyles:s}=Ft(()=>e.color),{displayClasses:x,mobile:D}=we(e),P=I(()=>({headers:f.value,columns:v.value,toggleSort:n,isSorted:o,sortBy:r.value,someSelected:i.value,allSelected:u.value,selectAll:c,getSortIcon:d})),F=I(()=>["v-data-table__th",{"v-data-table__th--sticky":e.sticky||e.fixedHeader},x.value,p.value]),V=k=>{let{column:m,x:E,y:T}=k;const B=m.key==="data-table-select"||m.key==="data-table-expand",O=m.key==="data-table-group"&&m.width===0&&!m.title,L=$(e.headerProps??{},m.headerProps??{});return w(ee,$({tag:"th",align:m.align,class:[{"v-data-table__th--sortable":m.sortable&&!e.disableSort,"v-data-table__th--sorted":o(m),"v-data-table__th--fixed":m.fixed},...F.value],style:{width:R(m.width),minWidth:R(m.minWidth),maxWidth:R(m.maxWidth),...y(m,T)},colspan:m.colspan,rowspan:m.rowspan,fixed:m.fixed,nowrap:m.nowrap,lastFixed:m.lastFixed,firstFixedEnd:m.firstFixedEnd,noPadding:B,empty:O,tabindex:m.sortable?0:void 0,onClick:m.sortable?C=>n(m,C):void 0,onKeydown:m.sortable?C=>h(C,m):void 0},L),{default:()=>{var z;const C=`header.${m.key}`,M={column:m,selectAll:c,isSorted:o,toggleSort:n,sortBy:r.value,someSelected:i.value,allSelected:u.value,getSortIcon:d};return l[C]?l[C](M):O?"":m.key==="data-table-select"?((z=l["header.data-table-select"])==null?void 0:z.call(l,M))??(g.value&&w(de,{color:e.color,density:e.density,modelValue:u.value,indeterminate:i.value&&!u.value,"onUpdate:modelValue":c},null)):S("div",{class:"v-data-table-header__content"},[S("span",null,[m.title]),m.sortable&&!e.disableSort&&w(_e,{key:"icon",class:"v-data-table-header__sort-icon",icon:d(m)},null),e.multiSort&&o(m)&&S("div",{key:"badge",class:ie(["v-data-table-header__sort-badge",...b.value]),style:wt(s.value)},[r.value.findIndex(me=>me.key===m.key)+1])])}})},W=()=>{const k=I(()=>v.value.filter(T=>(T==null?void 0:T.sortable)&&!e.disableSort)),m=v.value.find(T=>T.key==="data-table-select"),E=I({get:()=>k.value.filter(T=>{let{key:B}=T;return r.value.some(O=>O.key===B)}),set:T=>{const B=Z(T),O=r.value.map(C=>C.key);B.filter(C=>{let{key:M}=C;return!O.includes(M)}).forEach(C=>n(C)),kt(()=>r.value=r.value.filter(C=>{let{key:M}=C;return B.some(z=>z.key===M)}))}});return w(ee,$({tag:"th",class:[...F.value],colspan:f.value.length+1},e.headerProps),{default:()=>[S("div",{class:"v-data-table-header__content"},[w(Le,{modelValue:E.value,"onUpdate:modelValue":T=>E.value=T,chips:!0,color:e.color,class:"v-data-table__td-sort-select",clearable:!0,density:"default",items:k.value,label:t("$vuetify.dataTable.sortBy"),multiple:e.multiSort,variant:"underlined",returnObject:!0,"onClick:clear":()=>r.value=[]},{append:m?()=>w(de,{color:e.color,density:"compact",modelValue:u.value,indeterminate:i.value&&!u.value,"onUpdate:modelValue":()=>c(!u.value)},null):void 0,chip:T=>{let{item:B}=T;return w(_t,{onClick:B.raw.sortable?()=>n(B.raw,void 0,!0):void 0,onMousedown:O=>{O.preventDefault(),O.stopPropagation()}},{default:()=>[B.title,w(_e,{class:ie(["v-data-table__td-sort-icon",o(B.raw)&&"v-data-table__td-sort-icon-active"]),icon:d(B.raw),size:"small"},null)]})}})])]})};te(()=>D.value?S("tr",null,[w(W,null,null)]):S(Q,null,[l.headers?l.headers(P.value):f.value.map((k,m)=>S("tr",null,[k.map((E,T)=>w(V,{column:E,x:T,y:m},null))])),e.loading&&S("tr",{class:"v-data-table-progress"},[S("th",{colspan:v.value.length},[w(Bt,{name:"v-data-table-progress",absolute:!0,active:!0,color:typeof e.loading=="boolean"||e.loading==="true"?e.color:e.loading,indeterminate:!0},{default:l.loader})])])]))}}),ra=_({groupBy:{type:Array,default:()=>[]}},"DataTable-group"),at=Symbol.for("vuetify:data-table-group");function oa(e){return{groupBy:q(e,"groupBy")}}function sa(e){const{disableSort:a,groupBy:l,sortBy:t}=e,n=U(new Set),r=I(()=>l.value.map(g=>({...g,order:g.order??!1})).concat(a!=null&&a.value?[]:t.value));function o(g){return n.value.has(g.id)}function i(g){const v=new Set(n.value);o(g)?v.delete(g.id):v.add(g.id),n.value=v}function u(g){function v(f){const p=[];for(const y of f.items)"type"in y&&y.type==="group"?p.push(...v(y)):p.push(y);return[...new Set(p)]}return v({items:g})}const c={sortByWithGroups:r,toggleGroup:i,opened:n,groupBy:l,extractRows:u,isGroupOpen:o};return Y(at,c),c}function lt(){const e=X(at);if(!e)throw new Error("Missing group!");return e}function ua(e,a){if(!e.length)return[];const l=new Map;for(const t of e){const n=ue(t.raw,a);l.has(n)||l.set(n,[]),l.get(n).push(t)}return l}function nt(e,a){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"root";if(!a.length)return[];const n=ua(e,a[0]),r=[],o=a.slice(1);return n.forEach((i,u)=>{const c=a[0],g=`${t}_${c}_${u}`;r.push({depth:l,id:g,key:c,value:u,items:o.length?nt(i,o,l+1,g):i,type:"group"})}),r}function rt(e,a,l){const t=[];for(const n of e)"type"in n&&n.type==="group"?(n.value!=null&&t.push(n),(a.has(n.id)||n.value==null)&&(t.push(...rt(n.items,a,l)),l&&t.push({...n,type:"group-summary"}))):t.push(n);return t}function ia(e,a,l,t){const n=I(()=>a.value.length?nt(j(e),a.value.map(o=>o.key)):[]),r=I(()=>a.value.length?rt(n.value,l.value,j(t)):j(e));return{groups:n,flatItems:r}}const ot=_({item:{type:Object,required:!0},groupCollapseIcon:{type:G,default:"$tableGroupCollapse"},groupExpandIcon:{type:G,default:"$tableGroupExpand"},...De()},"VDataTableGroupHeaderRow"),da=J()({name:"VDataTableGroupHeaderRow",props:ot(),setup(e,a){let{slots:l}=a;const{isGroupOpen:t,toggleGroup:n,extractRows:r}=lt(),{isSelected:o,isSomeSelected:i,select:u}=ge(),{columns:c}=fe(),g=I(()=>r([e.item])),v=N(()=>c.value.length-(c.value.some(f=>f.key==="data-table-select")?1:0));return()=>S("tr",{class:"v-data-table-group-header-row",style:{"--v-data-table-group-header-row-depth":e.item.depth}},[c.value.map(f=>{var p,y;if(f.key==="data-table-group"){const h=t(e.item)?e.groupCollapseIcon:e.groupExpandIcon,d=()=>n(e.item);return((p=l["data-table-group"])==null?void 0:p.call(l,{item:e.item,count:g.value.length,props:{icon:h,onClick:d}}))??w(ee,{class:"v-data-table-group-header-row__column",colspan:v.value},{default:()=>[w(je,{size:"small",variant:"text",icon:h,onClick:d},null),S("span",null,[e.item.value]),S("span",null,[Oe("("),g.value.length,Oe(")")])]})}else if(f.key==="data-table-select"){const h=g.value.filter(x=>x.selectable),d=h.length>0&&o(h),b=i(h)&&!d,s=x=>u(h,x);return((y=l["data-table-select"])==null?void 0:y.call(l,{props:{modelValue:d,indeterminate:b,"onUpdate:modelValue":s}}))??w(ee,{class:"v-data-table__td--select-row",noPadding:!0},{default:()=>[w(de,{density:e.density,disabled:h.length===0,modelValue:d,indeterminate:b,"onUpdate:modelValue":s},null)]})}return""})])}}),ca=_({expandOnClick:Boolean,showExpand:Boolean,expanded:{type:Array,default:()=>[]}},"DataTable-expand"),st=Symbol.for("vuetify:datatable:expanded");function fa(e){const a=N(()=>e.expandOnClick),l=q(e,"expanded",e.expanded,i=>new Set(i),i=>[...i.values()]);function t(i,u){const c=new Set(l.value),g=oe(i.value);if(u)c.add(g);else{const v=[...l.value].find(f=>oe(f)===g);c.delete(v)}l.value=c}function n(i){const u=oe(i.value);return[...l.value].some(c=>oe(c)===u)}function r(i){t(i,!n(i))}const o={expand:t,expanded:l,expandOnClick:a,isExpanded:n,toggleExpand:r};return Y(st,o),o}function ut(){const e=X(st);if(!e)throw new Error("foo");return e}const it=_({color:String,index:Number,item:Object,cellProps:[Object,Function],collapseIcon:{type:G,default:"$collapse"},expandIcon:{type:G,default:"$expand"},onClick:pe(),onContextmenu:pe(),onDblclick:pe(),...De(),...ke()},"VDataTableRow"),ga=J()({name:"VDataTableRow",props:it(),setup(e,a){let{slots:l}=a;const{displayClasses:t,mobile:n}=we(e,"v-data-table__tr"),{isSelected:r,toggleSelect:o,someSelected:i,allSelected:u,selectAll:c}=ge(),{isExpanded:g,toggleExpand:v}=ut(),{toggleSort:f,sortBy:p,isSorted:y}=et(),{columns:h}=fe();te(()=>S("tr",{class:ie(["v-data-table__tr",{"v-data-table__tr--clickable":!!(e.onClick||e.onContextmenu||e.onDblclick)},t.value]),onClick:e.onClick,onContextmenu:e.onContextmenu,onDblclick:e.onDblclick},[e.item&&h.value.map((d,b)=>{const s=e.item,x=`item.${d.key}`,D=`header.${d.key}`,P={index:e.index,item:s.raw,internalItem:s,value:ue(s.columns,d.key),column:d,isSelected:r,toggleSelect:o,isExpanded:g,toggleExpand:v},F={column:d,selectAll:c,isSorted:y,toggleSort:f,sortBy:p.value,someSelected:i.value,allSelected:u.value,getSortIcon:()=>""},V=typeof e.cellProps=="function"?e.cellProps({index:P.index,item:P.item,internalItem:P.internalItem,value:P.value,column:d}):e.cellProps,W=typeof d.cellProps=="function"?d.cellProps({index:P.index,item:P.item,internalItem:P.internalItem,value:P.value}):d.cellProps,k=d.key==="data-table-select"||d.key==="data-table-expand",m=d.key==="data-table-group"&&d.width===0&&!d.title;return w(ee,$({align:d.align,indent:d.indent,class:{"v-data-table__td--expanded-row":d.key==="data-table-expand","v-data-table__td--select-row":d.key==="data-table-select"},fixed:d.fixed,fixedOffset:d.fixedOffset,fixedEndOffset:d.fixedEndOffset,lastFixed:d.lastFixed,firstFixedEnd:d.firstFixedEnd,maxWidth:n.value?void 0:d.maxWidth,noPadding:k,empty:m,nowrap:d.nowrap,width:n.value?void 0:d.width},V,W),{default:()=>{var T,B,O,L;if(d.key==="data-table-select")return((T=l["item.data-table-select"])==null?void 0:T.call(l,{...P,props:{color:e.color,disabled:!s.selectable,modelValue:r([s]),onClick:se(()=>o(s),["stop"])}}))??w(de,{color:e.color,disabled:!s.selectable,density:e.density,modelValue:r([s]),onClick:se(C=>o(s,e.index,C),["stop"])},null);if(d.key==="data-table-expand")return((B=l["item.data-table-expand"])==null?void 0:B.call(l,{...P,props:{icon:g(s)?e.collapseIcon:e.expandIcon,size:"small",variant:"text",onClick:se(()=>v(s),["stop"])}}))??w(je,{icon:g(s)?e.collapseIcon:e.expandIcon,size:"small",variant:"text",onClick:se(()=>v(s),["stop"])},null);if(l[x]&&!n.value)return l[x](P);const E=It(P.value);return n.value?S(Q,null,[S("div",{class:"v-data-table__td-title"},[((O=l[D])==null?void 0:O.call(l,F))??d.title]),S("div",{class:"v-data-table__td-value"},[((L=l[x])==null?void 0:L.call(l,P))??E])]):E}})})]))}}),dt=_({color:String,loading:[Boolean,String],loadingText:{type:String,default:"$vuetify.dataIterator.loadingText"},hideNoData:Boolean,items:{type:Array,default:()=>[]},noDataText:{type:String,default:"$vuetify.noDataText"},rowProps:[Object,Function],cellProps:[Object,Function],...xe(it(),["collapseIcon","expandIcon","density"]),...xe(ot(),["groupCollapseIcon","groupExpandIcon","density"]),...ke()},"VDataTableRows"),Ge=J()({name:"VDataTableRows",inheritAttrs:!1,props:dt(),setup(e,a){let{attrs:l,slots:t}=a;const{columns:n}=fe(),{expandOnClick:r,toggleExpand:o,isExpanded:i}=ut(),{isSelected:u,toggleSelect:c}=ge(),{toggleGroup:g,isGroupOpen:v}=lt(),{t:f}=ce(),{mobile:p}=we(e);return te(()=>{var h,d;const y=xe(e,["groupCollapseIcon","groupExpandIcon","density"]);return e.loading&&(!e.items.length||t.loading)?S("tr",{class:"v-data-table-rows-loading",key:"loading"},[S("td",{colspan:n.value.length},[((h=t.loading)==null?void 0:h.call(t))??f(e.loadingText)])]):!e.loading&&!e.items.length&&!e.hideNoData?S("tr",{class:"v-data-table-rows-no-data",key:"no-data"},[S("td",{colspan:n.value.length},[((d=t["no-data"])==null?void 0:d.call(t))??f(e.noDataText)])]):S(Q,null,[e.items.map((b,s)=>{var P,F;if(b.type==="group"){const V={index:s,item:b,columns:n.value,isExpanded:i,toggleExpand:o,isSelected:u,toggleSelect:c,toggleGroup:g,isGroupOpen:v};return t["group-header"]?t["group-header"](V):w(da,$({key:`group-header_${b.id}`,item:b},Be(l,":groupHeader",()=>V),y),t)}if(b.type==="group-summary"){const V={index:s,item:b,columns:n.value,toggleGroup:g};return((P=t["group-summary"])==null?void 0:P.call(t,V))??""}const x={index:b.virtualIndex??s,item:b.raw,internalItem:b,columns:n.value,isExpanded:i,toggleExpand:o,isSelected:u,toggleSelect:c},D={...x,props:$({key:`item_${b.key??b.index}`,onClick:r.value?()=>{o(b)}:void 0,index:s,item:b,color:e.color,cellProps:e.cellProps,collapseIcon:e.collapseIcon,expandIcon:e.expandIcon,density:e.density,mobile:p.value},Be(l,":row",()=>x),typeof e.rowProps=="function"?e.rowProps({item:x.item,index:x.index,internalItem:x.internalItem}):e.rowProps)};return S(Q,{key:D.props.key},[t.item?t.item(D):w(ga,D.props,t),i(b)&&((F=t["expanded-row"])==null?void 0:F.call(t,x))])})])}),{}}}),ma=_({items:{type:Array,default:()=>[]},itemValue:{type:[String,Array,Function],default:"id"},itemSelectable:{type:[String,Array,Function],default:null},rowProps:[Object,Function],cellProps:[Object,Function],returnObject:Boolean},"DataTable-items");function va(e,a,l,t){const n=e.returnObject?a:re(a,e.itemValue),r=re(a,e.itemSelectable,!0),o=t.reduce((i,u)=>(u.key!=null&&(i[u.key]=re(a,u.value)),i),{});return{type:"item",key:e.returnObject?re(a,e.itemValue):n,index:l,value:n,selectable:r,columns:o,raw:a}}function ya(e,a,l){return a.map((t,n)=>va(e,t,n,l))}function ha(e,a){return{items:I(()=>ya(e,e.items,a.value))}}function ba(e){let{page:a,itemsPerPage:l,sortBy:t,groupBy:n,search:r}=e;const o=He("VDataTable"),i=()=>({page:a.value,itemsPerPage:l.value,sortBy:t.value,groupBy:n.value,search:r.value});let u=null;Ie(i,c=>{$e(u,c)||(u&&u.search!==c.search&&(a.value=1),o.emit("update:options",c),u=c)},{deep:!0,immediate:!0})}const pa=_({...dt(),hideDefaultBody:Boolean,hideDefaultFooter:Boolean,hideDefaultHeader:Boolean,width:[String,Number],search:String,...ca(),...ra(),...jt(),...ma(),...Xt(),...Zt(),...Pe(tt(),["multiSort","initialSortOrder"]),...At()},"DataTable"),xa=_({...Nt(),...pa(),...Vt(),...We()},"VDataTable"),Ca=J()({name:"VDataTable",props:xa(),emits:{"update:modelValue":e=>!0,"update:page":e=>!0,"update:itemsPerPage":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:groupBy":e=>!0,"update:expanded":e=>!0,"update:currentItems":e=>!0},setup(e,a){let{attrs:l,slots:t}=a;const{groupBy:n}=oa(e),{initialSortOrder:r,sortBy:o,multiSort:i,mustSort:u}=ea(e),{page:c,itemsPerPage:g}=Rt(e),{disableSort:v}=Dt(e),{columns:f,headers:p,sortFunctions:y,sortRawFunctions:h,filterFunctions:d}=qt(e,{groupBy:n,showSelect:N(()=>e.showSelect),showExpand:N(()=>e.showExpand)}),{items:b}=ha(e,f),s=N(()=>e.search),{filteredItems:x}=Tt(e,b,s,{transform:A=>A.columns,customKeyFilter:d}),{toggleSort:D}=aa({initialSortOrder:r,sortBy:o,multiSort:i,mustSort:u,page:c}),{sortByWithGroups:P,opened:F,extractRows:V,isGroupOpen:W,toggleGroup:k}=sa({groupBy:n,sortBy:o,disableSort:v}),{sortedItems:m}=la(e,x,P,{transform:A=>({...A.raw,...A.columns}),sortFunctions:y,sortRawFunctions:h}),E=I(()=>e.pageBy==="auto"?e.groupBy.length?"group":"item":e.pageBy),{pageCount:T,setItemsPerPage:B,paginatedItems:O}=Lt({pageBy:E,sortedItems:m,paginate:A=>{const ve=I(()=>j(A).length),{startIndex:ye,stopIndex:he,pageCount:K,setItemsPerPage:ae}=Gt({page:c,itemsPerPage:g,itemsLength:ve}),{paginatedItems:le}=$t({items:A,startIndex:ye,stopIndex:he,itemsPerPage:g});return{paginatedItems:le,pageCount:K,setItemsPerPage:ae}},group:A=>ia(A,n,F,()=>!!t["group-summary"])}),L=I(()=>V(O.value)),{isSelected:C,select:M,selectAll:z,toggleSelect:me,someSelected:ct,allSelected:ft}=Yt(e,{allItems:b,currentPage:L}),{isExpanded:gt,toggleExpand:mt}=fa(e);ba({page:c,itemsPerPage:g,sortBy:o,groupBy:n,search:s}),pt({VDataTableRows:{hideNoData:N(()=>e.hideNoData),noDataText:N(()=>e.noDataText),loading:N(()=>e.loading),loadingText:N(()=>e.loadingText)}});const H=I(()=>({page:c.value,itemsPerPage:g.value,sortBy:o.value,pageCount:T.value,toggleSort:D,setItemsPerPage:B,someSelected:ct.value,allSelected:ft.value,isSelected:C,select:M,selectAll:z,toggleSelect:me,isExpanded:gt,toggleExpand:mt,isGroupOpen:W,toggleGroup:k,items:L.value.map(A=>A.raw),internalItems:L.value,groupedItems:O.value,columns:f.value,headers:p.value}));return te(()=>{const A=Ne.filterProps(e),ve=Re.filterProps(Pe(e,["multiSort"])),ye=Ge.filterProps(e),he=Ae.filterProps(e);return w(Ae,$({class:["v-data-table",{"v-data-table--show-select":e.showSelect,"v-data-table--loading":e.loading},e.class],style:e.style},he,{fixedHeader:e.fixedHeader||e.sticky}),{top:()=>{var K;return(K=t.top)==null?void 0:K.call(t,H.value)},default:()=>{var K,ae,le,Ve,Ce,Fe;return t.default?t.default(H.value):S(Q,null,[(K=t.colgroup)==null?void 0:K.call(t,H.value),!e.hideDefaultHeader&&S("thead",{key:"thead"},[w(Re,$(ve,{multiSort:!!e.multiSort}),t)]),(ae=t.thead)==null?void 0:ae.call(t,H.value),!e.hideDefaultBody&&S("tbody",null,[(le=t["body.prepend"])==null?void 0:le.call(t,H.value),t.body?t.body(H.value):w(Ge,$(l,ye,{items:O.value}),t),(Ve=t["body.append"])==null?void 0:Ve.call(t,H.value)]),(Ce=t.tbody)==null?void 0:Ce.call(t,H.value),(Fe=t.tfoot)==null?void 0:Fe.call(t,H.value)])},bottom:()=>t.bottom?t.bottom(H.value):!e.hideDefaultFooter&&S(Q,null,[w(Et,null,null),w(Ne,A,{prepend:t["footer.prepend"]})])})}),{}}});export{Ca as V};
|