| import{_ as xl,j as ee,r as p,k as ve,o as Fl,l as Ul,c as d,a as n,b as o,d as t,w as s,e as C,m as M,h as r,F as N,n as I,t as m,E as f,p as x,u as $l,q as zl,f as v,s as Dl,v as Ye,x as oe,y as xe,z as ie,A as pe,B as R,C as b,D as We,G as Tl,H as Rl,I as Sl,J as Pl,K as me,L as Ge,M as El,N as Fe,O as fe,P as Al,Q as Nl,R as Il,S as Ll,T as Ol,U as ql,V as jl,W as Ue}from"./index-CHMpdjxJ.js";const Hl={class:"library-container"},Kl={class:"library-header"},Yl={class:"header-right"},Wl={class:"library-content"},Gl={class:"library-sidebar"},Jl={class:"sidebar-section"},Ql={class:"library-main"},Xl={class:"actions-bar"},Zl={class:"search-container"},et={class:"resource-container"},lt={key:0,class:"empty-container"},tt={key:1},at={key:0,class:"bundle-grid"},st=["onClick"],ot={class:"bundle-preview"},it=["src","alt"],nt={key:1,class:"bundle-placeholder"},ut={class:"bundle-info2"},dt={class:"bundle-title"},rt={class:"bundle-desc"},ct={class:"bundle-meta"},vt={class:"bundle-count"},pt={class:"bundle-actions"},mt={key:1,class:"resource-grid"},ft=["onClick"],_t={class:"resource-preview"},yt=["src"],gt=["src"],ht=["src","data-resource-id","onPlay","onPause"],bt={class:"resource-info"},wt={class:"resource-name"},kt={class:"resource-meta"},Ct={key:0,class:"resource-actions"},Bt={class:"load-more-container"},Vt={key:0,class:"preview-panel"},Mt={class:"preview-header"},xt={class:"preview-content"},Ft=["src","alt"],Ut={key:1,class:"preview-placeholder"},$t={class:"preview-info"},zt={class:"upload-content"},Dt={class:"upload-type"},Tt={class:"type-options"},Rt={class:"upload-area"},St={key:0,class:"upload-area-main"},Pt={key:1,class:"uploaded-image"},Et=["src"],At={class:"image-actions"},Nt={key:1,class:"upload-area-main"},It={key:1,class:"uploaded-animation"},Lt={class:"animation-grid"},Ot=["src","alt"],qt={class:"animation-actions"},jt={key:2,class:"upload-area-main"},Ht={key:1,class:"uploaded-audio"},Kt={class:"audio-info"},Yt=["src"],Wt={class:"audio-actions"},Gt={class:"resource-form"},Jt={key:0,class:"tags-container"},Qt={class:"dialog-footer"},Xt={class:"visibility-desc"},Zt={class:"dialog-footer"},ea={key:0,class:"bundle-detail-content"},la={class:"bundle-header"},ta={class:"bundle-cover"},aa=["src","alt"],sa={key:1,class:"bundle-placeholder"},oa={class:"bundle-meta"},ia={class:"bundle-title-section"},na={class:"bundle-title"},ua={class:"bundle-actions"},da={class:"bundle-description"},ra={class:"bundle-info"},ca={class:"bundle-count"},va={class:"bundle-date"},pa={key:0,class:"bundle-author"},ma={class:"author-name"},fa={key:0,class:"breadcrumb"},_a={key:1,class:"bundle-folders"},ya={class:"folders-grid"},ga=["onClick"],ha={class:"folder-icon"},ba={class:"folder-info"},wa={class:"folder-name"},ka={class:"folder-count"},Ca={key:2,class:"bundle-materials"},Ba={class:"materials-grid"},Va={class:"material-preview"},Ma=["src","alt"],xa={key:1,class:"material-icon"},Fa={class:"material-info"},Ua={class:"material-title"},$a={class:"material-type"},za={key:0,class:"material-description"},Da={key:1,class:"material-tags"},Ta={key:0,style:{color:"#999","font-size":"12px"}},Ra={key:0,class:"material-actions"},Sa={key:3,class:"bundle-empty"},Pa={key:1,class:"bundle-fab"},Ea={class:"form-desc"},Aa={class:"delete-confirm-content"},Na={class:"vault-content"},Ia={key:0,class:"vault-empty"},La={key:1,class:"vault-grid"},Oa={class:"resource-preview"},qa=["src","alt"],ja={key:1,class:"resource-icon"},Ha={class:"resource-info"},Ka={class:"resource-title"},Ya={class:"resource-actions"},Wa={__name:"LibraryPage",setup(Ga){$l();const h={async searchMaterials(l){console.log("搜索参数:",l);const e=await x({path:"/game/material/search",method:"get",data:l});return(e==null?void 0:e.result)||[]},async createBundle(l){return await x({path:"/game/material/bundle/create",method:"post",data:{title:l.title.trim(),description:l.description.trim(),is_public:l.visibility==="public"}})},async toggleBundleFavorite(l,e){const i=e?`/game/material/bundle/${l}/unfavorite`:`/game/material/bundle/${l}/favorite`;return await x({path:i,method:"post"})},async getMyMaterials(l){const e=await x({path:"/game/material/my",method:"get",data:l});return(e==null?void 0:e.result)||[]},async deleteMaterial(l){return await x({path:"/game/material/delete",method:"post",data:{id:l}})},async uploadFile(l){const e=new FormData;e.append("type",l.type),e.append("file",l.file);const i=localStorage.getItem("UserToken"),u={};i&&(u.Token=i),u.Source="web_dev";const y=await fetch("/api/resource/create",{method:"POST",headers:u,body:e});if(!y.ok)throw new Error(`Upload failed: ${y.statusText}`);return await y.json()},async createPicture(l){return await x({path:"/game/material/create_picture",method:"post",data:{resource_id:l.resource_id,title:l.title,tags:l.tags}})},async createAnimation(l){return await x({path:"/game/material/create_animation",method:"post",data:{frames:l.frames,title:l.title,tags:l.tags}})},async createMusic(l){return console.log("创建音乐资源参数:",l),await x({path:"/game/material/create_music",method:"post",data:{resource_id:l.resource_id,title:l.title,tags:l.tags}})},async createSound(l){return await x({path:"/game/material/create_sound",method:"post",data:{resource_id:l.resource_id,title:l.title,tags:l.tags}})},async getBundleMaterials(l){const e=await x({path:`/game/material/bundle/${l}`,method:"get"});return(e==null?void 0:e.result)||[]},async getCurrentUser(){const l=await x({path:"/profile",method:"get"});return(l==null?void 0:l.result)||null},async updateBundle(l,e){var u,y;return await x({path:`/game/material/bundle/${l}/update`,method:"post",data:{title:(u=e.title)==null?void 0:u.trim(),description:(y=e.description)==null?void 0:y.trim(),is_public:e.is_public}})},async deleteBundle(l){return await x({path:`/game/material/bundle/${l}/delete`,method:"post"})},async createBundleFolder(l,e,i=null){return await x({path:`/game/material/bundle/${l}/folder/create`,method:"post",data:{name:e.trim(),parent_folder_id:i}})},async uploadToBundle(l,e,i=null){return await x({path:`/game/material/bundle/${l}/upload`,method:"post",data:{materials:e,folder_id:i}})}},D=ee([{label:"Bundles",name:"bundles",params:{material_type:"bundle",keyword:"",page_num:1,page_size:20},list:[],loading:!1,noMore:!1,refreshing:!1},{label:"Popular",name:"popular",params:{material_type:"",keyword:"",page_num:1,page_size:20},list:[],loading:!1,noMore:!1,refreshing:!1},{label:"Images",name:"image",params:{material_type:"picture",keyword:"",page_num:1,page_size:20},list:[],loading:!1,noMore:!1,refreshing:!1},{label:"Animations",name:"animation",params:{material_type:"animation",keyword:"",page_num:1,page_size:20},list:[],loading:!1,noMore:!1,refreshing:!1},{label:"Music",name:"music",params:{material_type:"music",keyword:"",page_num:1,page_size:20},list:[],loading:!1,noMore:!1,refreshing:!1},{label:"Sound Effects",name:"sound",params:{material_type:"sound",keyword:"",page_num:1,page_size:20},list:[],loading:!1,noMore:!1,refreshing:!1}]),S=p("bundles");p("grid");const w=p(null),H=p(!1),le=p(!1),_e=p(!1),te=p(!1),c=p(null),P=p([]),K=p([]),U=p(null),$e=p(!1),Y=p(!1),W=p(!1),G=p(!1),E=ee({name:""}),B=ee({title:"",description:"",is_public:!0}),Je=ve(()=>{var l;return B.title.trim()&&B.title.trim()!==((l=c.value)==null?void 0:l.title)}),ne=p(null),Qe=p({role:"user"}),Xe=async()=>{try{const l=await h.getCurrentUser();ne.value=l,l!=null&&l.id&&console.log("Current user loaded:",l)}catch(l){console.error("Failed to load current user:",l)}},ze=ve(()=>!c.value||!ne.value?!1:c.value.author_uid===ne.value.id||c.value.author_id===ne.value.id);ee({}),p([]);const ye=p(!1),ge=p(null),J=p(null),_=p("image"),Q=p(""),he=p(null),L=p([]),be=p([]),X=p(""),ue=p(null),z=p(""),F=p([]),O=p(""),De=ve(()=>_.value==="image"?Q.value&&z.value.trim():_.value==="animation"?L.value.length>=2&&z.value.trim():_.value==="music"||_.value==="sound"?X.value&&z.value.trim():!1),Te=()=>{const l=O.value.trim();l&&!F.value.includes(l)&&F.value.length<10&&(F.value.push(l),O.value="")},Ze=l=>{if(l.includes(",")||l.includes(",")){const e=l.replace(/[,,]/g,"").trim();e&&!F.value.includes(e)&&F.value.length<10&&(F.value.push(e),O.value="")}},el=l=>{F.value.splice(l,1)},Re=()=>{const l=document.createElement("input");l.type="file",l.accept="image/*",l.onchange=e=>{const i=e.target.files[0];i&&(Q.value=URL.createObjectURL(i),he.value=i)},l.click()},Se=()=>{const l=document.createElement("input");l.type="file",l.accept="image/*",l.multiple=!0,l.onchange=e=>{const i=Array.from(e.target.files).slice(0,8),u=i.map(y=>URL.createObjectURL(y));L.value=u,be.value=i},l.click()},Pe=l=>{const e=document.createElement("input");e.type="file",e.accept="audio/*",e.onchange=i=>{const u=i.target.files[0];u&&(X.value=URL.createObjectURL(u),ue.value=u)},e.click()},Ee=()=>{_.value="image",Q.value="",he.value=null,L.value=[],be.value=[],X.value="",ue.value=null,z.value="",F.value=[],O.value=""},ll=(l,e)=>{if(J.value&&J.value!==e){const i=document.querySelector(`audio[data-resource-id="${J.value}"]`);i&&!i.paused&&i.pause()}J.value=e},tl=l=>{J.value===l&&(J.value=null)},g=ee({params:{keyword:"",last_id:0,k:20},list:[],loading:!1,noMore:!1,refreshing:!1}),V=ve(()=>D.find(l=>l.name===S.value)||D[0]),Z=async l=>{if(!(l.loading||l.noMore)){console.log("加载tab数据:",l),l.loading=!0;try{const e=await h.searchMaterials(l.params);console.log("加载数据:",e),e.forEach(i=>{i.type||(i.type=l.name)}),l.params.page_num===1?l.list=e:l.list=l.list.concat(e),e.length<l.params.page_size&&(l.noMore=!0)}catch(e){console.error("加载数据失败:",e),f.error("Failed to load data, please try again")}finally{l.loading=!1}}},al=async()=>{const l=V.value;if(!(l.noMore||l.loading)){l.loading=!0,result.length>0&&(tabItem.params.page_num+=1);try{const e=await h.searchMaterials(l.params);e.forEach(i=>{i.type||(i.type=l.name)}),l.list=l.list.concat(e),e.length>0?l.params.last_id=e[e.length-1].id:l.noMore=!0}catch(e){console.error("加载更多数据失败:",e),f.error("Failed to load more data, please try again")}finally{l.loading=!1}}};function we(l){const e=new Date(l),i=e.getFullYear(),u=String(e.getMonth()+1).padStart(2,"0"),y=String(e.getDate()).padStart(2,"0");return`${i}-${u}-${y}`}const Ae=async()=>{if(!(g.loading||g.noMore)){g.loading=!0;try{const l=await h.getMyMaterials(g.params);g.params.last_id===0?g.list=l:g.list=g.list.concat(l),l.length>0?g.params.last_id=l[l.length-1].id:g.noMore=!0}catch(l){console.error("Failed to load my vault:",l),f.error("Failed to load my vault")}finally{g.loading=!1}}},ae=async l=>{l.params.page_num=1,l.noMore=!1,await Z(l)},$=ee({title:"",description:"",visibility:"private"}),Ne=()=>{S.value==="bundles"?le.value=!0:H.value=!0},Ie=l=>{w.value=l},sl=async(l,e)=>{var i;switch(l){case"preview":Ie(e);break;case"download":f.info("Download started");break;case"delete":try{await Ue.confirm("Are you sure you want to delete this resource? This action cannot be undone.","Delete Resource",{confirmButtonText:"Delete",cancelButtonText:"Cancel",type:"warning"}),await h.deleteMaterial(e.id);const u=V.value,y=u.list.findIndex(Ve=>Ve.id===e.id);y>-1&&(u.list.splice(y,1),((i=w.value)==null?void 0:i.id)===e.id&&(w.value=null)),f.success("Resource deleted successfully")}catch(u){u!=="cancel"&&(console.error("删除资源失败:",u),f.error("Failed to delete resource"))}break}},ol=l=>{localStorage.setItem("last_bundle_id",l.id.toString()),c.value=l,te.value=!0,se(l.id)},se=async l=>{var e;try{const i=await h.getBundleMaterials(l);if(c.value&&Object.assign(c.value,i.bundle_info||{}),K.value=i.folders||[],!U.value)P.value=i.materials_in_root||[];else{const u=U.value.id;P.value=((e=i.materials_in_folders)==null?void 0:e[u])||[]}}catch(i){console.error("加载Bundle素材失败:",i),P.value=[],K.value=[]}},il=l=>{U.value=l,c.value&&se(c.value.id)},nl=()=>{U.value=null,c.value&&se(c.value.id)},ul=async l=>{try{await Ue.confirm(`Are you sure you want to remove "${l.title}" from this bundle?`,"Remove Material",{confirmButtonText:"Remove",cancelButtonText:"Cancel",type:"warning"});const e=P.value.findIndex(i=>i.id===l.id);e>-1&&P.value.splice(e,1),f.success("Material removed from bundle")}catch(e){e!=="cancel"&&(console.error("移除素材失败:",e),f.error("Failed to remove material"))}},Le=async l=>{try{const e=await h.toggleBundleFavorite(l.id,l.is_favorited);l.is_favorited=!l.is_favorited,f.success(l.is_favorited?"Favorited":"Unfavorited")}catch(e){console.error("切换收藏状态失败:",e),f.error("Operation failed")}},Oe=p(!0),dl=async()=>{if(Oe.value)try{const{result:l}=await h.createBundle($);l!=null&&l.id&&(f.success("Bundle created successfully"),le.value=!1,$.title="",$.description="",$.visibility="private",await ae(D[0]))}catch(l){console.error("创建Bundle失败:",l),f.error("Failed to create bundle")}},rl=async l=>{try{await Ue.confirm("Are you sure you want to delete this resource?","Delete Resource",{confirmButtonText:"Delete",cancelButtonText:"Cancel",type:"warning"}),await h.deleteMaterial(l),g.list=g.list.filter(e=>e.id!==l),g.list.length>0&&(g.params.last_id=g.list[g.list.length-1].id),D.forEach(e=>{e.list.length>0&&(e.list=e.list.filter(i=>i.id!==l))}),f.success("Resource deleted successfully")}catch(e){e!=="cancel"&&(console.error("删除资源失败:",e),f.error("Failed to delete resource"))}},cl=async()=>{if(De.value){ye.value=!0;try{let l=null,e=[];if(_.value==="image"){const u=(await h.uploadFile({type:"img",file:he.value})).result.id;e.push(u),l=await h.createPicture({resource_id:u,title:z.value,tags:F.value}),await ae(D[2])}else if(_.value==="animation"){const i=[];for(const u of be.value){const y=await h.uploadFile({type:"img",file:u});i.push(y.result.url)}l=await h.createAnimation({frames:i,title:z.value,tags:F.value}),await ae(D[3])}else if(_.value==="music"){const u=(await h.uploadFile({type:"music",file:ue.value})).result.id;e.push(u),l=await h.createMusic({resource_id:u,title:z.value,tags:F.value}),await ae(D[4])}else if(_.value==="sound"){const u=(await h.uploadFile({type:"sound",file:ue.value})).result.id;e.push(u),l=await h.createSound({resource_id:u,title:z.value,tags:F.value}),await ae(D[5])}l&&(f.success("Upload successful!"),c.value&&(console.log("============="),console.log(l),await gl([{id:l.result.id,type:_.value}]))),H.value=!1,Ee(),await Z(V.value)}catch(l){console.error("Upload failed:",l),f.error("Upload failed, please try again")}finally{ye.value=!1}}},ke=p(!1),Ce=p(!1),vl=Be(async()=>{if(ke.value||V.value.loading||V.value.noMore)return;const l=document.querySelector(".resource-container");if(!l)return;const{scrollTop:e,scrollHeight:i,clientHeight:u}=l;if(e+u>=i-100){ke.value=!0;try{await al()}finally{ke.value=!1}}},200),pl=Be(async()=>{if(Ce.value||g.loading||g.noMore)return;const l=document.querySelector(".vault-content");if(!l)return;const{scrollTop:e,scrollHeight:i,clientHeight:u}=l;if(e+u>=i-100){Ce.value=!0;try{await Ae()}finally{Ce.value=!1}}},200);Fl(async()=>{Qe.value={role:"admin"},await Xe();const l=document.querySelector(".resource-container"),e=document.querySelector(".vault-content");l&&l.addEventListener("scroll",vl),e&&e.addEventListener("scroll",pl),Z(V.value),Ae()});function ml(l){console.log(l),S.value=l}Ul(S,l=>{const e=D.find(i=>i.name===l);e&&e.list.length===0&&Z(e)});function Be(l,e=500){return(...i)=>{ge.value&&clearTimeout(ge.value),ge.value=setTimeout(()=>{l(...i)},e)}}const fl=Be(()=>{const l=V.value;l.noMore=!1,l.list=[],l.params.page_num=1,Z(l)}),_l=()=>{const l=V.value;l.params.keyword="",l.noMore=!1,l.list=[],l.params.page_num=1,Z(l)},yl=()=>{$e.value=!1,H.value=!0},gl=async l=>{var e;if(!(!c.value||!l.length))try{await h.uploadToBundle(c.value.id,l,(e=U.value)==null?void 0:e.id),await se(c.value.id),f.success("Materials added to Bundle successfully")}catch(i){console.error("添加到Bundle失败:",i),f.error("Failed to add to Bundle, please try again")}},hl=async()=>{var l;if(!E.name.trim()){f.warning("Please enter folder name");return}try{if(!c.value){f.error("No Bundle selected");return}await h.createBundleFolder(c.value.id,E.name.trim(),(l=U.value)==null?void 0:l.id),E.name="",Y.value=!1,await se(c.value.id),f.success("Folder created successfully")}catch(e){console.error("创建文件夹失败:",e),f.error("Failed to create folder, please try again")}},bl=async()=>{if(!c.value){f.error("No Bundle selected");return}try{const l={title:B.title.trim(),description:B.description.trim(),is_public:B.is_public};if(l.title===c.value.title&&l.description===(c.value.description||"")&&l.is_public===c.value.is_public){f.info("No changes to save");return}await h.updateBundle(c.value.id,l),Object.assign(c.value,l),W.value=!1,f.success("Bundle updated successfully")}catch(l){console.error("更新Bundle失败:",l),f.error("Failed to update Bundle, please try again")}},wl=async()=>{if(!c.value){f.error("No Bundle selected");return}try{await h.deleteBundle(c.value.id),G.value=!1,te.value=!1;const l=V.value,e=l.list.findIndex(i=>i.id===c.value.id);e>-1&&l.list.splice(e,1),c.value=null,f.success("Bundle deleted successfully")}catch(l){console.error("删除Bundle失败:",l),f.error("Failed to delete Bundle, please try again")}},kl=()=>{te.value=!1,$e.value=!1,Y.value=!1,W.value=!1,G.value=!1,E.name="",B.title="",B.description="",B.is_public=!0,U.value=null,P.value=[],K.value=[]};return(l,e)=>{const i=C("el-icon"),u=C("el-button"),y=C("el-menu-item"),Ve=C("el-menu"),A=C("el-input"),Me=C("el-empty"),de=C("el-tag"),q=C("el-dropdown-item"),qe=C("el-dropdown-menu"),je=C("el-dropdown"),T=C("el-form-item"),re=C("el-form"),j=C("el-dialog"),ce=C("el-radio"),He=C("el-radio-group"),Cl=C("el-avatar"),Ke=C("el-breadcrumb-item"),Bl=C("el-breadcrumb"),Vl=zl("loading");return n(),d("div",Hl,[o("div",Kl,[e[39]||(e[39]=o("div",{class:"header-left"},[o("h1",{class:"logo"},"Vault")],-1)),o("div",Yl,[t(u,{type:"success",onClick:e[0]||(e[0]=a=>_e.value=!0),class:"vault-btn"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(Dl))]),_:1}),e[38]||(e[38]=v(" My Vault ",-1))]),_:1}),t(u,{type:"primary",onClick:Ne,class:"upload-btn"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(Ye))]),_:1}),v(" "+m(S.value==="bundles"?"Create Bundle":"Upload Resource"),1)]),_:1})])]),o("div",Wl,[o("div",Gl,[o("div",Jl,[t(Ve,{"default-active":S.value,class:"category-menu",onSelect:ml},{default:s(()=>[t(y,{index:"bundles"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(oe))]),_:1}),e[40]||(e[40]=o("span",null,"Bundles",-1))]),_:1}),t(y,{index:"popular"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(xe))]),_:1}),e[41]||(e[41]=o("span",null,"Popular",-1))]),_:1}),t(y,{index:"image"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(ie))]),_:1}),e[42]||(e[42]=o("span",null,"Images",-1))]),_:1}),t(y,{index:"animation"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(pe))]),_:1}),e[43]||(e[43]=o("span",null,"Animations",-1))]),_:1}),t(y,{index:"music"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(R))]),_:1}),e[44]||(e[44]=o("span",null,"Music",-1))]),_:1}),t(y,{index:"sound"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(R))]),_:1}),e[45]||(e[45]=o("span",null,"Sound Effects",-1))]),_:1})]),_:1},8,["default-active"])])]),o("div",Ql,[o("div",Xl,[o("div",Zl,[t(A,{modelValue:V.value.params.keyword,"onUpdate:modelValue":e[1]||(e[1]=a=>V.value.params.keyword=a),placeholder:"Search resources...","prefix-icon":"Search",clearable:"",class:"search-input",onInput:r(fl),onClear:_l},null,8,["modelValue","onInput"])])]),o("div",et,[!V.value.loading&&V.value.list.length===0?(n(),d("div",lt,[t(Me,{description:"No resources found"},{default:s(()=>[t(u,{type:"primary",onClick:Ne},{default:s(()=>[v(m(S.value==="bundles"?"Create Your First Bundle":"Upload Your First Resource"),1)]),_:1})]),_:1})])):(n(),d("div",tt,[S.value==="bundles"?(n(),d("div",at,[(n(!0),d(N,null,I(V.value.list,a=>(n(),d("div",{key:a.id,class:"bundle-card",onClick:k=>ol(a)},[o("div",ot,[a.cover?(n(),d("img",{key:0,src:a.cover,alt:a.title,class:"bundle-thumbnail"},null,8,it)):(n(),d("div",nt,[t(i,{size:48},{default:s(()=>[t(r(oe))]),_:1})]))]),o("div",ut,[o("h4",dt,m(a.title),1),o("p",rt,m(a.description||"No description"),1),o("div",ct,[t(de,{size:"small",type:a.is_public?"success":"info"},{default:s(()=>[v(m(a.is_public?"Public":"Private"),1)]),_:2},1032,["type"]),o("span",vt,m(a.material_count||0)+" items",1)])]),o("div",pt,[t(u,{type:"text",size:"small",onClick:Tl(k=>Le(a),["stop"])},{default:s(()=>[t(i,{size:"25"},{default:s(()=>[a.is_favorited?(n(),b(r(We),{key:0})):(n(),b(r(xe),{key:1}))]),_:2},1024)]),_:2},1032,["onClick"])])],8,st))),128))])):(n(),d("div",mt,[(n(!0),d(N,null,I(V.value.list,a=>(n(),d("div",{key:a.id,class:"resource-card",onClick:k=>Ie(a)},[o("div",_t,[a.type==="picture"?(n(),d("img",{key:0,src:a.url,class:"resource-thumbnail"},null,8,yt)):a.type==="animation"?(n(),d("img",{key:1,src:a.frames[0],class:"resource-thumbnail"},null,8,gt)):a.type==="music"||a.type==="sound"?(n(),d("audio",{key:2,controls:"",src:a.url,"data-resource-id":a.id,onPlay:k=>ll(k.target,a.id),onPause:k=>tl(a.id)},null,40,ht)):M("",!0)]),o("div",bt,[o("h4",wt,m(a.name||a.title),1),o("p",kt,m(we(a.created_at||a.createdAt)),1)]),l.userHasDeletePermission?(n(),d("div",Ct,[t(je,{onCommand:k=>sl(k,a)},{dropdown:s(()=>[t(qe,null,{default:s(()=>[t(q,{command:"preview"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(Sl))]),_:1}),e[46]||(e[46]=v(" Preview ",-1))]),_:1}),t(q,{command:"download"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(Pl))]),_:1}),e[47]||(e[47]=v(" Download ",-1))]),_:1}),t(q,{command:"delete",divided:""},{default:s(()=>[t(i,null,{default:s(()=>[t(r(me))]),_:1}),e[48]||(e[48]=v(" Delete ",-1))]),_:1})]),_:1})]),default:s(()=>[t(u,{type:"text",size:"small"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(Rl))]),_:1})]),_:1})]),_:1},8,["onCommand"])])):M("",!0)],8,ft))),128))])),o("div",Bt,m(V.value.noMore?"No more items":"Scroll to load more"),1)]))])]),w.value?(n(),d("div",Vt,[o("div",Mt,[e[49]||(e[49]=o("h3",null,"Preview",-1)),t(u,{type:"text",onClick:e[2]||(e[2]=a=>w.value=null)},{default:s(()=>[t(i,null,{default:s(()=>[t(r(Ge))]),_:1})]),_:1})]),o("div",xt,[w.value.type==="image"||w.value.material_type==="picture"?(n(),d("img",{key:0,src:w.value.thumbnail||w.value.cover,alt:w.value.name||w.value.title,class:"preview-image"},null,8,Ft)):(n(),d("div",Ut,[t(i,{size:64},{default:s(()=>[w.value.type==="audio"?(n(),b(r(El),{key:0})):w.value.type==="video"||w.value.material_type==="animation"?(n(),b(r(pe),{key:1})):w.value.material_type==="music"?(n(),b(r(R),{key:2})):w.value.material_type==="sound"?(n(),b(r(R),{key:3})):(n(),b(r(Fe),{key:4}))]),_:1}),e[50]||(e[50]=o("p",null,"Preview not available for this file type",-1))])),o("div",$t,[o("h4",null,m(w.value.name||w.value.title),1),o("p",null,"Created: "+m(we(w.value.created_at||w.value.createdAt)),1)])])])):M("",!0)]),t(j,{modelValue:H.value,"onUpdate:modelValue":e[16]||(e[16]=a=>H.value=a),title:"Upload Resource",width:"600px",class:"upload-dialog",onClose:Ee},{footer:s(()=>[o("span",Qt,[t(u,{onClick:e[15]||(e[15]=a=>H.value=!1)},{default:s(()=>[...e[66]||(e[66]=[v("Cancel",-1)])]),_:1}),t(u,{type:"primary",onClick:cl,disabled:!De.value,loading:ye.value},{default:s(()=>[...e[67]||(e[67]=[v(" Upload ",-1)])]),_:1},8,["disabled","loading"])])]),default:s(()=>[o("div",zt,[o("div",Dt,[e[55]||(e[55]=o("h3",{class:"type-title"},"Select Resource Type",-1)),o("div",Tt,[o("div",{class:fe(["type-option",{active:_.value==="image"}]),onClick:e[3]||(e[3]=a=>_.value="image")},[...e[51]||(e[51]=[o("div",{class:"option-text"},"🖼️ Image",-1),o("div",{class:"option-desc"},"Upload single image",-1)])],2),o("div",{class:fe(["type-option",{active:_.value==="animation"}]),onClick:e[4]||(e[4]=a=>_.value="animation")},[...e[52]||(e[52]=[o("div",{class:"option-text"},"🎬 Animation",-1),o("div",{class:"option-desc"},"Multiple images",-1)])],2),o("div",{class:fe(["type-option",{active:_.value==="music"}]),onClick:e[5]||(e[5]=a=>_.value="music")},[...e[53]||(e[53]=[o("div",{class:"option-text"},"🎵 Music",-1),o("div",{class:"option-desc"},"Upload MP3 file",-1)])],2),o("div",{class:fe(["type-option",{active:_.value==="sound"}]),onClick:e[6]||(e[6]=a=>_.value="sound")},[...e[54]||(e[54]=[o("div",{class:"option-text"},"🔊 Sound FX",-1),o("div",{class:"option-desc"},"Upload MP3 file",-1)])],2)])]),o("div",Rt,[_.value==="image"?(n(),d("div",St,[Q.value?(n(),d("div",Pt,[o("img",{src:Q.value,alt:"Preview",class:"preview-image"},null,8,Et),o("div",At,[t(u,{onClick:Re,size:"small"},{default:s(()=>[...e[57]||(e[57]=[v("Reselect",-1)])]),_:1}),t(u,{onClick:e[7]||(e[7]=a=>Q.value=""),size:"small",type:"danger"},{default:s(()=>[...e[58]||(e[58]=[v("Delete",-1)])]),_:1})])])):(n(),d("div",{key:0,class:"upload-placeholder",onClick:Re},[t(i,{size:48},{default:s(()=>[t(r(ie))]),_:1}),e[56]||(e[56]=o("div",{class:"placeholder-text"},"Click to select image",-1))]))])):_.value==="animation"?(n(),d("div",Nt,[L.value.length===0?(n(),d("div",{key:0,class:"upload-placeholder",onClick:Se},[t(i,{size:48},{default:s(()=>[t(r(ie))]),_:1}),e[59]||(e[59]=o("div",{class:"placeholder-text"},"Click to select images",-1))])):(n(),d("div",It,[o("div",Lt,[(n(!0),d(N,null,I(L.value,(a,k)=>(n(),d("div",{key:k,class:"animation-item"},[o("img",{src:a,alt:"Frame "+(k+1)},null,8,Ot),t(u,{class:"remove-btn",type:"danger",size:"small",circle:"",onClick:Ml=>L.value.splice(k,1)},{default:s(()=>[t(i,null,{default:s(()=>[t(r(Ge))]),_:1})]),_:1},8,["onClick"])]))),128))]),o("div",qt,[t(u,{onClick:Se,size:"small"},{default:s(()=>[...e[60]||(e[60]=[v("Add More",-1)])]),_:1}),t(u,{onClick:e[8]||(e[8]=a=>L.value=[]),size:"small",type:"danger"},{default:s(()=>[...e[61]||(e[61]=[v("Clear All",-1)])]),_:1})])]))])):_.value==="music"||_.value==="sound"?(n(),d("div",jt,[X.value?(n(),d("div",Ht,[o("div",Kt,[o("audio",{src:X.value,controls:"",style:{width:"100%","margin-top":"10px"}},null,8,Yt)]),o("div",Wt,[t(u,{onClick:e[10]||(e[10]=a=>Pe(_.value)),size:"small"},{default:s(()=>[...e[63]||(e[63]=[v("Reselect",-1)])]),_:1}),t(u,{onClick:e[11]||(e[11]=a=>X.value=""),size:"small",type:"danger"},{default:s(()=>[...e[64]||(e[64]=[v("Delete",-1)])]),_:1})])])):(n(),d("div",{key:0,class:"upload-placeholder",onClick:e[9]||(e[9]=a=>Pe(_.value))},[t(i,{size:48},{default:s(()=>[t(r(R))]),_:1}),e[62]||(e[62]=o("div",{class:"placeholder-text"},"Click to select audio file",-1))]))])):M("",!0)]),o("div",Gt,[t(re,{model:{},"label-width":"80px"},{default:s(()=>[t(T,{label:"Title",required:""},{default:s(()=>[t(A,{modelValue:z.value,"onUpdate:modelValue":e[12]||(e[12]=a=>z.value=a),placeholder:"Enter resource title",maxlength:"20","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(T,{label:"Tags"},{default:s(()=>[F.value.length>0?(n(),d("div",Jt,[(n(!0),d(N,null,I(F.value,(a,k)=>(n(),b(de,{key:k,closable:"",onClose:Ml=>el(k),class:"tag-item"},{default:s(()=>[v(m(a),1)]),_:2},1032,["onClose"]))),128))])):M("",!0),t(A,{modelValue:O.value,"onUpdate:modelValue":e[13]||(e[13]=a=>O.value=a),placeholder:"Enter tag and press comma",maxlength:"20",onKeyup:Al(Te,["enter"]),onBlur:Te,onInput:e[14]||(e[14]=a=>Ze(O.value))},null,8,["modelValue"]),e[65]||(e[65]=o("div",{class:"tag-hint"},"Press Enter or comma (,) to add tag",-1))]),_:1})]),_:1})])])]),_:1},8,["modelValue"]),t(j,{modelValue:le.value,"onUpdate:modelValue":e[21]||(e[21]=a=>le.value=a),title:"Create Bundle",width:"500px",class:"bundle-dialog"},{footer:s(()=>[o("span",Zt,[t(u,{onClick:e[20]||(e[20]=a=>le.value=!1)},{default:s(()=>[...e[70]||(e[70]=[v("Cancel",-1)])]),_:1}),t(u,{type:"primary",onClick:dl,disabled:!Oe.value},{default:s(()=>[...e[71]||(e[71]=[v(" Create ",-1)])]),_:1},8,["disabled"])])]),default:s(()=>[t(re,{model:$,"label-width":"100px"},{default:s(()=>[t(T,{label:"Bundle Name",required:""},{default:s(()=>[t(A,{modelValue:$.title,"onUpdate:modelValue":e[17]||(e[17]=a=>$.title=a),placeholder:"Enter bundle name",maxlength:"30","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(T,{label:"Description"},{default:s(()=>[t(A,{modelValue:$.description,"onUpdate:modelValue":e[18]||(e[18]=a=>$.description=a),type:"textarea",placeholder:"Enter description (optional)",maxlength:"100","show-word-limit":"",rows:3},null,8,["modelValue"])]),_:1}),t(T,{label:"Visibility"},{default:s(()=>[t(He,{modelValue:$.visibility,"onUpdate:modelValue":e[19]||(e[19]=a=>$.visibility=a)},{default:s(()=>[t(ce,{value:"public"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(Nl))]),_:1}),e[68]||(e[68]=v(" Public ",-1))]),_:1}),t(ce,{value:"private"},{default:s(()=>[t(i,null,{default:s(()=>[t(r(Il))]),_:1}),e[69]||(e[69]=v(" Private ",-1))]),_:1})]),_:1},8,["modelValue"]),o("div",Xt,m($.visibility==="public"?"Everyone can see":"Only you can see"),1)]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),t(j,{modelValue:te.value,"onUpdate:modelValue":e[26]||(e[26]=a=>te.value=a),title:"Bundle Detail",width:"80%",class:"bundle-detail-dialog",onClose:kl},{default:s(()=>[c.value?(n(),d("div",ea,[o("div",la,[o("div",ta,[c.value.cover?(n(),d("img",{key:0,src:c.value.cover,alt:c.value.title},null,8,aa)):(n(),d("div",sa,[t(i,{size:64},{default:s(()=>[t(r(oe))]),_:1})]))]),o("div",oa,[o("div",ia,[o("h2",na,m(c.value.title),1),o("div",ua,[t(u,{type:c.value.is_favorited?"warning":"default",size:"small",onClick:e[22]||(e[22]=a=>Le(c.value)),icon:c.value.is_favorited?r(We):r(xe)},{default:s(()=>[v(m(c.value.is_favorited?"Favorited":"Favorite"),1)]),_:1},8,["type","icon"])])]),o("p",da,m(c.value.description||"No description available"),1),o("div",ra,[t(de,{size:"small",type:c.value.is_public?"success":"info"},{default:s(()=>[v(m(c.value.is_public?"Public":"Private"),1)]),_:1},8,["type"]),o("span",ca,m(c.value.material_count||0)+" items",1),o("span",va,"Created: "+m(we(c.value.created_at)),1)]),c.value.author_username?(n(),d("div",pa,[t(Cl,{size:24,src:c.value.author_avatar},null,8,["src"]),o("span",ma,m(c.value.author_username),1)])):M("",!0)])]),U.value||K.value.length>0?(n(),d("div",fa,[t(Bl,{separator:"/"},{default:s(()=>[t(Ke,{onClick:nl,class:"breadcrumb-root"},{default:s(()=>[v(m(c.value.title),1)]),_:1}),U.value?(n(),b(Ke,{key:0,class:"breadcrumb-current"},{default:s(()=>[v(m(U.value.name),1)]),_:1})):M("",!0)]),_:1})])):M("",!0),!U.value&&K.value.length>0?(n(),d("div",_a,[e[72]||(e[72]=o("h3",null,"Folders",-1)),o("div",ya,[(n(!0),d(N,null,I(K.value,a=>(n(),d("div",{key:a.id,class:"folder-item",onClick:k=>il(a)},[o("div",ha,[t(i,{size:40},{default:s(()=>[t(r(oe))]),_:1})]),o("div",ba,[o("h5",wa,m(a.name),1),o("span",ka,m(a.material_count||0)+" items",1)])],8,ga))),128))])])):M("",!0),P.value.length>0?(n(),d("div",Ca,[e[73]||(e[73]=o("h3",null,"Materials",-1)),o("div",Ba,[(n(!0),d(N,null,I(P.value,a=>(n(),d("div",{key:a.id,class:"material-item"},[o("div",Va,[a.material_type==="picture"?(n(),d("img",{key:0,src:a.thumbnail,alt:a.title},null,8,Ma)):(n(),d("div",xa,[t(i,{size:40},{default:s(()=>[a.material_type==="picture"?(n(),b(r(ie),{key:0})):a.material_type==="animation"?(n(),b(r(pe),{key:1})):a.material_type==="music"?(n(),b(r(R),{key:2})):a.material_type==="sound"?(n(),b(r(R),{key:3})):(n(),b(r(Fe),{key:4}))]),_:2},1024)]))]),o("div",Fa,[o("h5",Ua,m(a.title),1),o("span",$a,m(a.material_type),1),a.description?(n(),d("div",za,m(a.description),1)):M("",!0),a.tags&&a.tags.length>0?(n(),d("div",Da,[(n(!0),d(N,null,I(a.tags.slice(0,3),k=>(n(),b(de,{key:k,size:"small",effect:"plain",style:{"margin-right":"4px","margin-top":"4px"}},{default:s(()=>[v(m(k),1)]),_:2},1024))),128)),a.tags.length>3?(n(),d("span",Ta," +"+m(a.tags.length-3)+" more ",1)):M("",!0)])):M("",!0)]),ze.value?(n(),d("div",Ra,[t(u,{type:"danger",size:"small",circle:"",icon:r(me),onClick:k=>ul(a)},null,8,["icon","onClick"])])):M("",!0)]))),128))])])):(n(),d("div",Sa,[t(Me,{description:"No materials in this bundle"})]))])):M("",!0),ze.value?(n(),d("div",Pa,[t(je,{trigger:"click"},{dropdown:s(()=>[t(qe,null,{default:s(()=>[t(q,{onClick:yl},{default:s(()=>[t(i,null,{default:s(()=>[t(r(Ll))]),_:1}),e[74]||(e[74]=v(" Add Content ",-1))]),_:1}),U.value?M("",!0):(n(),b(q,{key:0,onClick:e[23]||(e[23]=a=>Y.value=!0)},{default:s(()=>[t(i,null,{default:s(()=>[t(r(oe))]),_:1}),e[75]||(e[75]=v(" New Folder ",-1))]),_:1})),t(q,{onClick:e[24]||(e[24]=a=>W.value=!0)},{default:s(()=>[t(i,null,{default:s(()=>[t(r(Ol))]),_:1}),e[76]||(e[76]=v(" Edit Bundle ",-1))]),_:1}),t(q,{divided:"",onClick:e[25]||(e[25]=a=>G.value=!0)},{default:s(()=>[t(i,null,{default:s(()=>[t(r(me))]),_:1}),e[77]||(e[77]=v(" Delete Bundle ",-1))]),_:1})]),_:1})]),default:s(()=>[t(u,{type:"primary",icon:r(Ye),class:"fab-main-btn"},null,8,["icon"])]),_:1})])):M("",!0)]),_:1},8,["modelValue"]),t(j,{modelValue:Y.value,"onUpdate:modelValue":e[29]||(e[29]=a=>Y.value=a),title:"Create Folder",width:"400px",class:"bundle-modal"},{footer:s(()=>[t(u,{onClick:e[28]||(e[28]=a=>Y.value=!1)},{default:s(()=>[...e[78]||(e[78]=[v("Cancel",-1)])]),_:1}),t(u,{type:"primary",onClick:hl,disabled:!E.name.trim()},{default:s(()=>[...e[79]||(e[79]=[v("Create",-1)])]),_:1},8,["disabled"])]),default:s(()=>[t(re,{model:E,"label-width":"80px"},{default:s(()=>[t(T,{label:"Name",required:""},{default:s(()=>[t(A,{modelValue:E.name,"onUpdate:modelValue":e[27]||(e[27]=a=>E.name=a),placeholder:"Enter folder name",maxlength:"30"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),t(j,{modelValue:W.value,"onUpdate:modelValue":e[34]||(e[34]=a=>W.value=a),title:"Edit Bundle",width:"500px",class:"bundle-modal"},{footer:s(()=>[t(u,{onClick:e[33]||(e[33]=a=>W.value=!1)},{default:s(()=>[...e[82]||(e[82]=[v("Cancel",-1)])]),_:1}),t(u,{type:"primary",onClick:bl,disabled:!Je.value},{default:s(()=>[...e[83]||(e[83]=[v("Update",-1)])]),_:1},8,["disabled"])]),default:s(()=>[t(re,{model:B,"label-width":"80px"},{default:s(()=>[t(T,{label:"Title",required:""},{default:s(()=>[t(A,{modelValue:B.title,"onUpdate:modelValue":e[30]||(e[30]=a=>B.title=a),placeholder:"Enter bundle title",maxlength:"30"},null,8,["modelValue"])]),_:1}),t(T,{label:"Description"},{default:s(()=>[t(A,{modelValue:B.description,"onUpdate:modelValue":e[31]||(e[31]=a=>B.description=a),type:"textarea",placeholder:"Enter description (optional)",maxlength:"100",rows:3},null,8,["modelValue"])]),_:1}),t(T,{label:"Visibility"},{default:s(()=>[t(He,{modelValue:B.is_public,"onUpdate:modelValue":e[32]||(e[32]=a=>B.is_public=a)},{default:s(()=>[t(ce,{value:!0},{default:s(()=>[...e[80]||(e[80]=[v("🌍 Public",-1)])]),_:1}),t(ce,{value:!1},{default:s(()=>[...e[81]||(e[81]=[v("🔒 Private",-1)])]),_:1})]),_:1},8,["modelValue"]),o("div",Ea,m(B.is_public?"Everyone can see":"Only you can see"),1)]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),t(j,{modelValue:G.value,"onUpdate:modelValue":e[36]||(e[36]=a=>G.value=a),title:"Delete Bundle",width:"400px",class:"bundle-modal"},{footer:s(()=>[t(u,{onClick:e[35]||(e[35]=a=>G.value=!1)},{default:s(()=>[...e[85]||(e[85]=[v("Cancel",-1)])]),_:1}),t(u,{type:"danger",onClick:wl},{default:s(()=>[...e[86]||(e[86]=[v("Delete",-1)])]),_:1})]),default:s(()=>[o("div",Aa,[t(i,{size:48,color:"#f56c6c"},{default:s(()=>[t(r(ql))]),_:1}),e[84]||(e[84]=o("p",null,"Are you sure you want to delete this bundle? This action cannot be undone.",-1))])]),_:1},8,["modelValue"]),t(j,{modelValue:_e.value,"onUpdate:modelValue":e[37]||(e[37]=a=>_e.value=a),title:"My Vault",width:"80%",class:"vault-dialog"},{default:s(()=>[jl((n(),d("div",Na,[g.list.length===0&&!g.loading?(n(),d("div",Ia,[t(Me,{description:"No resources in your vault"})])):(n(),d("div",La,[(n(!0),d(N,null,I(g.list,a=>(n(),d("div",{key:a.id,class:"vault-resource"},[o("div",Oa,[a.material_type==="picture"?(n(),d("img",{key:0,src:a.thumbnail,alt:a.title,class:"resource-thumbnail"},null,8,qa)):(n(),d("div",ja,[t(i,{size:32},{default:s(()=>[a.material_type==="picture"?(n(),b(r(ie),{key:0})):a.material_type==="animation"?(n(),b(r(pe),{key:1})):a.material_type==="music"?(n(),b(r(R),{key:2})):a.material_type==="sound"?(n(),b(r(R),{key:3})):(n(),b(r(Fe),{key:4}))]),_:2},1024)]))]),o("div",Ha,[o("h5",Ka,m(a.title),1)]),o("div",Ya,[t(u,{type:"text",size:"small",onClick:k=>rl(a.id)},{default:s(()=>[t(i,null,{default:s(()=>[t(r(me))]),_:1})]),_:1},8,["onClick"])])]))),128))]))])),[[Vl,g.loading]])]),_:1},8,["modelValue"])])}}},Qa=xl(Wa,[["__scopeId","data-v-36e6a7ab"]]);export{Qa as default}; | |