PageSourceSearch

https://www.joverse.ai/assets/index-7De89KMa.js

js joverse.ai collected 2026-10-05 12:35:08 UTC 11,524 bytes, 1 lines download raw bytes

1import{d as U,x as B,o as l,c as d,a as e,u as i,G as P,S as T,R as S,M,t as p,b as L,T as Q,f as X,i as b,z as Y,F as z,r as N,E as O,h as g,aj as Z,D as C,y as ee,N as k,P as R}from"./index-nmvj9TJ-.js";import{u as te,C as oe}from"./CreateProjectModal-BPS_jcc3.js";import{g as ie}from"./url-CV_E09l6.js";import{D as se}from"./index-B-W6vRev.js";import{D as re}from"./DarkPagination-BOFFmqmU.js";import{S as ne}from"./index-BTOT501F.js";import"./project-CxehAmJ8.js";import"./canvas-CyvhJLtA.js";import"./segment-Cvmt81Su.js";import"./imageUrlList-BNFAdSYP.js";import"./directorStudio-B-e-K8_u.js";import"./DarkModal.vue_vue_type_style_index_0_lang-DaZClGz7.js";import"./index-7aONYSF_.js";import"./firstNotUndefined-D3uJ6fPk.js";import"./hasIn-BQH0IMJ9.js";import"./_baseAssignValue-D_ueGmdH.js";import"./isSymbol-CxR4hVhk.js";import"./index-tvxpeMlq.js";import"./responsiveObserve-BQnYYzeW.js";import"./_arrayIncludes-B8uzE354.js";import"./debounce-JuDxxnEY.js";import"./index-DSvslGDa.js";import"./collapseMotion-DUJ0fTQe.js";import"./Dropdown-S4spPzjD.js";import"./OverrideContext-Hg8qpIHZ.js";import"./move-Bdz3NNhS.js";import"./slide-C-LpI577.js";import"./RightOutlined-C2vk6PPL.js";import"./index-C84I17UY.js";import"./LeftOutlined-o6-2hGUw.js";import"./index-CDyHrLLp.js";import"./List-qTdhpcp_.js";import"./useMergedState-CskruPNn.js";import"./useBreakpoint-R1L43fD_.js";const ae={class:"relative w-full h-[160px] bg-[#222630] flex items-center justify-center overflow-hidden"},le=["src","alt"],ce={key:1,class:"text-white/30"},de={key:2,class:"absolute inset-0 bg-black/40 opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-start justify-end p-2"},pe={class:"bg-[#1a1d24] border border-white/10 rounded-lg shadow-2xl p-1 min-w-[100px]"},ue={class:"flex-1 p-4 flex flex-col justify-center"},fe={class:"text-base font-medium text-white truncate mb-1"},me={class:"text-xs text-white/45"},ve=U({__name:"ProjectCard",props:{project:{},allowDelete:{type:Boolean}},emits:["open","edit","delete"],setup(m,{emit:w}){const o=m,h=w,{t,locale:f}=B();function j(){h("open",o.project)}function y(){h("edit",o.project)}function x(){Q.confirm({title:t("infiniteCanvas.projectList.deleteConfirm"),content:t("infiniteCanvas.projectList.deleteDescription"),okText:t("common.delete"),okType:"danger",cancelText:t("common.cancel"),wrapClassName:"infinite-canvas-project-confirm",onOk:()=>{h("delete",o.project)}})}function _(v){if(!v)return"-";try{return new Date(v).toLocaleString(f.value)}catch{return v}}return(v,c)=>{const r=se;return l(),d("div",{class:"group relative flex flex-col w-full h-[240px] rounded-xl border border-white/10 bg-[#171a22] overflow-hidden cursor-pointer hover:border-[#4983ff]/55 hover:shadow-[0_12px_32px_rgba(0,0,0,0.28)] transition-all duration-300",onClick:j},[e("div",ae,[m.project.cover?(l(),d("img",{key:0,src:i(ie)(m.project.cover),alt:i(t)("infiniteCanvas.projectList.coverAlt"),class:"w-full h-full object-cover transition-transform duration-500 group-hover:scale-105"},null,8,le)):(l(),d("div",ce,[...c[1]||(c[1]=[e("i",{class:"ri-image-line text-4xl"},null,-1)])])),m.allowDelete?(l(),d("div",de,[P(r,{trigger:["click"]},{overlay:T(()=>[e("div",pe,[e("button",{type:"button",class:"w-full flex items-center gap-2 px-3 py-2 rounded-md text-sm text-white/85 hover:bg-white/10 transition-colors",onClick:S(y,["stop"])},[c[3]||(c[3]=e("i",{class:"ri-edit-line"},null,-1)),M(" "+p(i(t)("common.edit")),1)]),e("button",{type:"button",class:"w-full flex items-center gap-2 px-3 py-2 rounded-md text-sm text-red-400 hover:bg-red-500/10 transition-colors",onClick:S(x,["stop"])},[c[4]||(c[4]=e("i",{class:"ri-delete-bin-line"},null,-1)),M(" "+p(i(t)("common.delete")),1)])])]),default:T(()=>[e("button",{class:"w-8 h-8 rounded-lg bg-white/20 backdrop-blur-sm text-white hover:bg-white/40 flex items-center justify-center transition-colors",onClick:c[0]||(c[0]=S(()=>{},["stop"]))},[...c[2]||(c[2]=[e("i",{class:"ri-more-2-fill"},null,-1)])])]),_:1})])):L("",!0)]),e("div",ue,[e("h3",fe,p(m.project.name),1),e("p",me,p(i(t)("infiniteCanvas.projectList.lastUpdated",{date:_(m.project.updatedAt)})),1)])])}}}),he={class:"min-h-screen bg-[#0d0f14] text-white p-6 md:p-8"},xe={class:"max-w-[1400px] mx-auto"},be={class:"flex flex-col sm:flex-row sm:items-center justify-between mb-8 gap-4"},ge={class:"flex items-start gap-3"},we=["title","aria-label"],je={class:"text-2xl font-semibold text-white mb-1"},ye={class:"text-sm text-white/55"},_e={class:"mb-8 rounded-2xl border border-white/10 bg-[#151820] p-2 shadow-[0_12px_32px_rgba(0,0,0,0.2)]"},Ce={class:"grid grid-cols-1 gap-2 sm:grid-cols-2"},ke=["aria-pressed","onClick"],Pe={class:"min-w-0 flex-1"},Le={class:"mt-1 block text-sm leading-5 text-white/45"},De={key:0,class:"flex items-center justify-center py-32 bg-[#171a22] rounded-2xl border border-white/10"},Se={key:1,class:"flex flex-col items-center justify-center py-32 bg-[#171a22] rounded-2xl border border-white/10 border-dashed"},Te={class:"text-lg font-medium text-white mb-2"},Me={class:"text-white/55 mb-6 text-sm"},Ee={key:2,class:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 ga
1p-6"},$e={class:"flex-1 p-4 flex flex-col justify-center"},ze={class:"text-base font-medium text-white/85 group-hover:text-white truncate mb-1 transition-colors"},Ne={class:"text-xs text-white/45"},Oe={key:3,class:"mt-8 flex justify-end"},bt=U({__name:"index",setup(m){const w=ee(),o=te(),h=X(),{t}=B(),f=b(!1),j=b(!1),y=b(!1),x=b(null),_=b(),v=g(()=>h.hasPermission(R.PROJECT_PERSONAL_VIEW)),c=g(()=>h.hasPermission(R.PROJECT_TEAM_CREATE)),r=b(v.value?"personal":"team"),I=g(()=>[...v.value?[{label:t("infiniteCanvas.projectList.personalProjects"),description:t("infiniteCanvas.projectList.personalProjectsDescription"),value:"personal",icon:"ri-user-line"}]:[],{label:t("infiniteCanvas.projectList.teamProjects"),description:t("infiniteCanvas.projectList.teamProjectsDescription"),value:"team",icon:"ri-team-line"}]),D=g(()=>r.value==="personal"||c.value),V=g(()=>t(r.value==="team"?"infiniteCanvas.projectList.emptyTeamTitle":"infiniteCanvas.projectList.emptyPersonalTitle")),A=g(()=>t(r.value==="team"?"infiniteCanvas.projectList.emptyTeamDescription":"infiniteCanvas.projectList.emptyPersonalDescription"));Y(()=>{o.fetchProjects(r.value,1)});function F(a){r.value=a,o.fetchProjects(r.value,1)}function q(a,s){o.fetchProjects(r.value,a,s)}async function J(a){var s;j.value=!0;try{const u=await o.createProject(a,r.value);u?(k.success(t("infiniteCanvas.projectList.createSuccess")),f.value=!1,(s=_.value)==null||s.reset(),w.push({name:"InfiniteCanvas",params:{projectId:u.id},query:{projectsClassify:String(u.projectsClassify)}})):k.error(t("infiniteCanvas.projectList.createFailed"))}finally{j.value=!1}}function E(){x.value=null,f.value=!0}function G(a){x.value=a,f.value=!0}async function W(a,s){var u;y.value=!0;try{await o.updateProjectName(a,s)?(k.success(t("infiniteCanvas.projectList.updateSuccess")),f.value=!1,(u=_.value)==null||u.reset(),x.value=null):k.error(t("infiniteCanvas.projectList.updateFailed"))}finally{y.value=!1}}function H(a){w.push({name:"InfiniteCanvas",params:{projectId:a.id},query:{projectsClassify:String(a.projectsClassify)}})}async function K(a){if(await o.deleteProject(a)){k.success(t("infiniteCanvas.projectList.deleteSuccess"));const u=Math.max(1,Math.ceil(o.total/o.pageSize));await o.fetchProjects(r.value,Math.min(o.currentPage,u))}}return(a,s)=>{const u=ne,$=Z;return l(),d("div",he,[e("div",xe,[e("div",be,[e("div",ge,[e("button",{type:"button",class:"mt-0.5 inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-white/10 bg-white/5 text-white/65 transition-colors hover:border-[#4983ff]/55 hover:bg-[#4983ff]/15 hover:text-white",title:i(t)("infiniteCanvas.projectList.back"),"aria-label":i(t)("infiniteCanvas.projectList.back"),onClick:s[0]||(s[0]=n=>i(w).back())},[...s[2]||(s[2]=[e("i",{class:"ri-arrow-left-line text-lg"},null,-1)])],8,we),e("div",null,[e("h1",je,p(i(t)("infiniteCanvas.projectList.title")),1),e("p",ye,p(i(t)("infiniteCanvas.projectList.subtitle")),1)])])]),e("div",_e,[e("div",Ce,[(l(!0),d(z,null,N(I.value,n=>(l(),d("button",{key:n.value,type:"button",class:C(["group relative flex min-h-[88px] cursor-pointer items-center gap-4 overflow-hidden rounded-xl border px-5 py-4 text-left transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#4983ff] focus-visible:ring-offset-2 focus-visible:ring-offset-[#151820]",r.value===n.value?"border-[#4983ff] bg-[linear-gradient(135deg,rgba(36,108,254,0.24),rgba(36,108,254,0.08))] shadow-[0_8px_24px_rgba(36,108,254,0.18)]":"border-white/8 bg-white/[0.025] hover:border-white/20 hover:bg-white/[0.055]"]),"aria-pressed":r.value===n.value,onClick:Re=>F(n.value)},[e("span",{class:C(["flex h-12 w-12 shrink-0 items-center justify-center rounded-xl border text-xl transition-colors",r.value===n.value?"border-[#6d9aff]/50 bg-[#246cfe] text-white":"border-white/10 bg-white/5 text-white/55 group-hover:text-white/85"])},[e("i",{class:C(n.icon)},null,2)],2),e("span",Pe,[e("span",{class:C(["block text-base font-semibold transition-colors",r.value===n.value?"text-white":"text-white/75 group-hover:text-white"])},p(n.label),3),e("span",Le,p(n.description),1)]),e("span",{class:C(["flex h-6 w-6 shrink-0 items-center justify-center rounded-full border transition-all",r.value===n.value?"border-[#78a1ff] bg-[#246cfe] text-white opacity-100":"border-white/15 text-transparent opacity-60 group-hover:border-white/30"])},[...s[3]||(s[3]=[e("i",{class:"ri-check-line text-sm"},null,-1)])],2)],10,ke))),128))])]),i(o).loading?(l(),d("div",De,[P(u,{size:"large"})])):i(o).projects.length===0?(l(),d("div",Se,[s[4]||(s[4]=e("div",{class:"w-20 h-20 mb-4 rounded-full bg-[#246cfe]/15 flex items-center justify-center text-[#7da6ff]"},[e("i",{class:"ri-layout-masonry-line text-4xl"})],-1)),e("h3",Te,p(V.value),1),e("p",Me,p(A.value),1),D.value?(l(),O($,{key:0,t
1ype:"primary",onClick:E},{default:T(()=>[M(p(i(t)("infiniteCanvas.projectList.createProject")),1)]),_:1})):L("",!0)])):(l(),d("div",Ee,[D.value?(l(),d("button",{key:0,type:"button",class:"group relative flex flex-col w-full h-[240px] rounded-xl border border-dashed border-white/15 bg-[#171a22] overflow-hidden cursor-pointer hover:border-[#4983ff]/55 hover:bg-[#1c2030] hover:shadow-[0_12px_32px_rgba(0,0,0,0.28)] transition-all duration-300",onClick:E},[s[5]||(s[5]=e("div",{class:"relative w-full h-[160px] bg-[#222630] flex items-center justify-center overflow-hidden"},[e("div",{class:"flex flex-col items-center justify-center gap-2 text-white/40 transition-colors group-hover:text-[#7da6ff]"},[e("i",{class:"ri-add-line text-5xl"})])],-1)),e("div",$e,[e("h3",ze,p(i(t)("infiniteCanvas.projectList.createProject")),1),e("p",Ne,p(i(t)("infiniteCanvas.projectList.emptyDescription")),1)])])):L("",!0),(l(!0),d(z,null,N(i(o).projects,n=>(l(),O(ve,{key:n.id,project:n,"allow-delete":D.value,onOpen:H,onEdit:G,onDelete:K},null,8,["project","allow-delete"]))),128))])),!i(o).loading&&i(o).total>i(o).pageSize?(l(),d("div",Oe,[P(re,{current:i(o).currentPage,"page-size":i(o).pageSize,total:i(o).total,onChange:q},null,8,["current","page-size","total"])])):L("",!0)]),P(oe,{open:f.value,"onUpdate:open":s[1]||(s[1]=n=>f.value=n),loading:j.value||y.value,scope:r.value,"edit-project":x.value,ref_key:"createModalRef",ref:_,onSubmit:J,onUpdate:W},null,8,["open","loading","scope","edit-project"])])}}});export{bt as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.