1import{a as Ve}from"./chunk-TJG5DURG.js";import{a as sn}from"./chunk-OKLYZ5N7.js";import{a as cn}from"./chunk-C3X3CA7X.js";import{a as Pe,b as it,c as Ce,d as dn,f as _n}from"./chunk-HQMGMVGZ.js";import{w as re,x as ae,y as me}from"./chunk-SWWRRX4E.js";import{a as Me,b as Ft,c as rn,d as an,e as ln}from"./chunk-5ENJ4FEZ.js";import"./chunk-EU4I4SIR.js";import{a as un}from"./chunk-CRTF46BK.js";import{a as je}from"./chunk-IR5SHBHK.js";import{p as De,q as tt}from"./chunk-QSZ5WMPH.js";import"./chunk-6RQO4IFH.js";import{a as mn}from"./chunk-TN4EPYUL.js";import{a as nt}from"./chunk-5BM3QAPZ.js";import{a as pn}from"./chunk-KFJKK367.js";import{a as Ye,c as nn}from"./chunk-I23UH6B4.js";import{a as xe}from"./chunk-5JIFY64T.js";import{a as Xe}from"./chunk-WIC7UYUY.js";import"./chunk-XKMNP3QQ.js";import"./chunk-VBXITMSH.js";import"./chunk-6JPY45PF.js";import{b as Ze,d as Je,f as et,s as Se}from"./chunk-SBVZ5TC5.js";import{a as Ke}from"./chunk-E2IXKPAS.js";import"./chunk-C332HE7F.js";import{a as on}from"./chunk-BISQQLFA.js";import{h as Y,i as R,k as ve,l as tn}from"./chunk-BUPSVSKU.js";import{d as Te}from"./chunk-ERT55GZD.js";import{b as ke}from"./chunk-JSEE3QHX.js";import{$ as V,$a as Et,$b as Lt,Ca as I,Dc as en,Fa as $e,Fc as Qe,Gb as he,Ha as P,Hb as $,Ib as N,Ic as qe,Jb as ge,Mb as X,Oa as D,Ob as ie,P as ee,Pa as h,Pb as ze,Qa as g,R as Wt,Ra as ye,Sa as Ge,T as M,Ta as E,Ua as L,Ub as S,Va as b,Vb as We,Wa as a,Xa as c,Xb as T,Y as d,Ya as u,Yb as y,Z as m,Za as Ae,Zb as oe,_ as v,_a as Ue,aa as Qt,ab as G,bb as U,ca as qt,d as Ut,db as w,fa as f,fb as _,hb as r,ib as Xt,jb as Zt,m as F,nb as te,ob as ne,pb as q,qa as W,qb as Z,ra as Yt,rb as H,sa as s,tb as j,ub as p,va as Kt,vb as C,wb as k,wc as Jt,xb as de,z as zt}from"./chunk-FRXGJQCG.js";import{a as se,b as ce}from"./chunk-HZ6M6AS2.js";var K=class o{apiService=M(De);teams=f([]);activeTeamId=f(null);isLoadingTeams=f(!1);teamError=f(null);activeTeam=S(()=>this.teams().find(t=>t.id===this.activeTeamId())??null);setActiveTeam(t){this.activeTeamId.set(t)}async loadTeams(){this.isLoadingTeams.set(!0),this.teamError.set(null);try{let t=await F(this.apiService.get("/api/v1/teams"));this.teams.set(t)}catch{this.teamError.set("Failed to load teams.")}finally{this.isLoadingTeams.set(!1)}}async createTeam(t){try{let e=await F(this.apiService.post("/api/v1/teams",{name:t}));return this.teams.update(n=>[...n,e]),{ok:!0,team:e}}catch(e){let n=e?.code;return n||this.teamError.set("Failed to create team."),{ok:!1,reason:n}}}async renameTeam(t,e){try{let n=await F(this.apiService.patch(`/api/v1/teams/${t}`,{name:e}));return n?.error?(this.teamError.set("Could not rename this workspace."),!1):(this.teams.update(i=>i.map(l=>l.id===t?ce(se({},l),{name:n.name??e}):l)),!0)}catch{return this.teamError.set("Could not rename this workspace."),!1}}async deleteTeam(t){try{let e=await F(this.apiService.delete(`/api/v1/teams/${t}`));return e?.error?{ok:!1,reason:e.error}:(this.teams.update(n=>n.filter(i=>i.id!==t)),{ok:!0,trashedProjects:e?.trashedProjects})}catch{return this.teamError.set("Could not delete this workspace."),{ok:!1,reason:"request_failed"}}}async getMembers(t){try{return await F(this.apiService.get(`/api/v1/teams/${t}/members`))}catch{return[]}}async inviteMember(t,e,n){try{return await F(this.apiService.post(`/api/v1/teams/${t}/members`,{email:e,role:n})),!0}catch{return!1}}async removeMember(t,e){try{return await F(this.apiService.delete(`/api/v1/teams/${t}/members/${e}`)),!0}catch{return!1}}async updateMemberRole(t,e,n){try{return await F(this.apiService.put(`/api/v1/teams/${t}/members/${e}`,{role:n})),!0}catch{return!1}}async moveProjectToTeam(t,e,n){try{let i=await F(this.apiService.post(`/api/v1/teams/${e}/projects/${t}/move`,{isPersonal:n}));return i?.error?{ok:!1,reason:i.error}:{ok:!0}}catch(i){return{ok:!1,reason:i?.code??"request_failed"}}}static \u0275fac=function(e){return new(e||o)};static \u0275prov=ee({token:o,factory:o.\u0275fac,providedIn:"root"})};function rt(o){return o==="owner"||o==="admin"}function hn(o){return o!=="viewer"}function at(o){return o==="owner"}function In(o){switch(o?.statusCode){case 400:return"invalidFile";case 403:return"notAMember";case 413:return"tooLarge";case 422:return"unsupportedVersion";default:return"failed"}}var En=new Set(["\\","/",":","*","?",'"',"<",">","|"]);function Ln(o){return Array.from(o).map(e=>En.has(e)||e<" "?"-":e).join("").trim().slice(0,120).trim()||"project"}function ot(o,t=new Date){if(o==="any")return null;let e=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime(),n=864e5;switch(o){case"today":return{from:e,to:1/0};case"yesterday":return{from:e-n,to:e};case"last30":return{from:t.getTime()-30*n,to:1/0};case"last90":return{from:t.getTime()-90*n,to:1/0};case"lastYear":return{from:t.getTime()-365*n,to:1/0}}}var Nt=30;
1function Fn(o){let t=o?new Date(o).getTime():NaN;if(!Number.isFinite(t))return Nt;let e=Math.floor((Date.now()-t)/864e5);return Math.min(Nt,Math.max(0,Nt-e))}var Ie=class o{apiService=M(De);authService=M(Te);teamService=M(K);projects=f([]);sharedProjects=f([]);trashProjects=f([]);favoriteProjectIds=f([]);pendingLoads=f(0);isLoading=S(()=>this.pendingLoads()>0);isTrashLoading=f(!1);error=f(null);activeView=f("recents");searchQuery=f("");sortBy=f("date");sortOrder=f("desc");personalTeamId=S(()=>{let t=this.authService.currentUser?.id;return t?this.teamService.teams().find(e=>e.isDefault&&e.ownerId===t)?.id??null:null});destinationTeamId=S(()=>this.activeView()==="team"?this.teamService.activeTeamId():this.personalTeamId()??this.teamService.activeTeamId());destinationIsPersonal=S(()=>this.activeView()!=="team");ownerFilter=f("any");dateFilter=f("any");recentsTab=f("viewed");favoritesFirst=f(!1);workspaceFilter=f("any");visibleWorkspaces=S(()=>{let t=new Map;for(let e of this.viewSource())e.teamId&&!t.has(e.teamId)&&t.set(e.teamId,{id:e.teamId,name:e.teamName??"Workspace"});return[...t.values()].sort((e,n)=>Me(e.name,n.name))});visibleOwners=S(()=>{let t=new Map;for(let e of this.viewSource())e.ownerId&&!t.has(e.ownerId)&&t.set(e.ownerId,{id:e.ownerId,name:e.ownerName??"Unknown"});return[...t.values()].sort((e,n)=>Me(e.name,n.name))});homeProjects=f([]);sharedWorkspaceProjects=f([]);viewSource=S(()=>{let t=this.activeView(),e=t==="shared"?this.sharedProjects():t==="home"?this.homeProjects():t==="recents"?this.recentsTab()==="shared"?this.sharedWorkspaceProjects():this.homeProjects():this.projects();if(t==="team")return e.filter(n=>n.isPersonal===!1);if(t==="personal")return e.filter(n=>n.isPersonal===!0&&n.role==="owner");if(t==="favorites"){let n=this.favoriteProjectIds();return e.filter(i=>n.includes(i.id))}return e});filteredProjects=S(()=>{let t=this.searchQuery().toLowerCase().trim(),e=this.activeView(),n=this.sortBy(),i=this.sortOrder(),l=this.favoriteProjectIds(),x=this.ownerFilter(),B=this.viewSource();if(x==="others"){let z=this.authService.currentUser?.id;B=B.filter(_e=>_e.ownerId!==z)}else x!=="any"&&(B=B.filter(z=>z.ownerId===x));let O=this.workspaceFilter();O!=="any"&&(B=B.filter(z=>z.teamId===O));let we=ot(this.dateFilter());we&&(B=B.filter(z=>{let _e=new Date(z.updatedAt).getTime();return _e>=we.from&&_e<we.to})),t&&(B=B.filter(z=>z.name.toLowerCase().includes(t)));let J=i==="asc"?1:-1,ue=this.favoritesFirst();return B=[...B].sort((z,_e)=>{if(ue){let $t=l.includes(z.id)?0:1,Gt=l.includes(_e.id)?0:1;if($t!==Gt)return $t-Gt}return n==="name"?J*Me(z.name,_e.name):n==="created"?J*(new Date(z.createdAt).getTime()-new Date(_e.createdAt).getTime()):J*(new Date(z.updatedAt).getTime()-new Date(_e.updatedAt).getTime())}),B});async loadProjects(){let t=this.teamService.activeTeamId();this.pendingLoads.update(e=>e+1),this.error.set(null);try{let e=t?`/api/v1/projects?teamId=${t}`:"/api/v1/projects",n=await F(this.apiService.get(e)),i=Array.isArray(n)?n:n?.data??[];this.projects.set(i)}catch{this.error.set("Failed to load projects. Please try again.")}finally{this.pendingLoads.update(e=>e-1)}}async loadHomeProjects(){this.pendingLoads.update(t=>t+1),this.error.set(null);try{let t=await F(this.apiService.get("/api/v1/projects/home")),e=Array.isArray(t)?t:t?.data??[];this.homeProjects.set(e)}catch{this.error.set("Failed to load projects. Please try again.")}finally{this.pendingLoads.update(t=>t-1)}}async loadSharedWorkspaceProjects(){this.pendingLoads.update(t=>t+1),this.error.set(null);try{let t=await F(this.apiService.get("/api/v1/projects/shared-workspaces")),e=Array.isArray(t)?t:t?.data??[];this.sharedWorkspaceProjects.set(e)}catch{this.error.set("Failed to load shared workspace projects.")}finally{this.pendingLoads.update(t=>t-1)}}async loadSharedProjects(){this.pendingLoads.update(t=>t+1),this.error.set(null);try{let t=await F(this.apiService.get("/api/v1/projects/shared")),e=Array.isArray(t)?t:t?.data??[];this.sharedProjects.set(e)}catch{this.error.set("Failed to load shared projects. Please try again.")}finally{this.pendingLoads.update(t=>t-1)}}async loadTeamProjects(t){this.pendingLoads.update(e=>e+1),this.error.set(null);try{let e=await F(this.apiService.get(`/api/v1/projects?teamId=${t}`)),n=Array.isArray(e)?e:e?.data??[];this.projects.set(n)}catch{this.error.set("Failed to load team projects.")}finally{this.pendingLoads.update(e=>e-1)}}async createProject(t){let e=this.destinationTeamId(),n=this.destinationIsPersonal();try{let i=await F(this.apiService.post("/api/v1/projects",{name:t,teamId:e??void 0,isPersonal:n})),l=i?.id??i?.data?.id;return l?(this.loadProjects(),{ok:!0,id:l}):(this.error.set("Failed to create project."),{ok:!1,reason:i?.error})}catch(i){let l=i?.code;return l||this.error.set("Failed to create project."),{ok:!1,reason:l}}}async duplicateProject(t,e={}){let{refresh:n=!0}=e;try{let i=await F(this.apiService.post(`/api/v1/projects/${t}/duplicate`,{})),l=i?.data??i;return l?.id?(n&&await this.loadProjects(),{ok:!0,project:l}):(this.error.set("Failed to duplicate project."),{ok:!1,reason:i?.error})}catch(i){let l=i?.code;return l||this.error.set("Failed to duplicate project."),{ok:!1,reason:l}}}async importProject(t,e){try{let i=(await F(this.apiService.upload("/api/v1/projects/import",t,e?{teamId:e}:{})))?.id;return i?{ok:!0,id:i}:{ok:!1,reason:"failed"}}catch(n){return{ok:!1,reason:In(n)}}}async downloadProjectCopy(t){try{let e=await F(this.apiService.download(`/api/v1/projects/${t.id}/export`));if(!e)return!1;let n=URL.createObjectURL(e);try{let i=document.createElement("a");i.href=n,i.download=`${Ln(t.name)}.ninja`,i.rel="noopener",document.body.appendChild(i),i.click(),i.remove()}finally{URL.revokeObjectURL(n)}return!0}catch{return this.error.set("Failed to download the project."),!1}}updateProjectEverywhere(t,e){let n=i=>i.some(l=>l.id===t)?e(i):i;this.projects.update(n),this.homeProjects.update(n),this.sharedProjects.update(n),this.sharedWorkspaceProjects.update(n)}async deleteProject(t){try{await F(this.apiService.delete(`/api/v1/projects/${t}`)),this.updateProjectEverywhere(t,e=>e.filter(n=>n.id!==t))}catch{this.error.set("Failed to move project to Trash.")}}filteredTrashProjects=S(()=>{let t=this.searchQuery().toLowerCase().trim(),e=ot(this.dateFilter()),n=this.trashProjects();return t&&(n=n.filter(i=>i.name.toLowerCase().includes(t))),e&&(n=n.filter(i=>{let l=new Date(i.updatedAt).getTime();return l>=e.from&&l<e.to})),n});async loadTrash(){this.isTrashLoading.set(!0),this.error.set(null);try{let t=this.teamService.activeTeamId(),e=t?`?teamId=${t}`:"",n=await F(this.apiService.get(`/api/v1/projects/trash${e}`)),i=Array.isArray(n)?n:n?.data??[];this.trashProjects.set(i.map(l=>ce(se({},l),{daysUntilPurge:Number.isFinite(l.daysUntilPurge)?l.daysUntilPurge:Fn(l.deletedAt)})))}catch{this.error.set("Failed to load Trash.")}finally{this.isTrashLoading.set(!1)}}async restoreProject(t){try{await F(this.apiService.post(`/api/v1/projects/${t}/restore`,{})),this.trashProjects.update(e=>e.filter(n=>n.id!==t)),await Promise.all([this.loadProjects(),this.loadHomeProjects()])}catch{this.error.set("Failed to restore project.")}}async permanentDeleteProject(t){try{await F(this.apiService.delete(`/api/v1/projects/${t}/permanent`)),this.trashProjects.update(e=>e.filter(n=>n.id!==t))}catch{this.error.set("Failed to permanently delete project.")}}async renameProject(t,e){try{await F(this.apiService.put(`/api/v1/projects/${t}`,{name:e})),this.updateProjectEverywhere(t,n=>n.map(i=>i.id===t?ce(se({},i),{name:e}):i))}catch{this.error.set("Failed to rename project.")}}async loadFavorites(){try{let t=await F(this.apiService.get("/api/v1/projects/favorites"));this.favoriteProjectIds.set(t.data??[])}catch{}}async toggleFavorite(t){let e=this.favoriteProjectIds(),n=!e.includes(t);this.favoriteProjectIds.set(n?[...e,t]:e.filter(i=>i!==t));try{let l=(await F(this.apiService.post(`/api/v1/projects/${t}/favorite`,{favorited:n})))?.data?.favorited??n;this.favoriteProjectIds.update(x=>
1l?x.includes(t)?x:[...x,t]:x.filter(B=>B!==t))}catch{this.favoriteProjectIds.set(e)}}setView(t){this.activeView.set(t)}setOwnerFilter(t){this.ownerFilter.set(t)}setWorkspaceFilter(t){this.workspaceFilter.set(t)}setDateFilter(t){this.dateFilter.set(t)}setRecentsTab(t){this.recentsTab.set(t)}setFavoritesFirst(t){this.favoritesFirst.set(t)}setSearch(t){this.searchQuery.set(t)}setSort(t){this.sortBy.set(t)}setSortOrder(t){this.sortOrder.set(t)}static \u0275fac=function(e){return new(e||o)};static \u0275prov=ee({token:o,factory:o.\u0275fac,providedIn:"root"})};var Be=(o,...t)=>({tabs:[o,...t],fallback:o});function gn(o,t){return t!=null&&o.tabs.includes(t)?t:o.fallback}function Nn(o,t){return t===o.fallback}function Rt(o,t){return!o||t===void 0||Nn(o,t)?{tab:null}:{tab:t}}var st={recents:Be("viewed","resources","shared"),trash:Be("projects","resources"),favorites:Be("projects","resources"),shared:Be("projects")};var le=(o,t,e="")=>{let n=o.payload[t];return typeof n=="string"&&n.length>0?n:e},He=o=>o.actorName??"Someone",Rn={project_shared:{icon:"share",title:o=>`${He(o)} shared "${le(o,"projectName","a project")}" with you`,open:(o,t)=>{o.projectId&&t.openProject(o.projectId)}},project_role_changed:{icon:"shield",title:o=>`${He(o)} changed your role on "${le(o,"projectName","a project")}" to ${le(o,"role","collaborator")}`,open:(o,t)=>{o.projectId&&t.openProject(o.projectId)}},project_access_revoked:{icon:"lock",title:o=>`Your access to "${le(o,"projectName","a project")}" was removed`}
1,team_member_added:{icon:"users",title:o=>`${He(o)} added you to ${le(o,"teamName","a team")}`,open:(o,t)=>{o.teamId&&t.openWorkspace(o.teamId)}},team_role_changed:{icon:"shield",title:o=>`Your role in ${le(o,"teamName","a team")} is now ${le(o,"role","member")}`,open:(o,t)=>{o.teamId&&t.openWorkspace(o.teamId)}},project_access_requested:{icon:"users",title:o=>`${He(o)} asked to edit "${le(o,"projectName","a project")}"`,open:(o,t)=>{o.projectId&&t.openProject(o.projectId)}},project_access_request_approved:{icon:"shield",title:o=>`${He(o)} gave you edit access to "${le(o,"projectName","a project")}"`,open:(o,t)=>{o.projectId&&t.openProject(o.projectId)}},project_access_request_denied:{icon:"lock",title:o=>`Your request to edit "${le(o,"projectName","a project")}" was declined`,open:(o,t)=>{o.projectId&&t.openProject(o.projectId)}}},On={icon:"bell",title:o=>le(o,"fallbackTitle","New notification")},Ot=o=>Rn[o.type]??On,At={share:"M8.684 13.342a3 3 0 100-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z",users:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z",lock:"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z",shield:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z",bell:"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"};var vn=30,Ee="/api/v1/notifications",Le=class o{apiService=M(De);signalRService=M(an);_notifications=f([]);_unreadCount=f(0);_isLoading=f(!1);_isLoadingMore=f(!1);_hasMore=f(!1);_error=f(null);hasLoadedOnce=!1;notifications=this._notifications.asReadonly();unreadCount=this._unreadCount.asReadonly();isLoading=this._isLoading.asReadonly();isLoadingMore=this._isLoadingMore.asReadonly();hasMore=this._hasMore.asReadonly();error=this._error.asReadonly();hasUnread=S(()=>this._unreadCount()>0);badgeLabel=S(()=>{let t=this._unreadCount();return t>99?"99+":String(t)});constructor(){this.signalRService.on("NotificationReceived",t=>this.onPushed(t)),this.signalRService.reconnected$.pipe(qe()).subscribe(()=>{this.hasLoadedOnce&&this.load()})}async ensureRealtime(){if(!this.signalRService.isAvailable)try{await this.signalRService.initialize()}catch{}}async loadUnreadCount(){try{let t=await F(this.apiService.get(`${Ee}/unread-count`));this._unreadCount.set(t.unreadCount)}catch{}}async load(){this._isLoading.set(!0),this._error.set(null);try{let t=await F(this.apiService.get(`${Ee}?limit=${vn}`));this._notifications.set(t.items),this._unreadCount.set(t.unreadCount),this._hasMore.set(t.hasMore),this.hasLoadedOnce=!0}catch{this._error.set("Failed to load notifications.")}finally{this._isLoading.set(!1)}}async loadMore(){if(this._isLoadingMore()||!this._hasMore())return;let t=this._notifications(),e=t[t.length-1]?.id;if(e!==void 0){this._isLoadingMore.set(!0);try{let n=await F(this.apiService.get(`${Ee}?limit=${vn}&beforeId=${e}`)),i=new Set(t.map(l=>l.id));this._notifications.set([...t,...n.items.filter(l=>!i.has(l.id))]),this._unreadCount.set(n.unreadCount),this._hasMore.set(n.hasMore)}catch{this._error.set("Failed to load more notifications.")}finally{this._isLoadingMore.set(!1)}}}async markRead(t){let e=this._notifications().find(n=>n.id===t);if(!(!e||e.readAt)){this.patchReadAt(t,new Date().toISOString()),this._unreadCount.update(n=>Math.max(0,n-1));try{let n=await F(this.apiService.post(`${Ee}/${t}/read`,{}));this._unreadCount.set(n.unreadCount)}catch{this.patchReadAt(t,null),this._unreadCount.update(n=>n+1)}}}async dismiss(t){let e=this._notifications(),n=e.findIndex(l=>l.id===t);if(n===-1)return;let i=e[n];this._notifications.set(e.filter(l=>l.id!==t)),i.readAt||this._unreadCount.update(l=>Math.max(0,l-1));try{let l=await F(this.apiService.post(`${Ee}/${t}/dismiss`,{}));this._unreadCount.set(l.unreadCount)}catch{this._notifications.update(l=>{let x=[...l];return x.splice(n,0,i),x}),i.readAt||this._unreadCount.update(l=>l+1)}}async markAllRead(){let t=this._notifications(),e=this._unreadCount();if(e===0)return;let n=new Date().toISOString();this._notifications.set(t.map(i=>i.readAt?i:ce(se({},i),{readAt:n}))),this._unreadCount.set(0);try{await F(this.apiService.post(`${Ee}/read-all`,{}))}catch{this._notifications.set(t),this._unreadCount.set(e)}}onPushed(t){if(typeof t?.id!="number"||typeof t.type!="string"){console.warn("[InboxService] Discarded malformed notification push",t);return}this._notifications.update(e=>e.some(n=>n.id===t.id)?e:[t,...e]),t.readAt||this._unreadCount.update(e=>e+1)}patchReadAt(t,e){this._notifications.update(n=>n.map(i=>i.id===t?ce(se({},i),{readAt:e}):i))}static \u0275fac=function(e){return new(e||o)};static \u0275prov=ee({token:o,factory:o.\u0275fac,providedIn:"root"})};var lt=class o{router=M(Qe);teamService=M(K);dashboardService=M(Ie);openProject(t){location.href=`/project/${t}`}async openWorkspace(t){await this.teamService.loadTeams(),this.teamService.setActiveTeam(t),this.dashboardService.setView("team"),await this.router.navigate(["/dashboard/workspace",t],{queryParams:{view:"team"}}),await Promise.all([this.dashboardService.loadProjects(),this.dashboardService.loadFavorites()])}static \u0275fac=function(e){return new(e||o)};static \u0275prov=ee({token:o,factory:o.\u0275fac,providedIn:"root"})};var An=(o,t)=>t.notification.id;function Bn(o,t){if(o&1){let e=w();a(0,"button",8),_("click",function(){d(e);let i=r(2);return m(i.inbox.markAllRead())}),p(1),c()}if(o&2){let e=r().$implicit;s(),k(" ",e("common.states.markAllRead")," ")}}function Hn(o,t){if(o&1&&(a(0,"div",5)(1,"span",9),p(2),c(),u(3,"span",10),c()),o&2){let e=r().$implicit;s(2),C(e("common.notifications.loading"))}}function $n(o,t){if(o&1){let e=w();a(0,"div",6)(1,"p",11),p(2),c(),a(3,"button",8),_("click",function(){d(e);let i=r(2);return m(i.inbox.load())}),p(4),c()()}if(o&2){let e=r().$implicit,n=r();s(2),C(n.inbox.error()),s(2),k(" ",e("common.actions.tryAgain")," ")}}function Gn(o,t){if(o&1&&(a(0,"div",7),v(),a(1,"svg",12),u(2,"path",13),c(),V(),a(3,"p",11),p(4),c()()),o&2){let e=r().$implicit,n=r();s(2),D("d",n.bellPath),s(2),C(e("common.notifications.empty"))}}function Un(o,t){o&1&&u(0,"span",24)}function zn(o,t){if(o&1){let e=w();a(0,"li",15)(1,"button",17),_("click",function(){let i=d(e).$implicit,l=r(3);return m(l.onOpen(i.notification))}),a(2,"span",18),v(),a(3,"svg",19),u(4,"path",20),c()(),V(),a(5,"span",21)(6,"span",22),p(7),c(),a(8,"span",23),p(9),c()(),h(10,Un,1,0,"span",24),c(),a(11,"button",25),_("click",function(){let i=d(e).$implicit,l=r(3);return m(l.inbox.dismiss(i.notification.id))}),v(),a(12,"svg",19),u(13,"path",26),c()()()}if(o&2){let e=t.$implicit;s(),H("cursor-default",!e.isActionable),s(),j(e.isUnread?"bg-brand/20":"bg-white/10"),s(),j(e.isUnread?"text-brand-hover":"text-ink-off"),s(),D("d",e.iconPath),s(2),H("font-semibold",e.isUnread),s(),C(e.title),s(2),C(e.timeAgo),s(),g(e.isUnread?10:-1),s(),D("aria-label","Dismiss: "+e.title)}}function Wn(o,t){if(o&1){let e=w();a(0,"div",16)(1,"button",27),_("click",function(){d(e);let i=r(3);return m(i.inbox.loadMore())}),p(2),c()()}if(o&2){let e=r(2).$implicit,n=r();s(),b("disabled",n.inbox.isLoadingMore()),s(),k(" ",n.inbox.isLoadingMore()?e("common.states.loadingMore"):e("common.states.showOlder")," ")}}function Qn(o,t){if(o&1&&(a(0,"ul",14),E(1,zn,14,13,"li",15,An),c(),h(3,Wn,3,2,"div",16)),o&2){let e=r(2);s(),L(e.rows()),s(2),g(e.inbox.hasMore()?3:-1)}}function qn(o,t){if(o&1&&(G(0),a(1,"div",1)(2,"div",2)(3,"span",3),p(4),c(),h(5,Bn,2,1,"button",4),c(),h(6,Hn,4,1,"div",5)(7,$n,5,2,"div",6)(8,Gn,5,2,"div",7)(9,Qn,4,1),c(),U()),o&2){let e=t.$implicit,n=r();s(4),C(e("common.notifications.title")),s(),g(n.inbox.hasUnread()?5:-1),s(),g(n.inbox.isLoading()?6:n.inbox.error()?7:n.rows().length===0?8:9)}}var Yn=o=>{let t=Date.now()-new Date(o).getTime(),e=Math.floor(t/6e4);if(e<1)return"just now";if(e<60)return`${e}m ago`;let n=Math.floor(e/60);if(n<24)return`${n}h ago`;let i=Math.floor(n/24);return i<7?`${i}d ago`:new Date(o).toLocaleDateString()},ct=class o{inbox=M(Le);navigator=M(lt);close=T();bellPath=At.bell;rows=S(()=>this.inbox.notifications().map(t=>{let e=Ot(t);return{notification:t,title:e.title(t),iconPath:At[e.icon],isActionable:e.open!==void 0,isUnread:t.readAt===null,timeAgo:Yn(t.createdAt)}}));ngOnInit(){this.inbox.load()}async onOpen(t){await this.inbox.markRead(t.id),this.close.emit(),Ot(t).open?.(t,this.navigator)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-notification-list"]],outputs:{close:"close"},decls:1,vars:0,consts:[[4,"transloco"],[1,"w-80","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","overflow-hidden"],[1,"flex","items-center","justify-between","px-4","py-3","border-b","border-divider"],[1,"text-sm","font-semibold","text-ink"],["type","button",1,"text-xs","font-medium","text-brand-hover","hover:underline"],[1,"py-8","flex","items-center","justify-center"],[1,"py-8","flex","flex-col","items-center","justify-center","text-center","px-4","gap-2"],[1,"py-8","flex","flex-col","items-center","justify-center","text-center","px-4"],["type","button",1,"text-xs","font-medium","text-brand-hover","hover:underline",3,"click"],[1,"sr-only"],[1,"w-5","h-5","rounded-full","border-2","border-white/25","border-t-transparent","animate-spin"],[1,"text-sm","text-ink"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-8","h-8","text-white/25","mb-2"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","1.5"],[1,"max-h-96","overflow-y-auto","divide-y","divide-white/10"],[1,"group","relative"],[1,"border-t","border-divider"],["type","button",1,"w-full","flex","items-start","gap-3","pl-4","pr-9","py-3","text-left","hover:bg-white/5","transition-colors",3,"click"],[1,"mt-0.5","shrink-0","w-7","h-7","rounded-full","flex","items-center","justify-center"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-3.5","h-3.5"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2"],[1,"min-w-0","flex-1"],[1,"block","text-sm","text-ink"],[1,"block","text-xs","text-ink","mt-0.5"],["aria-hidden","true",1,"mt-2","shrink-0","w-2","h-2","rounded-full","bg-brand"],["type","button",1,"absolute","top-2","right-2","w-6","h-6","flex","items-center","justify-center","rounded-md","text-ink","opacity-0","group-hover:opacity-100","focus:opacity-100","hover:bg-white/10","transition",3,"click"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M6 18L18 6M6 6l12 12"],["type","button",1,"w-full","py-2.5","text-xs","font-medium","text-ink","hover:bg-white/5","disabled:opacity-50",3,"click","disabled"]],template:function(e,n){e&1&&P(0,qn,10,3,"ng-container",0)},dependencies:[R],encapsulation:2,changeDetection:0})};var Kn=()=>({originX:"end",originY:"bottom",overlayX:"start",overlayY:"bottom",offsetX:8}),xn=o=>[o],Xn=o=>({originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",offsetX:0,offsetY:o});function Zn(o,t){if(o&1){let e=w();a(0,"button",25),_("click",function(){d(e);let i=r(2);return m(i.toggleSidebar.emit())}),v(),a(1,"svg",14),u(2,"rect",26)(3,"path",27),c()()}if(o&2){let e=r(2);D("aria-pressed",e.sidebarOpen())("aria-label",e.sidebarOpen()?"Hide navigation panel":"Show navigation panel")}}function Jn(o,t){o&1&&u(0,"div",5)}function ei(o,t){o&1&&u(0,"span",8)}function ti(o,t){o&1&&(v(),a(0,"svg",9),u(1,"path",28),c())}function ni(o,t){if(o&1&&(a(0,"span",21),p(1),c()),o&2){let e=r(2);s(),C(e.inbox.badgeLabel())}}function ii(o,t){if(o&1){let e=w();a(0,"app-notification-list",29),_("close",function(){d(e);let i=r(2);return m(i.showNotifications.set(!1))}),c()}}function oi(o,t){if(o&1){let e=w();a(0,"div",30)(1,"p",31),p(2),c(),a(3,"button",32),_("click",function(){d(e);let i=r(2);return i.openProfile.emit(),m(i.showUserMenu.set(!1))}),a(4,"span",33),p(5),c(),a(6,"span",34)(7,"span",35),p(8),c(),a(9,"span",36),p(10),c()(),v(),a(11,"svg",37),u(12,"path",38),c()(),V(),u(13,"div",39),a(14,"button",40),_("click",function(){d(e);let i=r(2);return i.settings.emit(),m(i.showUserMenu.set(!1))}),v(),a(15,"svg",41),u(16,"path",42)(17,"circle",43),c(),p(18),c(),V(),u(19,"div",39),a(20,"button",40),_("click",function(){d(e);let i=r(2);return i.billing.emit(),m(i.showUserMenu.set(!1))}),v(),a(21,"svg",41),u(22,"rect",44)(23,"path",45),c(),V(),a(24,"span",46),p(25),c(),a(26,"span",47),p(27),c()(),u(28,"div",39),a(29,"button",48),_("click",function(){d(e);let i=r(2);return i.logout.emit(),m(i.showUserMenu.set(!1))}),v(),a(30,"svg",41),u(31,"path",49),c(),p(32),c()()}if(o&2){let e,n=r().$implicit,i=r();s(2),C(n("dashboard.nav.account")),s(2),Z("background-color",i.userColor()),s(),C(i.userInitials()),s(3),C(i.userName()),s(2),C(i.userEmail()),s(8),k(" ",n("dashboard.ui.settings")," "),s(7),C(n("dashboard.nav.billing")),s(),j(i.subscriptionService.currentTier()==="free"?"bg-white/10 text-ink":"bg-brand/20 text-brand-hover"),s(),C(((e=i.subscriptionService.currentPlan())==null?null:e.name)??n("dashboard.ui.free")),s(5),k(" ",n("dashboard.ui.logOut")," ")}}function ri(o,t){if(o&1){let e=w();a(0,"aside",3),h(1,Zn,4,2,"button",4)(2,Jn,1,0,"div",5),a(3,"button",6),_("click",function(){d(e);let i=r();return m(i.createProject.emit())}),a(4,"span",7),h(5,ei,1,0,"span",8)(6,ti,2,0,":svg:svg",9),c(),a(7,"span",10),p(8),c()(),a(9,"nav",11)(10,"button",12),_("click",function(){d(e);let i=r();return m(i.navigate.emit("home"))}),a(11,"span",13),v(),a(12,"svg",14),u(13,"path",15),c()(),V(),a(14,"span",16),p(15),c()(),a(16,"button",12),_("click",function(){d(e);let i=r();return m(i.navigate.emit("projects"))}),a(17,"span",13),v(),a(18,"svg",14),u(19,"path",17),c()(),V(),a(20,"span",16),p(21),c()()(),u(22,"div",18),a(23,"button",19,0),_("click",function(i){d(e);let l=r();return l.showNotifications.set(!l.showNotifications()),m(i.stopPropagation())}),v(),a(25,"svg",14),u(26,"path",20),c(),h(27,ni,2,1,"span",21),c(),P(28,ii,1,0,"ng-template",22),_("backdropClick",function(){d(e);let i=r();return m(i.showNotifications.set(!1))})("detach",function(){d(e);let i=r();return m(i.showNotifications.set(!1))}),V(),a(29,"button",23,1),_("click",function(i){d(e);let l=r();return l.showUserMenu.set(!l.showUserMenu()),m(i.stopPropagation())}),p(31),c(),P(32,oi,33,12,"ng-template",24),_("backdropClick",function(){d(e);let i=r();return m(i.showUserMenu.set(!1))})("detach",function(){d(e);let i=r();return m(i.showUserMenu.set(!1))}),c()}if(o&2){let e=t.$implicit,n=q(24),i=q(30),l=r();D("aria-label",e("dashboard.nav.primary")),s(),g(l.activeSection()!=="home"?1:2),s(2),b("disabled",l.isCreating()),s(2),g(l.isCreating()?5:6),s(3),C(e("dashboard.nav.create")),s(),D("aria-label",e("dashboard.nav.sections")),s(),j(l.sectionClass("home")),D("aria-current",l.activeSection()==="home"?"page":null),s(),j(l.iconTileClass("home")),s(4),C(e("dashboard.nav.home")),s(),j(l.sectionClass("projects")),D("aria-current",l.activeSection()==="projects"?"page":null),s(),j(l.iconTileClass("projects")),s(4),C(e("dashboard.nav.projects")),s(2),D("aria-expanded",l.showNotifications())("aria-label",l.inbox.hasUnread()?l.inbox.unreadCount()+" unread notifications":"Notifications"),s(4),g(l.inbox.hasUnread()?27:-1),s(),b("cdkConnectedOverlayOrigin",n)("cdkConnectedOverlayOpen",l.showNotifications())("cdkConnectedOverlayHasBackdrop",!0)("cdkConnectedOverlayPositions",N(38,xn,$(37,Kn)))("cdkConnectedOverlayPush",!0),s(),Z("background-color",l.userColor()),D("aria-expanded",l.showUserMenu())("aria-label","Account menu for "+l.userName()),s(2),k(" ",l.userInitials()," "),s(),b("cdkConnectedOverlayOrigin",i)("cdkConnectedOverlayOpen",l.showUserMenu())("cdkConnectedOverlayHasBackdrop",!0)("cdkConnectedOverlayPositions",N(42,xn,N(40,Xn,-8)))("cdkConnectedOverlayWidth",264)("cdkConnectedOverlayPush",!0)}}var dt=class o{inbox=M(Le);
1subscriptionService=M(je);isCreating=y(!1);sidebarOpen=y(!0);activeSection=y("projects");userName=y("User");userEmail=y("");userInitials=y("U");userId=y("");createProject=T();toggleSidebar=T();navigate=T();logout=T();openProfile=T();settings=T();billing=T();userColor=S(()=>tt(this.userId()));showNotifications=f(!1);showUserMenu=f(!1);ngOnInit(){this.inbox.loadUnreadCount(),this.inbox.ensureRealtime()}sectionClass(t){return this.activeSection()===t?"text-ink":"text-ink-off hover:text-ink"}iconTileClass(t){return this.activeSection()===t?"bg-gradient-primary text-ink":"group-hover:bg-white/5"}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-dashboard-rail"]],inputs:{isCreating:[1,"isCreating"],sidebarOpen:[1,"sidebarOpen"],activeSection:[1,"activeSection"],userName:[1,"userName"],userEmail:[1,"userEmail"],userInitials:[1,"userInitials"],userId:[1,"userId"]},outputs:{createProject:"createProject",toggleSidebar:"toggleSidebar",navigate:"navigate",logout:"logout",openProfile:"openProfile",settings:"settings",billing:"billing"},decls:1,vars:0,consts:[["notifTrigger","cdkOverlayOrigin"],["userTrigger","cdkOverlayOrigin"],["class","w-[72px] shrink-0 h-full flex flex-col items-center bg-gradient-sidebar",4,"transloco"],[1,"w-[72px]","shrink-0","h-full","flex","flex-col","items-center","bg-gradient-sidebar"],["type","button",1,"mt-3.5","w-9","h-9","grid","place-items-center","rounded-lg","text-ink","hover:bg-white/5","transition-colors"],["aria-hidden","true",1,"mt-3.5","h-9"],["type","button",1,"mt-4","flex","flex-col","items-center","gap-1.5","disabled:opacity-50","disabled:cursor-not-allowed",3,"click","disabled"],[1,"w-9","h-9","grid","place-items-center","rounded-full","bg-gradient-primary","hover:brightness-110","active:brightness-95","text-ink","shadow-[0_2px_10px_rgba(39,106,255,0.45)]","transition-[filter]"],[1,"w-4","h-4","border-2","border-white/40","border-t-white","rounded-full","animate-spin"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-[18px]","h-[18px]"],[1,"text-[10px]","leading-none","text-ink"],[1,"mt-5","w-full","px-2","flex","flex-col","items-center","gap-1"],["type","button",1,"group","w-full","flex","flex-col","items-center","gap-1.5","py-2",3,"click"],[1,"w-10","h-10","grid","place-items-center","rounded-xl","transition-colors"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6",1,"w-5","h-5"],["stroke-linecap","round","stroke-linejoin","round","d","M3 10.5L12 3.5l9 7M5.5 9.2V19a1.5 1.5 0 001.5 1.5h10a1.5 1.5 0 001.5-1.5V9.2"],[1,"text-[10px]","leading-none"],["stroke-linecap","round","stroke-linejoin","round","d","M3 7.5A2 2 0 015 5.5h3.6a2 2 0 011.6.8l.8 1.1a2 2 0 001.6.8H19a2 2 0 012 2v7.3a2 2 0 01-2 2H5a2 2 0 01-2-2V7.5z"],[1,"flex-1"],["cdkOverlayOrigin","","type","button","aria-haspopup","true",1,"relative","w-9","h-9","grid","place-items-center","rounded-lg","text-ink","hover:bg-white/5","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"],["aria-hidden","true",1,"absolute","top-0.5","right-0.5","min-w-4","h-4","px-1","flex","items-center","justify-center","rounded-full","bg-danger","text-[10px]","font-semibold","leading-none","text-ink"],["cdkConnectedOverlay","","cdkConnectedOverlayPanelClass","dashboard-type","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","detach","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayPositions","cdkConnectedOverlayPush"],["cdkOverlayOrigin","","type","button","aria-haspopup","menu",1,"my-3","w-9","h-9","rounded-full","grid","place-items-center","text-ink","text-xs","font-bold","ring-2","ring-white/10","hover:ring-white/25","transition-shadow",3,"click"],["cdkConnectedOverlay","","cdkConnectedOverlayPanelClass","dashboard-type","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","detach","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","cdkConnectedOverlayPush"],["type","button",1,"mt-3.5","w-9","h-9","grid","place-items-center","rounded-lg","text-ink","hover:bg-white/5","transition-colors",3,"click"],["x","3","y","4","width","18","height","16","rx","2.5"],["d","M9 4v16"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2.5","d","M12 5v14m7-7H5"],[3,"close"],["role","menu",1,"bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","overflow-hidden"],[1,"px-4","pt-3","pb-2","text-[11px]","font-semibold","uppercase","tracking-wider","text-ink-off"],["type","button","role","menuitem",1,"w-full","flex","items-center","gap-3","px-4","py-3","text-left","hover:bg-white/5","transition-colors",3,"click"],["aria-hidden","true",1,"w-9","h-9","shrink-0","rounded-full","grid","place-items-center","text-ink","text-xs","font-bold"],[1,"min-w-0","flex-1"],[1,"block","text-sm","font-semibold","text-ink","truncate"],[1,"block","text-xs","text-ink","truncate"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6",1,"w-4","h-4","shrink-0","text-ink"],["stroke-linecap","round","stroke-linejoin","round","d","M16.5 4.5l3 3L9 18l-4 1 1-4 10.5-10.5z"],[1,"border-t","border-divider"],["type","button","role","menuitem",1,"w-full","flex","items-center","gap-3","px-4","py-2.5","text-sm","text-ink","hover:bg-white/5","transition-colors",3,"click"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","d","M10.3 3.9a1 1 0 011-.9h1.4a1 1 0 011 .9l.15 1.35a7 7 0 011.62.94l1.25-.54a1 1 0 011.24.42l.7 1.22a1 1 0 01-.24 1.28l-1.08.83a7 7 0 010 1.86l1.08.83a1 1 0 01.24 1.28l-.7 1.22a1 1 0 01-1.24.42l-1.25-.54a7 7 0 01-1.62.94l-.15 1.35a1 1 0 01-1 .9h-1.4a1 1 0 01-1-.9l-.15-1.35a7 7 0 01-1.62-.94l-1.25.54a1 1 0 01-1.24-.42l-.7-1.22a1 1 0 01.24-1.28l1.08-.83a7 7 0 010-1.86l-1.08-.83a1 1 0 01-.24-1.28l.7-1.22a1 1 0 011.24-.42l1.25.54a7 7 0 011.62-.94l.15-1.35z"],["cx","12","cy","12","r","2.5"],["x","3","y","5.5","width","18","height","13","rx","2.5"],["d","M3 10h18"],[1,"flex-1","text-left"],[1,"text-[10px]","font-semibold","px-1.5","py-0.5","rounded-full"],["type","button","role","menuitem",1,"w-full","flex","items-center","gap-3","px-4","py-2.5","text-sm","text-danger","hover:bg-danger/10","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"]
1],template:function(e,n){e&1&&P(0,ri,33,44,"aside",2)},dependencies:[me,ae,re,ct,R],encapsulation:2,changeDetection:0})};var pe=class o{authService=M(Te);name=y("");size=y("sm");showTitle=y(!0);sizeClass=S(()=>this.size()==="md"?"w-8 h-8 text-xs":"w-6 h-6 text-[10px]");initial=S(()=>this.name().trim()[0]?.toUpperCase()??"?");color=S(()=>tt(this.authService.currentUser?.id));static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-workspace-avatar"]],inputs:{name:[1,"name"],size:[1,"size"],showTitle:[1,"showTitle"]},decls:2,vars:7,consts:[[1,"shrink-0","rounded-full","grid","place-items-center","font-bold","text-ink","select-none"]],template:function(e,n){e&1&&(Ae(0,"span",0),p(1),Ue()),e&2&&(j(n.sizeClass()),Z("background-color",n.color()),D("title",n.showTitle()?n.name():null)("aria-hidden",n.showTitle()?null:"true"),s(),C(n.initial()))},encapsulation:2,changeDetection:0})};var ai=()=>({originX:"start",originY:"bottom",overlayX:"start",overlayY:"top",offsetY:4}),si=o=>({originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",offsetY:o}),li=(o,t)=>[o,t],ci=(o,t)=>t.id;function di(o,t){if(o&1&&(u(0,"app-workspace-avatar",23),a(1,"span",24),p(2),c()),o&2){let e=t;b("name",e.name)("showTitle",!1),s(2),C(e.name)}}function mi(o,t){if(o&1&&(u(0,"span",25),a(1,"span",26),p(2),c()),o&2){let e=r().$implicit;s(2),C(e("dashboard.nav.selectWorkspace"))}}function pi(o,t){o&1&&(a(0,"div",28),u(1,"div",34)(2,"div",35),c())}function _i(o,t){o&1&&(v(),a(0,"svg",38),u(1,"path",39),c())}function ui(o,t){if(o&1){let e=w();a(0,"button",36),_("click",function(){let i=d(e).$implicit,l=r(3);return l.switchWorkspace.emit(i.id),m(l.showWorkspaceSwitcher.set(!1))}),u(1,"app-workspace-avatar",23),a(2,"span",37),p(3),c(),h(4,_i,2,0,":svg:svg",38),c()}if(o&2){let e=t.$implicit,n=r(3);j(n.teamService.activeTeamId()===e.id?"bg-brand/20 text-ink":"text-ink-off hover:text-ink hover:bg-white/5"),s(),b("name",e.name)("showTitle",!1),s(2),C(e.name),s(),g(n.teamService.activeTeamId()===e.id?4:-1)}}function hi(o,t){if(o&1){let e=w();a(0,"div",27),h(1,pi,3,0,"div",28),E(2,ui,5,6,"button",29,ci),a(4,"div",30)(5,"button",31),_("click",function(){d(e);let i=r(2);return i.createTeam.emit(),m(i.showWorkspaceSwitcher.set(!1))}),v(),a(6,"svg",32),u(7,"path",33),c(),p(8),c()()()}if(o&2){let e=r().$implicit,n=r();s(),g(n.teamService.isLoadingTeams()?1:-1),s(),L(n.teamService.teams()),s(6),k(" ",e("dashboard.views.newWorkspace")," ")}}function gi(o,t){if(o&1){let e=w();a(0,"button",6),_("click",function(){d(e);let i=r(2);return m(i.navigate.emit("archive"))}),v(),a(1,"svg",7),u(2,"path",40),c(),p(3),c()}if(o&2){let e=r().$implicit,n=r();j(n.itemClass("archive")),D("aria-current",n.activeView()==="archive"?"page":null),s(3),k(" ",e("dashboard.views.archive")," ")}}function vi(o,t){if(o&1){let e=w();a(0,"aside",2)(1,"div",3),u(2,"app-brand-logo",4),c(),a(3,"nav",5)(4,"button",6),_("click",function(){d(e);let i=r();return m(i.navigate.emit("recents"))}),v(),a(5,"svg",7),u(6,"path",8),c(),p(7),c(),V(),a(8,"button",6),_("click",function(){d(e);let i=r();return m(i.navigate.emit("shared"))}),v(),a(9,"svg",7),u(10,"path",9),c(),p(11),c(),V(),u(12,"div",10),a(13,"div")(14,"button",11,0),_("click",function(i){d(e);let l=r();return l.showWorkspaceSwitcher.set(!l.showWorkspaceSwitcher()),m(i.stopPropagation())}),h(16,di,3,3)(17,mi,3,1),v(),a(18,"svg",12),u(19,"path",13),c()(),P(20,hi,9,2,"ng-template",14),_("backdropClick",function(){d(e);let i=r();return m(i.showWorkspaceSwitcher.set(!1))}),c(),V(),a(21,"button",6),_("click",function(){d(e);let i=r();return m(i.navigate.emit("personal"))}),v(),a(22,"svg",7),u(23,"path",15),c(),p(24),c(),V(),a(25,"button",6),_("click",function(){d(e);let i=r();return m(i.navigate.emit("team"))}),v(),a(26,"svg",7),u(27,"path",16),c(),p(28),c(),V(),a(29,"button",6),_("click",function(){d(e);let i=r();return m(i.navigate.emit("trash"))}),v(),a(30,"svg",7),u(31,"path",17),c(),p(32),c(),V(),a(33,"button",6),_("click",function(){d(e);let i=r();return m(i.navigate.emit("resources"))}),v(),a(34,"svg",7),u(35,"rect",18)(36,"circle",19)(37,"path",20),c(),p(38),c(),V(),a(39,"button",6),_("click",function(){d(e);let i=r();return m(i.navigate.emit("favorites"))}),v(),a(40,"svg",7),u(41,"path",21),c(),p(42),c(),h(43,gi,4,4,"button",22),c()()}if(o&2){let e,n=t.$implicit,i=q(15),l=r();D("aria-label",n("dashboard.nav.sections")),s(3),D("aria-label",n("dashboard.nav.mainNavigation")),s(),j(l.itemClass("recents")),D("aria-current",l.activeView()==="recents"?"page":null),s(3),k(" ",n("dashboard.views.recents")," "),s(),j(l.itemClass("shared")),D("aria-current",l.activeView()==="shared"?"page":null),s(3),k(" ",n("dashboard.views.shared")," "),s(3),D("aria-expanded",l.showWorkspaceSwitcher()),s(2),g((e=l.teamService.activeTeam())?16:17,e),s(2),H("rotate-180",l.showWorkspaceSwitcher()),s(2),b("cdkConnectedOverlayOrigin",i)("cdkConnectedOverlayOpen",l.showWorkspaceSwitcher())("cdkConnectedOverlayWidth",212)("cdkConnectedOverlayPositions",ge(43,li,$(40,ai),N(41,si,-4)))("cdkConnectedOverlayHasBackdrop",!0),s(),j(l.itemClass("personal")),D("aria-current",l.activeView()==="personal"?"page":null),s(3),k(" ",n("dashboard.views.personal")," "),s(),j(l.itemClass("team")),D("aria-current",l.activeView()==="team"?"page":null),s(3),k(" ",n("dashboard.views.team")," "),s(),j(l.itemClass("trash")),D("aria-current",l.activeView()==="trash"?"page":null),s(3),k(" ",n("dashboard.views.trash")," "),s(),j(l.itemClass("resources")),D("aria-current",l.activeView()==="resources"?"page":null),s(5),k(" ",n("dashboard.views.resources")," "),s(),j(l.itemClass("favorites")),D("aria-current",l.activeView()==="favorites"?"page":null),s(3),k(" ",n("dashboard.views.favorites")," "),s(),g(l.linkService.isLinked()?43:-1)}}var pt=class o{teamService=M(K);linkService=M(xe);legacyService=M(Ve);activeView=y("recents");navigate=T();switchWorkspace=T();teamSettings=T();createTeam=T();showWorkspaceSwitcher=f(!1);itemClass(t){return this.activeView()===t?"bg-gradient-primary text-ink font-medium":"text-ink-off hover:text-ink hover:bg-white/5"}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-dashboard-sidebar"]],inputs:{activeView:[1,"activeView"]},outputs:{navigate:"navigate",switchWorkspace:"switchWorkspace",teamSettings:"teamSettings",createTeam:"createTeam"},decls:1,vars:0,consts:[["workspaceTrigger","cdkOverlayOrigin"],["class","w-[236px] h-full shrink-0 flex flex-col bg-gradient-sidebar",4,"transloco"],[1,"w-[236px]","h-full","shrink-0","flex","flex-col","bg-gradient-sidebar"],[1,"px-5","h-14.5","flex","items-center","gap-2.5"],["variant","wordmark","heightClass","h-8"],[1,"flex-1","px-3","pb-3","overflow-y-auto","space-y-1"],["type","button",1,"dash-sidebar-item","w-full","flex","items-center","gap-2.5","px-3","py-2","rounded-full","text-sm","transition-colors",3,"click"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","d","M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"],["stroke-linecap","round","stroke-linejoin","round","d","M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z"],[1,"border-t","border-divider","my-2.5"],["cdkOverlayOrigin","","type","button","aria-haspopup","listbox",1,"dash-dropdown-label","w-full","flex","items-center","gap-2.5","pl-1.5","pr-3","py-1.5","rounded-full","border","border-divider","text-sm","hover:bg-white/5","transition-colors",3,"click"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.8",1,"w-4","h-4","shrink-0","text-ink","transition-transform","duration-200"],["stroke-linecap","round","stroke-linejoin","round","d","M19 9l-7 7-7-7"],["cdkConnectedOverlay","","cdkConnectedOverlayPanelClass","dashboard-type","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayWidth","cdkConnectedOverlayPositions","cdkConnectedOverlayHasBackdrop"],["stroke-linecap","round","stroke-linejoin","round","d","M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"],["stroke-linecap","round","stroke-linejoin","round","d","M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"],["stroke-linecap","round","stroke-linejoin","round","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"],["x","3","y","4","width","18","height","16","rx","2"],["cx","8.5","cy","9.5","r","1.5"],["stroke-linecap","round","stroke-linejoin","round","d","M4 17l4.5-4.5a2 2 0 012.8 0L15 16m0 0l2-2a2 2 0 012.8 0L21 15.2"],["stroke-linecap","round","stroke-linejoin","round","d","M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"],["type","button",1,"dash-sidebar-item","w-full","flex","items-center","gap-2.5","px-3","py-2","rounded-full","text-sm","transition-colors",3,"class"],["size","sm",3,"name","showTitle"],[1,"truncate","flex-1","text-left","font-medium","text-ink"],[1,"w-6","h-6","rounded-full","bg-surface-switch","shrink-0"],[1,"flex-1","text-left","text-ink"],[1,"bg-gradient-popup","rounded-xl","shadow-2xl","border","border-divider","overflow-hidden","py-1.5"],[1,"px-3","py-2","space-y-2"],["type","button",1,"dash-sidebar-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","transition-colors",3,"class"],[1,"border-t","border-divider","mt-1.5","pt-1.5"],["type","button",1,"dash-sidebar-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-white/5","transition-colors",3,"click"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2.2","d","M12 5v14m7-7H5"],[1,"h-3","bg-white/10","rounded","animate-pulse","w-3/4"],[1,"h-3","bg-white/10","rounded","animate-pulse","w-1/2"],["type","button",1,"dash-sidebar-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","transition-colors",3,"click"],[1,"truncate","flex-1","text-left","font-medium"],["fill","currentColor","viewBox","0 0 20 20",1,"w-3.5","h-3.5","shrink-0","text-brand-hover"],["fill-rule","evenodd","d","M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule","evenodd"],["stroke-linecap","round","stroke-linejoin","round","d","M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4"]],template:function(e,n){e&1&&P(0,vi,44,46,"aside",1)},dependencies:[me,ae,re,R,on,pe],encapsulation:2,changeDetection:0})};var xi=["fileInput"];function Ci(o,t){o&1&&(a(0,"p",14),p(1),c()),o&2&&(s(),C(t))}function bi(o,t){if(o&1&&(v(),a(0,"svg",10),u(1,"circle",11)(2,"path",12),c(),V(),a(3,"p",13),p(4),c(),h(5,Ci,2,1,"p",14)),o&2){let e,n=r().$implicit,i=r();s(4),C(n("dashboard.import.importing")),s(),g((e=i.fileName())?5:-1,e)}}function fi(o,t){if(o&1&&(v(),a(0,"svg",15),u(1,"path",16),c(),V(),a(2,"p",13),p(3),c(),a(4,"p",17),p(5),c()),o&2){let e=r().$implicit;s(3),C(e("dashboard.import.dropHere")),s(2),C(e("dashboard.import.fileHint"))}}function wi(o,t){if(o&1&&(a(0,"p",6),p(1),c()),o&2){let e=r().$implicit,n=r();s(),C(e(n.errorKey(t)))}}function yi(o,t){if(o&1){let e=w();a(0,"div",2)(1,"h2",3),p(2),c(),a(3,"label",4),_("dragover",function(i){d(e);let l=r();return m(l.onDragOver(i))})("dragleave",function(i){d(e);let l=r();return m(l.onDragLeave(i))})("drop",function(i){d(e);let l=r();return m(l.onDrop(i))}),a(4,"input",5,0),_("change",function(i){d(e);let l=r();return m(l.onPicked(i))}),c(),h(6,bi,6,2)(7,fi,6,2),c(),h(8,wi,2,1,"p",6),a(9,"div",7)(10,"span"),p(11),c(),u(12,"app-workspace-avatar",8),a(13,"span",9),p(14),c()()()}if(o&2){let e,n=t.$implicit,i=r();D("aria-label",n("dashboard.import.title"))("aria-busy",i.isImporting()),s(2),C(n("dashboard.import.title")),s(),j(i.dropzoneClass()),s(),b("disabled",i.isImporting()),s(2),g(i.isImporting()?6:7),s(2),g((e=i.error())?8:-1,e),s(3),C(n("dashboard.import.destination")),s(),b("name",i.destination())("showTitle",!1),s(2),C(i.destination())}}var _t=class o{destination=y("");isImporting=y(!1);error=y(null);fileChosen=T();fileInput=oe("fileInput");isDragging=f(!1);fileName=f("");dropzoneClass(){return this.isImporting()?"border-divider opacity-70 cursor-progress":this.isDragging()?"border-brand bg-brand/5":"border-divider hover:border-ink-off hover:bg-white/5"}onDragOver(t){this.isImporting()||(t.preventDefault(),this.isDragging.set(!0))}onDragLeave(t){t.preventDefault(),this.isDragging.set(!1)}onDrop(t){if(t.preventDefault(),this.isDragging.set(!1),this.isImporting())return;let e=t.dataTransfer?.files?.[0];e&&this.take(e)}onPicked(t){let e=t.target,n=e.files?.[0];n&&this.take(n),e.value=""}take(t){this.fileName.set(t.name),this.fileChosen.emit(t)}focusPicker(){this.fileInput()?.nativeElement.focus()}static ERROR_KEYS={invalidFile:"dashboard.import.errorInvalidFile",unsupportedVersion:"dashboard.import.errorUnsupportedVersion",tooLarge:"dashboard.import.errorTooLarge",notAMember:"dashboard.import.errorNotAMember",failed:"dashboard.import.errorFailed"};errorKey(t){return o.ERROR_KEYS[t]}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-import-panel"]],viewQuery:function(e,n){e&1&&te(n.fileInput,xi,5),e&2&&ne()},inputs:{destination:[1,"destination"],isImporting:[1,"isImporting"],error:[1,"error"]},outputs:{fileChosen:"fileChosen"},decls:1,vars:0,consts:[["fileInput",""],["class","w-[380px] bg-gradient-popup border border-divider rounded-xl shadow-2xl p-4","role","dialog",4,"transloco"],["role","dialog",1,"w-[380px]","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","p-4"],[1,"text-sm","font-semibold","text-ink","mb-3"],[1,"flex","flex-col","items-center","justify-center","gap-2","px-4","py-8","rounded-lg","border","border-dashed","transition-colors","cursor-pointer",3,"dragover","dragleave","drop"],["type","file","accept",".ninja,.nmproj,.zip",1,"sr-only",3,"change","disabled"],["role","alert",1,"mt-3","text-xs","text-danger"],[1,"mt-4","flex","items-center","gap-2","text-xs","text-ink"],["size","sm",3,"name","showTitle"],[1,"text-ink","truncate"],["fill","none","viewBox","0 0 24 24","aria-hidden","true",1,"w-6","h-6","animate-spin","text-ink"],["cx","12","cy","12","r","10","stroke","currentColor","stroke-width","4",1,"opacity-25"],["fill","currentColor","d","m4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z",1,"opacity-75"],[1,"text-sm","text-ink"],[1,"text-xs","text-ink","truncate","max-w-full"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6","aria-hidden","true",1,"w-6","h-6","text-ink"],["stroke-linecap","round","stroke-linejoin","round","d","M12 16V4m0 0L8 8m4-4l4 4M4 16v2a2 2 0 002 2h12a2 2 0 002-2v-2"],[1,"text-xs","text-ink"]],template:function(e,n){e&1&&P(0,yi,15,12,"div",1)},dependencies:[R,pe],encapsulation:2,changeDetection:0})};var Ti=[[["","toolbar-actions",""]]],Si=["[toolbar-actions]"],Bt=()=>({originX:"start",originY:"bottom",overlayX:"start",overlayY:"top",offsetY:6}),Fe=o=>[o],Ht=()=>({originX:"end",originY:"bottom",overlayX:"end",overlayY:"top",offsetY:6}),ht=(o,t)=>t.id,Mi=(o,t)=>t.value;function Di(o,t){if(o&1){let e=w();a(0,"button",19),_("click",function(){d(e);let i=r(2);return m(i.upgrade.emit())}),u(1,"span",20),p(2),c()}if(o&2){let e=r().$implicit;s(2),k(" ",e("dashboard.ui.startTrial")," ")}}function Vi(o,t){if(o&1){let e=w();a(0,"div",11)(1,"div",21),v(),a(2,"svg",22),u(3,"path",23),c(),V(),a(4,"input",24),_("ngModelChange",function(i){d(e);let l=r(2);return m(l.searchSubject.next(i))}),c()()()}if(o&2){let e=r().$implicit,n=r();s(4),b("placeholder",n.searchPlaceholder())("ngModel",n.searchQuery()),D("aria-label",e("dashboard.header.searchProje
1cts"))}}function ji(o,t){o&1&&u(0,"div",12)}function Pi(o,t){if(o&1){let e=w();a(0,"div",31)(1,"button",32),_("click",function(){d(e);let i=r(3);return i.teamShare.emit(),m(i.showTeamMenu.set(!1))}),v(),a(2,"svg",33),u(3,"path",34),c(),p(4),c(),V(),a(5,"button",32),_("click",function(){d(e);let i=r(3);return i.teamRename.emit(),m(i.showTeamMenu.set(!1))}),v(),a(6,"svg",33),u(7,"path",35),c(),p(8),c(),V(),a(9,"button",32),_("click",function(){d(e);let i=r(3);return i.teamCopyLink.emit(),m(i.showTeamMenu.set(!1))}),v(),a(10,"svg",33),u(11,"path",36),c(),p(12),c(),V(),u(13,"div",37),a(14,"button",38),_("click",function(){d(e);let i=r(3);return i.teamDelete.emit(),m(i.showTeamMenu.set(!1))}),v(),a(15,"svg",33),u(16,"path",39),c(),p(17),c()()}if(o&2){let e=r(2).$implicit;s(4),k(" ",e("dashboard.ui.share")," "),s(4),k(" ",e("dashboard.ui.rename")," "),s(4),k(" ",e("dashboard.ui.copyLink")," "),s(5),k(" ",e("dashboard.ui.deleteWorkspace")," ")}}function Ii(o,t){if(o&1){let e=w();a(0,"button",25,0),_("click",function(i){d(e);let l=r(2);return l.showTeamMenu.set(!l.showTeamMenu()),m(i.stopPropagation())}),u(2,"app-workspace-avatar",26),a(3,"span",27),p(4),c(),v(),a(5,"svg",28),u(6,"path",29),c()(),P(7,Pi,18,4,"ng-template",30),_("backdropClick",function(){d(e);let i=r(2);return m(i.showTeamMenu.set(!1))})("detach",function(){d(e);let i=r(2);return m(i.showTeamMenu.set(!1))})}if(o&2){let e=t,n=q(1),i=r(2);D("aria-expanded",i.showTeamMenu()),s(2),b("name",e.name)("showTitle",!1),s(2),C(e.name),s(3),b("cdkConnectedOverlayOrigin",n)("cdkConnectedOverlayOpen",i.showTeamMenu())("cdkConnectedOverlayHasBackdrop",!0)("cdkConnectedOverlayPositions",N(10,Fe,$(9,Bt)))("cdkConnectedOverlayPush",!0)}}function Ei(o,t){if(o&1){let e=w();a(0,"button",41),_("click",function(){let i=d(e).$implicit,l=r(3);return m(l.tabChange.emit(i.id))}),p(1),c()}if(o&2){let e=t.$implicit,n=r(2).$implicit,i=r();j(i.activeTab()===e.id?"bg-gradient-primary text-ink font-medium":"border border-divider text-ink-off hover:text-ink hover:bg-white/5"),D("aria-selected",i.activeTab()===e.id),s(),C(n(e.labelKey))}}function Li(o,t){if(o&1&&(a(0,"div",14),E(1,Ei,2,4,"button",40,ht),c()),o&2){let e=r(2);D("aria-label",e.title()+" sections"),s(),L(e.tabs())}}function Fi(o,t){if(o&1&&(a(0,"h2",15),p(1),c()),o&2){let e=r(2);s(),C(e.toolbarHeading())}}function Ni(o,t){if(o&1&&(a(0,"p",16),p(1),c()),o&2){let e=r(2);s(),C(e.subtitle())}}function Ri(o,t){if(o&1){let e=w();a(0,"button",45),_("click",function(){d(e);let i=r(4);return i.ownerChange.emit("others"),m(i.showOwner.set(!1))}),v(),a(1,"svg",46),u(2,"path",47),c(),a(3,"svg",33),u(4,"path",34),c(),p(5),c()}if(o&2){let e=r(3).$implicit,n=r();j(n.optionClass(n.ownerFilter()==="others")),D("aria-selected",n.ownerFilter()==="others"),s(),H("invisible",n.ownerFilter()!=="others"),s(4),k(" ",e("dashboard.ui.ownedByOthers")," ")}}function Oi(o,t){if(o&1&&(a(0,"span",52),p(1),c()),o&2){let e=r(4).$implicit;s(),C(e("dashboard.ui.you"))}}function Ai(o,t){if(o&1){let e=w();a(0,"button",45),_("click",function(){let i=d(e).$implicit,l=r(4);return l.ownerChange.emit(i.id),m(l.showOwner.set(!1))}),v(),a(1,"svg",46),u(2,"path",47),c(),V(),u(3,"app-user-avatar",50),a(4,"span",51),p(5),c(),h(6,Oi,2,1,"span",52),c()}if(o&2){let e=t.$implicit,n=r(4);j(n.optionClass(n.ownerFilter()===e.id)),D("aria-selected",n.ownerFilter()===e.id),s(),H("invisible",n.ownerFilter()!==e.id),s(2),b("name",e.name)("userId",e.id)("showTitle",!1),s(2),C(e.name),s(),g(e.id===n.currentUserId()?6:-1)}}function Bi(o,t){if(o&1){let e=w();a(0,"div",44)(1,"button",45),_("click",function(){d(e);let i=r(3);return i.ownerChange.emit("any"),m(i.showOwner.set(!1))}),v(),a(2,"svg",46),u(3,"path",47),c(),a(4,"svg",33),u(5,"path",48),c(),p(6),c(),h(7,Ri,6,6,"button",49),E(8,Ai,7,10,"button",49,ht),c()}if(o&2){let e=r(2).$implicit,n=r();s(),j(n.optionClass(n.ownerFilter()==="any")),D("aria-selected",n.ownerFilter()==="any"),s(),H("invisible",n.ownerFilter()!=="any"),s(4),k(" ",e("dashboard.ui.anyOwner")," "),s(),g(n.showOwnedByOthers()?7:-1),s(),L(n.owners())}}function Hi(o,t){if(o&1){let e=w();a(0,"button",42,1),_("click",function(i){d(e);let l=r(2);return l.showOwner.set(!l.showOwner()),m(i.stopPropagation())}
1),p(2),v(),a(3,"svg",43),u(4,"path",29),c()(),P(5,Bi,10,7,"ng-template",30),_("backdropClick",function(){d(e);let i=r(2);return m(i.showOwner.set(!1))})("detach",function(){d(e);let i=r(2);return m(i.showOwner.set(!1))})}if(o&2){let e=q(1),n=r(2);D("aria-expanded",n.showOwner()),s(2),k(" ",n.ownerLabel()," "),s(3),b("cdkConnectedOverlayOrigin",e)("cdkConnectedOverlayOpen",n.showOwner())("cdkConnectedOverlayHasBackdrop",!0)("cdkConnectedOverlayPositions",N(8,Fe,$(7,Ht)))("cdkConnectedOverlayPush",!0)}}function $i(o,t){if(o&1){let e=w();a(0,"button",45),_("click",function(){let i=d(e).$implicit,l=r(4);return l.workspaceChange.emit(i.id),m(l.showWorkspace.set(!1))}),v(),a(1,"svg",46),u(2,"path",47),c(),V(),u(3,"app-workspace-avatar",54),a(4,"span",51),p(5),c()()}if(o&2){let e=t.$implicit,n=r(4);j(n.optionClass(n.workspaceFilter()===e.id)),D("aria-selected",n.workspaceFilter()===e.id),s(),H("invisible",n.workspaceFilter()!==e.id),s(2),b("name",e.name)("showTitle",!1),s(2),C(e.name)}}function Gi(o,t){if(o&1){let e=w();a(0,"div",53)(1,"button",45),_("click",function(){d(e);let i=r(3);return i.workspaceChange.emit("any"),m(i.showWorkspace.set(!1))}),v(),a(2,"svg",46),u(3,"path",47),c(),p(4),c(),E(5,$i,6,8,"button",49,ht),c()}if(o&2){let e=r(2).$implicit,n=r();s(),j(n.optionClass(n.workspaceFilter()==="any")),D("aria-selected",n.workspaceFilter()==="any"),s(),H("invisible",n.workspaceFilter()!=="any"),s(2),k(" ",e("dashboard.ui.allWorkspaces")," "),s(),L(n.workspaces())}}function Ui(o,t){if(o&1){let e=w();a(0,"button",42,2),_("click",function(i){d(e);let l=r(2);return l.showWorkspace.set(!l.showWorkspace()),m(i.stopPropagation())}),p(2),v(),a(3,"svg",43),u(4,"path",29),c()(),P(5,Gi,7,6,"ng-template",30),_("backdropClick",function(){d(e);let i=r(2);return m(i.showWorkspace.set(!1))})("detach",function(){d(e);let i=r(2);return m(i.showWorkspace.set(!1))})}if(o&2){let e=q(1),n=r(2);D("aria-expanded",n.showWorkspace()),s(2),k(" ",n.workspaceLabel()," "),s(3),b("cdkConnectedOverlayOrigin",e)("cdkConnectedOverlayOpen",n.showWorkspace())("cdkConnectedOverlayHasBackdrop",!0)("cdkConnectedOverlayPositions",N(8,Fe,$(7,Bt)))("cdkConnectedOverlayPush",!0)}}function zi(o,t){if(o&1){let e=w();a(0,"button",45),_("click",function(){let i=d(e).$implicit,l=r(4);return l.dateChange.emit(i.value),m(l.showDate.set(!1))}),v(),a(1,"svg",46),u(2,"path",47),c(),p(3),c()}if(o&2){let e=t.$implicit,n=r(4);j(n.optionClass(n.dateFilter()===e.value)),D("aria-selected",n.dateFilter()===e.value),s(),H("invisible",n.dateFilter()!==e.value),s(2),k(" ",e.label," ")}}function Wi(o,t){if(o&1&&(a(0,"div",55),E(1,zi,4,6,"button",49,Mi),c()),o&2){let e=r(3);s(),L(e.dateOptions())}}function Qi(o,t){if(o&1){let e=w();a(0,"button",42,3),_("click",function(i){d(e);let l=r(2);return l.showDate.set(!l.showDate()),m(i.stopPropagation())}),p(2),v(),a(3,"svg",43),u(4,"path",29),c()(),P(5,Wi,3,0,"ng-template",30),_("backdropClick",function(){d(e);let i=r(2);return m(i.showDate.set(!1))})("detach",function(){d(e);let i=r(2);return m(i.showDate.set(!1))})}if(o&2){let e=q(1),n=r(2);D("aria-expanded",n.showDate()),s(2),k(" ",n.dateLabel()," "),s(3),b("cdkConnectedOverlayOrigin",e)("cdkConnectedOverlayOpen",n.showDate())("cdkConnectedOverlayHasBackdrop",!0)("cdkConnectedOverlayPositions",N(8,Fe,$(7,Bt)))("cdkConnectedOverlayPush",!0)}}function qi(o,t){if(o&1){let e=w();a(0,"button",45),_("click",function(){let i=d(e).$implicit,l=r(4);return m(l.onSortPicked(i))}),v(),a(1,"svg",46),u(2,"path",47),c(),a(3,"svg",61),u(4,"path",67),c(),p(5),c()}if(o&2){let e=t.$implicit,n=r(4);j(n.optionClass(n.activeSortId()===e.id)),D("aria-selected",n.activeSortId()===e.id),s(),H("invisible",!n.sortOptionChecked(e.id)),s(3),D("d",e.icon),s(),k(" ",e.label," ")}}function Yi(o,t){o&1&&(v(),a(0,"svg",66),u(1,"path",47),c())}function Ki(o,t){if(o&1){let e=w();a(0,"div",59),E(1,qi,6,7,"button",49,ht),a(3,"button",60),_("click",function(){d(e);let i=r(3);return m(i.favoritesFirstChange.emit(!i.favoritesFirst()))}),v(),a(4,"svg",46),u(5,"path",47),c(),a(6,"svg",61),u(7,"path",62),c(),V(),a(8,"span",63),p(9),c(),a(10,"span",64)(11,"span",65),h(12,Yi,2,0,":svg:svg",66),c()()()()}if(o&2){let e=r(2).$implicit,n=r();s(),L(n.sortOptions()),s(2),j(n.optionClass(n.favoritesFirst())),D("aria-checked",n.favoritesFirst()),s(),H("invisible",!n.favoritesFirst()),s(5),C(e("dashboard.header.favoritesFirst")),s(),j(n.favoritesFirst()?"bg-gradient-ai-icon":"bg-surface-switch"),s(),H("translate-x-4",n.favoritesFirst()),s(),g(n.favoritesFirst()?12:-1)}}function Xi(o,t){if(o&1){let e=w();a(0,"button",56,4),_("click",function(i){d(e);let l=r(2);return l.showSort.set(!l.showSort()),m(i.stopPropagation())}),v(),a(2,"svg",57),u(3,"path",58),c()(),P(4,Ki,13,11,"ng-template",3
10),_("backdropClick",function(){d(e);let i=r(2);return m(i.showSort.set(!1))})("detach",function(){d(e);let i=r(2);return m(i.showSort.set(!1))})}if(o&2){let e=q(1),n=r(2);j(n.showSort()?"text-ink bg-white/10":"text-ink-off hover:text-ink hover:bg-white/5"),b("title",n.sortByLabel()),D("aria-expanded",n.showSort())("aria-label","Sort: "+n.sortByLabel()),s(4),b("cdkConnectedOverlayOrigin",e)("cdkConnectedOverlayOpen",n.showSort())("cdkConnectedOverlayHasBackdrop",!0)("cdkConnectedOverlayPositions",N(11,Fe,$(10,Ht)))("cdkConnectedOverlayPush",!0)}}function Zi(o,t){o&1&&(v(),a(0,"svg",57),u(1,"path",70),c())}function Ji(o,t){o&1&&(v(),a(0,"svg",69),u(1,"rect",71)(2,"rect",72)(3,"rect",73)(4,"rect",74),c())}function eo(o,t){if(o&1){let e=w();a(0,"button",68),_("click",function(){d(e);let i=r(2);return m(i.gridViewChange.emit(!i.gridView()))}),h(1,Zi,2,0,":svg:svg",57)(2,Ji,5,0,":svg:svg",69),c()}if(o&2){let e=r().$implicit,n=r();j(n.gridView()?"text-ink-off hover:text-ink hover:bg-white/5":"text-ink bg-white/10"),b("title",n.gridView()?e("dashboard.header.switchToListView"):e("dashboard.header.listView")),D("aria-pressed",!n.gridView()),s(),g(n.gridView()?1:2)}}function to(o,t){if(o&1){let e=w();a(0,"app-import-panel",77),_("fileChosen",function(i){d(e);let l=r(3);return m(l.importFile.emit(i))}),c()}if(o&2){let e=r(3);b("destination",e.importDestination())("isImporting",e.isImporting())("error",e.importError())}}function no(o,t){if(o&1){let e=w();a(0,"button",75,5),_("click",function(i){d(e);let l=r(2);return l.showImportPanel.set(!l.showImportPanel()),m(i.stopPropagation())}),v(),a(2,"svg",57),u(3,"path",76),c()(),P(4,to,1,3,"ng-template",30),_("backdropClick",function(){d(e);let i=r(2);return m(i.closeImportPanel())})("detach",function(){d(e);let i=r(2);return m(i.closeImportPanel())})}if(o&2){let e=q(1),n=r().$implicit,i=r();j(i.showImportPanel()?"text-ink bg-white/10":"text-ink-off hover:text-ink hover:bg-white/5"),b("title",n("dashboard.import.title")),D("aria-expanded",i.showImportPanel())("aria-label",n("dashboard.import.title")),s(4),b("cdkConnectedOverlayOrigin",e)("cdkConnectedOverlayOpen",i.showImportPanel())("cdkConnectedOverlayHasBackdrop",!0)("cdkConnectedOverlayPositions",N(11,Fe,$(10,Ht)))("cdkConnectedOverlayPush",!0)}}function io(o,t){if(o&1&&(a(0,"header",7)(1,"div",8),h(2,Di,3,1,"button",9),a(3,"h1",10),p(4),c(),h(5,Vi,5,3,"div",11)(6,ji,1,0,"div",12),c(),a(7,"div",13),h(8,Ii,8,12)(9,Li,3,1,"div",14)(10,Fi,2,1,"h2",15)(11,Ni,2,1,"p",16),u(12,"div",17),Zt(13),h(14,Hi,6,10),h(15,Ui,6,10),h(16,Qi,6,10),h(17,Xi,5,13),h(18,eo,3,5,"button",18),h(19,no,5,13),c()()),o&2){let e,n=r();s(2),g((n.showTrialCta(),-1)),s(),j(n.titleGradient()?"text-gradient-hero":"text-ink"),s(),k(" ",n.title()," "),s(),g(n.showSearch()?5:6),s(3),g((e=n.teamChip())?8:n.tabs().length>0?9:n.toolbarHeading()?10:11,e),s(6),g(n.showOwnerFilter()?14:-1),s(),g(n.showWorkspaceFilter()?15:-1),s(),g(n.showDateFilter()?16:-1),s(),g(n.showSortControls()?17:-1),s(),g(n.showViewToggle()?18:-1),s(),g(n.showImport()?19:-1)}}var ut=class o{teamService=M(K);subscriptionService=M(je);title=y("Projects");subtitle=y("");gridView=y(!0);searchQuery=y("");sortBy=y("date");sortOrder=y("desc");showSortControls=y(!0);showImport=y(!0);importDestination=y("");isImporting=y(!1);importError=y(null);showDateFilter=y(!0);showViewToggle=y(!0);searchPlaceholderOverride=y("");showSearch=y(!0);titleGradient=y(!1);toolbarHeading=y("");teamChip=y(null);teamShare=T();teamRename=T();teamCopyLink=T();teamDelete=T();tabs=y([]);transloco=M(Y);language=M(Ke);activeTab=y("");tabChange=T();showOwnerFilter=y(!1);owners=y([]);ownerFilter=y("any");ownerChange=T();currentUserId=y("");showOwnedByOthers=y(!0);dateFilter=y("any");dateChange=T();showWorkspaceFilter=y(!1);workspaces=y([]);workspaceFilter=y("any");workspaceChange=T();favoritesFirst=y(!1);favoritesFirstChange=T();gridViewChange=T();searchChange=T();sortChange=T();sortOrderChange=T();importFile=T();importPanelClosed=T();upgrade=T();showSort=f(!1);showOwner=f(!1);showDate=f(!1);showWorkspace=f(!1);showTeamMenu=f(!1);showImportPanel=f(!1);closeImportPanel(){this.showImportPanel.set(!1),this.importPanelClosed.emit
1()}workspaceLabel=S(()=>{this.language.translationsRevision();let t=this.workspaceFilter();return t==="any"?this.transloco.translate("dashboard.ui.allWorkspaces"):this.workspaces().find(e=>e.id===t)?.name??this.transloco.translate("dashboard.ui.allWorkspaces")});dateOptions=S(()=>(this.language.translationsRevision(),[{value:"any",label:this.transloco.translate("dashboard.ui.anyTime")},{value:"today",label:this.transloco.translate("dashboard.ui.today")},{value:"yesterday",label:this.transloco.translate("dashboard.ui.yesterday")},{value:"last30",label:this.transloco.translate("dashboard.ui.last30Days")},{value:"last90",label:this.transloco.translate("dashboard.ui.last90Days")},{value:"lastYear",label:this.transloco.translate("dashboard.ui.lastYear")}]));dateLabel=S(()=>{this.language.translationsRevision();let t=this.dateFilter();return t==="any"?this.transloco.translate("dashboard.ui.dateModified"):this.dateOptions().find(e=>e.value===t)?.label??this.transloco.translate("dashboard.ui.dateModified")});sortOptions=S(()=>(this.language.translationsRevision(),[{id:"activity",label:this.transloco.translate("dashboard.ui.lastActivity"),sortBy:"date",order:"desc",icon:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"},{id:"az",label:this.transloco.translate("dashboard.ui.alphabeticalAz"),sortBy:"name",order:"asc",icon:"M12 19V5m0 0l-5 5m5-5l5 5"},{id:"za",label:this.transloco.translate("dashboard.ui.alphabeticalZa"),sortBy:"name",order:"desc",icon:"M12 5v14m0 0l5-5m-5 5l-5-5"}]));activeSortId=S(()=>this.sortOptions().find(t=>t.sortBy===this.sortBy()&&t.order===this.sortOrder())?.id??"activity");sortByLabel=S(()=>(this.language.translationsRevision(),this.sortOptions().find(t=>t.id===this.activeSortId())?.label??this.transloco.translate("dashboard.ui.lastActivity")));ownerLabel=S(()=>{this.language.translationsRevision();let t=this.ownerFilter();return t==="any"?this.transloco.translate("dashboard.ui.anyOwner"):t==="others"?this.transloco.translate("dashboard.ui.ownedByOthers"):this.owners().find(e=>e.id===t)?.name??"Any owner"});optionClass(t){return t?"bg-gradient-primary text-ink font-medium":"text-ink-off hover:text-ink hover:bg-white/5"}sortOptionChecked(t){return!this.favoritesFirst()&&this.activeSortId()===t}onSortPicked(t){this.sortChange.emit(t.sortBy),this.sortOrderChange.emit(t.order),this.showSort.set(!1)}searchPlaceholder=S(()=>{let t=this.searchPlaceholderOverride();return t||(this.language.translationsRevision(),this.transloco.translate("dashboard.header.searchPlaceholder"))});showTrialCta=S(()=>this.subscriptionService.currentTier()==="free");searchSubject=new Ut;constructor(){this.searchSubject.pipe(zt(300),qe()).subscribe(t=>this.searchChange.emit(t))}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-dashboard-header"]],inputs:{title:[1,"title"],subtitle:[1,"subtitle"],gridView:[1,"gridView"],searchQuery:[1,"searchQuery"],sortBy:[1,"sortBy"],sortOrder:[1,"sortOrder"],showSortControls:[1,"showSortControls"],showImport:[1,"showImport"],importDestination:[1,"importDestination"],isImporting:[1,"isImporting"],importError:[1,"importError"],showDateFilter:[1,"showDateFilter"],showViewToggle:[1,"showViewToggle"],searchPlaceholderOverride:[1,"searchPlaceholderOverride"],showSearch:[1,"showSearch"],titleGradient:[1,"titleGradient"],toolbarHeading:[1,"toolbarHeading"],teamChip:[1,"teamChip"],tabs:[1,"tabs"],activeTab:[1,"activeTab"],showOwnerFilter:[1,"showOwnerFilter"],owners:[1,"owners"],ownerFilter:[1,"ownerFilter"],currentUserId:[1,"currentUserId"],showOwnedByOthers:[1,"showOwnedByOthers"],dateFilter:[1,"dateFilter"],showWorkspaceFilter:[1,"showWorkspaceFilter"],workspaces:[1,"workspaces"],workspaceFilter:[1,"workspaceFilter"],favoritesFirst:[1,"favoritesFirst"]},outputs:{teamShare:"teamShare",teamRename:"teamRename",teamCopyLink:"teamCopyLink",teamDelete:"teamDelete",tabChange:"tabChange",ownerChange:"ownerChange",dateChange:"dateChange",workspaceChange:"workspaceChange",favoritesFirstChange:"favoritesFirstChange",gridViewChange:"gridViewChange",searchChange:"searchChange",sortChange:"sortChange",sortOrderChange:"sortOrderChange",importFile:"importFile",importPanelClosed:"importPanelClosed",upgrade:"upgrade"},ngContentSelectors:Si,decls:1,vars:0,consts:[["teamTrigger","cdkOverlayOrigin"],["ownerTrigger","cdkOverlayOrigin"],["workspaceTrigger","cdkOverlayOrigin"],["dateTrigger","cdkOverlayOrigin"],["sortTrigger","cdkOverlayOrigin"],["importTrigger","cdkOverlayOrigin"],["class","shrink-0",4,"transloco"],[1,"shrink-0"],[1,"relative","px-8","pt-4","pb-10"],["type","button",1,"absolute","top-4","right-6","flex","items-center","gap-2","pl-3","pr-4","py-2","rounded-full","border-gradient-primary","text-sm","font-medium","text-ink","hover:brightness-125","transition-[filter]"],[1,"dash-hero","mt-10","text-center","font-extrabold","tracking-tight"],[1,"mt-7","mx-auto","w-full","max-w-2xl"],["aria-hidden","true",1,"mt-7","h-12"],[1,"flex","items-center","gap-2","px-8","py-4"],["role","tablist",1,"flex","items-center","gap-2"],[1,"text-lg","font-semibold","text-ink"],[1,"dash-section-subtitle","text-xs","text-ink"],[1,"flex-1"],["type","button",1,"w-8","h-8","grid","place-items-center","rounded-full","transition-colors",3,"class","title"],["type","button",1,"absolute","top-4","right-6","flex","items-center","gap-2","pl-3","pr-4","py-2","rounded-full","border-gradient-primary","text-sm","font-medium","text-ink","hover:brightness-125","transition-[filter]",3,"click"],[1,"w-4","h-4","rounded-[5px]","bg-gradient-ai-icon","shrink-0"],[1,"flex","items-center","gap-3","pl-5","pr-4","py-3","rounded-full","border-gradient-primary"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.8",1,"w-5","h-5","shrink-0","text-ink"],["stroke-linecap","round","stroke-linejoin","round","d","M21 21l-4.35-4.35m2.35-5.65a8 8 0 11-16 0 8 8 0 0116 0z"],["type","search",1,"flex-1","bg-transparent","text-sm","text-ink","placeholder-ink-off","focus:outline-none",3,"ngModelChange","placeholder","ngModel"],["cdkOverlayOrigin","","type","button","aria-haspopup","menu",1,"flex","items-center","gap-2.5","pl-1.5","pr-2.5","py-1.5","rounded-full","hover:bg-white/5","transition-colors",3,"click"],["size","md",3,"name","showTitle"],[1,"dash-chip","text-lg","font-semibold","text-ink","truncate","max-w-64"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","2",1,"w-4","h-4","shrink-0","text-ink"],["stroke-linecap","round","stroke-linejoin","round","d","M19 9l-7 7-7-7"],["cdkConnectedOverlay","","cdkConnectedOverlayPanelClass","dashboard-type","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","detach","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayPositions","cdkConnectedOverlayPush"],["role","menu",1,"w-56","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","p-1.5","overflow-hidden"],["type","button","role","menuitem",1,"w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","rounded-lg","text-ink","hover:bg-white/5","transition-colors",3,"click"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","d","M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z"],["stroke-linecap","round","stroke-linejoin","round","d","M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"],["stroke-linecap","round","stroke-linejoin","round","d","M13.828 10.172a4 4 0 010 5.656l-3 3a4 4 0 01-5.656-5.656l1.5-1.5m4.5-4.5l1.5-1.5a4 4 0 015.656 5.656l-3 3a4 4 0 01-5.656 0"],[1,"my-1","border-t","border-divider"],["type","button","role","menuitem",1,"w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","rounded-lg","text-danger","hover:bg-danger/10","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"],["type","button","role","tab",1,"dash-tab","px-3.5","py-1.5","rounded-full","text-sm","transition-colors",3,"class"],["type","button","role","tab",1,"dash-tab","px-3.5","py-1.5","rounded-full","text-sm","transition-colors",3,"click"],["cdkOverlayOrigin","","type","button","aria-haspopup","listbox",1,"dash-dropdown-label","flex","items-center","gap-2","pl-3","pr-2.5","py-1.5","rounded-full","border","border-divider","text-sm","text-ink","hover:bg-white/5","transition-colors",3,"click"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","2",1,"w-3.5","h-3.5","text-ink"],["role","listbox",1,"w-60","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","p-1.5","overflow-hidden","max-h-80","overflow-y-auto"],["type","button","role","option",1,"w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","rounded-lg","transition-colors",3,"click"],["fill","currentColor","viewBox","0 0 20 20",1,"w-3.5","h-3.5","shrink-0"],["fill-rule","evenodd","d","M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule","evenodd"],["stroke-linecap","round","stroke-linejoin","round","d","M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"],["type","button","role","option",1,"w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","rounded-lg","transition-colors",3,"class"],["size","sm",3,"name","userId","showTitle"],[1,"truncate"],[1,"text-ink","shrink-0"],["role","listbox",1,"w-56","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","p-1.5","overflow-hidden","max-h-80","overflow-y-auto"],["size","sm",3,"name","showTitle"],["role","listbox",1,"w-48","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","p-1.5","overflow-hidden"],["cdkOverlayOrigin","","type","button","aria-haspopup","listbox",1,"w-8","h-8","grid","place-items-center","rounded-full","transition-colors",3,"click","title"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.8",1,"w-[18px]","h-[18px]"],["stroke-linecap","round","stroke-linejoin","round","d","M8 4v16m0-16L5 7m3-3l3 3M16 20V4m0 16l-3-3m3 3l3-3"],["role","listbox",1,"w-60","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","p-1.5","overflow-hidden"],["type","button","role","switch",1,"w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","rounded-lg","transition-colors",3,"click"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.7",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","d","M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"],[1,"flex-1","text-left"],[1,"relative","w-9","h-5","rounded-full","transition-colors","shrink-0"],[1,"absolute","top-0.5","left-0.5","w-4","h-4","rounded-full","bg-white","grid","place-items-center","transition-transform"],["fill","currentColor","viewBox","0 0 20 20",1,"w-2.5","h-2.5","text-purple"],["stroke-linecap","round","stroke-linejoin","round"],["type","button",1,"w-8","h-8","grid","place-items-center","rounded-full","transition-colors",3,"click","title"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6",1,"w-[18px]","h-[18px]"],["stroke-linecap","round","d","M4 6h16M4 12h16M4 18h16"],["x","4","y","4","width","7","height","7","rx","1.5"],["x","13","y","4","width","7","height","7","rx","1.5"],["x","4","y","13","width","7","height","7","rx","1.5"],["x","13","y","13","width","7","height","7","rx","1.5"],["cdkOverlayOrigin","","type","button","aria-haspopup","dialog",1,"w-8","h-8","grid","place-items-center","rounded-full","transition-colors",3,"click","title"],["stroke-linecap","round","stroke-linejoin","round","d","M12 16V4m0 0L8 8m4-4l4 4M4 16v2a2 2 0 002 2h12a2 2 0 002-2v-2"],[3,"fileChosen","destination","isImporting","error"]],template:function(e,n){e&1&&(Xt(Ti),P(0,io,20,12,"header",6))},dependencies:[Se,Ze,Je,et,me,ae,re,Pe,pe,R,_t],encapsulation:2,changeDetection:0})};var Ne=class o{transloco=M(Y);locale=M(Ye);transform(t,e){let n=t instanceof Date?t:new Date(t);return nt(n,this.transloco,this.locale,{sameDay:"today",dateFormat:{month:"short",day:"numeric"}})}static \u0275fac=function(e){return new(e||o)};static \u0275pipe=$e({name:"formatDate",type:o,pure:!0})},gt=class o{transloco=M(Y);locale=M(Ye);transform(t,e){let n=t instanceof Date?t:new Date(t),i=this.locale.localizeDate(n,this.locale.getLocale(),{hour:"2-digit",minute:"2-digit",hour12:!1});return`${nt(n,this.transloco,this.locale,{sameDay:"today",dateFormat:{month:"short",day:"numeric",year:"numeric"}})} ${i}`}static \u0275fac=function(e){return new(e||o)};static \u0275pipe=$e({name:"formatDateTime",type:o,pure:!0})},Re=class o{transloco=M(Y);locale=M(Ye);transform(t,e,n){let i=t instanceof Date?t:new Date(t);return nt(i,this.transloco,this.locale,{sameDay:"elapsed",dateFormat:{month:"short",day:"numeric"}})}static \u0275fac=function(e){return new(e||o)};static \u0275pipe=$e({name:"formatDateElapsed",type:o,pure:!0})};var oo=6e4,Oe=class o{destroyRef=M(qt);_tick=f(0);tick=this._tick.asReadonly();intervalId;handleVisibilityChange=()=>{if(document.hidden){this.stopInterval();return}this._tick.update(t=>t+1),this.startInterval()};constructor(){document.hidden||this.startInterval(),document.addEventListener("visibilitychange",this.handleVisibilityChange),this.destroyRef.onDestroy(()=>{this.stopInterval(),document.removeEventListener("visibilitychange",this.handleVisibilityChange)})}startInterval(){this.intervalId===void 0&&(this.intervalId=setInterval(()=>this._tick.update(t=>t+1),oo))}stopInterval(){this.intervalId!==void 0&&(clearInterval(this.intervalId),this.intervalId=void 0)}static \u0275fac=function(e){return new(e||o)};static \u0275prov=ee({token:o,factory:o.\u0275fac,providedIn:"root"})};var ro=o=>({date:o}),ao=(o,t)=>({names:o,count:t}),so=(o,t)=>t.id;function lo(o,t){if(o&1&&u(0,"img",3),o&2){let e=r(2);b("src",e.project().thumbnail,W)("alt",e.project().name)}}function co(o,t){o&1&&(a(0,"div",4),v(),a(1,"svg",17),u(2,"path",18),c()())}function mo(o,t){if(o&1&&(a(0,"span",11),p(1),c()),o&2){let e=r(2);s(),k(" ",e.project().role," ")}}function po(o,t){if(o&1&&u(0,"app-user-avatar",19),o&2){let e=t.$implicit;b("name",e.name)("userId",e.id)("showTitle",!1)}}function _o(o,t){if(o&1&&(a(0,"span",20),p(1),c()),o&2){let e=r(3);
1s(),k("+",e.overflowCount())}}function uo(o,t){if(o&1&&(a(0,"div",16),E(1,po,1,3,"app-user-avatar",19,so),h(3,_o,2,1,"span",20),c()),o&2){let e=r().$implicit,n=r();b("title",e("dashboard.card.collaborators",ge(2,ao,n.collaboratorNames(),n.overflowCount()))),s(),L(n.collaborators()),s(2),g(n.overflowCount()>0?3:-1)}}function ho(o,t){if(o&1){let e=w();a(0,"div",1),_("click",function(i){d(e);let l=r();return m(l.onClick(i))})("dblclick",function(){d(e);let i=r();return m(i.onDblClick())})("contextmenu",function(i){d(e);let l=r();return m(l.onContextMenu(i))}),a(1,"div",2),h(2,lo,1,2,"img",3)(3,co,3,0,"div",4),a(4,"button",5),_("click",function(i){d(e);let l=r();return m(l.onFavoriteClick(i))}),v(),a(5,"svg",6),u(6,"path",7),c()(),V(),a(7,"button",8),_("click",function(i){d(e);let l=r();return m(l.onMenuClick(i))}),v(),a(8,"svg",9),u(9,"path",10),c()(),h(10,mo,2,1,"span",11),c(),V(),a(11,"div",12)(12,"div",13)(13,"h3",14),p(14),c(),a(15,"p",15),X(16,"formatDateTime"),p(17),X(18,"formatDateElapsed"),c()(),h(19,uo,4,5,"div",16),c()()}if(o&2){let e=t.$implicit,n=t.currentLang,i=r();j(i.selected()?"ring-2 ring-brand bg-brand/10":""),s(2),g(i.project().thumbnail?2:3),s(2),j(i.isFavorite()?"text-warning opacity-100":"text-white opacity-0 group-hover:opacity-100 focus-visible:opacity-100"),b("title",i.isFavorite()?e("dashboard.favorites.remove"):e("dashboard.favorites.add")),s(),D("fill",i.isFavorite()?"currentColor":"none"),s(2),b("title",e("common.actions.options")),s(3),g(i.project().role!=="owner"?10:-1),s(4),C(i.project().name),s(),b("title",ie(16,13,i.project().updatedAt,n)),s(2),k(" ",e("dashboard.card.edited",N(20,ro,ze(18,16,i.project().updatedAt,n,i.timeTick.tick())))," "),s(2),g(i.collaborators().length>0?19:-1)}}var vt=class o{project=y.required();isFavorite=y(!1);selected=y(!1);open=T();select=T();menuClick=T();toggleFavorite=T();timeTick=M(Oe);collaborators=S(()=>this.project().collaborators??[]);overflowCount=S(()=>Math.max((this.project().collaboratorsCount??0)-this.collaborators().length,0));collaboratorNames=S(()=>this.collaborators().map(t=>t.name).join(", "));onClick(t){this.select.emit({project:this.project(),event:t})}onDblClick(){this.open.emit(this.project())}onMenuClick(t){t.stopPropagation(),this.menuClick.emit({project:this.project(),event:t})}onContextMenu(t){t.preventDefault(),t.stopPropagation(),this.menuClick.emit({project:this.project(),event:t})}onFavoriteClick(t){t.stopPropagation(),this.toggleFavorite.emit(this.project())}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-project-card"]],inputs:{project:[1,"project"],isFavorite:[1,"isFavorite"],selected:[1,"selected"]},outputs:{open:"open",select:"select",menuClick:"menuClick",toggleFavorite:"toggleFavorite"},decls:1,vars:0,consts:[["class","group cursor-pointer rounded-xl transition-colors",3,"class","click","dblclick","contextmenu",4,"transloco"],[1,"group","cursor-pointer","rounded-xl","transition-colors",3,"click","dblclick","contextmenu"],[1,"relative","aspect-[4/3]","rounded-xl","overflow-hidden","bg-white/5","ring-1","ring-white/10","group-hover:ring-brand","transition-[box-shadow]","m-0.5"],[1,"w-full","h-full","object-cover",3,"src","alt"],[1,"w-full","h-full","grid","place-items-center"],["type","button",1,"absolute","top-2","left-2","w-7","h-7","grid","place-items-center","rounded-full","bg-black/70","backdrop-blur-sm","transition-opacity",3,"click","title"],["viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.8",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","d","M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"],["type","button",1,"absolute","top-2","right-2","w-7","h-7","grid","place-items-center","rounded-full","bg-black/70","backdrop-blur-sm","text-white","opacity-0","group-hover:opacity-100","focus-visible:opacity-100","transition-opacity",3,"click","title"],["fill","currentColor","viewBox","0 0 20 20",1,"w-4","h-4"],["d","M6 10a2 2 0 11-4 0 2 2
10 014 0zM12 10a2 2 0 11-4 0 2 2 0 014 0zM16 12a2 2 0 100-4 2 2 0 000 4z"],[1,"dash-badge","absolute","bottom-2","left-2","px-2","py-0.5","text-[10px]","font-medium","rounded-full","bg-black/70","backdrop-blur-sm","text-white","capitalize"],[1,"mt-2.5","flex","items-start","gap-2"],[1,"min-w-0","flex-1","px-2","pb-2"],[1,"dash-project-name","text-xs","font-medium","text-ink","truncate","leading-tight"],[1,"dash-meta-date","mt-1","font-xxs","text-ink","truncate",3,"title"],[1,"shrink-0","flex","-space-x-2","pr-1",3,"title"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1",1,"w-12","h-12","text-white/15"],["stroke-linecap","round","stroke-linejoin","round","d","M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"],["size","xs",1,"ring-2","ring-shell-panel","rounded-full",3,"name","userId","showTitle"],[1,"w-5","h-5","rounded-full","bg-white/15","ring-2","ring-shell-panel","grid","place-items-center","text-[9px]","font-semibold","text-ink"]],template:function(e,n){e&1&&P(0,ho,20,22,"div",0)},dependencies:[Pe,R,Re,gt],encapsulation:2,changeDetection:0})};var be=class o{static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-skeleton-card"]],decls:5,vars:0,consts:[[1,"animate-pulse"],[1,"aspect-[4/3]","rounded-xl","bg-white/5","ring-1","ring-white/10"],[1,"mt-2.5","space-y-2"],[1,"h-3.5","bg-white/10","rounded","w-3/4"],[1,"h-3","bg-white/10","rounded","w-1/2"]],template:function(e,n){e&1&&(Ae(0,"div",0),Et(1,"div",1),Ae(2,"div",2),Et(3,"div",3)(4,"div",4),Ue()())},encapsulation:2,changeDetection:0})};var Cn=(o,t)=>t.id;function go(o,t){if(o&1&&(a(0,"div",1),v(),a(1,"svg",6),u(2,"path",7),c(),p(3),c()),o&2){let e=r(2);s(3),k(" ",e.error()," ")}}function vo(o,t){if(o&1&&(a(0,"h2",2),p(1),c()),o&2){let e=r(2);s(),C(e.sectionLabel())}}function xo(o,t){o&1&&u(0,"app-skeleton-card")}function Co(o,t){if(o&1&&(a(0,"div",3),E(1,xo,1,0,"app-skeleton-card",null,ye),c()),o&2){let e=r(2);s(),L(e.skeletonItems)}}function bo(o,t){if(o&1&&(a(0,"div")(1,"p",11),p(2),c(),a(3,"p",12),p(4),c()()),o&2){let e=r(2).$implicit;s(2),C(e("dashboard.projects.noneFound")),s(2),C(e("common.states.noResultsHint"))}}function fo(o,t){o&1&&u(0,"span",15)}function wo(o,t){o&1&&(v(),a(0,"svg",16),u(1,"path",17),c())}function yo(o,t){if(o&1){let e=w();a(0,"button",14),_("click",function(){d(e);let i=r(4);return m(i.createProject.emit())}),h(1,fo,1,0,"span",15)(2,wo,2,0,":svg:svg",16),p(3),c()}if(o&2){let e=r(3).$implicit,n=r();b("disabled",n.isCreating()),s(),g(n.isCreating()?1:2),s(2),k(" ",e("dashboard.ui.createAProject")," ")}}function ko(o,t){if(o&1&&(a(0,"div")(1,"p",11),p(2),c(),a(3,"p",12),p(4),c()(),h(5,yo,4,3,"button",13)),o&2){let e=r(3);s(2),C(e.emptyMessage()),s(2),C(e.emptySubMessage()),s(),g(e.showCreateAction()?5:-1)}}function To(o,t){o&1&&u(0,"span",15)}function So(o,t){o&1&&(v(),a(0,"svg",18),u(1,"path",19),c())}function Mo(o,t){if(o&1){let e=w();a(0,"div")(1,"p",11),p(2),c(),a(3,"p",12),p(4),c()(),a(5,"button",14),_("click",function(){d(e);let i=r(3);return m(i.createProject.emit())}),h(6,To,1,0,"span",15)(7,So,2,0,":svg:svg",18),p(8),c()}if(o&2){let e=r(2).$implicit,n=r();s(2),C(e("dashboard.projects.emptyTitle")),s(2),C(e("dashboard.projects.emptyBody")),s(),b("disabled",n.isCreating()),s(),g(n.isCreating()?6:7),s(2),k(" ",e("dashboard.ui.createProject")," ")}}function Do(o,t){if(o&1&&(a(0,"div",4)(1,"div",8),v(),a(2,"svg",9),u(3,"path",10),c()(),h(4,bo,5,2,"div")(5,ko,6,3)(6,Mo,9,5),c()),o&2){let e=r(2);s(4),g(e.searchQuery()?4:e.emptyMessage()?5:6)}}function Vo(o,t){if(o&1){let e=w();a(0,"app-project-card",22),_("open",function(i){d(e);let l=r(3);return m(l.openProject.emit(i))})("select",function(i){d(e);let l=r(3);return m(l.select.emit(i))})("menuClick",function(i){d(e);let l=r(3);return m(l.menuClick.emit(i))})("toggleFavorite",function(i){d(e);let l=r(3);return m(l.toggleFavorite.emit(i.id))}),c()}if(o&2){let e=t.$implicit,n=r(3);b("project",e)("isFavorite",n.favoriteIds().includes(e.id))("selected",n.selectedIds().has(e.id))}}function jo(o,t){if(o&1){let e=w();a(0,"div",20),_("click",function(i){d(e);let l=r(2);return m(l.onContainerClick(i))}),E(1,Vo,1,3,"app-project-card",21,Cn),c()}if(o&2){let e=r(2);s(),L(e.projects())}}function Po(o,t){if(o&1&&u(0,"img",27),o&2){let e=r().$implicit;b("src",e.thumbnail,W)("alt",e.name)}}function Io(o,t){o&1&&(v(),a(0,"svg",28),u(1,"path",37),c())}function Eo(o,t){if(o&1&&(a(0,"p",31),p(1),c()),o&2){let e=r().$implicit;s(),C(e.description)}}function Lo(o,t){if(o&1&&(a(0,"span",32),p(1),c()),o&2){let e=r().$implicit;s(),C(e.role)}}function Fo(o,t){if(o&1){let e=w();a(0,"div",25),_("click",function(i){let l=d(e).$implicit,x=r(3);return m(x.onRowClick(l,i))})("dblclick",function(){let i=d(e).$implicit,l=r(3);return m(l.openProject.emit(i))})("contextmenu",function(i){let l=d(e).$implicit,x=r(3);return m(x.onContextMenu(l,i))}),a(1,"div",26),h(2,Po,1,2,"img",27)(3,Io,2,0,":svg:svg",28),c(),a(4,"div",29)(5,"p",30),p(6),c(),h(7,Eo,2,1,"p",31),c(),h(8,Lo,2,1,"span",32),a(9,"span",33),p(10),X(11,"formatDateElapsed"),c(),a(12,"button",34),_("click",function(i){let l=d(e).$implicit;return r(3).menuClick.emit({project:l,event:i}),m(i.stopPropagation())}),v(),a(13,"svg",35),u(14,"path",36),c()()()}if(o&2){let e=t.$implicit,n=r(2),i=n.$implicit,l=n.currentLang,x=r();j(x.selectedIds().has(e.id)?"ring-2 ring-brand bg-brand/10":"ring-1 ring-transparent hover:ring-white/10"),s(2),g(e.thumbnail?2:3),s(4),C(e.name),s(),g(e.description?7:-1),s(),g(e.role!=="owner"?8:-1),s(2),C(ze(11,8,e.updatedAt,l,x.timeTick.tick())),s(2),b("title",i("common.actions.options"))}}function No(o,t){if(o&1){let e=w();a(0,"div",23),_("click",function(i){d(e);let l=r(2);return m(l.onContainerClick(i))}),E(1,Fo,15,12,"div",24,Cn),c()}if(o&2){let e=r(2);s(),L(e.projects())}}function Ro(o,t){if(o&1&&(G(0),h(1,go,4,1,"div",1),h(2,vo,2,1,"h2",2),h(3,Co,3,0,"div",3),h(4,Do,7,1,"div",4),h(5,jo,3,0,"div",3),h(6,No,3,0,"div",5),U()),o&2){let e=r();s(),g(e.error()?1:-1),s(),g(e.sectionLabel()&&(e.projects().length>0||e.isLoading())?2:-1),s(),g(e.isLoading()&&e.projects().length===0?3:-1),s(),g(!e.isLoading()&&e.projects().length===0?4:-1),s(),g(e.projects().length>0&&e.gridView()?5:-1),s(),g(e.projects().length>0&&!e.gridView()?6:-1)}}var xt=class o{projects=y([]);favoriteIds=y([]);isLoading=y(!1);gridView=y(!0);error=y(null);searchQuery=y("");isCreating=y(!1);emptyMessage=y(null);emptySubMessage=y(null);sectionLabel=y("");showCreateAction=y(!1);selectedIds=y(new Set);openProject=T();select=T();clearSelection=T();menuClick=T();toggleFavorite=T();createProject=T();skeletonItems=Array(10).fill(0);timeTick=M(Oe);onContextMenu(t,e){e.preventDefault(),e.stopPropagation(),this.menuClick.emit({project:t,event:e})}onRowClick(t,e){this.select.emit({project:t,event:e})}onContainerClick(t){t.target===t.currentTarget&&this.clearSelection.emit()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-project-grid"]],inputs:{projects:[1,"projects"],favoriteIds:[1,"favoriteIds"],isLoading:[1,"isLoading"],gridView:[1,"gridView"],error:[1,"error"],searchQuery:[1,"searchQuery"],isCreating:[1,"isCreating"],emptyMessage:[1,"emptyMessage"],emptySubMessage:[1,"emptySubMessage"],sectionLabel:[1,"sectionLabel"],showCreateAction:[1,"showCreateAction"],selectedIds:[1,"selectedIds"]},outputs:{openProject:"openProject",select:"select",clearSelection:"clearSelection",menuClick:"menuClick",toggleFavorite:"toggleFavorite",createProject:"createProject"},decls:1,vars:0,consts:[[4,"transloco"],[1,"mb-5","flex","items-center","gap-3","px-4","py-3","bg-danger/15","border","border-danger/40","rounded-xl","text-sm","text-danger"],[1,"mb-4","text-lg","font-semibold","text-ink"],[1,"grid","grid-cols-2","sm:grid-cols-3","lg:grid-cols-4","2xl:grid-cols-5","gap-x-4","gap-y-6"],[1,"flex","flex-col","items-center","justify-center","py-24","gap-4","text-center"],[1,"space-y-1.5"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.8",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","d","M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"],[1,"w-20","h-20","rounded-2xl","bg-white/5","ring-1","ring-white/10","grid","place-items-center"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.5",1,"w-10","h-10","text-white/20"],["stroke-linecap","round","stroke-linejoin","round","d","M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"],[1,"dash-empty-message","text-sm","font-semibold","text-ink"],[1,"text-xs","text-ink","mt-1"],["type","button",1,"mt-2","flex","items-center","gap-2","px-5","py-2.5","bg-gradient-primary","hover:brightness-110","active:brightness-95","text-ink","text-sm","font-medium","rounded-full","transition-[filter]","disabled:opacity-60","disabled:cursor-not-allowed",3,"disabled"],["type","button",1,"mt-2","flex","items-center","gap-2","px-5","py-2.5","bg-gradient-primary","hover:brightness-110","active:brightness-95","text-ink","text-sm","font-medium","rounded-full","transition-[filter]","disabled:opacity-60","disabled:cursor-not-allowed",3,"click","disabled"],[1,"w-4","h-4","border-2","border-white/40","border-t-white","rounded-full","animate-spin"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.8",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","d","M9 13h6m-3-3v6M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2h-6.6a2 2 0 01-1.6-.8l-.6-.8A2 2 0 008.6 3H5a2 2 0 00-2 2v14a2 2 0 002 2z"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2.5","d","M12 5v14m7-7H5"],[1,"grid","grid-cols-2","sm:grid-cols-3","lg:grid-cols-4","2xl:grid-cols-5","gap-x-4","gap-y-6",3,"click"],[3,"project","isFavorite","selected"],[3,"open","select","menuClick","toggleFavorite","project","isFavorite","selected"],[1,"space-y-1.5",3,"click"],[1,"group","flex","items-center","gap-4","px-3","py-2.5","rounded-xl","hover:bg-white/5","transition-colors","cursor-pointer",3,"class"],[1,"group","flex","items-center","gap-4","px-3","py-2.5","rounded-xl","hover:bg-white/5","transition-colors","cursor-pointer",3,"click","dblclick","contextmenu"],[1,"w-14","h-10","
1shrink-0","rounded-lg","overflow-hidden","bg-white/5","ring-1","ring-white/10","grid","place-items-center"],[1,"w-full","h-full","object-cover",3,"src","alt"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.5",1,"w-5","h-5","text-white/20"],[1,"flex-1","min-w-0"],[1,"dash-project-name","text-sm","font-medium","text-ink","truncate"],[1,"text-xs","text-ink","truncate"],[1,"dash-badge","px-2","py-0.5","text-[10px]","font-medium","rounded-full","bg-white/10","text-ink","capitalize"],[1,"dash-meta-date","text-xs","text-ink","w-36","text-right","whitespace-nowrap"],["type","button",1,"opacity-0","group-hover:opacity-100","focus-visible:opacity-100","w-8","h-8","grid","place-items-center","rounded-full","text-ink","hover:bg-white/10","transition-all",3,"click","title"],["fill","currentColor","viewBox","0 0 20 20",1,"w-4","h-4"],["d","M6 10a2 2 0 11-4 0 2 2 0 014 0zM12 10a2 2 0 11-4 0 2 2 0 014 0zM16 12a2 2 0 100-4 2 2 0 000 4z"],["stroke-linecap","round","stroke-linejoin","round","d","M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"]],template:function(e,n){e&1&&P(0,Ro,7,6,"ng-container",0)},dependencies:[vt,be,R,Re],encapsulation:2,changeDetection:0})};var Oo=()=>({days:30}),Ao=()=>({originX:"end",originY:"bottom",overlayX:"end",overlayY:"top",offsetY:4}),Bo=o=>({originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",offsetY:o}),Ho=(o,t)=>[o,t],bn=(o,t)=>t.id;function $o(o,t){if(o&1&&(a(0,"p",2),p(1),c()),o&2){let e=r().$implicit;s(),k(" ",e("dashboard.ui.trashedResources",$(1,Oo))," before they're automatically deleted from Trash. ")}}function Go(o,t){if(o&1&&(a(0,"div",3),v(),a(1,"svg",7),u(2,"path",8),c(),p(3),c()),o&2){let e=r(2);s(3),k(" ",e.error()," ")}}function Uo(o,t){o&1&&(a(0,"div",9),u(1,"div",10),a(2,"div",11),u(3,"div",12)(4,"div",13),c()())}function zo(o,t){if(o&1&&(a(0,"div",4),E(1,Uo,5,0,"div",9,Ge),c()),o&2){let e=r(2);s(),L(e.skeletonSlots)}}function Wo(o,t){if(o&1&&(a(0,"div")(1,"p",20),p(2),c(),a(3,"p",21),p(4),c()()),o&2){let e=r(2).$implicit;s(2),C(e("dashboard.resources.trashedEmpty")),s(2),C(e("dashboard.resources.trashedEmptyBody"))}}function Qo(o,t){if(o&1&&(a(0,"div")(1,"p",20),p(2),c(),a(3,"p",21),p(4),c()()),o&2){let e=r(2).$implicit;s(2),C(e("dashboard.resources.noneFound")),s(2),C(e("common.states.noResultsHint"))}}function qo(o,t){if(o&1&&(a(0,"div")(1,"p",20),p(2),c(),a(3,"p",21),p(4),c()()),o&2){let e=r(3);s(2),C(e.emptyMessage()),s(2),C(e.emptySubMessage())}}function Yo(o,t){if(o&1&&(a(0,"div",19)(1,"p",20),p(2),c(),a(3,"p",22),p(4),c()()),o&2){let e=r(2).$implicit;s(2),C(e("dashboard.resources.emptyDefault")),s(2),C(e("dashboard.resources.emptyDefaultBody"))}}function Ko(o,t){if(o&1&&(a(0,"div",5)(1,"div",14),v(),a(2,"svg",15),u(3,"rect",16)(4,"circle",17)(5,"path",18),c()(),h(6,Wo,5,2,"div")(7,Qo,5,2,"div")(8,qo,5,2,"div")(9,Yo,5,2,"div",19),c()),o&2){let e=r(2);s(6),g(e.mode()==="trash"?6:e.searchQuery()?7:e.emptyMessage()?8:9)}}function Xo(o,t){if(o&1){let e=w();a(0,"button",29),_("click",function(){d(e);let i=r().$implicit,l=r(3);return m(l.restore.emit(i))}),v(),a(1,"svg",30),u(2,"path",31),c()()}if(o&2){let e=r().$implicit,n=r(2).$implicit,i=r();b("disabled",i.isBusy())("title",n("common.actions.restore")),D("aria-label","Restore "+e.name)}}function Zo(o,t){if(o&1){let e=w();a(0,"button",32),_("click",function(){d(e);let i=r().$implicit,l=r(3);return m(l.toggleFavorite.emit(i))}),v(),a(1,"svg",33),u(2,"path",34),c()(),V(),a(3,"button",35),_("click",function(){d(e);let i=r().$implicit,l=r(3);return m(l.remove.emit(i))}),v(),a(4,"svg",36),u(5,"path",37),c()()}if(o&2){let e=r().$implicit,n=r(2).$implicit,i=r();j(e.isFavorite?"text-warning":"text-ink-off hover:text-ink hover:bg-white/10"),b("disabled",i.isTogglingFavorite())("title",e.isFavorite?n("dashboard.favorites.remove"):n("dashboard.favorites.add")),D("aria-pressed",e.isFavorite),s(),D("fill",e.isFavorite?"currentColor":"none"),s(2),b("title",n("dashboard.resources.moveToTrash")),D("aria-label","Remove "+e.name)}}function Jo(o,t){if(o&1&&(a(0,"div",23)(1,"div",24),u(2,"img",25),c(),a(3,"p",26),p(4),c(),a(5,"span",27),p(6),c(),h(7,Xo,3,3,"button",28)(8,Zo,6,8),c()),o&2){let e=t.$implicit,n=r(3);s(2),b("src",e.url,W)("alt",e.name),s(),b("title",e.name),s(),C(e.name),s(2),de("",n.kindLabel(e)," \xB7 ",n.formatSize(e.byteSize)),s(),g(n.mode()==="trash"?7:8)}}function er(o,t){if(o&1&&(a(0,"div",6),E(1,Jo,9,7,"div",23,bn),c()),o&2){let e=r(2);s(),L(e.assets())}}function tr(o,t){if(o&1){let e=w();a(0,"button",50),_("click",function(){d(e);let i=r().$implicit,l=r(3);return m(l.toggleFavorite.emit(i))}),v(),a(1,"svg",33),u(2,"path",34),c()()}if(o&2){let e=r().$implicit,n=r(2).$implicit,i=r();j(e.isFavorite?"text-warning opacity-100":"text-white opacity-0 group-hover:opacity-100 focus-visible:opacity-100"),b("disabled",i.isTogglingFavorite())("title",e.isFavorite?n("dashboard.favorites.remove"):n("dashboard.favorites.add")),D("aria-pressed",e.isFavorite)("aria-label",(e.isFavorite?"Remove ":"Add ")+e.name+" to favorites"),s(),D("fill",e.isFavorite?"currentColor":"none")}}function nr(o,t){if(o&1&&(a(0,"span",51),p(1),c()),o&2){let e=r().$implicit,n=r(3);j(n.isExpiringSoon(e)?"bg-danger/25 text-danger":"bg-black/70 text-ink-off"),s(),C(t)}}function ir(o,t){if(o&1){let e=w();a(0,"button",52),_("click",function(){d(e);let i=r().$implicit,l=r(3);return m(l.restore.emit(i))}),v(),a(1,"svg",30),u(2,"path",31),c()()}if(o&2){let e=r().$implicit,n=r(2).$implicit,i=r();b("disabled",i.isBusy())("title",n("common.actions.restore")),D("aria-label","Restore "+e.name)}
1}function or(o,t){if(o&1){let e=w();a(0,"div",57)(1,"button",58),_("click",function(){d(e);let i=r(2).$implicit,l=r(3);return l.copyLink.emit(i),m(l.openMenuId.set(null))}),v(),a(2,"svg",36),u(3,"path",59),c(),p(4),c(),V(),a(5,"button",58),_("click",function(){d(e);let i=r(2).$implicit,l=r(3);return l.rename.emit(i),m(l.openMenuId.set(null))}),v(),a(6,"svg",36),u(7,"path",60),c(),p(8),c(),V(),u(9,"div",61),a(10,"button",62),_("click",function(){d(e);let i=r(2).$implicit,l=r(3);return l.remove.emit(i),m(l.openMenuId.set(null))}),v(),a(11,"svg",36),u(12,"path",37),c(),p(13),c()()}if(o&2){let e=r(4).$implicit;s(4),k(" ",e("dashboard.ui.copyLink")," "),s(4),k(" ",e("dashboard.ui.rename")," "),s(5),k(" ",e("dashboard.ui.moveToTrash")," ")}}function rr(o,t){if(o&1){let e=w();a(0,"button",53,0),_("click",function(i){d(e);let l=r().$implicit,x=r(3);return x.openMenuId.set(x.openMenuId()===l.id?null:l.id),m(i.stopPropagation())}),v(),a(2,"svg",54),u(3,"path",55),c()(),P(4,or,14,3,"ng-template",56),_("backdropClick",function(){d(e);let i=r(4);return m(i.openMenuId.set(null))})("detach",function(){d(e);let i=r(4);return m(i.openMenuId.set(null))})}if(o&2){let e=q(1),n=r().$implicit,i=r(3);H("opacity-100",i.openMenuId()===n.id),D("aria-expanded",i.openMenuId()===n.id)("aria-label","Options for "+n.name),s(4),b("cdkConnectedOverlayOrigin",e)("cdkConnectedOverlayOpen",i.openMenuId()===n.id)("cdkConnectedOverlayHasBackdrop",!0)("cdkConnectedOverlayPositions",ge(12,Ho,$(9,Ao),N(10,Bo,-4)))("cdkConnectedOverlayPush",!0)}}function ar(o,t){if(o&1&&(a(0,"div",38)(1,"div",40),u(2,"img",25),h(3,tr,3,7,"button",41),h(4,nr,2,3,"span",42),c(),a(5,"div",43)(6,"div",44)(7,"p",45),p(8),c(),a(9,"p",46),v(),a(10,"svg",47),u(11,"rect",16)(12,"circle",17)(13,"path",18),c(),V(),a(14,"span",48),p(15),c()()(),h(16,ir,3,3,"button",49)(17,rr,5,15),c()()),o&2){let e,n=t.$implicit,i=r(3);s(2),b("src",n.url,W)("alt",n.name),s(),g(i.mode()==="library"?3:-1),s(),g((e=i.mode()==="trash"&&i.expiryLabel(n))?4:-1,e),s(3),b("title",n.name),s(),C(n.name),s(7),de("",i.kindLabel(n)," \xB7 ",i.formatSize(n.byteSize)),s(),g(i.mode()==="trash"?16:17)}}function sr(o,t){if(o&1){let e=w();a(0,"div",39)(1,"button",63),_("click",function(){d(e);let i=r(3);return m(i.loadMore.emit())}),p(2),c()()}if(o&2){let e=r(2).$implicit,n=r();s(),b("disabled",n.isLoading()),s(),k(" ",n.isLoading()?e("dashboard.ui.loading"):e("dashboard.ui.showMore")," ")}}function lr(o,t){if(o&1&&(a(0,"div",4),E(1,ar,18,9,"div",38,bn),c(),h(3,sr,3,2,"div",39)),o&2){let e=r(2);s(),L(e.assets()),s(2),g(e.hasMore()?3:-1)}}function cr(o,t){if(o&1&&(G(0),h(1,$o,2,2,"p",2),h(2,Go,4,1,"div",3),h(3,zo,3,0,"div",4),h(4,Ko,10,1,"div",5),h(5,er,3,0,"div",6),h(6,lr,4,1),U()),o&2){let e=r();s(),g(e.mode()==="trash"?1:-1),s(),g(e.error()?2:-1),s(),g(e.isLoading()&&e.assets().length===0?3:-1),s(),g(!e.isLoading()&&e.assets().length===0?4:-1),s(),g(e.assets().length>0&&!e.gridView()?5:-1),s(),g(e.assets().length>0&&e.gridView()?6:-1)}}var Ct=class o{transloco=M(Y);assets=y([]);isLoading=y(!1);error=y(null);searchQuery=y("");hasMore=y(!1);mode=y("library");gridView=y(!0);isBusy=y(!1);isTogglingFavorite=y(!1);emptyMessage=y(null);emptySubMessage=y(null);copyLink=T();rename=T();remove=T();restore=T();toggleFavorite=T();loadMore=T();openMenuId=f(null);skeletonSlots=[1,2,3,4,5,6,7,8,9,10];kindLabel(t){return t.mimeType?.startsWith("image/")?"Image":(t.mimeType?.split("/")[1]??"File").toUpperCase()}expiryLabel(t){let e=Ft(t);return e===null?"":e<=0?this.transloco.translate("dashboard.ui.expiresToday"):`Expires in ${e}d`}isExpiringSoon(t){let e=Ft(t);return e!==null&&e<=3}formatSize(t){if(!t)return"0 KB";if(t<1024)return`${t} B`;let e=t/1024;if(e<1024)return`${Math.round(e)} KB`;let n=e/1024;return`${n<10?n.toFixed(1):Math.round(n)} MB`}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-resource-grid"]],inputs:{assets:[1,"assets"],isLoading:[1,"isLoading"],error:[1,"error"],searchQuery:[1,"searchQuery"],hasMore:[1,"hasMore"],mode:[1,"mode"],gridView:[1,"gridView"],isBusy:[1,"isBusy"],isTogglingFavorite:[1,"isTogglingFavorite"],emptyMessage:[1,"emptyMessage"],emptySubMessage:[1,"emptySubMessage"]},outputs:{copyLink:"copyLink",rename:"rename",remove:"remove",restore:"restore",toggleFavorite:"toggleFavorite",loadMore:"loadMore"},decls:1,vars:0,consts:[["menuTrigger","cdkOverlayOrigin"],[4,"transloco"],[1,"mb-5","text-sm","text-ink"],[1,"mb-5","flex","items-center","gap-3","px-4","py-3","bg-danger/15","border","border-danger/40","rounded-xl","text-sm","text-danger"],[1,"grid","grid-cols-2","sm:grid-cols-3","lg:grid-cols-4","2xl:grid-cols-5","gap-x-4","gap-y-6"],[1,"flex","flex-col","items-center","justify-center","py-24","gap-5","text-center"],[1,"space-y-1.5"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.8",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","d","M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"],[1,"animate-pulse"],[1,"aspect-[4/3]","rounded-xl","bg-white/5","ring-1","ring-white/10"],[1,"mt-2.5","space-y-2"],[1,"h-3.5","bg-white/10","rounded","w-3/4"],[1,"h-3","bg-white/10","rounded","w-1/2"],[1,"w-24","h-28","rounded-xl","bg-white/5","ring-1","ring-white/10","grid","place-items-center"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.4",1,"w-10","h-10","text-white/20"],["x","3","y","4","width","18","height","16","rx","2"],["cx","8.5","cy","9.5","r","1.5"],["stroke-linecap","round","stroke-linejoin","round","d","M4 17l4.5-4.5a2 2 0 012.8 0L15 16m0 0l2-2a2 2 0 012.8 0L21 15.2"],[1,"max-w-md"],[1,"dash-empty-message","text-sm","font-semibold","text-ink"],[1,"text-xs","text-ink","mt-1"],[1,"text-sm","text-ink","mt-1"],[1,"group","flex","items-center","gap-4","px-3","py-2.5","rounded-xl","ring-1","ring-transparent","hover:bg-white/5","hover:ring-white/10","transition-colors"],[1,"w-14","h-10","
1shrink-0","rounded-lg","overflow-hidden","bg-white/5","ring-1","ring-white/10"],["loading","lazy","decoding","async",1,"w-full","h-full","object-contain",3,"src","alt"],[1,"flex-1","min-w-0","text-sm","font-medium","text-ink","truncate",3,"title"],[1,"text-xs","text-ink","w-32","text-right","shrink-0"],["type","button",1,"shrink-0","w-8","h-8","grid","place-items-center","rounded-full","text-ink","hover:bg-white/10","transition-colors","disabled:opacity-50",3,"disabled","title"],["type","button",1,"shrink-0","w-8","h-8","grid","place-items-center","rounded-full","text-ink","hover:bg-white/10","transition-colors","disabled:opacity-50",3,"click","disabled","title"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.8",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","d","M4 4v6h6M4.5 13a8 8 0 108-9 8 8 0 00-7.2 4.5"],["type","button",1,"shrink-0","w-8","h-8","grid","place-items-center","rounded-full","transition-colors","disabled:opacity-50",3,"click","disabled","title"],["viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.8",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","d","M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"],["type","button",1,"shrink-0","w-8","h-8","grid","place-items-center","rounded-full","text-ink","hover:bg-white/10","opacity-0","group-hover:opacity-100","focus-visible:opacity-100","transition-all",3,"click","title"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"],[1,"group"],[1,"mt-8","flex","justify-center"],[1,"relative","aspect-[4/3]","rounded-xl","overflow-hidden","bg-white/5","ring-1","ring-white/10","group-hover:ring-brand","transition-[box-shadow]"],["type","button",1,"absolute","top-2","left-2","w-7","h-7","grid","place-items-center","rounded-full","bg-black/70","backdrop-blur-sm","transition-opacity","disabled:opacity-50",3,"class","disabled","title"],[1,"absolute","bottom-2","left-2","px-2","py-0.5","text-[10px]","font-medium","rounded-full","backdrop-blur-sm",3,"class"],[1,"mt-2.5","flex","items-start","gap-2"],[1,"min-w-0","flex-1"],[1,"text-sm","font-medium","text-ink","truncate",3,"title"],[1,"mt-1","flex","items-center","gap-1.5","text-xs","text-ink"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6",1,"w-3.5","h-3.5","shrink-0"],[1,"truncate"],["type","button",1,"shrink-0","w-7","h-7","grid","place-items-center","rounded-full","text-ink","hover:bg-white/10","transition-colors","disabled:opacity-50",3,"disabled","title"],["type","button",1,"absolute","top-2","left-2","w-7","h-7","grid","place-items-center","rounded-full","bg-black/70","backdrop-blur-sm","transition-opacity","disabled:opacity-50",3,"click","disabled","title"],[1,"absolute","bottom-2","left-2","px-2","py-0.5","text-[10px]","font-medium","rounded-full","backdrop-blur-sm"],["type","button",1,"shrink-0","w-7","h-7","grid","place-items-center","rounded-full","text-ink","hover:bg-white/10","transition-colors","disabled:opacity-50",3,"click","disabled","title"],["cdkOverlayOrigin","","type","button","aria-haspopup","menu",1,"shrink-0","w-7","h-7","grid","place-items-center","rounded-full","text-ink","hover:bg-white/10","opacity-0","group-hover:opacity-100","focus-visible:opacity-100","transition-all",3,"click"],["fill","currentColor","viewBox","0 0 20 20",1,"w-4","h-4"],["d","M6 10a2 2 0 11-4 0 2 2 0 014 0zM12 10a2 2 0 11-4 0 2 2 0 014 0zM16 12a2 2 0 100-4 2 2 0 000 4z"],["cdkConnectedOverlay","","cdkConnectedOverlayPanelClass","dashboard-type","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","detach","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayPositions","cdkConnectedOverlayPush"],["role","menu",1,"w-48","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","py-1","overflow-hidden"],["type","button","role","menuitem",1,"w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-white/5","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M13.828 10.172a4 4 0 010 5.656l-3 3a4 4 0 01-5.656-5.656l1.5-1.5m4.5-4.5l1.5-1.5a4 4 0 015.656 5.656l-3 3a4 4 0 01-5.656 0"],["stroke-linecap","round","stroke-linejoin","round","d","M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"],[1,"my-1","border-t","border-divider"],["type","button","role","menuitem",1,"w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-danger","hover:bg-danger/10","transition-colors",3,"click"],["type","button",1,"px-5","py-2","text-sm","font-medium","text-ink","rounded-full","border","border-divider","hover:bg-white/5","transition-colors","disabled:opacity-50",3,"click","disabled"]],template:function(e,n){e&1&&P(0,cr,7,6,"ng-container",1)},dependencies:[me,ae,re,R],encapsulation:2,changeDetection:0})};var dr=["menuEl"];function mr(o,t){if(o&1){let e=w();a(0,"div",3,0),_("keydown.escape",function(){d(e);let i=r(2);return m(i.close.emit())})("keydown.arrowDown",function(){d(e);let i=r(2);return m(i.focusNext(1))})("keydown.arrowUp",function(){d(e);let i=r(2);return m(i.focusNext(-1))}),a(2,"button",4),_("click",function(){let i=d(e),l=r(2);return l.restore.emit(i.item),m(l.close.emit())}),v(),a(3,"svg",5),u(4,"path",6),c(),p(5),c(),V(),u(6,"div",7),a(7,"button",8),_("click",function(){let i=d(e),l=r(2);return l.permanentDelete.emit(i.item),m(l.close.emit())}),v(),a(8,"svg",5),u(9,"path",9),c(),p(10),c()()}if(o&2){let e=t,n=r().$implicit,i=r();Z("top",e.y,"px")("left",e.x,"px"),D("aria-label",n("dashboard.projects.actions")),s(2),b("disabled",i.isBusy()),s(3),k(" ",n("common.actions.restore")," "),s(2),b("disabled",i.isBusy()),s(3),k(" ",n("dashboard.trash.deleteForever")," ")}}function pr(o,t){if(o&1&&(G(0),h(1,mr,11,9,"div",2),U()),o&2){let e,n=r();s(),g((e=n.position())?1:-1,e)}}var bt=class o{position=y(null);isBusy=y(!1);restore=T();permanentDelete=T();close=T();menuEl=oe("menuEl");keydownHandler=t=>{t.key==="Escape"&&this.close.emit()};clickOutsideHandler=t=>{let e=this.menuEl()?.nativeElement;e&&!e.contains(t.target)&&this.close.emit()};attachTimer;ngOnInit(){document.addEventListener("keydown",this.keydownHandler),this.attachTimer=setTimeout(()=>{document.addEventListener("click",this.clickOutsideHandler),this.menuEl()?.nativeElement?.querySelector(".menu-item")?.focus()},10)}ngOnDestroy(){clearTimeout(this.attachTimer),document.removeEventListener("keydown",this.keydownHandler),document.removeEventListener("click",this.clickOutsideHandler)}focusNext(t){let e=this.menuEl()?.nativeElement;if(!e)return;let n=Array.from(e.querySelectorAll(".menu-item")),i=document.activeElement,x=(n.indexOf(i)+t+n.length)%n.length;n[x]?.focus()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-trash-context-menu"]],viewQuery:function(e,n){e&1&&te(n.menuEl,dr,5),e&2&&ne()},inputs:{position:[1,"position"],isBusy:[1,"isBusy"]},outputs:{restore:"restore",permanentDelete:"permanentDelete",close:"close"},features:[he([ve("dashboard")])],decls:1,vars:0,consts:[["menuEl",""],[4,"transloco"],["role","menu",1,"fixed","z-50","w-
156","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","py-1.5","overflow-hidden",3,"top","left"],["role","menu",1,"fixed","z-50","w-56","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","py-1.5","overflow-hidden",3,"keydown.escape","keydown.arrowDown","keydown.arrowUp"],["role","menuitem",1,"menu-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-white/5","transition-colors","disabled:opacity-50",3,"click","disabled"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.8",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","d","M4 4v6h6M20 20v-6h-6M20 9A8 8 0 006.34 5.34L4 8m16 8l-2.34 2.66A8 8 0 014 15"],[1,"my-1","border-t","border-divider"],["role","menuitem",1,"menu-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-danger/10","hover:text-danger","transition-colors","disabled:opacity-50",3,"click","disabled"],["stroke-linecap","round","stroke-linejoin","round","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"]],template:function(e,n){e&1&&P(0,pr,2,1,"ng-container",1)},dependencies:[R],encapsulation:2,changeDetection:0})};var fn=()=>({days:30}),wn=o=>({days:o}),yn=o=>({date:o}),kn=(o,t)=>t.id;function _r(o,t){o&1&&u(0,"app-skeleton-card")}function ur(o,t){if(o&1&&(a(0,"div",2),E(1,_r,1,0,"app-skeleton-card",null,ye),c()),o&2){let e=r(2);s(),L(e.skeletonItems)}}function hr(o,t){if(o&1&&(a(0,"div",3)(1,"div",7),v(),a(2,"svg",8),u(3,"path",9),c()(),V(),a(4,"p",10),p(5),c(),a(6,"p",11),p(7),c()()),o&2){let e=r().$implicit;s(5),C(e("dashboard.trash.empty")),s(2),C(e("dashboard.trash.emptyBody",$(2,fn)))}}function gr(o,t){if(o&1&&u(0,"img",15),o&2){let e=r().$implicit;b("src",e.thumbnail,W)("alt",e.name)}}function vr(o,t){o&1&&(a(0,"div",16),v(),a(1,"svg",25),u(2,"path",26),c()())}function xr(o,t){if(o&1){let e=w();a(0,"div",13),_("contextmenu",function(i){let l=d(e).$implicit,x=r(3);return m(x.onContextMenu(l,i))}),a(1,"div",14),h(2,gr,1,2,"img",15)(3,vr,3,0,"div",16),a(4,"button",17),_("click",function(i){let l=d(e).$implicit,x=r(3);return m(x.onContextMenu(l,i))}),v(),a(5,"svg",18),u(6,"path",19),c()(),V(),a(7,"div",20)(8,"span",21),p(9),c()()(),a(10,"div",22)(11,"h3",23),p(12),c(),a(13,"p",24),p(14),X(15,"formatDate"),c()()()}if(o&2){let e=t.$implicit,n=r(2),i=n.$implicit,l=n.currentLang;s(2),g(e.thumbnail?2:3),s(2),b("title",i("common.actions.options")),s(4),j(e.daysUntilPurge<=3?"bg-danger/25 text-danger":"bg-black/70 backdrop-blur-sm text-ink-off"),s(),k(" ",e.daysUntilPurge===0?i("dashboard.ui.deletesToday"):i("dashboard.ui.deletesIn",N(10,wn,e.daysUntilPurge))," "),s(3),C(e.name),s(2),C(i("dashboard.trash.deletedOn",N(12,yn,ie(15,7,e.deletedAt,l))))}}function Cr(o,t){if(o&1&&(a(0,"div",2),E(1,xr,16,14,"div",12,kn),c()),o&2){let e=r(2);s(),L(e.items())}}function br(o,t){if(o&1&&u(0,"img",15),o&2){let e=r().$implicit;b("src",e.thumbnail,W)("alt",e.name)}}function fr(o,t){o&1&&(v(),a(0,"svg",30),u(1,"path",36),c())}function wr(o,t){if(o&1){let e=w();a(0,"div",28),_("contextmenu",function(i){let l=d(e).$implicit,x=r(3);return m(x.onContextMenu(l,i))}),a(1,"div",29),h(2,br,1,2,"img",15)(3,fr,2,0,":svg:svg",30),c(),a(4,"div",31)(5,"p",32),p(6),c(),a(7,"p",33),p(8),X(9,"formatDate"),c()(),a(10,"span",34),p(11),c(),a(12,"button",35),_("click",function(i){let l=d(e).$implicit,x=r(3);return m(x.onContextMenu(l,i))}),v(),a(13,"svg",18),u(14,"path",19),c()()()}if(o&2){let e=t.$implicit,n=r(2),i=n.$implicit,l=n.currentLang;s(2),g(e.thumbnail?2:3),s(4),C(e.name),s(2),C(i("dashboard.trash.deletedOn",N(10,yn,ie(9,7,e.deletedAt,l)))),s(2),j(e.daysUntilPurge<=3?"bg-danger/25 text-danger":"bg-white/10 text-ink-off"),s(),k(" ",e.daysUntilPurge===0?i("dashboard.ui.deletesToday"):i("dashboard.ui.deletesIn",N(12,wn,e.daysUntilPurge))," "),s(),b("title",i("common.actions.options"))}}function yr(o,t){if(o&1&&(a(0,"div",4),E(1,wr,15,14,"div",27,kn),c()),o&2){let e=r(2);s(),L(e.items())}}function kr(o,t){if(o&1){let e=w();a(0,"app-trash-context-menu",37),_("restore",function(i){d(e);let l=r(2);return l.restore.emit(i),m(l.contextMenu.set(null))})("permanentDelete",function(i){d(e);let l=r(2);return l.pendingDelete.set(i),l.showPermDeleteConfirm.set(!0),m(l.contextMenu.set(null))})("close",function(){d(e);let i=r(2);return m(i.contextMenu.set(null))}),c()}if(o&2){let e=r(2);b("position",e.contextMenu())("isBusy",e.isBusy())}}function Tr(o,t){if(o&1){let e=w();a(0,"app-confirm-dialog",38),_("confirm",function(){d(e);let i=r(2);return i.permanentDelete.emit(i.pendingDelete()),m(i.showPermDeleteConfirm.set(!1))})("cancel",function(){d(e);let i=r(2);return m(i.showPermDeleteConfirm.set(!1))}),c()}if(o&2){let e=r(2);b("config",e.permDeleteConfig())("loading",e.isBusy())}}function Sr(o,t){if(o&1&&(G(0),a(1,"p",1),p(2),c(),h(3,ur,3,0,"div",2),h(4,hr,8,3,"div",3),h(5,Cr,3,0,"div",2),h(6,yr,3,0,"div",4),h(7,kr,1,2,"app-trash-context-menu",5),h(8,Tr,1,2,"app-confirm-dialog",6),U()),o&2){let e=t.$implicit,n=r();s(2),k(" ",e("dashboard.ui.trashedProjects",$(7,fn))," before they're automatically deleted from Trash. "),s(),g(n.isLoading()?3:-1),s(),g(!n.isLoading()&&n.items().length===0?4:-1),s(),g(!n.isLoading()&&n.items().length>0&&n.gridView()?5:-1),s(),g(!n.isLoading()&&n.items().length>0&&!n.gridView()?6:-1),s(),g(n.contextMenu()?7:-1),s(),g(n.showPermDeleteConfirm()&&n.pendingDelete()?8:-1)}}var Mr=224,Dr=110,ft=8,wt=class o{transloco=M(Y);items=y([]);isLoading=y(!1);isBusy=y(!1);gridView=y(!0);restore=T();permanentDelete=T();contextMenu=f(null);showPermDeleteConfirm=f(!1);pendingDelete=f(null);skeletonItems=Array(10).fill(0);onContextMenu(t,e){e.preventDefault(),e.stopPropagation();let n=e.type==="contextmenu"?void 0:e.target.closest("button")?.getBoundingClientRect(),i=n?n.left:e.clientX,l=n?n.bottom+4:e.clientY;this.contextMenu.set({item:t,x:Math.max(ft,Math.min(i,window.innerWidth-Mr-ft)),y:Math.max(ft,Math.min(l,window.innerHeight-Dr-ft))})}permDeleteConfig(){let t=this.pendingDelete();return{title:this.transloco.translate("dashboard.ui.deleteForever"),subtitle:this.transloco.translate("dashboard.confirm.cannotBeUndone"),message:this.transloco.translate("dashboard.confirm.permDeleteBody",{name:t?.name??""}),confirmLabel:this.transloco.translate("dashboard.confirm.deleteForever"),variant:"danger",icon:"trash"}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-trash-view"]],inputs:{items:[1,"items"],isLoading:[1,"isLoading"],isBusy:[1,"isBusy"],gridView:[1,"gridView"]},outputs:{restore:"restore",permanentDelete:"permanentDelete"},decls:1,vars:0,consts:[[4,"transloco"],[1,"mb-5","text-sm","text-ink"],[1,"grid","grid-cols-2","sm:grid-cols-3","lg:grid-cols-4","2xl:grid-cols-5","gap-x-4","gap-y-6"],[1,"flex","flex-col","items-center","justify-center","py-24","gap-3","text-center"],[1,"space-y-1.5"],[3,"position","isBusy"],["dialogId","perm-delete",3,"config","loading"],[1,"w-20","h-20","rounded-2xl","bg-white/5","ring-1","ring-white/10","flex","items-center","justify-center"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-10","h-10","text-white/20"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","1.5","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"],[1,"dash-empty-message","text-sm","font-semibold","text-ink"],[1,"text-xs","text-ink"],[1,"group"],[1,"group",3,"contextmenu"],[1,"relative","aspect-[4/3]","rounded-xl","overflow-hidden","bg-white/5","ring-1","ring-white/10","group-hover:ring-white/25","transition-[box-shadow]"],[1,"w-full","h-full","object-cover","opacity-50",3,"src","alt"],[1,"w-full","h-full","grid","place-items-center"],["type","button",1,"absolute","top-2","right-2","w-7","h-7","grid","place-items-center","rounded-full","bg-black/70","backdrop-blur-sm","text-white","opacity-0","group-hover:opacity-100","focus-visible:opacity-100","transition-opacity",3,"click","title"],["fill","currentColor","viewBox","0 0 20 20",1,"w-4","h-4"],["d","M6 10a2 2 0 11-4 0 2 2
10 014 0zM12 10a2 2 0 11-4 0 2 2 0 014 0zM16 12a2 2 0 100-4 2 2 0 000 4z"],[1,"absolute","bottom-2","left-2"],[1,"dash-badge","px-2","py-0.5","text-xs","font-medium","rounded-full"],[1,"mt-2.5","min-w-0"],[1,"dash-project-name","text-sm","font-medium","text-ink-off","truncate","leading-tight"],[1,"dash-meta-date","mt-1","text-xs","text-ink/70","truncate"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1",1,"w-12","h-12","text-white/15"],["stroke-linecap","round","stroke-linejoin","round","d","M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"],[1,"group","flex","items-center","gap-4","px-3","py-2.5","rounded-xl","ring-1","ring-transparent","hover:bg-white/5","hover:ring-white/10","transition-colors"],[1,"group","flex","items-center","gap-4","px-3","py-2.5","rounded-xl","ring-1","ring-transparent","hover:bg-white/5","hover:ring-white/10","transition-colors",3,"contextmenu"],[1,"w-14","h-10","shrink-0","rounded-lg","overflow-hidden","bg-white/5","ring-1","ring-white/10","grid","place-items-center"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.5",1,"w-5","h-5","text-white/20"],[1,"flex-1","min-w-0"],[1,"dash-project-name","text-sm","font-medium","text-ink","truncate"],[1,"dash-meta-date","text-xs","text-ink/70","truncate"],[1,"dash-badge","shrink-0","px-2","py-0.5","text-xs","font-medium","rounded-full"],["type","button",1,"opacity-0","group-hover:opacity-100","focus-visible:opacity-100","w-8","h-8","grid","place-items-center","rounded-full","text-ink","hover:bg-white/10","transition-all",3,"click","title"],["stroke-linecap","round","stroke-linejoin","round","d","M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"],[3,"restore","permanentDelete","close","position","isBusy"],["dialogId","perm-delete",3,"confirm","cancel","config","loading"]],template:function(e,n){e&1&&P(0,Sr,9,8,"ng-container",0)},dependencies:[be,Ce,R,bt,Ne],encapsulation:2,changeDetection:0})};var Vr=o=>({name:o}),Tn=(o,t)=>t.folderId,kt=(o,t)=>t.projectId;function jr(o,t){if(o&1&&(a(0,"div",10),v(),a(1,"svg",13),u(2,"path",14),c(),p(3),c()),o&2){let e=r(2);s(3),k(" ",e.legacyService.error()," ")}}function Pr(o,t){if(o&1&&(a(0,"div",11),u(1,"div",15),a(2,"p",16),p(3),c()()),o&2){let e=r().$implicit;s(3),C(e("dashboard.legacy.checking"))}}function Ir(o,t){if(o&1){let e=w();a(0,"div",12)(1,"div",17),v(),a(2,"svg",18),u(3,"path",19),c()(),V(),a(4,"p",20),p(5),c(),a(6,"p",21),p(7),c(),a(8,"button",22),_("click",function(){d(e);let i=r(2);return m(i.openLegacyDashboard())}),v(),a(9,"svg",23),u(10,"path",9),c(),p(11),c()()}if(o&2){let e=r().$implicit;s(5),C(e("dashboard.legacy.notLinked")),s(2),C(e("dashboard.legacy.notLinkedBody")),s(4),k(" ",e("dashboard.legacy.openNinjaMock")," ")}}function Er(o,t){if(o&1&&(a(0,"div",12)(1,"div",24),v(),a(2,"svg",25),u(3,"path",26),c()(),V(),a(4,"p",20),p(5),c(),a(6,"p",21),p(7),c(),a(8,"a",27),p(9),c()()),o&2){let e=r().$implicit;s(5),C(e("dashboard.legacy.mismatch")),s(2),C(e("dashboard.legacy.mismatchBody")),s(2),C(e("dashboard.legacy.contactSupport"))}}function Lr(o,t){o&1&&u(0,"app-skeleton-card")}function Fr(o,t){if(o&1&&(a(0,"div",28),E(1,Lr,1,0,"app-skeleton-card",null,ye),c()),o&2){let e=r(3);s(),L(e.skeletonItems)}}function Nr(o,t){if(o&1){let e=w();v(),a(0,"svg",34),u(1,"path",35),c(),V(),a(2,"button",36),_("click",function(){let i=d(e).$index,l=r(5);return m(l.breadcrumb.emit(i))}),p(3),c()}if(o&2){let e=t.$implicit,n=t.$index,i=t.$count;s(2),j(n===i-1?"text-amber-700 dark:text-amber-300 font-semibold bg-amber-50 dark:bg-amber-900/30":"text-gray-500 dark:text-gray-400 hover:text-amber-700 dark:hover:text-amber-300 hover:bg-gray-100 dark:hover:bg-gray-800"),b("title",e.name),s(),C(e.name)}}function Rr(o,t){if(o&1){let e=w();a(0,"nav",29)(1,"button",32),_("click",function(){d(e);let i=r(4);return m(i.breadcrumb.emit(-1))}),v(),a(2,"svg",8),u(3,"path",33),c(),p(4),c(),E(5,Nr,4,4,null,null,Tn),c()}if(o&2){let e=r(3).$implicit,n=r();s(),j(n.folderStack().length===0?"text-amber-700 dark:text-amber-300 font-semibold bg-amber-50 dark:bg-amber-900/30":"text-gray-500 dark:text-gray-400 hover:text-amber-700 dark:hover:text-amber-300 hover:bg-gray-100 dark:hover:bg-gray-800"),s(3),k(" ",e("dashboard.ui.root")," "),s(),L(n.folderStack())}}function Or(o,t){if(o&1){let e=w();a(0,"button",40),_("dblclick",function(){let i=d(e).$implicit,l=r(5);return m(l.enterFolder.emit(i))})("click",function(i){return d(e),m(i.stopPropagation())}),v(),a(1,"svg",41),u(2,"path",42),c(),V(),a(3,"span",43),p(4),c(),a(5,"span",44),p(6),c()()}if(o&2){let e=t.$implicit,n=r(4).$implicit;b("title",n("dashboard.legacy.doubleClickToOpenNamed",N(3,Vr,e.name))),s(4),C(e.name),s(2),C(n("dashboard.legacy.doubleClickToOpen"))}}function Ar(o,t){if(o&1&&(a(0,"div",30)(1,"h2",37),p(2),c(),a(3,"div",38),E(4,Or,7,5,"button",39,Tn),c()()),o&2){let e=r(3).$implicit,n=r();s(2),C(e("dashboard.legacy.folders")),s(2),L(n.subfolders())}}function Br(o,t){if(o&1&&(a(0,"h2",37),p(1),c()),o&2){let e=r(4).$implicit;s(),C(e("dashboard.legacy.projects"))}}function Hr(o,t){if(o&1){let e=w();a(0,"div",46)(1,"div",47)(2,"img",48),_("error",function(i){d(e);let l=r(6);
1return m(l.onImgError(i))}),c(),a(3,"div",49)(4,"span",50),v(),a(5,"svg",51),u(6,"path",3),c(),p(7),c()(),V(),a(8,"div",52)(9,"span",53),p(10),c()(),a(11,"div",54)(12,"button",55),_("click",function(i){let l=d(e).$implicit;return r(6).openProject.emit(l),m(i.stopPropagation())}),v(),a(13,"svg",8),u(14,"path",9),c(),p(15),c(),V(),a(16,"button",56),_("click",function(i){let l=d(e).$implicit;return r(6).importProject.emit(l),m(i.stopPropagation())}),v(),a(17,"svg",8),u(18,"path",57),c(),p(19),c()()(),V(),a(20,"div",58)(21,"h3",59),p(22),c(),a(23,"p",60),p(24),X(25,"formatDate"),c()()()}if(o&2){let e=t.$implicit,n=r(5),i=n.$implicit,l=n.currentLang;s(2),b("src",e.thumbnailUrl,W)("alt",e.name),s(5),k(" ",i("dashboard.legacy.badge")," "),s(3),C(e.projectType),s(2),b("title",i("dashboard.legacy.openInLegacyEditor")),s(3),k(" ",i("dashboard.ui.open")," "),s(),b("title",i("dashboard.legacy.importToNewEditor")),s(3),k(" ",i("dashboard.ui.import")," "),s(3),C(e.name),s(2),de("",e.size," \xB7 ",ie(25,11,e.createdDate,l))}}function $r(o,t){if(o&1&&(a(0,"div",28),E(1,Hr,26,14,"div",46,kt),c()),o&2){let e=r(5);s(),L(e.projects())}}function Gr(o,t){if(o&1){let e=w();a(0,"div",61)(1,"div",62)(2,"img",48),_("error",function(i){d(e);let l=r(6);return m(l.onImgError(i))}),c()(),a(3,"div",63)(4,"p",64),p(5),c(),a(6,"p",65),p(7),c()(),a(8,"span",66),p(9),X(10,"formatDate"),c(),a(11,"div",67)(12,"button",68),_("click",function(){let i=d(e).$implicit,l=r(6);return m(l.openProject.emit(i))}),v(),a(13,"svg",8),u(14,"path",9),c(),p(15),c(),V(),a(16,"button",69),_("click",function(){let i=d(e).$implicit,l=r(6);return m(l.importProject.emit(i))}),v(),a(17,"svg",8),u(18,"path",57),c(),p(19),c()()()}if(o&2){let e=t.$implicit,n=r(5),i=n.$implicit,l=n.currentLang;s(2),b("src",e.thumbnailUrl,W)("alt",e.name),s(3),C(e.name),s(2),de("",e.projectType," \xB7 ",e.size),s(2),C(ie(10,8,e.createdDate,l)),s(6),k(" ",i("dashboard.ui.open")," "),s(4),k(" ",i("dashboard.ui.import")," ")}}function Ur(o,t){if(o&1&&(a(0,"div",45),E(1,Gr,20,11,"div",61,kt),c()),o&2){let e=r(5);s(),L(e.projects())}}function zr(o,t){if(o&1&&(a(0,"div",30),h(1,Br,2,1,"h2",37),h(2,$r,3,0,"div",28)(3,Ur,3,0,"div",45),c()),o&2){let e=r(4);s(),g(e.subfolders().length>0&&!e.searchQuery()?1:-1),s(),g(e.gridView()?2:3)}}function Wr(o,t){if(o&1&&(a(0,"p",72),p(1),c()),o&2){let e=r().$implicit;s(),C(e.parameters.companyName)}}function Qr(o,t){if(o&1){let e=w();a(0,"div",46)(1,"div",47)(2,"img",70),_("error",function(i){d(e);let l=r(6);return m(l.onImgError(i))}
1),c(),a(3,"div",49)(4,"span",50),p(5),c()(),a(6,"div",52)(7,"span",53),p(8),c()(),a(9,"div",54)(10,"button",71),_("click",function(i){let l=d(e).$implicit;return r(6).openProject.emit(l),m(i.stopPropagation())}),v(),a(11,"svg",8),u(12,"path",9),c(),p(13),c()()(),V(),a(14,"div",58)(15,"h3",59),p(16),c(),a(17,"p",60),p(18),X(19,"formatDate"),c(),h(20,Wr,2,1,"p",72),c()()}if(o&2){let e=t.$implicit,n=r(5),i=n.$implicit,l=n.currentLang;s(2),b("src",e.thumbnailUrl,W)("alt",e.name),s(3),C(i("dashboard.legacy.badge")),s(3),C(e.projectType),s(5),k(" ",i("dashboard.ui.open")," "),s(3),C(e.name),s(2),de("",e.size," \xB7 ",ie(19,9,e.createdDate,l)),s(2),g(e.parameters.companyName?20:-1)}}function qr(o,t){if(o&1&&(a(0,"div",28),E(1,Qr,21,12,"div",46,kt),c()),o&2){let e=r(5);s(),L(e.sharedProjects())}}function Yr(o,t){if(o&1&&(a(0,"span",73),p(1),c()),o&2){let e=r().$implicit;s(),C(e.parameters.companyName)}}function Kr(o,t){if(o&1){let e=w();a(0,"div",61)(1,"div",62)(2,"img",70),_("error",function(i){d(e);let l=r(6);return m(l.onImgError(i))}),c()(),a(3,"div",63)(4,"p",64),p(5),c(),a(6,"p",65),p(7),c()(),h(8,Yr,2,1,"span",73),a(9,"span",66),p(10),X(11,"formatDate"),c(),a(12,"button",68),_("click",function(){let i=d(e).$implicit,l=r(6);return m(l.openProject.emit(i))}),v(),a(13,"svg",8),u(14,"path",9),c(),p(15),c()()}if(o&2){let e=t.$implicit,n=r(5),i=n.$implicit,l=n.currentLang;s(2),b("src",e.thumbnailUrl,W)("alt",e.name),s(3),C(e.name),s(2),de("",e.projectType," \xB7 ",e.size),s(),g(e.parameters.companyName?8:-1),s(2),C(ie(11,8,e.createdDate,l)),s(5),k(" ",i("dashboard.ui.open")," ")}}function Xr(o,t){if(o&1&&(a(0,"div",45),E(1,Kr,16,11,"div",61,kt),c()),o&2){let e=r(5);s(),L(e.sharedProjects())}}function Zr(o,t){if(o&1&&(a(0,"div")(1,"h2",37),p(2),c(),h(3,qr,3,0,"div",28)(4,Xr,3,0,"div",45),c()),o&2){let e=r(3).$implicit,n=r();s(2),C(e("dashboard.legacy.sharedWithMe")),s(),g(n.gridView()?3:4)}}function Jr(o,t){if(o&1&&(a(0,"p",20),p(1),c(),a(2,"p",65),p(3),c()),o&2){let e=r(4).$implicit;s(),C(e("dashboard.legacy.noneFound")),s(2),C(e("common.states.noResultsHint"))}}function ea(o,t){if(o&1&&(a(0,"p",20),p(1),c(),a(2,"p",65),p(3),c()),o&2){let e=r(4).$implicit;s(),C(e("dashboard.legacy.folderEmpty")),s(2),C(e("dashboard.legacy.folderEmptyBody"))}}function ta(o,t){if(o&1&&(a(0,"p",20),p(1),c(),a(2,"p",65),p(3),c()),o&2){let e=r(4).$implicit;s(),C(e("dashboard.legacy.noneFound")),s(2),C(e("dashboard.legacy.willAppear"))}}function na(o,t){if(o&1&&(a(0,"div",31)(1,"div",17),v(),a(2,"svg",18),u(3,"path",74),c()(),h(4,Jr,4,2)(5,ea,4,2)(6,ta,4,2),c()),o&2){let e=r(4);s(4),g(e.searchQuery()?4:e.currentFolderId()!==null?5:6)}}function ia(o,t){if(o&1&&(h(0,Rr,7,3,"nav",29),h(1,Ar,6,1,"div",30),h(2,zr,4,2,"div",30),h(3,Zr,5,2,"div"),h(4,na,7,1,"div",31)),o&2){let e=r(3);g(e.folderStack().length>0||!e.legacyService.error()?0:-1),s(),g(e.subfolders().length>0&&!e.searchQuery()?1:-1),s(),g(e.projects().length>0?2:-1),s(),g(e.sharedProjects().length>0&&(e.currentFolderId()===null||e.searchQuery())?3:-1),s(),g(e.subfolders().length===0&&e.projects().length===0&&e.sharedProjects().length===0&&!e.legacyService.error()?4:-1)}}function oa(o,t){if(o&1&&(h(0,Fr,3,0,"div",28),h(1,ia,5,5)),o&2){let e=r(2);g(e.legacyService.isLoading()?0:-1),s(),g(e.legacyService.isLoading()?-1:1)}}function ra(o,t){if(o&1){let e=w();G(0),a(1,"div",1),v(),a(2,"svg",2),u(3,"path",3),c(),V(),a(4,"div",4)(5,"p",5),p(6),c(),a(7,"p",6),p(8),c()(),a(9,"button",7),_("click",function(){d(e);let i=r();return m(i.openLegacyDashboard())}),v(),a(10,"svg",8),u(11,"path",9),c(),p(12),c()(),h(13,jr,4,1,"div",10),h(14,Pr,4,1,"div",11),h(15,Ir,12,3,"div",12),h(16,Er,10,3,"div",12),h(17,oa,2,2),U()}if(o&2){let e=t.$implicit,n=r();s(6),C(e("dashboard.legacy.title")),s(2),k(" ",e("dashboard.ui.legacyBanner")," "),s(),b("title",e("dashboard.legacy.openInNewWindow")),s(3),k(" ",e("dashboard.ui.legacyDashboard")," "),s(),g(n.legacyService.error()?13:-1),s(),g(n.linkService.status()==="unknown"||n.linkService.status()==="checking"?14:-1),s(),g(n.linkService.status()==="unlinked"?15:-1),s(),g(n.linkService.status()==="email_mismatch"?16:-1),s(),g(n.linkService.isLinked()?17:-1)}}var yt=class o{legacyService=M(Ve);linkService=M(xe);environmentService=M(ke);gridView=y(!0);searchQuery=y("");folderStack=y([]);currentFolderId=y(null);subfolders=y([]);projects=y([]);sharedProjects=y([]);openProject=T();importProject=T();enterFolder=T();breadcrumb=T();skeletonItems=Array(10).fill(0);getLegacyDashboardUrl(){return this.environmentService.isDevelopment()?"http://localhost:8010/project/list":"https://qa.ninjamock.com/project/list"}openLegacyDashboard(){window.open(this.getLegacyDashboardUrl(),"_blank")}onImgError(t){let e=t.target;e.style.display="none"}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-legacy-view"]],inputs:{gridView:[1,"gridView"],searchQuery:[1,"searchQuery"],folderStack:[1,"folderStack"],currentFolderId:[1,"currentFolderId"],subfolders:[1,"subfolders"],projects:[1,"projects"],sharedProjects:[1,"sharedProjects"]},outputs:{openProject:"openProject",importProject:"importProject",enterFolder:"enterFolder",breadcrumb:"breadcrumb"},decls:1,vars:0,consts:[[4,"transloco"],[1,"mb-4","flex","items-start","gap-3","px-4","py-3","bg-amber-50","dark:bg-amber-900/20","border","border-amber-200","dark:border-amber-800","rounded-xl"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-4","h-4","shrink-0","text-amber-600","dark:text-amber-400","mt-0.5"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"],[1,"flex-1"],[1,"text-sm","font-semibold","text-amber-800","dark:text-amber-300"],[1,"text-xs","text-amber-700","dark:text-amber-400","mt-0.5"],[1,"flex","items-center","gap-1.5","px-3","py-1.5","text-xs","font-medium","text-amber-700","dark:text-amber-300","bg-white","dark:bg-gray-800","border","border-amber-200","dark:border-amber-700","hover:bg-amber-100","dark:hover:bg-amber-900/40","rounded-lg","transition-colors",3,"click","title"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-3.5","h-3.5"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"],[1,"mb-4","flex","items-center","gap-3","px-4","py-3","bg-red-50","dark:bg-red-900/20","border","border-red-200","dark:border-red-800","rounded-lg","text-sm","text-red-700","dark:text-red-400"],[1,"flex","flex-col","items-center","justify-center","py-24","gap-4"],[1,"flex","flex-col","items-center","justify-center","py-24","gap-4","text-center"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"],[1,"w-10","h-10","border-4","border-amber-200","dark:border-amber-800","border-t-amber-500","dark:border-t-amber-400","rounded-full","animate-spin"],[1,"text-sm","text-gray-500","dark:text-gray-400"],[1,"w-20","h-20","rounded-2xl","bg-amber-50","dark:bg-amber-900/20","flex","items-center","justify-center"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-10","h-10","text-amber-300","dark:text-amber-600"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","1.5","d","M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"],[1,"dash-empty-message","text-sm","font-semibold","text-gray-700","dark:text-gray-300"],[1,"text-xs","text-gray-400","dark:text-gray-500","max-w-xs"],[1,"mt-1","flex","items-center","gap-2","px-5","py-2.5","bg-amber-500","hover:bg-amber-600","text-white","text-sm","font-semibold","rounded-xl","transition-colors","shadow-sm",3,"click"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-4","h-4"],[1,"w-20","h-20","rounded-2xl","bg-red-50","dark:bg-red-900/20","flex","items-center","justify-center"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-10","h-10","text-red-300","dark:text-red-600"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","1.5","d","M12 9v2m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"],["href","mailto:[email protected]",1,"mt-1","text-sm","font-medium","text-red-600","dark:text-red-400","hover:underline"],[1,"grid","grid-cols-2","sm:grid-cols-3","lg:grid-cols-4","xl:grid-cols-5","gap-4"],[1,"mb-4","flex","items-center","gap-1","text-sm","flex-wrap"],[1,"mb-6"],[1,"flex","flex-col","items-center","justify-center","py-24","gap-3","text-center"],[1,"flex","items-center","gap-1","px-2","py-1","rounded-lg","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-3.5","h-3.5","text-gray-400","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M9 5l7 7-7 7"],[1,"px-2","py-1","rounded-lg","transition-colors","max-w-[160px]","truncate",3,"click","title"],[1,"text-xs","font-semibold","text-gray-500","dark:text-gray-400","uppercase","tracking-wider","mb-3"],[1,"grid","grid-cols-2","sm:grid-cols-3","lg:grid-cols-4","xl:grid-cols-6","gap-3"],[1,"group","flex","flex-col","items-center","gap-2","p-4","bg-white","dark:bg-gray-800","rounded-xl","border","border-gray-200","dark:border-gray-700","hover:border-amber-400","dark:hover:border-amber-500","hover:shadow-md","transition-all","duration-150","text-left",3,"title"],[1,"group","flex","flex-col","items-center","gap-2","p-4","bg-white","dark:bg-gray-800","rounded-xl","border","border-gray-200","dark:border-gray-700","hover:border-amber-400","dark:hover:border-amber-500","hover:shadow-md","transition-all","duration-150","text-left",3,"dblclick","click","title"],["fill","currentColor","viewBox","0 0 20 20",1,"w-10","h-10","text-amber-400","dark:text-amber-500","group-hover:text-amber-500","dark:group-hover:text-amber-400","transition-colors"],["d","M2 6a2 2 0 012-2h5l2 2h5a2 2 0 012 2v6a2 2 0 01-2 2H4a2 2 0 01-2-2V6z"],[1,"text-xs","font-medium","text-gray-700","dark:text-gray-300","group-hover:text-amber-700","dark:group-hover:text-amber-300","text-center","leading-tight","max-w-full","truncate","w-full"],[1,"text-[10px]","text-gray-400","dark:text-gray-500"],[1,"space-y-2"],[1,"group","relative","flex","flex-col","bg-white","dark:bg-gray-800","rounded-xl","border","border-gray-200","dark:border-gray-700","hover:border-amber-400","dark:hover:border-amber-500","hover:shadow-md","transition-all","duration-200","overflow-hidden"],[1,"relative","h-40","bg-linear-to-br","from-amber-50","to-orange-50","dark:from-gray-700","dark:to-gray-600","overflow-hidden"],[1,"w-full","h-full","object-contain","bg-white",3,"error","src","alt"],[1,"absolute","top-2","left-2"],[1,"inline-flex","items-center","gap-1","px-1.5","py-0.5","text-[10px]","font-semibold","rounded","bg-amber-100","dark:bg-amber-900/60","text-amber-700","dark:text-amber-300"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-2.5","h-2.5"],[1,"absolute","top-2","right-2"],[1,"px-1.5","py-0.5","text-[10px]","font-medium","rounded","bg-gray-900/60","text-white"],[1,"absolute","
1inset-0","bg-black/40","opacity-0","group-hover:opacity-100","transition-opacity","flex","items-center","justify-center","gap-2"],[1,"flex","items-center","gap-1.5","px-3","py-1.5","text-xs","font-medium","bg-white","text-gray-900","rounded-lg","hover:bg-gray-100","transition-colors","shadow",3,"click","title"],[1,"flex","items-center","gap-1.5","px-3","py-1.5","text-xs","font-medium","bg-indigo-600","text-white","rounded-lg","hover:bg-indigo-700","transition-colors","shadow",3,"click","title"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12"],[1,"p-3"],[1,"dash-project-name","text-sm","font-semibold","text-gray-900","dark:text-white","truncate","leading-tight"],[1,"dash-meta-date","text-xs","text-gray-400","dark:text-gray-500","mt-0.5"],[1,"group","flex","items-center","gap-4","px-4","py-3","bg-white","dark:bg-gray-800","rounded-xl","border","border-gray-200","dark:border-gray-700","hover:border-amber-400","dark:hover:border-amber-500","hover:shadow-sm","transition-all","duration-150"],[1,"w-12","h-10","shrink-0","rounded-lg","overflow-hidden","bg-amber-50","dark:bg-gray-700"],[1,"flex-1","min-w-0"],[1,"dash-project-name","text-sm","font-semibold","text-gray-900","dark:text-white","truncate"],[1,"text-xs","text-gray-400","dark:text-gray-500"],[1,"dash-meta-date","text-xs","text-gray-400","dark:text-gray-500","w-28","text-right","shrink-0"],[1,"flex","items-center","gap-2"],[1,"flex","items-center","gap-1.5","px-3","py-1.5","text-xs","font-medium","text-gray-600","dark:text-gray-300","bg-gray-100","dark:bg-gray-700","hover:bg-gray-200","dark:hover:bg-gray-600","rounded-lg","transition-colors",3,"click"],[1,"flex","items-center","gap-1.5","px-3","py-1.5","text-xs","font-medium","text-white","bg-indigo-600","hover:bg-indigo-700","rounded-lg","transition-colors",3,"click"],[1,"w-full","h-full","object-cover","bg-white",3,"error","src","alt"],[1,"flex","items-center","gap-1.5","px-3","py-1.5","text-xs","font-medium","bg-white","text-gray-900","rounded-lg","hover:bg-gray-100","transition-colors","shadow",3,"click"],[1,"text-xs","text-indigo-500","dark:text-indigo-400","mt-0.5","truncate"],[1,"text-xs","text-indigo-500","dark:text-indigo-400","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","1.5","d","M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"]],template:function(e,n){e&1&&P(0,ra,18,9,"ng-container",0)},dependencies:[be,R,Ne],encapsulation:2,changeDetection:0})};var aa=["queued","migrating"];function Sn(o){return aa.includes(o.status)}function Mn(o){switch(o){case"legacy_source_unavailable":return"migration.ui.errLegacyUnavailable";case"invalid_legacy_data":return"migration.ui.errInvalidLegacyData";case"conversion_failed":return"migration.ui.errConversionFailed";case"save_failed":return"migration.ui.errSaveFailed";case"migration_timed_out":return"migration.ui.errTimedOut";default:return"migration.ui.errUnfinished"}}function Dn(o){return o!=="invalid_legacy_data"}var sa=new Wt("ARCHIVE_POLL_INTERVAL_MS",{providedIn:"root",factory:()=>5e3}),la=.4,ca=4,fe=class o{http=M(Jt);env=M(ke);pollIntervalMs=M(sa);get base(){return`${this.env.getApiUrl()}/api/v1`}archivedProjects=f([]);legacyProjects=f([]);linkStatus=f("unknown");isLoading=f(!1);error=f(null);awaitingInventory=f(!1);inFlight=S(()=>this.legacyProjects().filter(Sn));isStartingBatch=f(!1);pendingActions=f(new Set);hasLoaded=!1;pollTimer=null;inventoryWaits=0;inventoryIntervalMs=Math.max(1,Math.round(this.pollIntervalMs*la));inFlightLoad=null;ngOnDestroy(){this.stopPolling()}async open(){this.inventoryWaits=0,await this.refresh(),this.schedulePoll()}close(){this.stopPolling(),this.awaitingInventory.set(!1)}async refresh(){if(this.inFlightLoad)return this.inFlightLoad;this.inFlightLoad=this.load();try{await this.inFlightLoad}finally{this.inFlightLoad=null}}async load(){this.hasLoaded||this.isLoading.set(!0);try{let t=await F(this.http.get(`${this.base}/archive`));this.archivedProjects.set(t.archivedProjects??[]),this.legacyProjects.set(t.legacyProjects??[]),this.linkStatus.set(t.legacyLinkStatus??"unknown"),this.error.set(null),this.hasLoaded=!0}catch(t){t?.status===503?this.error.set("The archive is temporarily unavailable. Still trying."):this.error.set("The archive could not be loaded.")}finally{this.isLoading.set(!1)}}async startMigration(t){await this.act(t,`${this.base}/legacy/projects/${t}/migrations`)}async startMigrations(t){if(t.length===0)return null;this.isStartingBatch.set(!0);let e=null,n=null;try{e=await F(this.http.post(`${this.base}/legacy/projects/migrations`,{legacyProjectIds:[...t]}))}catch{n="Those projects could not be queued. Please try again."}return this.isStartingBatch.set(!1),await this.refresh(),this.schedulePoll(),n&&this.error.set(n),e}async unarchive(t){let e;try{e=await F(this.http.put(`${this.base}/projects/${t}`,{isArchived:!1}))}catch{return await this.refresh(),!1}return e?.error?(console.warn(`\u26A0\uFE0F [Archive] Server refused to unarchive ${t}: ${e.error}`),await this.refresh(),!1):(this.archivedProjects.update(n=>n.filter(i=>i.id!==t)),await this.refresh(),!0)}async retryMigration(t){await this.act(t,`${this.base}/legacy/projects/${t}
1/migrations/retry`)}async restartMigration(t){await this.act(t,`${this.base}/legacy/projects/${t}/migrations/restart`)}async act(t,e){this.markPending(t,!0);let n=null;try{await F(this.http.post(e,{}))}catch(i){i?.status!==409&&(n="That migration could not be started. Please try again.")}this.markPending(t,!1),await this.refresh(),this.schedulePoll(),n&&this.error.set(n)}markPending(t,e){this.pendingActions.update(n=>{let i=new Set(n);return e?i.add(t):i.delete(t),i})}schedulePoll(){this.stopPolling();let t=this.nextDelay();t!==null&&(this.pollTimer=setTimeout(async()=>{this.pollTimer=null,await this.refresh(),this.schedulePoll()},t))}nextDelay(){return this.inFlight().length>0?(this.inventoryWaits=0,this.awaitingInventory.set(!1),this.pollIntervalMs):this.linkStatus()==="linked"&&this.legacyProjects().length===0&&this.inventoryWaits<ca?(this.inventoryWaits++,this.awaitingInventory.set(!0),this.inventoryIntervalMs):(this.awaitingInventory.set(!1),null)}stopPolling(){this.pollTimer!==null&&(clearTimeout(this.pollTimer),this.pollTimer=null)}static \u0275fac=function(e){return new(e||o)};static \u0275prov=ee({token:o,factory:o.\u0275fac,providedIn:"root"})};var da=()=>({dateStyle:"medium"}),ma=o=>({date:o}),pa=(o,t)=>t.migrationId,_a=(o,t)=>t.id;function ua(o,t){o&1&&(a(0,"div",1),v(),a(1,"svg",4),u(2,"path",5),c(),p(3),c()),o&2&&(s(3),k(" ",t," "))}function ha(o,t){if(o&1&&(a(0,"div",2),u(1,"span",6),a(2,"p",7),p(3),c()()),o&2){let e=r().$implicit;s(3),C(e("dashboard.archive.loading"))}}function ga(o,t){if(o&1&&(a(0,"div",3),v(),a(1,"svg",8),u(2,"path",9),c(),V(),a(3,"p",10),p(4),c(),a(5,"p",11),p(6),c()()),o&2){let e=r().$implicit;s(4),C(e("dashboard.archive.empty")),s(2),k(" ",e("dashboard.ui.archiveBody")," ")}}function va(o,t){if(o&1&&(a(0,"section",12)(1,"h2",14),p(2),c(),a(3,"div",15),u(4,"span",16),a(5,"div",17)(6,"p",7),p(7),c(),a(8,"p",18),p(9),c()()()()),o&2){let e=r(2).$implicit;s(2),C(e("dashboard.archive.fromNinjamock")),s(5),C(e("dashboard.archive.fetchingInventory")),s(2),C(e("dashboard.archive.fetchingInventoryHint"))}}function xa(o,t){if(o&1&&p(0),o&2){let e=r(4).$implicit;k(" ",e("dashboard.ui.queueing")," ")}}function Ca(o,t){if(o&1&&p(0),o&2){let e=r(5);k(" Migrate ",e.selected().length," ")}}function ba(o,t){if(o&1){let e=w();a(0,"label",23)(1,"input",24),_("change",function(){d(e);let i=r(4);return m(i.toggleAll())}),c(),p(2),c(),a(3,"button",25),_("click",function(){d(e);let i=r(4);return m(i.migrateSelected())}),h(4,xa,1,1)(5,Ca,1,1),c()}if(o&2){let e=r(4);s(),b("checked",e.allSelected())("indeterminate",e.selected().length>0&&!e.allSelected()),s(),de(" ",e.selected().length," of ",e.selectable().length," selected "),s(),b("disabled",e.selected().length===0||e.archive.isStartingBatch()),s(),g(e.archive.isStartingBatch()?4:5)}}function fa(o,t){if(o&1){let e=w();a(0,"label",28)(1,"input",37),_("change",function(){d(e);let i=r().$implicit,l=r(4);return m(l.toggle(i))}),c()()}if(o&2){let e=r().$implicit,n=r(4);s(),b("checked",n.isSelected(e)),D("aria-label","Migrate "+e.name)}}function wa(o,t){if(o&1&&u(0,"img",29),o&2){let e=r().$implicit;b("src",e.thumbnail,W)("alt",e.name)}}function ya(o,t){o&1&&(a(0,"div",30),v(),a(1,"svg",8),u(2,"path",38),c()())}function ka(o,t){}function Ta(o,t){if(o&1&&(a(0,"span",31),p(1),c()),o&2){let e=r(4).$implicit;s(),k(" ",e("dashboard.archive.devOnly")," ")}}function Sa(o,t){if(o&1){let e=w();a(0,"button",40),_("click",function(){d(e);let i=r(2).$implicit,l=r(4);return m(l.retry(i))}),p(1),c()}if(o&2){let e=r(2).$implicit,n=r(3).$implicit,i=r();b("disabled",i.isBusy(e)),s(),k(" ",n("dashboard.ui.tryAgain")," ")}}function Ma(o,t){if(o&1&&h(0,Sa,2,2,"button",39),o&2){let e=r().$implicit,n=r(4);g(n.canRetry(e)?0:-1)}}function Da(o,t){if(o&1&&(a(0,"span",32),u(1,"span",41),p(2),c()),o&2){let e=r().$implicit,n=r(3).$implicit;s(2),k(" ",e.status==="migrating"?n("dashboard.ui.converting"):n("dashboard.ui.queued")," ")}}function Va(o,t){if(o&1&&(a(0,"p",35),p(1),c()),o&2){let e=r().$implicit,n=r(3).$implicit,i=r();s(),C(n(i.describeError(e.lastErrorCode)))}}function ja(o,t){if(o&1&&(a(0,"p",36),p(1),c()),o&2){let e=r(4).$implicit;s(),C(e("dashboard.archive.fromNinjamock"))}}function Pa(o,t){if(o&1){let e=w();a(0,"div",26),_("contextmenu",function(i){let l=d(e).$implicit,x=r(4);return m(x.openInspectMenu(i,l))}),a(1,"div",27),h(2,fa,2,2,"label",28),h(3,wa,1,2,"img",29)(4,ya,3,0,"div",30),h(5,ka,0,0)(6,Ta,2,1,"span",31)(7,Ma,1,1)(8,Da,3,1,"span",32),c(),a(9,"div",33)(10,"h3",34),p(11),c(),h(12,Va,2,1,"p",35)(13,ja,2,1,"p",36),c()()}if(o&2){let e,n=t.$implicit,i=r(4);s(),j(n.status==="available"&&i.isSelected(n)?"ring-brand":"ring-white/10"),s(),g(n.status==="available"?2:-1),s(),g(n.thumbnail?3:4),s(2),g((e=n.status)==="available"?5:e
1==="completed"?6:e==="failed"?7:8),s(5),b("title",n.name),s(),C(n.name),s(),g(n.status==="failed"?12:13)}}function Ia(o,t){if(o&1&&(a(0,"section",12)(1,"div",19)(2,"h2",20),p(3),c(),h(4,ba,6,6),c(),a(5,"div",21),E(6,Pa,14,8,"div",22,pa),c()()),o&2){let e=r(2).$implicit,n=r();s(3),C(e("dashboard.archive.fromNinjamock")),s(),g(n.selectable().length>0?4:-1),s(2),L(n.pending())}}function Ea(o,t){if(o&1){let e=w();a(0,"button",44),_("click",function(){d(e);let i=r(4);return m(i.askToRestart())}),v(),a(1,"svg",4),u(2,"path",51),c(),p(3),c()}if(o&2){let e=r(3).$implicit;s(3),k(" ",e("dashboard.archive.remigrate")," ")}}function La(o,t){if(o&1){let e=w();a(0,"div",42),_("click",function(){d(e);let i=r(3);return m(i.closeInspectMenu())})("contextmenu",function(){d(e);let i=r(3);return m(i.closeInspectMenu())}),c(),a(1,"div",43)(2,"button",44),_("click",function(){d(e);let i=r(3);return m(i.openInOldEditor())}),v(),a(3,"svg",4),u(4,"path",45),c(),p(5),c(),V(),u(6,"div",46),a(7,"button",44),_("click",function(){d(e);let i=r(3);return m(i.inspect())}),v(),a(8,"svg",4),u(9,"path",47)(10,"path",48),c(),p(11),c(),h(12,Ea,4,1,"button",49),V(),a(13,"p",50),p(14),c()()}if(o&2){let e=t,n=r(2).$implicit,i=r();s(),Z("left",e.x,"px")("top",e.y,"px"),s(4),k(" ",n("dashboard.ui.openOldEditor")," "),s(6),k(" ",n("dashboard.ui.inspectConversion")," "),s(),g(i.canRemigrate()&&e.item.status==="completed"?12:-1),s(2),C(n("dashboard.archive.devOnly"))}}function Fa(o,t){if(o&1){let e=w();a(0,"app-confirm-dialog",52),_("confirm",function(){d(e);let i=r(3);return m(i.restart())})("cancel",function(){d(e);let i=r(3);return m(i.pendingRestart.set(null))}),c()}if(o&2){let e=r(3);b("config",e.restartConfig())("loading",e.archive.pendingActions().has(t.legacyProjectId))}}function Na(o,t){if(o&1&&u(0,"img",29),o&2){let e=r().$implicit;b("src",e.thumbnail,W)("alt",e.name)}}function Ra(o,t){o&1&&(a(0,"div",30),v(),a(1,"svg",8),u(2,"path",38),c()())}function Oa(o,t){if(o&1&&(a(0,"span",59),v(),a(1,"svg",61),u(2,"path",5),c(),p(3),c()),o&2){let e=r(5).$implicit;s(3),k(" ",e("dashboard.archive.notReady")," ")}}function Aa(o,t){if(o&1&&(a(0,"span",60),u(1,"span",41),p(2),c()),o&2){let e=r(),n=r(4).$implicit;s(2),k(" ",e.status==="migrating"?n("dashboard.ui.converting"):n("dashboard.ui.queued")," ")}}function Ba(o,t){o&1&&(a(0,"div",57),h(1,Oa,4,1,"span",59)(2,Aa,3,1,"span",60),c()),o&2&&(s(),g(t.status==="failed"?1:2))}function Ha(o,t){if(o&1&&(a(0,"p",62),p(1),c()),o&2){let e=t,n=r(4).$implicit;H("text-danger",e.status==="failed")("text-ink",e.status!=="failed"),s(),k(" ",e.status==="failed"?n("dashboard.archive.conversionFailed"):n("dashboard.archive.conversionInProgress")," ")}}function $a(o,t){if(o&1&&(a(0,"p",36),p(1),X(2,"translocoDate"),c()),o&2){let e=r().$implicit,n=r(3).$implicit;s(),k(" ",n("dashboard.archive.archivedOn",N(5,ma,ie(2,1,e.archivedAt,$(4,da))))," ")}}function Ga(o,t){if(o&1){let e=w();a(0,"div",55),_("click",function(i){let l=d(e).$implicit,x=r(4);return m(x.openArchivedMenu(i,l))})("contextmenu",function(i){let l=d(e).$implicit,x=r(4);return m(x.openArchivedMenu(i,l))}),a(1,"div",56),h(2,Na,1,2,"img",29)(3,Ra,3,0,"div",30),h(4,Ba,3,1,"div",57),c(),a(5,"div",33)(6,"h3",34),p(7),c(),h(8,Ha,2,5,"p",58)(9,$a,3,7,"p",36),c()()}if(o&2){let e,n,i=t.$implicit,l=r(4);H("cursor-pointer",!l.pendingMigration(i)),s(),H("group-hover:ring-brand",!l.pendingMigration(i)),s(),g(i.thumbnail?2:3),s(2),g((e=l.pendingMigration(i))?4:-1,e),s(2),b("title",i.name),s(),C(i.name),s(),g((n=l.pendingMigration(i))?8:9,n)}}function Ua(o,t){if(o&1&&(a(0,"section")(1,"h2",20),p(2),c(),a(3,"p",53),p(4),c(),a(5,"div",21),E(6,Ga,10,9,"div",54,_a),c()()),o&2){let e=r(2).$implicit,n=r();s(2),C(e("dashboard.archive.archived")),s(2),C(e("dashboard.archive.cannotOpenHint")),s(2),L(n.archive.archivedProjects())}}function za(o,t){if(o&1){let e=w();a(0,"div",42),_("click",function(){d(e);let i=r(3);return m(i.closeArchivedMenu())})("contextmenu",function(){d(e);let i=r(3);return m(i.closeArchivedMenu())}),c(),a(1,"div",43)(2,"button",44),_("click",function(){d(e);let i=r(3);return m(i.moveArchivedProject())}),v(),a(3,"svg",4),u(4,"path",63),c(),p(5),c()()}if(o&2){let e=t,n=r(2).$implicit;s(),Z("left",e.x,"px")("top",e.y,"px"),s(4),k(" ",n("dashboard.archive.moveToWorkspace")," ")}}function Wa(o,t){if(o&1&&(h(0,va,10,3,"section",12),h(1,Ia,8,2,"section",12),h(2,La,15,8),h(3,Fa,1,2,"app-confirm-dialog",13),h(4,Ua,8,2,"section"),h(5,za,6,5)),o&2){let e,n,i,l=r(2);g(l.archive.awaitingInventory()?0:-1),s(),g(l.pending().length>0?1:-1),s(),g((e=l.inspectMenu())?2:-1,e),s(),g((n=l.pendingRestart())?3:-1,n),s(),g(l.archive.archivedProjects().length>0?4:-1),s(),g((i=l.archivedMenu())?5:-1,i)}}function Qa(o,t){if(o&1&&(G(0),h(1,ua,4,1,"div",1),h(2,ha,4,1,"div",2)(3,ga,7,2,"div",3)(4,Wa,6,6),U()),o&2){let e,n=r();s(),g((e=n.archive.error())?1:-1,e),s(),g(n.archive.isLoading()?2:n.pending().length===0&&n.archive.archivedProjects().length===0&&!n.archive.awaitingInventory()?3:4)}}var Tt=class o{archive=M(fe);analytics=M(Xe);transloco=M(Y);moveArchived=T();inspectLegacy=T();openLegacy=T();pending=S(()=>this.archive.legacyProjects().filter(t=>t.status!=="completed"||Lt()||this.canRemigrate()).slice().sort((t,e)=>Me(t.name,e.name)));selectable=S(()=>this.pending().filter(t=>t.status==="available"));deselected=f(new Set);selected=S(()=>{let t=this.deselected();return this.selectable().filter(e=>!t.has(e.legacyProjectId))});allSelected=S(()=>this.selectable().length>0&&this.selected().length===this.selectable().length);isSelected(t){return!this.deselected().has(t.legacyProjectId)}toggle(t){this.deselected.update(e=>{let n=new Set(e);return n.has(t.legacyProjectId)?n.delete(t.legacyProjectId):n.add(t.legacyProjectId),n})}toggleAll(){this.deselected.set(this.allSelected()?new Set(this.selectable().map(t=>t.legacyProjectId)):new Set)}async migrateSelected(){let t=this.selected().map(e=>e.legacyProjectId);t.length!==0&&(this.analytics.track("archive.migrations_queued",{selected:t.length,offered:this.selectable().length}
1),await this.archive.startMigrations(t),this.deselected.set(new Set))}inspectMenu=f(null);canInspect=Lt();canRemigrate=M(cn).enabled("legacy-remigrate");pendingRestart=f(null);openInspectMenu(t,e){!this.canInspect&&!this.canRemigrate()||(t.preventDefault(),this.inspectMenu.set({x:t.clientX,y:t.clientY,item:e}))}closeInspectMenu(){this.inspectMenu.set(null)}openInOldEditor(){let t=this.inspectMenu();t&&(this.closeInspectMenu(),this.openLegacy.emit(t.item.legacyProjectId))}inspect(){let t=this.inspectMenu();t&&(this.closeInspectMenu(),this.inspectLegacy.emit(t.item.legacyProjectId))}askToRestart(){let t=this.inspectMenu();t&&(this.closeInspectMenu(),this.pendingRestart.set(t.item))}restartConfig=S(()=>{let t=this.pendingRestart();return{title:this.transloco.translate("dashboard.archive.remigrateTitle"),subtitle:this.transloco.translate("dashboard.archive.remigrateSubtitle"),message:this.transloco.translate("dashboard.archive.remigrateBody",{name:t?.name??""}),confirmLabel:this.transloco.translate("dashboard.archive.remigrateConfirm"),variant:"danger",icon:"warning"}});async restart(){let t=this.pendingRestart();t&&(this.pendingRestart.set(null),await this.archive.restartMigration(t.legacyProjectId))}ngOnInit(){this.archive.open().then(()=>{this.analytics.track("archive.opened",{pending_count:this.selectable().length,awaiting_inventory:this.archive.awaitingInventory()})})}ngOnDestroy(){this.archive.close()}describeError=Mn;canRetry(t){return Dn(t.lastErrorCode)}isBusy(t){return this.archive.pendingActions().has(t.legacyProjectId)}
1retry(t){this.archive.retryMigration(t.legacyProjectId)}archivedMenu=f(null);incompleteDestinations=S(()=>{let t=new Map;for(let e of this.archive.legacyProjects())e.currentProjectId&&e.status!=="completed"&&t.set(e.currentProjectId,e);return t});pendingMigration(t){return this.incompleteDestinations().get(t.id)}openArchivedMenu(t,e){t.preventDefault(),!this.pendingMigration(e)&&this.archivedMenu.set({x:t.clientX,y:t.clientY,project:e})}closeArchivedMenu(){this.archivedMenu.set(null)}moveArchivedProject(){let t=this.archivedMenu();t&&(this.closeArchivedMenu(),this.moveArchived.emit(t.project))}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-archive-view"]],outputs:{moveArchived:"moveArchived",inspectLegacy:"inspectLegacy",openLegacy:"openLegacy"},features:[he([ve("migration")])],decls:1,vars:0,consts:[[4,"transloco"],[1,"mb-5","flex","items-center","gap-3","px-4","py-3","rounded-xl","border","border-warning/40","bg-warning/10","text-sm","text-warning"],[1,"flex","flex-col","items-center","justify-center","py-24","gap-4","text-center"],[1,"flex","flex-col","items-center","justify-center","py-24","gap-3","text-center"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6","aria-hidden","true",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","d","M12 9v2m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"],[1,"w-6","h-6","rounded-full","border-2","border-white/20","border-t-brand","animate-spin"],[1,"text-sm","text-ink"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1","aria-hidden","true",1,"w-12","h-12","text-white/15"],["stroke-linecap","round","stroke-linejoin","round","d","M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4"],[1,"dash-empty-message","text-sm","text-ink"],[1,"text-xs","text-ink","max-w-xs"],[1,"mb-10"],["dialogId","restart-migration",3,"config","loading"],[1,"mb-4","text-sm","font-medium","text-ink"],[1,"flex","items-center","gap-3","px-4","py-3.5","rounded-xl","border","border-divider","bg-white/5"],[1,"w-4","h-4","shrink-0","rounded-full","border-2","border-white/20","border-t-brand","animate-spin"],[1,"min-w-0"],[1,"mt-0.5","text-xs","text-ink"],[1,"mb-4","flex","flex-wrap","items-center","gap-x-4","gap-y-2"],[1,"text-sm","font-medium","text-ink"],[1,"grid","grid-cols-2","sm:grid-cols-3","lg:grid-cols-4","2xl:grid-cols-5","gap-x-4","gap-y-6"],[1,"group"],[1,"flex","items-center","gap-2","text-xs","text-ink","cursor-pointer","select-none"],["type","checkbox",1,"w-3.5","h-3.5","accent-brand","cursor-pointer",3,"change","checked","indeterminate"],["type","button",1,"ml-auto","px-4","py-1.5","rounded-full","bg-gradient-primary","hover:brightness-110","active:brightness-95","text-ink","text-xs","font-medium","transition-[filter]","disabled:opacity-60","disabled:cursor-not-allowed",3,"click","disabled"],[1,"group",3,"contextmenu"],[1,"relative","aspect-[4/3]","rounded-xl","overflow-hidden","bg-white/5","ring-1","transition-[box-shadow]"],[1,"absolute","top-2","left-2","z-10","w-7","h-7","grid","place-items-center","rounded-full","bg-black/70","backdrop-blur-sm","cursor-pointer"],["loading","lazy",1,"w-full","h-full","object-contain",3,"src","alt"],[1,"w-full","h-full","grid","place-items-center"],[1,"dash-badge","absolute","bottom-2","right-2","px-3","py-1.5","rounded-full","bg-black/70","backdrop-blur-sm","text-ink","text-xs"],[1,"dash-badge","absolute","bottom-2","right-2","flex","items-center","gap-2","px-3","py-1.5","rounded-full","bg-black/70","backdrop-blur-sm","text-ink","text-xs"],[1,"mt-2.5","min-w-0"],[1,"dash-project-name","text-sm","font-medium","text-ink","truncate","leading-tight",3,"title"],[1,"mt-1","text-xs","text-danger","line-clamp-2"],[1,"mt-1","text-xs","text-ink","truncate"],["type","checkbox",1,"w-3.5","h-3.5","accent-brand","cursor-pointer",3,"change","checked"],["stroke-linecap","round","stroke-linejoin","round","d","M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"],["type","button",1,"absolute","bottom-2","right-2","px-3","py-1.5","rounded-full","bg-black/70","backdrop-blur-sm","border","border-divider","text-ink","text-xs","font-medium","hover:bg-black/85","transition-colors","disabled:opacity-60",3,"disabled"],["type","button",1,"absolute","bottom-2","right-2","px-3","py-1.5","rounded-full","bg-black/70","backdrop-blur-sm","border","border-divider","text-ink","text-xs","font-medium","hover:bg-black/85","transition-colors","disabled:opacity-60",3,"click","disabled"],[1,"w-3","h-3","rounded-full","border-2","border-white/30","border-t-brand","animate-spin"],[1,"fixed","inset-0","z-40",3,"click","contextmenu"],["role","menu",1,"fixed","z-50","min-w-56","py-1","rounded-xl","border","border-divider","bg-gradient-popup","shadow-2xl"],["type","button","role","menuitem",1,"w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-white/5","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"],[1,"my-1","border-t","border-divider"],["stroke-linecap","round","stroke-linejoin","round","d","M15 12a3 3 0 11-6 0 3 3 0 016 0z"],["stroke-linecap","round","stroke-linejoin","round","d","M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"],["type","button","role","menuitem",1,"w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-white/5","transition-colors"],[1,"px-3","pb-1.5","pt-0.5","text-[11px]","text-ink/70"],["stroke-linecap","round","stroke-linejoin","round","d","M4 4v5h5
1M20 20v-5h-5M20 9A8 8 0 006.3 5.3L4 8m16 8l-2.3 2.7A8 8 0 014 15"],["dialogId","restart-migration",3,"confirm","cancel","config","loading"],[1,"mb-4","mt-1","text-xs","text-ink"],[1,"group",3,"cursor-pointer"],[1,"group",3,"click","contextmenu"],[1,"relative","aspect-4/3","rounded-xl","overflow-hidden","bg-white/5","ring-1","ring-white/10","transition-shadow"],[1,"absolute","inset-0","grid","place-items-center","bg-black/60","backdrop-blur-[1px]"],[1,"mt-1","text-xs","truncate",3,"text-danger","text-ink"],[1,"flex","items-center","gap-2","px-3","py-1.5","rounded-full","bg-black/70","text-danger","text-xs"],[1,"dash-badge","flex","items-center","gap-2","px-3","py-1.5","rounded-full","bg-black/70","text-ink","text-xs"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","2","aria-hidden","true",1,"w-3.5","h-3.5","shrink-0"],[1,"mt-1","text-xs","truncate"],["stroke-linecap","round","stroke-linejoin","round","d","M3 7a2 2 0 012-2h4l2 2h8a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"]],template:function(e,n){e&1&&P(0,Qa,5,2,"ng-container",0)},dependencies:[R,Ce,nn],encapsulation:2,changeDetection:0})};var qa=["openBtn"],Ya=o=>({count:o});function Ka(o,t){if(o&1&&(a(0,"p",10),u(1,"span",15),p(2),c()),o&2){let e=r().$implicit;s(2),k(" ",e("dashboard.legacyLinked.checking")," ")}}function Xa(o,t){if(o&1&&(a(0,"p",11),p(1),c()),o&2){let e=r().$implicit,n=r();s(),k(" ",e("dashboard.legacyLinked.body",N(1,Ya,n.pendingCount()))," ")}}function Za(o,t){if(o&1&&(a(0,"p",11),p(1),c()),o&2){let e=r().$implicit;s(),k(" ",e("dashboard.legacyLinked.bodyEmpty")," ")}}function Ja(o,t){if(o&1){let e=w();a(0,"div",2),_("backdropDismiss",function(){d(e);let i=r();return m(i.onDismiss())}),a(1,"div",3)(2,"div",4)(3,"div",5),v(),a(4,"svg",6),u(5,"path",7),c()(),V(),a(6,"div",8)(7,"h2",9),p(8),c(),h(9,Ka,3,1,"p",10)(10,Xa,2,3,"p",11)(11,Za,2,1,"p",11),c()(),a(12,"div",12)(13,"button",13),_("click",function(){d(e);let i=r();return m(i.onDismiss())}),p(14),c(),a(15,"button",14,0),_("click",function(){d(e);let i=r();return m(i.onOpenArchive())}),p(17),c()()()()}if(o&2){let e=t.$implicit,n=r();s(8),k(" ",e("dashboard.legacyLinked.title")," "),s(),g(n.isResolving()?9:n.pendingCount()>0?10:11),s(5),k(" ",e("dashboard.legacyLinked.later")," "),s(3),k(" ",e("dashboard.legacyLinked.open")," ")}}var St=class o{archive=M(fe);analytics=M(Xe);dismiss=T();openArchive=T();openBtn=oe("openBtn");pendingCount=S(()=>this.archive.legacyProjects().filter(t=>t.status==="available").length);isResolving=S(()=>this.archive.isLoading()||this.archive.awaitingInventory());onDismiss(){this.analytics.track("archive.prompt_answered",{answer:"dismiss",pending_count:this.pendingCount()}),this.dismiss.emit()}onOpenArchive(){this.analytics.track("archive.prompt_answered",{answer:"open",pending_count:this.pendingCount()}),this.openArchive.emit()}onKeydown=t=>{t.key==="Escape"&&this.onDismiss()};ngOnInit(){document.addEventListener("keydown",this.onKeydown),setTimeout(()=>this.openBtn()?.nativeElement.focus(),50),this.analytics.track("archive.prompt_shown",{}),this.archive.open()}ngOnDestroy(){document.removeEventListener("keydown",this.onKeydown)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-legacy-linked-modal"]],viewQuery:function(e,n){e&1&&te(n.openBtn,qa,5),e&2&&ne()}
1,outputs:{dismiss:"dismiss",openArchive:"openArchive"},decls:1,vars:0,consts:[["openBtn",""],["class","fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4","role","dialog","aria-modal","true","aria-labelledby","legacy-linked-title","appBackdropDismiss","",3,"backdropDismiss",4,"transloco"],["role","dialog","aria-modal","true","aria-labelledby","legacy-linked-title","appBackdropDismiss","",1,"fixed","inset-0","z-50","flex","items-center","justify-center","bg-black/50","backdrop-blur-sm","p-4",3,"backdropDismiss"],[1,"w-full","max-w-md","rounded-2xl","border","border-divider","bg-gradient-popup","p-6","shadow-2xl","shadow-black/60"],[1,"flex","items-start","gap-4"],[1,"w-11","h-11","shrink-0","rounded-full","bg-brand/10","grid","place-items-center","text-brand"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6","aria-hidden","true",1,"w-5","h-5"],["stroke-linecap","round","stroke-linejoin","round","d","M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4"],[1,"min-w-0"],["id","legacy-linked-title",1,"text-base","font-semibold","text-ink"],[1,"mt-2","flex","items-center","gap-2","text-sm","text-ink"],[1,"mt-2","text-sm","text-ink"],[1,"mt-6","flex","items-center","justify-end","gap-3"],["type","button",1,"px-4","py-2","text-sm","font-medium","text-ink","transition-colors",3,"click"],["type","button",1,"px-5","py-2","text-sm","font-medium","text-ink","bg-gradient-primary","hover:brightness-110","active:brightness-95","rounded-full","transition-[filter]",3,"click"],[1,"w-3.5","h-3.5","shrink-0","rounded-full","border-2","border-white/20","border-t-brand","animate-spin"]],template:function(e,n){e&1&&P(0,Ja,18,4,"div",1)},dependencies:[R,it],encapsulation:2,changeDetection:0})};function es(o,t){if(o&1){let e=w();a(0,"div",0)(1,"div",2)(2,"div",3),v(),a(3,"svg",4),u(4,"path",5),c()(),V(),a(5,"div",6)(6,"p",7),p(7),c(),a(8,"p",8),p(9),a(10,"button",9),_("click",function(){d(e);let i=r(2);return m(i.openArchive.emit())}),p(11),c(),p(12),c(),a(13,"div",10)(14,"a",11),p(15),v(),a(16,"svg",12),u(17,"path",13),c()(),V(),a(18,"button",14),_("click",function(){d(e);let i=r(2);return m(i.onDismiss())}),p(19),c()()()()()}if(o&2){let e=t.$implicit,n=r(2);s(7),k(" ",e("dashboard.legacySwitch.title")," "),s(2),k(" ",e("dashboard.legacySwitch.body")," "),s(),D("aria-label",e("dashboard.legacySwitch.bodyLinkLabel")),s(),C(e("dashboard.legacySwitch.bodyLink")),s(),k("",e("dashboard.legacySwitch.bodyAfter")," "),s(2),b("href",n.legacyUrl(),W),s(),k(" ",e("dashboard.legacySwitch.action")," "),s(4),k(" ",e("dashboard.legacySwitch.dismiss")," ")}}function ts(o,t){o&1&&P(0,es,20,8,"div",1)}var Vn="nm.legacySwitchBanner.dismissed",Mt=class o{env=M(ke);linkService=M(xe);dismissed=f(o.readDismissed());openArchive=T();legacyBase=S(()=>this.env.getLegacyBaseUrl());legacyUrl=S(()=>`${this.legacyBase()}/project/list`);isVisible=S(()=>this.linkService.isLinked()&&!this.dismissed()&&this.legacyBase()!=="");onDismiss(){this.dismissed.set(!0);try{localStorage.setItem(Vn,"1")}catch{}}static readDismissed(){try{return localStorage.getItem(Vn)==="1"}catch{return!1}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-legacy-switch-banner"]],outputs:{openArchive:"openArchive"},decls:1,vars:1,consts:[["role","status",1,"fixed","bottom-6","right-6","z-40","max-w-sm","rounded-2xl","border","border-divider","bg-gradient-popup","p-4","shadow-2xl","shadow-black/60"],["class","fixed bottom-6 right-6 z-40 max-w-sm rounded-2xl border border-divider bg-gradient-popup p-4 shadow-2xl shadow-black/60","role","status",4,"transloco"],[1,"flex","items-start","gap-3"],[1,"w-9","h-9","shrink-0","rounded-full","bg-brand/10","grid","place-items-center","text-brand"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6","aria-hidden","true",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","d","M13 10V3L4 14h7v7l9-11h-7z"],[1,"min-w-0"],[1,"text-sm","font-semibold","text-ink"],[1,"mt-1","text-xs","leading-relaxed","text-ink"],["type","button",1,"text-xs","font-semibold","text-brand","hover:underline",3,"click"],[1,"mt-3","flex","items-center","gap-3"],["target","_blank","rel","noopener noreferrer",1,"inline-flex","items-center","gap-1.5","text-xs","font-semibold","text-brand","hover:underline",3,"href"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","2","aria-hidden","true",1,"w-3.5","h-3.5"],["stroke-linecap","round","stroke-linejoin","round","d","M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"],["type","button",1,"text-xs","font-medium","text-ink","transition-colors",3,"click"]],template:function(e,n){e&1&&h(0,ts,1,0,"div",0),e&2&&g(n.isVisible()?0:-1)},dependencies:[R],encapsulation:2,changeDetection:0})};var ns=()=>({originX:"end",originY:"bottom",overlayX:"end",overlayY:"top",offsetY:6}),is=o=>[o],os=(o,t)=>t.value;function rs(o,t){if(o&1){let e=w();a(0,"button",7),_("click",function(){let i=d(e).$implicit,l=r(2);return m(l.select(i))}),v(),a(1,"svg",8),u(2,"path",9),c(),p(3),c()}if(o&2){let e=t.$implicit,n=r(2);j(n.optionClass(e.value===n.value())),b("disabled",e.disabled)("title",e.disabled?e.disabledReason??"":""),D("aria-selected",e.value===n.value()),s(),H("invisible",e.value!==n.value()),s(2),k(" ",e.label," ")}}function as(o,t){if(o&1&&(a(0,"div",5),E(1,rs,4,8,"button",6,os),c()),o&2){let e=r();s(),L(e.options())}}var Dt=class o{options=y.required();value=y.required();disabled=y(!1);triggerClass=y("shrink-0 flex items-center gap-2 px-3 py-1.5 rounded-lg bg-surface-input border border-divider text-ink hover:bg-white/5 transition-colors outline-none disabled:opacity-50 disabled:cursor-not-allowed");valueChange=T();isOpen=f(!1);selectedLabel(){return this.options().find(t=>t.value===this.value())?.label??this.value()}toggle(){this.isOpen.update(t=>!t)}select(t){t.disabled||(this.isOpen.set(!1),t.value!==this.value()&&this.valueChange.emit(t.value))}optionClass(t){return t?"bg-gradient-primary text-ink font-medium":"text-ink-off hover:text-ink hover:bg-white/5"}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-role-select"]],inputs:{options:[1,"options"],value:[1,"value"],disabled:[1,"disabled"],triggerClass:[1,"triggerClass"]},outputs:{valueChange:"valueChange"},decls:6,vars:15,consts:[["trigger","cdkOverlayOrigin"],["type","button","cdkOverlayOrigin","","aria-haspopup","listbox",3,"click","disabled"],["viewBox","0 -960 960 960","fill","currentColor",1,"w-3.5","h-3.5","text-ink","transition-transform"],["d","M480-360 280-560h400L480-360Z"],["cdkConnectedOverlay","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop","cdkConnectedOverlayPanelClass","font-xxs",3,"backdropClick","detach","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayPush","cdkConnectedOverlayPositions"],["role","listbox",1,"w-max","min-w-40","max-w-[min(22rem,calc(100vw-2rem))]","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","p-1.5","overflow-hidden"],["type","button","role","option",1,"w-full","flex","items-center","gap-2.5","px-3","py-2","rounded-lg","transition-colors","whitespace-nowrap","disabled:opacity-40","disabled:cursor-not-allowed",3,"disabled","title","class"],["type","button","role","option",1,"w-full","flex","items-center","gap-2.5","px-3","py-2","rounded-lg","transition-colors","whitespace-nowrap","disabled:opacity-40","disabled:cursor-not-allowed",3,"click","disabled","title"],["fill","currentColor","viewBox","0 0 20 20",1,"w-3.5","h-3.5","shrink-0"],["fill-rule","evenodd","d","M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule","evenodd"]],template:function(e,n){if(e&1){let i=w();a(0,"button",1,0),_("click",function(){return d(i),m(!n.disabled()&&n.toggle())}),p(2),v(),a(3,"svg",2),u(4,"path",3),c()(),P(5,as,3,0,"ng-template",4),_("backdropClick",function(){return d(i),m(n.isOpen.set(!1))})("detach",function(){return d(i),m(n.isOpen.set(!1))})}if(e&2){let i=q(1);j(n.triggerClass()),b("disabled",n.disabled()),D("aria-expanded",n.isOpen()),s(2),k(" ",n.selectedLabel()," "),s(),H("rotate-180",n.isOpen()),s(2),b("cdkConnectedOverlayOrigin",i)("cdkConnectedOverlayOpen",n.isOpen())("cdkConnectedOverlayHasBackdrop",!0)("cdkConnectedOverlayPush",!0)("cdkConnectedOverlayPositions",N(13,is,$(12,ns)))}},dependencies:[ae,re],styles:["[_nghost-%COMP%]{display:contents}"],changeDetection:0})};var ss=["renameInput"],ls=o=>({count:o}),cs=o=>({name:o}),ds=()=>({originX:"start",originY:"bottom",overlayX:"start",overlayY:"top",offsetY:6}),ms=o=>[o],ps=()=>({originX:"end",originY:"top",overlayX:"start",overlayY:"top",offsetX:8}),_s=o=>({originX:"start",originY:"top",overlayX:"end",overlayY:"top",offsetX:o}),us=(o,t)=>[o,t],hs=()=>[1,2,3],gs=(o,t)=>t.id,vs=(o,t)=>t.membershipId;function xs(o,t){if(o&1){let e=w();a(0,"div",12),_("backdropDismiss",function(){d(e);let i=r(2);return m(i.closeRename.emit())})("keydown.escape",function(){d(e);let i=r(2);return m(i.closeRename.emit())}),a(1,"div",13,0)(3,"h2",14),p(4),c(),a(5,"input",15,1),_("ngModelChange",function(i){d(e);let l=r(2);return m(l.renameValueChange.emit(i))})("keydown.enter",function(){d(e);let i=r(2);return m(i.confirmRename.emit())})("keydown.escape",function(){d(e);let i=r(2);return m(i.closeRename.emit())}),c(),a(7,"div",16)(8,"button",17),_("click",function(){d(e);let i=r(2);return m(i.closeRename.emit())}),p(9),c(),a(10,"button",18),_("click",function(){d(e);let i=r(2);return m(i.confirmRename.emit())}),p(11),c()()()()}if(o&2){let e=r().$implicit,n=r();s(4),C(n.renameTitle()),s(),b("ngModel",n.renameValue()),s(4),C(e("common.actions.cancel")),s(),b("disabled",!n.renameValue().trim()),s(),C(e("common.actions.rename"))}}function Cs(o,t){if(o&1){let e=w();a(0,"app-confirm-dialog",19),_("confirm",function(){d(e);let i=r(2);return m(i.confirmDelete.emit())})("cancel",function(){d(e);let i=r(2);return m(i.closeDelete.emit())}),c()}if(o&2){let e=r(2);b("config",e.deleteConfig())}}function bs(o,t){if(o&1&&(a(0,"span",29),p(1),c()),o&2){let e=r(2).$implicit,n=r();s(),k("\u2014 ",n.selectedIsPersonal()?e("dashboard.ui.personalProject"):e("dashboard.ui.teamProject"))}}function fs(o,t){if(o&1&&(a(0,"span",39),p(1),c()),o&2){let e=r(4).$implicit;s(),C(e("dashboard.modals.current"))}}function ws(o,t){if(o&1){let e=w();a(0,"div",42)(1,"button",43),_("click",function(){d(e);let i=r().$implicit,l=r(4);return m(l.chooseDestination(i.id,!0))}),v(),a(2,"svg",44),u(3,"path",45),c(),p(4),c(),V(),a(5,"button",43),_("click",function(){d(e);let i=r().$implicit,l=r(4);return m(l.chooseDestination(i.id,!1))}),v(),a(6,"svg",44),u(7,"path",46),c(),p(8),c()()}if(o&2){let e=r().$implicit,n=r(3).$implicit,i=r();s(),j(i.destinationClass(e.id,!0)),b("disabled",i.isSameDestination(e.id,!0)),s(3),k(" ",n("dashboard.ui.personalProject")," "),s(),j(i.destinationClass(e.id,!1)),b("disabled",i.isSameDestination(e.id,!1)),s(3),k(" ",n("dashboard.ui.teamProject")," ")}}function ys(o,t){if(o&1){let e=w();a(0,"button",36,3),_("click",function(){let i=d(e).$implicit,l=r(4);return m(l.openKindMenu(i.id))}),u(2,"app-workspace-avatar",37),a(3,"span",38),p(4),c(),h(5,fs,2,1,"span",39),v(),a(6,"svg",40),u(7,"path",41),c()(),P(8,ws,9,8,"ng-template",32),_("backdropClick",function(){d(e);let i=r(4);return m(i.openKindTeamId.set(null))})("detach",function(){d(e);let i=r(4);return m(i.openKindTeamId.set(null))})}if(o&2){let e=t.$implicit,n=q(1),i=r(4);j(i.selectedTeamId()===e.id?"bg-gradient-primary text-ink":"text-ink-off hover:text-ink hover:bg-white/5"),D("aria-selected",i.selectedTeamId()===e.id),s(2),b("name",e.name)("showTitle",!1),s(2),C(e.name),s(),g(e.id===i.moveTarget().teamId?5:-1),s(3),b("cdkConnectedOverlayOrigin",n)("cdkConnectedOverlayOpen",i.openKindTeamId()===e.id)("cdkConnectedOverlayHasBackdrop",!0)("cdkConnectedOverlayPush",!0)("cdkConnectedOverlayPositions",ge(15,us,$(12,ps),N(13,_s,-8)))}}function ks(o,t){if(o&1&&(a(0,"p",35),p(1),c()),o&2){let e=r(3).$implicit;s(),C(e("dashboard.modals.onlyWorkspace"))}}
1function Ts(o,t){if(o&1&&(a(0,"div",34),E(1,ys,9,18,null,null,gs),h(3,ks,2,1,"p",35),c()),o&2){let e=r(3);s(),L(e.teamService.teams()),s(2),g(e.hasMoveDestination()?-1:3)}}function Ss(o,t){if(o&1){let e=w();a(0,"div",20),_("backdropDismiss",function(){d(e);let i=r(2);return m(i.closeMoveToTeam.emit())})("keydown.escape",function(){d(e);let i=r(2);return m(i.closeMoveToTeam.emit())}),a(1,"div",13)(2,"div",21)(3,"h2",22),p(4),c(),a(5,"button",23),_("click",function(){d(e);let i=r(2);return m(i.closeMoveToTeam.emit())}),v(),a(6,"svg",24),u(7,"path",25),c()()(),V(),a(8,"button",26,2),_("click",function(){d(e);let i=r(2);return m(i.isDestinationOpen.set(!i.isDestinationOpen()))}),u(10,"app-workspace-avatar",27),a(11,"span",28),p(12),h(13,bs,2,1,"span",29),c(),v(),a(14,"svg",30),u(15,"path",31),c()(),P(16,Ts,4,1,"ng-template",32),_("backdropClick",function(){d(e);let i=r(2);return m(i.closeDestination())})("detach",function(){d(e);let i=r(2);return m(i.closeDestination())}),V(),a(17,"div",33)(18,"button",17),_("click",function(){d(e);let i=r(2);return m(i.closeMoveToTeam.emit())}),p(19),c(),a(20,"button",18),_("click",function(){d(e);let i=r(2);return m(i.confirmMoveToTeam.emit())}),p(21),c()()()()}if(o&2){let e=q(9),n=r().$implicit,i=r();s(4),k(" ",i.moveExtraCount()>0?n("dashboard.modals.moveTitleBulk",N(19,ls,i.moveExtraCount()+1)):n("dashboard.modals.moveTitle",N(21,cs,i.moveTarget().name))," "),s(),D("aria-label",n("common.actions.close")),s(3),D("aria-expanded",i.isDestinationOpen()),s(2),b("name",i.selectedWorkspaceName())("showTitle",!1),s(),j(i.selectedTeamId()?"text-ink":"text-ink-off"),s(),k(" ",i.selectedWorkspaceName()||n("dashboard.ui.chooseWorkspace")," "),s(),g(i.selectedTeamId()?13:-1),s(),H("rotate-180",i.isDestinationOpen()),s(2),b("cdkConnectedOverlayOrigin",e)("cdkConnectedOverlayOpen",i.isDestinationOpen())("cdkConnectedOverlayHasBackdrop",!0)("cdkConnectedOverlayPush",!0)("cdkConnectedOverlayPositions",N(24,ms,$(23,ds))),s(3),C(n("common.actions.cancel")),s(),b("disabled",!i.selectedTeamId()||i.isMoving()),s(),C(i.isMoving()?n("dashboard.ui.moving"):n("dashboard.ui.move"))}}function Ms(o,t){if(o&1){let e=w();a(0,"div",47),_("backdropDismiss",function(){d(e);let i=r(2);return m(i.closeCreateTeam.emit())})("keydown.escape",function(){d(e);let i=r(2);return m(i.closeCreateTeam.emit())}),a(1,"div",13)(2,"h2",48),p(3),c(),a(4,"p",49),p(5),c(),a(6,"div")(7,"label",50),p(8),c(),a(9,"input",51,4),_("ngModelChange",function(i){d(e);let l=r(2);return m(l.teamNameChange.emit(i))})("keydown.enter",function(){d(e);let i=r(2);return m(i.confirmCreateTeam.emit())}),c()(),a(11,"div",16)(12,"button",17),_("click",function(){d(e);let i=r(2);return m(i.closeCreateTeam.emit())}),p(13),c(),a(14,"button",18),_("click",function(){d(e);let i=r(2);return m(i.confirmCreateTeam.emit())}),p(15),c()()()()}if(o&2){let e=r().$implicit,n=r();s(3),C(e("dashboard.modals.createTeam")),s(2),C(e("dashboard.modals.createTeamBody")),s(3),C(e("dashboard.modals.teamName")),s(),b("ngModel",n.teamName())("placeholder",e("dashboard.modals.teamNamePlaceholder")),s(4),C(e("common.actions.cancel")),s(),b("disabled",!n.teamName().trim()||n.isCreatingTeam()),s(),C(n.isCreatingTeam()?e("dashboard.ui.creating"):e("dashboard.ui.createTeam"))}}function Ds(o,t){if(o&1&&(a(0,"p",61),p(1),c()),o&2){let e=r(4);s(),C(e.inviteError())}}function Vs(o,t){if(o&1){let e=w();a(0,"div",56)(1,"div",57)(2,"input",58),_("ngModelChange",function(i){d(e);let l=r(3);return m(l.emailChange.emit(i))})("keydown.enter",function(){d(e);let i=r(3);return m(i.confirmInvite.emit())}),c(),a(3,"app-role-select",59),_("valueChange",function(i){d(e);let l=r(3);return m(l.roleChange.emit(i))}),c()(),a(4,"button",60),_("click",function(){d(e);let i=r(3);return m(i.confirmInvite.emit())}),p(5),c()(),h(6,Ds,2,1,"p",61)}if(o&2){let e=r(2).$implicit,n=r();s(2),b("ngModel",n.email())("placeholder",e("dashboard.modals.emailPlaceholder")),D("aria-label",e("dashboard.modals.inviteMember")),s(),b("options",n.workspaceRoleOptions())("value",n.role()),s(),b("disabled",!n.email().trim()||n.isInviting()),s(),C(n.isInviting()?"\u2026":e("dashboard.ui.invite")),s(),g(n.inviteError()?6:-1)}}function js(o,t){o&1&&(a(0,"div",62),u(1,"div",63),a(2,"div",64),u(3,"div",65)(4,"div",66),c()())}function Ps(o,t){o&1&&(a(0,"div",54),E(1,js,5,0,"div",62,Ge),c()),o&2&&(s(),L($(0,hs)))}function Is(o,t){if(o&1){let e=w();a(0,"div",72)(1,"app-role-select",74),_("valueChange",function(i){d(e);let l=r().$implicit,x=r(4);return m(x.onRoleChange(l,i))}),c(),a(2,"button",75),_("click",function(){d(e);let i=r().$implicit,l=r(4);return l.pendingRemoveMember.set(i),m(l.showRemoveConfirm.set(!0))}),v(),a(3,"svg",76),u(4,"path",25),c()()()}if(o&2){let e=r().$implicit,n=r(3).$implicit,i=r();s(),b("options",i.workspaceRoleOptions())("value",e.role),s(),b("title",n("dashboard.modals.removeMember")),D("aria-label",n("dashboard.modals.removeMember"))}}function Es(o,t){if(o&1&&(a(0,"span",73),p(1),c()),o&2){let e=r().$implicit,n=r(4);s(),C(n.roleLabel(e.role))}}function Ls(o,t){if(o&1&&(a(0,"div",67)(1,"div",68),u(2,"app-user-avatar",69),a(3,"div",70)(4,"p",71),p(5),c(),a(6,"p",71),p(7),c()()(),h(8,Is,5,4,"div",72)(9,Es,2,1,"span",73),c()),o&2){let e=t.$implicit,n=r(4);s(2),b("name",e.name||e.email)("userId",e.userId)("showTitle",!1),s(3),C(e.name),s(2),C(e.email),s(),g(n.canManage()&&e.role!=="owner"?8:9)}}function Fs(o,t){if(o&1&&E(0,Ls,10,6,"div",67,vs),o&2){let e=r(3);L(e.members())}}function Ns(o,t){if(o&1){let e=w();a(0,"app-share-dialog-shell",52),_("close",function(){d(e);let i=r(2);return m(i.closeTeamSettings.emit())}),h(1,Vs,7,8),u(2,"div",53),a(3,"div",54)(4,"h3",55),p(5),c(),h(6,Ps,3,1,"div",54)(7,Fs,2,0),c()()}if(o&2){let e=r().$implicit,n=r();
1b("title",e("dashboard.modals.shareWorkspace"))("closeLabel",e("dashboard.ui.close")),s(),g(n.canManage()?1:-1),s(4),C(e("dashboard.modals.members")),s(),g(n.isLoadingMembers()?6:7)}}function Rs(o,t){if(o&1){let e=w();a(0,"app-confirm-dialog",77),_("confirm",function(){d(e);let i=r(2);return i.removeMember.emit(i.pendingRemoveMember()),m(i.showRemoveConfirm.set(!1))})("cancel",function(){d(e);let i=r(2);return m(i.showRemoveConfirm.set(!1))}),c()}if(o&2){let e=r(2);b("config",e.removeMemberConfig())}}function Os(o,t){if(o&1&&(G(0),h(1,xs,12,5,"div",6),h(2,Cs,1,1,"app-confirm-dialog",7),h(3,Ss,22,26,"div",8),h(4,Ms,16,8,"div",9),h(5,Ns,8,5,"app-share-dialog-shell",10),h(6,Rs,1,1,"app-confirm-dialog",11),U()),o&2){let e=r();s(),g(e.showRename()?1:-1),s(),g(e.showDelete()&&e.pendingDeleteProject()?2:-1),s(),g(e.showMoveToTeam()&&e.moveTarget()?3:-1),s(),g(e.showCreateTeam()?4:-1),s(),g(e.showTeamSettings()?5:-1),s(),g(e.showRemoveConfirm()&&e.pendingRemoveMember()?6:-1)}}var Vt=class o{transloco=M(Y);teamService=M(K);showRename=y(!1);renameTitle=y("Rename Project");renameValue=y("");renameValueChange=T();confirmRename=T();closeRename=T();renameInput=oe("renameInput");injector=M(Qt);showDelete=y(!1);pendingDeleteProject=y(null);deleteExtraCount=y(0);confirmDelete=T();closeDelete=T();showMoveToTeam=y(!1);moveTarget=y(null);moveExtraCount=y(0);selectedTeamId=y(null);selectedIsPersonal=y(!1);selectedTeamIdChange=T();isMoving=y(!1);confirmMoveToTeam=T();closeMoveToTeam=T();selectedIsPersonalChange=T();isDestinationOpen=f(!1);openKindTeamId=f(null);hasMoveDestination=S(()=>{let t=this.moveTarget();return!!t&&this.teamService.teams().some(e=>e.id!==t.teamId)});selectedWorkspaceName=S(()=>this.teamService.teams().find(t=>t.id===this.selectedTeamId())?.name??"");openKindMenu(t){this.openKindTeamId.set(this.openKindTeamId()===t?null:t)}closeDestination(){this.openKindTeamId.set(null),this.isDestinationOpen.set(!1)}isSameDestination(t,e){let n=this.moveTarget();return!!n&&n.teamId===t&&n.isPersonal===e}destinationClass(t,e){return this.selectedTeamId()===t&&this.selectedIsPersonal()===e?"bg-gradient-primary text-ink font-medium":"text-ink-off hover:text-ink hover:bg-white/5"}chooseDestination(t,e){this.selectedTeamIdChange.emit(t),this.selectedIsPersonalChange.emit(e),this.closeDestination()}showCreateTeam=y(!1);teamName=y("");teamNameChange=T();isCreatingTeam=y(!1);confirmCreateTeam=T();closeCreateTeam=T();showTeamSettings=y(!1);members=y([]);isLoadingMembers=y(!1);canManage=y(!1);email=y("");emailChange=T();role=y("editor");roleChange=T();isInviting=y(!1);inviteError=y(null);confirmInvite=T();removeMember=T();changeMemberRole=T();closeTeamSettings=T();showRemoveConfirm=f(!1);pendingRemoveMember=f(null);deleteConfig(){let t=this.pendingDeleteProject(),e=this.deleteExtraCount();return{title:this.transloco.translate("dashboard.ui.moveToTrash"),subtitle:this.transloco.translate("dashboard.confirm.restoreFromTrash"),message:e>0?this.transloco.translate("dashboard.confirm.moveProjectsBody",{name:t?.name??"",extra:e}):this.transloco.translate("dashboard.confirm.moveProjectBody",{name:t?.name??""}),confirmLabel:this.transloco.translate("dashboard.ui.moveToTrash"),variant:"danger",icon:"trash"}}removeMemberConfig(){let t=this.pendingRemoveMember();return{title:this.transloco.translate("dashboard.ui.removeMember"),subtitle:this.transloco.translate("dashboard.confirm.undoneByReinviting"),message:this.transloco.translate("dashboard.confirm.removeMemberBody",{name:t?.name??""}),confirmLabel:this.transloco.translate("dashboard.confirm.remove"),variant:"danger",icon:"warning"}}workspaceRoleOptions=S(()=>[{value:"admin",label:this.transloco.translate("dashboard.modals.roleAdmin")},{value:"editor",label:this.transloco.translate("dashboard.modals.roleEditor")},{value:"viewer",label:this.transloco.translate("dashboard.modals.roleViewer")}]);roleLabel(t){return t==="owner"?this.transloco.translate("dashboard.modals.roleOwner"):this.workspaceRoleOptions().find(e=>e.value===t)?.label??t}onRoleChange(t,e){this.changeMemberRole.emit({member:t,newRole:e})}focusRename=We(()=>{let t=this.renameInput()?.nativeElement;t&&Kt(()=>{queueMicrotask(()=>{t.focus(),t.select()})},{injector:this.injector})});static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-dashboard-modals"]],viewQuery:function(e,n){e&1&&te(n.renameInput,ss,5),e&2&&ne()},inputs:{showRename:[1,"showRename"],renameTitle:[1,"renameTitle"],renameValue:[1,"renameValue"],showDelete:[1,"showDelete"],pendingDeleteProject:[1,"pendingDeleteProject"],deleteExtraCount:[1,"deleteExtraCount"],showMoveToTeam:[1,"showMoveToTeam"],moveTarget:[1,"moveTarget"],moveExtraCount:[1,"moveExtraCount"],selectedTeamId:[1,"selectedTeamId"],selectedIsPersonal:[1,"selectedIsPersonal"],isMoving:[1,"isMoving"],showCreateTeam:[1,"showCreateTeam"],teamName:[1,"teamName"],isCreatingTeam:[1,"isCreatingTeam"],showTeamSettings:[1,"showTeamSettings"],members:[1,"members"],isLoadingMembers:[1,"isLoadingMembers"],canManage:[1,"canManage"],email:[1,"email"],role:[1,"role"],isInviting:[1,"isInviting"],inv
vendor: 7,481 bytes, line 1
1iteError:[1,"inviteError"]},outputs:{renameValueChange:"renameValueChange",confirmRename:"confirmRename",closeRename:"closeRename",confirmDelete:"confirmDelete",closeDelete:"closeDelete",selectedTeamIdChange:"selectedTeamIdChange",confirmMoveToTeam:"confirmMoveToTeam",closeMoveToTeam:"closeMoveToTeam",selectedIsPersonalChange:"selectedIsPersonalChange",teamNameChange:"teamNameChange",confirmCreateTeam:"confirmCreateTeam",closeCreateTeam:"closeCreateTeam",emailChange:"emailChange",roleChange:"roleChange",confirmInvite:"confirmInvite",removeMember:"removeMember",changeMemberRole:"changeMemberRole",closeTeamSettings:"closeTeamSettings"},decls:1,vars:0,consts:[["renamePanel",""],["renameInput",""],["destinationTrigger","cdkOverlayOrigin"],["kindTrigger","cdkOverlayOrigin"],["teamInput",""],[4,"transloco"],["role","dialog","aria-modal","true","aria-labelledby","rename-dialog-title","appBackdropDismiss","",1,"fixed","inset-0","z-50","flex","items-center","justify-center","bg-black/50","backdrop-blur-sm"],["dialogId","delete",3,"config"],["role","dialog","aria-modal","true","aria-labelledby","move-dialog-title","appBackdropDismiss","",1,"fixed","inset-0","z-50","flex","items-center","justify-center","bg-black/50","backdrop-blur-sm"],["role","dialog","aria-modal","true","aria-labelledby","team-dialog-title","appBackdropDismiss","",1,"fixed","inset-0","z-50","flex","items-center","justify-center","bg-black/50","backdrop-blur-sm"],["widthClass","max-w-2xl",3,"title","closeLabel"],["dialogId","remove-member",3,"config"],["role","dialog","aria-modal","true","aria-labelledby","rename-dialog-title","appBackdropDismiss","",1,"fixed","inset-0","z-50","flex","items-center","justify-center","bg-black/50","backdrop-blur-sm",3,"backdropDismiss","keydown.escape"],[1,"bg-gradient-popup","border","border-divider","rounded-2xl","shadow-2xl","w-full","max-w-sm","mx-4","p-6"],["id","rename-dialog-title",1,"text-base","font-bold","text-ink","mb-4"],["type","text",1,"w-full","px-3","py-2","text-sm","bg-surface-input","border","border-divider","rounded-lg","text-ink","placeholder-ink-off","focus:outline-none","focus:ring-2","focus:ring-brand","focus:border-transparent",3,"ngModelChange","keydown.enter","keydown.escape","ngModel"],[1,"flex","items-center","justify-end","gap-3","mt-4"],[1,"px-4","py-2","text-sm","font-medium","text-ink","transition-colors",3,"click"],[1,"px-5","py-2","text-sm","font-medium","bg-gradient-primary","hover:brightness-110","active:brightness-95","text-ink","rounded-full","transition-[filter]","disabled:opacity-50",3,"click","disabled"],["dialogId","delete",3,"confirm","cancel","config"],["role","dialog","aria-modal","true","aria-labelledby","move-dialog-title","appBackdropDismiss","",1,"fixed","inset-0","z-50","flex","items-center","justify-center","bg-black/50","backdrop-blur-sm",3,"backdropDismiss","keydown.escape"],[1,"flex","items-start","justify-between","gap-3","mb-4"],["id","move-dialog-title",1,"text-base","font-semibold","text-ink"],["type","button",1,"shrink-0","text-ink","transition-colors",3,"click"],["viewBox","0 -960 960 960","fill","currentColor",1,"w-5","h-5"],["d","m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"],["type","button","cdkOverlayOrigin","","aria-haspopup","listbox",1,"dash-dropdown-label","w-full","flex","items-center","gap-3","px-3","py-2.5","rounded-xl","border","border-divider","hover:bg-white/5","transition-colors",3,"click"],["size","md",3,"name","showTitle"],[1,"flex-1","text-left","text-sm"],[1,"text-ink"],["viewBox","0 -960 960 960","fill","currentColor",1,"w-4","h-4","shrink-0","text-ink","transition-transform"],["d","M480-360 280-560h400L480-360Z"],["cdkConnectedOverlay","","cdkConnectedOverlayPanelClass","dashboard-type","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","detach","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayPush","cdkConnectedOverlayPositions"],[1,"flex","items-center","justify-end","gap-3","mt-5"],["role","listbox",1,"w-80","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","p-1.5"],[1,"px-3","py-2","text-xs","text-ink"],["type","button","role","option","cdkOverlayOrigin","",1,"w-full","flex","items-center","gap-3","px-3","py-2","rounded-lg","transition-colors",3,"click"],["size","sm",3,"name","showTitle"],[1,"flex-1","text-left","text-sm","truncate"],[1,"text-xs","text-ink","shrink-0"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","2",1,"w-4","h-4","shrink-0","text-ink"],["stroke-linecap","round","stroke-linejoin","round","d","M9 5l7 7-7 7"],["role","listbox",1,"w-52","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","p-1.5"],["type","button","role","option",1,"w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","rounded-lg","transition-colors","disabled:opacity-40","disabled:cursor-not-allowed",3,"click","disabled"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","d","M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"],["stroke-linecap","round","stroke-linejoin","round","d","M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z"],["role","dialog","aria-modal","true","aria-labelledby","team-dialog-title","appBackdropDismiss","",1,"fixed","inset-0","z-50","flex","items-center","justify-center","bg-black/50","backdrop-blur-sm",3,"backdropDismiss","keydown.escape"],["id","team-dialog-title",1,"text-base","font-bold","text-ink","mb-1"],[1,"text-xs","text-ink","mb-4"],[1,"block","text-xs","font-medium","text-ink","mb-1.5"],["type","text",1,"w-full","px-3","py-2","text-sm","bg-surface-input","border","border-divider","rounded-lg","text-ink","placeholder-ink-off","focus:outline-none","focus:ring-2","focus:ring-brand","focus:border-transparent",3,"ngModelChange","keydown.enter","ngModel","placeholder"],["widthClass","max-w-2xl",3,"close","title","closeLabel"],[1,"border-t","border-divider"],[1,"space-y-3"],[1,"font-medium","text-ink"],[1,"flex","gap-2"],[1,"flex","flex-1","min-w-0","bg-surface-input","border","border-divider","rounded-xl","overflow-hidden"],["type","email",1,"flex-1","min-w-0","bg-transparent","px-4","py-2.5","text-ink","placeholder-ink-off","focus:outline-none",3,"ngModelChange","keydown.enter","ngModel","placeholder"],["triggerClass","shrink-0 flex items-center gap-2 px-4 text-ink border-l border-divider hover:bg-white/5 transition-colors outline-none",3,"valueChange","options","value"],["type","button",1,"shrink-0","px-5","py-2.5","rounded-xl","border","border-divider","text-ink","hover:bg-white/5","transition-colors","disabled:opacity-40","disabled:cursor-not-allowed",3,"click","disabled"],[1,"text-danger"],[1,"flex","items-center","gap-3"],[1,"w-8","h-8","rounded-full","bg-white/10","animate-pulse"],[1,"flex-1","space-y-1.5"],[1,"h-3","bg-white/10","rounded","animate-pulse","w-1/2"],[1,"h-2.5","bg-white/10","rounded","animate-pulse","w-3/4"],[1,"flex","items-center","justify-between","gap-3","group/member"],[1,"flex","items-center","gap-3","min-w-0"],["size","md",3,"name","userId","showTitle"],[1,"min-w-0"],[1,"text-ink","truncate"],[1,"flex","items-center","gap-1","
1shrink-0"],[1,"shrink-0","text-ink"],[3,"valueChange","options","value"],["type","button",1,"opacity-0","group-hover/member:opacity-100","focus-visible:opacity-100","size-7","grid","place-items-center","rounded-lg","text-ink","hover:text-danger","hover:bg-danger/10","transition-colors","outline-none",3,"click","title"],["viewBox","0 -960 960 960","fill","currentColor",1,"w-4","h-4"],["dialogId","remove-member",3,"confirm","cancel","config"]],template:function(e,n){e&1&&P(0,Os,7,6,"ng-container",5)},dependencies:[Se,Ze,Je,et,me,ae,re,Ce,R,it,dn,Dt,Pe,pe],encapsulation:2,changeDetection:0})};var As=["menuEl"];function Bs(o,t){if(o&1){let e=w();a(0,"button",13),_("click",function(){d(e);let i=r(),l=r(2);return l.share.emit(i.project),m(l.close.emit())}),v(),a(1,"svg",5),u(2,"path",14),c(),p(3),c()}if(o&2){let e=r(2).$implicit;s(3),k(" ",e("dashboard.ui.share")," ")}}function Hs(o,t){if(o&1){let e=w();a(0,"button",15),_("click",function(){d(e);let i=r(),l=r(2);return l.duplicate.emit(i.project),m(l.close.emit())}),v(),a(1,"svg",5),u(2,"path",16),c(),p(3),c(),V(),a(4,"button",15),_("click",function(){d(e);let i=r(),l=r(2);return l.downloadCopy.emit(i.project),m(l.close.emit())}),v(),a(5,"svg",5),u(6,"path",17),c(),p(7),c()}if(o&2){let e=r(2).$implicit,n=r();b("disabled",n.isDuplicating()),s(3),k(" ",n.isDuplicating()?e("dashboard.ui.duplicating"):e("dashboard.ui.duplicate")," "),s(),b("disabled",n.isDownloadingCopy()),s(3),k(" ",n.isDownloadingCopy()?e("dashboard.ui.downloadingCopy"):e("dashboard.ui.downloadCopy")," ")}}function $s(o,t){if(o&1){let e=w();a(0,"button",4),_("click",function(){d(e);let i=r(2),l=r(2);return l.moveToTeam.emit(i.project),m(l.close.emit())}),v(),a(1,"svg",5),u(2,"path",22),c(),p(3),c()}if(o&2){let e=r(3).$implicit;s(3),k(" ",e("dashboard.ui.moveFile")," ")}}function Gs(o,t){if(o&1){let e=w();u(0,"div",8),a(1,"button",4),_("click",function(){d(e);let i=r(),l=r(2);return l.rename.emit(i.project),m(l.close.emit())}),v(),a(2,"svg",5),u(3,"path",18),c(),p(4),c(),h(5,$s,4,1,"button",19),V(),a(6,"button",20),_("click",function(){d(e);let i=r(),l=r(2);return l.delete.emit(i.project),m(l.close.emit())}),v(),a(7,"svg",5),u(8,"path",21),c(),p(9),c()}if(o&2){let e=r(2).$implicit,n=r();s(4),k(" ",e("dashboard.ui.rename")," "),s(),g(n.canMove()?5:-1),s(4),k(" ",e("dashboard.ui.moveToTrashLower")," ")}}function Us(o,t){if(o&1){let e=w();a(0,"div",3,0),_("keydown.escape",function(){d(e);let i=r(2);return m(i.close.emit())})("keydown.arrowDown",function(){d(e);let i=r(2);return m(i.focusNext(1))})("keydown.arrowUp",function(){d(e);let i=r(2);return m(i.focusNext(-1))}),a(2,"button",4),_("click",function(){let i=d(e),l=r(2);return l.openProject.emit(i.project),m(l.close.emit())}),v(),a(3,"svg",5),u(4,"path",6),c(),p(5),c(),V(),a(6,"button",4),_("click",function(){let i=d(e),l=r(2);return l.openInNewTab.emit(i.project),m(l.close.emit())}),v(),a(7,"svg",5),u(8,"path",7),c(),p(9),c(),V(),u(10,"div",8),a(11,"button",9),_("click",function(){let i=d(e),l=r(2);return l.toggleFavorite.emit(i.project.id),m(l.close.emit())}),v(),a(12,"svg",5),u(13,"path",10),c(),p(14),c(),V(),u(15,"div",8),a(16,"button",4),_("click",function(){let i=d(e),l=r(2);return l.copyLink.emit(i.project),m(l.close.emit())}),v(),a(17,"svg",5),u(18,"path",11),c(),p(19),c(),h(20,Bs,4,1,"button",12),h(21,Hs,8,4),h(22,Gs,10,3),c()}if(o&2){let e=t,n=r().$implicit,i=r();Z("top",e.y,"px")("left",e.x,"px"),D("aria-label",n("dashboard.projects.actions")),s(5),k(" ",n("dashboard.ui.open")," "),s(4),k(" ",n("dashboard.ui.openNewTab")," "),s(5),k(" ",i.isFavorite()?n("dashboard.ui.removeFavorite"):n("dashboard.ui.addFavorite")," "),s(5),k(" ",n("dashboard.ui.copyLink")," "),s(),g(i.canShare()?20:-1),s(),g(i.canDuplicate()?21:-1),s(),g(i.canManage()?22:-1)}}function zs(o,t){if(o&1&&(G(0),h(1,Us,23,12,"div",2),U()),o&2){let e,n=r();s(),g((e=n.position())?1:-1,e)}}var jt=class o{position=y(null);isFavorite=y(!1);isDuplicating=y(!1);isDownloadingCopy=y(!1);openProject=T();openInNewTab=T();toggleFavorite=T();copyLink=T();share=T();duplicate=T();downloadCopy=T();rename=T();moveToTeam=T();delete=T();close=T();canManage=S(()=>this.position()?.project.role==="owner");
1canDuplicate=S(()=>{let t=this.position()?.project;return t?hn(t.role):!1});canShare=S(()=>{let t=this.position()?.project;return t?rt(t.role):!1});canMove=S(()=>{let t=this.position()?.project;return t?at(t.role):!1});menuEl=oe("menuEl");teamService=M(K);keydownHandler=t=>{t.key==="Escape"&&this.close.emit()};clickOutsideHandler=t=>{let e=this.menuEl()?.nativeElement;e&&!e.contains(t.target)&&this.close.emit()};attachTimer;ngOnInit(){document.addEventListener("keydown",this.keydownHandler),this.attachTimer=setTimeout(()=>{document.addEventListener("click",this.clickOutsideHandler),this.menuEl()?.nativeElement?.querySelector(".menu-item")?.focus()},10)}ngOnDestroy(){clearTimeout(this.attachTimer),document.removeEventListener("keydown",this.keydownHandler),document.removeEventListener("click",this.clickOutsideHandler)}focusNext(t){let e=this.menuEl()?.nativeElement;if(!e)return;let n=Array.from(e.querySelectorAll(".menu-item")),i=document.activeElement,x=(n.indexOf(i)+t+n.length)%n.length;n[x]?.focus()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-context-menu"]],viewQuery:function(e,n){e&1&&te(n.menuEl,As,5),e&2&&ne()},inputs:{position:[1,"position"],isFavorite:[1,"isFavorite"],isDuplicating:[1,"isDuplicating"],isDownloadingCopy:[1,"isDownloadingCopy"]},outputs:{openProject:"openProject",openInNewTab:"openInNewTab",toggleFavorite:"toggleFavorite",copyLink:"copyLink",share:"share",duplicate:"duplicate",downloadCopy:"downloadCopy",rename:"rename",moveToTeam:"moveToTeam",delete:"delete",close:"close"},features:[he([ve("dashboard")])],decls:1,vars:0,consts:[["menuEl",""],[4,"transloco"],["role","menu",1,"fixed","z-50","w-56","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","py-1.5","overflow-hidden",3,"top","left"],["role","menu",1,"fixed","z-50","w-56","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","py-1.5","overflow-hidden",3,"keydown.escape","keydown.arrowDown","keydown.arrowUp"],["role","menuitem",1,"menu-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-white/5","transition-colors",3,"click"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.8",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","d","M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"],["stroke-linecap","round","stroke-linejoin","round","d","M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"],[1,"my-1","border-t","border-divider"],["role","menuitem",1,"menu-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-white/5","hover:text-warning","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"],["stroke-linecap","round","stroke-linejoin","round","d","M13.828 10.172a4 4 0 010 5.656l-3 3a4 4 0 01-5.656-5.656l1.5-1.5m4.5-4.5l1.5-1.5a4 4 0 015.656 5.656l-3 3a4 4 0 01-5.656 0"],["role","menuitem",1,"menu-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","font-medium","text-brand","hover:bg-brand/10","transition-colors"],["role","menuitem",1,"menu-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","font-medium","text-brand","hover:bg-brand/10","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z"],["role","menuitem",1,"menu-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-white/5","transition-colors","disabled:opacity-50",3,"click","disabled"],["stroke-linecap","round","stroke-linejoin","round","d","M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"],["stroke-linecap","round","stroke-linejoin","round","d","M12 4v12m0 0l-4-4m4 4l4-4M4 17v2a2 2 0 002 2h12a2 2 0 002-2v-2"],["stroke-linecap","round","stroke-linejoin","round","d","M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"],["role","menuitem",1,"menu-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-white/5","transition-colors"],["role","menuitem",1,"menu-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-danger/10","hover:text-danger","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"],["stroke-linecap","round","stroke-linejoin","round","d","M3 7a2 2 0 012-2h3.586a1 1 0 01.707.293l1.414 1.414a1 1 0 00.707.293H19a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"]],template:function(e,n){e&1&&P(0,zs,2,1,"ng-container",1)},dependencies:[R],styles:["button[_ngcontent-%COMP%]:focus{outline:none}button[_ngcontent-%COMP%]:focus-visible{outline:none}"],changeDetection:0})};var Ws=["menuEl"],Qs=o=>({count:o});function qs(o,t){if(o&1){let e=w();a(0,"div",3,0),_("keydown.escape",function(){d(e);let i=r(2);return m(i.close.emit())})("keydown.arrowDown",function(){d(e);let i=r(2);return m(i.focusNext(1))})("keydown.arrowUp",function(){d(e);let i=r(2);return m(i.focusNext(-1))}),a(2,"p",4),p(3),c(),u(4,"div",5),a(5,"button",6),_("click",function(){d(e);let i=r(2);return i.move.emit(),m(i.close.emit())}),v(),a(6,"svg",7),u(7,"path",8),c(),p(8),c(),V(),a(9,"button",9),_("click",function(){d(e);let i=r(2);return i.duplicate.emit(),m(i.close.emit())}),v(),a(10,"svg",7),u(11,"path",10),c(),p(12),c(),V(),u(13,"div",5),a(14,"button",11),_("click",function(){d(e);let i=r(2);return i.delete.emit(),m(i.close.emit())}),v(),a(15,"svg",7),u(16,"path",12),c(),p(17),c()()}if(o&2){let e=t,n=r().$implicit,i=r();Z("top",e.y,"px")("left",e.x,"px"),D("aria-label",n("dashboard.projects.actions")),s(3),k(" ",n("dashboard.ui.selectedCount",N(12,Qs,e.count))," "),s(2),b("disabled",!i.canMove()),D("aria-disabled",i.canMove()?null:!0)("title",i.canMove()?null:n("dashboard.ui.moveOwnerOnlyHint")),s(3),k(" ",n("dashboard.ui.move")," "),s(4),k(" ",n("dashboard.ui.duplicate")," "),s(5),k(" ",n("dashboard.ui.moveToTrashLower")," ")}}function Ys(o,t){if(o&1&&(G(0),h(1,qs,18,14,"div",2),U()),o&2){let e,n=r();s(),g((e=n.position())?1:-1,e)}}var Pt=class o{position=y(null);canMove=y(!0);move=T();duplicate=T();delete=T();close=T();menuEl=oe("menuEl");keydownHandler=t=>{t.key==="Escape"&&this.close.emit()};clickOutsideHandler=t=>{let e=this.menuEl()?.nativeElement;e&&!e.contains(t.target)&&this.close.emit()};attachTimer;ngOnInit(){document.addEventListener("keydown",this.keydownHandler),this.attachTimer=setTimeout(()=>{document.addEventListener("click",this.clickOutsideHandler),this.menuEl()?.nativeElement?.querySelector(".menu-item:not(:disabled)")?.focus()},10)}ngOnDestroy(){clearTimeout(this.attachTimer),document.removeEventListener("keydown",this.keydownHandler),document.removeEventListener("click",this.clickOutsideHandler)}focusNext(t){let e=this.menuEl()?.nativeElement;if(!e)return;let n=Array.from(e.querySelectorAll(".menu-item:not(:disabled)")),i=document.activeElement,x=(n.indexOf(i)+t+n.length)%n.length;n[x]?.focus()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-bulk-context-menu"]],viewQuery:function(e,n){e&1&&te(n.menuEl,Ws,5),e&2&&ne()},inputs:{position:[1,"position"],canMove:[1,"canMove"]},outputs:{move:"move",duplicate:"duplicate",delete:"delete",close:"close"},features:[he([ve("dashboard")])],decls:1,vars:0,consts:[["menuEl",""],[4,"transloco"],["role","menu",1,"fixed","z-50","w-
156","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","py-1.5","overflow-hidden",3,"top","left"],["role","menu",1,"fixed","z-50","w-56","bg-gradient-popup","border","border-divider","rounded-xl","shadow-2xl","py-1.5","overflow-hidden",3,"keydown.escape","keydown.arrowDown","keydown.arrowUp"],[1,"px-3","py-1.5","text-xs","font-medium","text-ink-off"],[1,"my-1","border-t","border-divider"],["role","menuitem",1,"menu-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-white/5","transition-colors",3,"click","disabled"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.8",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","d","M3 7a2 2 0 012-2h3.586a1 1 0 01.707.293l1.414 1.414a1 1 0 00.707.293H19a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"],["role","menuitem",1,"menu-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-white/5","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"],["role","menuitem",1,"menu-item","w-full","flex","items-center","gap-2.5","px-3","py-2","text-sm","text-ink","hover:bg-danger/10","hover:text-danger","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"]],template:function(e,n){e&1&&P(0,Ys,2,1,"ng-container",1)},dependencies:[R],styles:["button[_ngcontent-%COMP%]:focus{outline:none}button[_ngcontent-%COMP%]:focus-visible{outline:none}"],changeDetection:0})};function Ks(o,t){if(o&1){let e=w();a(0,"app-account-dialog",21),_("close",function(){d(e);let i=r(3);return m(i.accountPane.set(null))})("logout",function(){d(e);let i=r(3);return i.accountPane.set(null),m(i.logout())}),c()}o&2&&b("initialPane",t)}function Xs(o,t){if(o&1){let e=w();a(0,"app-dashboard-sidebar",22),_("navigate",function(i){d(e);let l=r(3);return m(l.onNavigate(i))})("switchWorkspace",function(i){d(e);let l=r(3);return m(l.switchToWorkspace(i))})("teamSettings",function(i){d(e);let l=r(3);return m(l.openTeamSettings(i))})("createTeam",function(){d(e);let i=r(3);return m(i.openCreateTeamModal())}),c()}if(o&2){let e=r(3);b("activeView",e.dashboardService.activeView())}}function Zs(o,t){if(o&1){let e=w();a(0,"button",23),_("click",function(){d(e);let i=r(3);return m(i.showEmptyTrashConfirm.set(!0))}),p(1),v(),a(2,"svg",24),u(3,"path",25),c()()}if(o&2){let e=r(2).$implicit,n=r();b("disabled",n.isEmptyingTrash()),s(),k(" ",e("dashboard.ui.emptyTrash")," ")}}function Js(o,t){if(o&1){let e=w();a(0,"app-resource-grid",28),_("restore",function(i){d(e);let l=r(4);return m(l.restoreResource(i))}),c()}if(o&2){let e=r(4);b("gridView",e.gridView())("assets",e.removedAssets())("isLoading",e.isLoadingRemoved())("isBusy",e.isRestoringResource())}}function el(o,t){if(o&1){let e=w();a(0,"app-trash-view",29),_("restore",function(i){d(e);let l=r(4);return m(l.restoreProject(i))})("permanentDelete",function(i){d(e);let l=r(4);return m(l.permanentDeleteProject(i))}),c()}if(o&2){let e=r(4);b("items",e.dashboardService.filteredTrashProjects())("gridView",e.gridView())("isLoading",e.dashboardService.isTrashLoading())("isBusy",e.isRestoring()||e.isPermanentDeleting()||e.isEmptyingTrash())}}function tl(o,t){if(o&1&&h(0,Js,1,4,"app-resource-grid",26)(1,el,1,4,"app-trash-view",27),o&2){let e=r(3);g(e.trashTab()==="resources"?0:1)}}function nl(o,t){if(o&1){let e=w();a(0,"app-resource-grid",30),_("copyLink",function(i){d(e);let l=r(3);return m(l.copyResourceLink(i))})("rename",function(i){d(e);let l=r(3);return m(l.openResourceRename(i))})("remove",function(i){d(e);let l=r(3);return m(l.pendingRemoveResource.set(i))})("toggleFavorite",function(i){d(e);let l=r(3);return m(l.toggleResourceFavorite(i))})("loadMore",function(){d(e);let i=r(3);return m(i.assetService.loadMore())}),c()}if(o&2){let e=r(3);b("assets",e.assetService.assets())("isLoading",e.assetService.loading())("error",e.assetService.error())("searchQuery",e.assetService.query())("hasMore",e.assetService.hasMore())("isTogglingFavorite",e.isTogglingResourceFavorite())("gridView",e.gridView())}}function il(o,t){if(o&1){let e=w();a(0,"app-resource-grid",30),_("copyLink",function(i){d(e);let l=r(4);return m(l.copyResourceLink(i))})("rename",function(i){d(e);let l=r(4);return m(l.openResourceRename(i))})("remove",function(i){d(e);let l=r(4);return m(l.pendingRemoveResource.set(i))})("toggleFavorite",function(i){d(e);let l=r(4);return m(l.toggleResourceFavorite(i))}
1)("loadMore",function(){d(e);let i=r(4);return m(i.assetService.loadMore())}),c()}if(o&2){let e=r(4);b("assets",e.assetService.assets())("isLoading",e.assetService.loading())("error",e.assetService.error())("searchQuery",e.assetService.query())("hasMore",e.assetService.hasMore())("isTogglingFavorite",e.isTogglingResourceFavorite())("gridView",e.gridView())}}function ol(o,t){if(o&1){let e=w();a(0,"app-project-grid",32),_("openProject",function(i){d(e);let l=r(4);return m(l.navigateToProject(i))})("select",function(i){d(e);let l=r(4);return m(l.onProjectSelect(i))})("clearSelection",function(){d(e);let i=r(4);return m(i.clearSelection())})("menuClick",function(i){d(e);let l=r(4);return m(l.onCardMenuClick(i))})("toggleFavorite",function(i){d(e);let l=r(4);return m(l.dashboardService.toggleFavorite(i))})("createProject",function(){d(e);let i=r(4);return m(i.quickCreateProject())}),c()}if(o&2){let e=r(4);b("projects",e.dashboardService.filteredProjects())("favoriteIds",e.dashboardService.favoriteProjectIds())("isLoading",e.dashboardService.isLoading())("gridView",e.gridView())("error",e.dashboardService.error())("searchQuery",e.dashboardService.searchQuery())("isCreating",e.isCreating())("emptyMessage",e.emptyMessage())("emptySubMessage",e.emptySubMessage())("sectionLabel",e.sectionLabel())("selectedIds",e.selectedProjectIds())}}function rl(o,t){if(o&1&&h(0,il,1,7,"app-resource-grid",10)(1,ol,1,11,"app-project-grid",31),o&2){let e=r(3);g(e.dashboardService.recentsTab()==="resources"?0:1)}}function al(o,t){if(o&1){let e=w();a(0,"app-resource-grid",34),_("copyLink",function(i){d(e);let l=r(4);return m(l.copyResourceLink(i))})("rename",function(i){d(e);let l=r(4);return m(l.openResourceRename(i))})("remove",function(i){d(e);let l=r(4);return m(l.pendingRemoveResource.set(i))})("toggleFavorite",function(i){d(e);let l=r(4);return m(l.toggleResourceFavorite(i))})("loadMore",function(){d(e);let i=r(4);return m(i.assetService.loadMore())}),c()}if(o&2){let e=r(4);b("assets",e.assetService.assets())("isLoading",e.assetService.loading())("error",e.assetService.error())("searchQuery",e.assetService.query())("hasMore",e.assetService.hasMore())("isTogglingFavorite",e.isTogglingResourceFavorite())("gridView",e.gridView())("emptyMessage",e.emptyMessage())("emptySubMessage",e.emptySubMessage())}}function sl(o,t){if(o&1){let e=w();a(0,"app-project-grid",32),_("openProject",function(i){d(e);let l=r(4);return m(l.navigateToProject(i))})("select",function(i){d(e);let l=r(4);return m(l.onProjectSelect(i))})("clearSelection",function(){d(e);let i=r(4);return m(i.clearSelection())})("menuClick",function(i){d(e);let l=r(4);return m(l.onCardMenuClick(i))})("toggleFavorite",function(i){d(e);let l=r(4);return m(l.dashboardService.toggleFavorite(i))})("createProject",function(){d(e);let i=r(4);return m(i.quickCreateProject())}),c()}if(o&2){let e=r(4);b("projects",e.dashboardService.filteredProjects())("favoriteIds",e.dashboardService.favoriteProjectIds())("isLoading",e.dashboardService.isLoading())("gridView",e.gridView())("error",e.dashboardService.error())("searchQuery",e.dashboardService.searchQuery())("isCreating",e.isCreating())("emptyMessage",e.emptyMessage())("emptySubMessage",e.emptySubMessage())("sectionLabel",e.sectionLabel())("selectedIds",e.selectedProjectIds())}}function ll(o,t){if(o&1&&h(0,al,1,9,"app-resource-grid",33)(1,sl,1,11,"app-project-grid",31),o&2){let e=r(3);g(e.favoritesTab()==="resources"?0:1)}}function cl(o,t){if(o&1){let e=w();a(0,"app-archive-view",35),_("moveArchived",function(i){d(e);let l=r(3);return m(l.openMoveArchivedModal(i))})("inspectLegacy",function(i){d(e);let l=r(3);return m(l.openLegacyPreview(i))})("openLegacy",function(i){d(e);let l=r(3);return m(l.legacyService.openLegacyProjectId(i))}),c()}}function dl(o,t){if(o&1){let e=w();a(0,"app-legacy-view",36),_("openProject",function(i){d(e);let l=r(3);return m(l.openLegacyProject(i))})("importProject",function(i){d(e);let l=r(3);return m(l.importLegacyProject(i))})("enterFolder",function(i){d(e);let l=r(3);return m(l.enterLegacyFolder(i))})("breadcrumb",function(i){d(e);let l=r(3);return m(l.navigateLegacyBreadcrumb(i))}),c()}if(o&2){let e=r(3);b("gridView",e.gridView())("searchQuery",e.dashboardService.searchQuery())("folderStack",e.legacyFolderStack())("currentFolderId",e.currentLegacyFolderId())("subfolders",e.currentLegacySubfolders())("projects",e.filteredLegacyProjects())("sharedProjects",e.filteredSharedLegacyProjects())}}function ml(o,t){if(o&1){let e=w();a(0,"app-project-grid",37),_("openProject",function(i){d(e);let l=r(3);return m(l.navigateToProject(i))})("select",function(i){d(e);let l=r(3);return m(l.onProjectSelect(i))})("clearSelection",function(){d(e);let i=r(3);return m(i.clearSelection())})("menuClick",function(i){d(e);let l=r(3);return m(l.onCardMenuClick(i))})("toggleFavorite",function(i){d(e);let l=r(3);return m(l.dashboardService.toggleFavorite(i))})("createProject",function(){d(e);let i=r(3);return m(i.quickCreateProject())}),c()}if(o&2){let e=r(3);b("projects",e.dashboardService.filteredProjects())("favoriteIds",e.dashboardService.favoriteProjectIds())("isLoading",e.dashboardService.isLoading())("gridView",e.gridView())("error",e.dashboardService.error())("searchQuery",e.dashboardService.searchQuery())("isCreating",e.isCreating())("emptyMessage",e.emptyMessage())("emptySubMessage",e.emptySubMessage())("sectionLabel",e.sectionLabel())("showCreateAction",e.dashboardService.activeView()==="home")("selectedIds",e.selectedProjectIds())}}function pl(o,t){if(o&1){let e=w();a(0,"app-context-menu",38),_("openProject",function(i){d(e);let l=r(3);return l.navigateToProject(i),m(l.contextMenu.set(null))})("openInNewTab",function(i){d(e);let l=r(3);return l.openProjectInNewTab(i),m(l.contextMenu.set(null))})("toggleFavorite",function(i){d(e);let l=r(3);return l.dashboardService.toggleFavorite(i),m(l.contextMenu.set(null))})("copyLink",function(i){d(e);let l=r(3);return l.copyProjectLink(i),m(l.contextMenu.set(null))})("share",function(i){d(e);let l=r(3);return l.openProjectShare(i),m(l.contextMenu.set(null))})("duplicate",function(i){d(e);let l=r(3);return l.duplicateProject(i),m(l.contextMenu.set(null))})("downloadCopy",function(i){d(e);let l=r(3);return l.downloadProjectCopy(i),m(l.contextMenu.set(null))})("rename",function(i){d(e);let l=r(3);return l.openRenameModal(i),m(l.contextMenu.set(null))})("moveToTeam",function(i){d(e);let l=r(3);return l.openMoveToTeamModal(i),m(l.contextMenu.set(null))})("delete",function(i){d(e);let l=r(3);return l.openDeleteConfirm(i),m(l.contextMenu.set(null))})("close",function(){d(e);let i=r(3);return m(i.contextMenu.set(null))}),c()}if(o&2){let e=r(3);b("position",e.contextMenu())("isFavorite",e.dashboardService.favoriteProjectIds().includes(e.contextMenu().project.id))("isDuplicating",e.isDuplicating())("isDownloadingCopy",e.isDownloadingCopy())}}function _l(o,t){if(o&1){let e=w();a(0,"app-bulk-context-menu",39),_("move",function(){d(e);let i=r(3);return m(i.onBulkMove())})("duplicate",function(){d(e);let i=r(3);return m(i.onBulkDuplicate())})("delete",function(){d(e);let i=r(3);return m(i.onBulkDelete())})("close",function(){d(e);let i=r(3);return m(i.bulkContextMenu.set(null))}),c()}if(o&2){let e=r(3);b("position",e.bulkContextMenu())("canMove",e.canMoveSelection())}}function ul(o,t){if(o&1){let e=w();a(0,"app-share-dialog",40),_("moveProject",function(){d(e);let i=r(3);
1return m(i.openMoveFromShare())})("close",function(){d(e);let i=r(3);return m(i.shareTarget.set(null))}),c()}if(o&2){let e=r(3);b("isOpen",!0)("projectId",t.id)("projectContext",e.shareContext())("canMoveProject",!0)}}function hl(o,t){o&1&&(a(0,"div",42)(1,"p",43),p(2),c()()),o&2&&(s(2),k(" ",t," "))}function gl(o,t){if(o&1){let e=w();a(0,"app-confirm-dialog",41),_("confirm",function(){d(e);let i=r(3);return m(i.confirmDeleteTeam())})("cancel",function(){d(e);let i=r(3);return i.showDeleteTeamConfirm.set(!1),m(i.deleteTeamError.set(null))}),c(),h(1,hl,3,1,"div",42)}if(o&2){let e,n=r(3);b("config",n.deleteTeamConfig())("loading",n.isDeletingTeam()),s(),g((e=n.deleteTeamError())?1:-1,e)}}function vl(o,t){if(o&1){let e=w();a(0,"app-confirm-dialog",44),_("confirm",function(){d(e);let i=r(3);return i.emptyTrash(),m(i.showEmptyTrashConfirm.set(!1))})("cancel",function(){d(e);let i=r(3);return m(i.showEmptyTrashConfirm.set(!1))}),c()}if(o&2){let e=r(3);b("config",e.emptyTrashConfig())("loading",e.isEmptyingTrash())}}function xl(o,t){if(o&1){let e=w();a(0,"app-confirm-dialog",45),_("confirm",function(){d(e);let i=r(3);return m(i.confirmRemoveResource())})("cancel",function(){d(e);let i=r(3);return m(i.pendingRemoveResource.set(null))}),c()}if(o&2){let e=r(3);b("config",e.removeResourceConfig())("loading",e.isRemovingResource())}}function Cl(o,t){if(o&1){let e=w();a(0,"app-legacy-linked-modal",46),_("dismiss",function(){d(e);let i=r(3);return m(i.dismissLegacyLinkedModal())})("openArchive",function(){d(e);let i=r(3);return m(i.openArchiveFromLegacyLinked())}),c()}}function bl(o,t){if(o&1){let e=w();a(0,"app-upgrade-prompt",47),_("upgrade",function(){d(e);let i=r(3);return m(i.acceptUpgrade())})("dismiss",function(){d(e);let i=r(3);return m(i.planGate.dismiss())}),c()}o&2&&b("config",t)}function fl(o,t){if(o&1){let e=w();a(0,"div",1)(1,"app-dashboard-rail",2),_("createProject",function(){d(e);let i=r(2);return m(i.quickCreateProject())})("toggleSidebar",function(){d(e);let i=r(2);return m(i.sidebarOpen.set(!i.sidebarOpen()))})("navigate",function(i){d(e);let l=r(2);return m(l.onRailNavigate(i))})("logout",function(){d(e);let i=r(2);return m(i.logout())})("openProfile",function(){d(e);let i=r(2);return m(i.accountPane.set("profile"))})("settings",function(){d(e);let i=r(2);return m(i.navigateToAccount())})("billing",function(){d(e);let i=r(2);return m(i.navigateToBilling())}),c(),h(2,Ks,1,1,"app-account-dialog",3),h(3,Xs,1,1,"app-dashboard-sidebar",4),a(4,"main",5)(5,"app-dashboard-header",6),_("importFile",function(i){d(e);let l=r(2);return m(l.importProject(i))})("importPanelClosed",function(){d(e);let i=r(2);return m(i.importError.set(null))})("ownerChange",function(i){d(e);let l=r(2);return m(l.dashboardService.setOwnerFilter(i))})("workspaceChange",function(i){d(e);let l=r(2);return m(l.dashboardService.setWorkspaceFilter(i))})("dateChange",function(i){d(e);let l=r(2);return m(l.onDateChange(i))})("favoritesFirstChange",function(i){d(e);let l=r(2);return m(l.dashboardService.setFavoritesFirst(i))})("teamShare",function(){d(e);let i=r(2);return m(i.onShare())})("teamRename",function(){d(e);let i=r(2);return m(i.openTeamRename())})("teamCopyLink",function(){d(e);let i=r(2);return m(i.copyTeamLink())})("teamDelete",function(){d(e);let i=r(2);return i.deleteTeamError.set(null),m(i.showDeleteTeamConfirm.set(!0))})("gridViewChange",function(i){d(e);let l=r(2);return m(l.gridView.set(i))})("searchChange",function(i){d(e);let l=r(2);return m(l.onSearchChange(i))})("sortChange",function(i){d(e);let l=r(2);return m(l.onSortChange(i))})("sortOrderChange",function(i){d(e);let l=r(2);return m(l.onSortOrderChange(i))})("upgrade",function(){d(e);let i=r(2);return m(i.navigateToAccount())})("tabChange",function(i){d(e);let l=r(2);return m(l.onHeaderTabChange(i))}),G(6,7),h(7,Zs,4,2,"button",8),U(),c(),a(8,"div",9),h(9,tl,2,1)(10,nl,1,7,"app-resource-grid",10)(11,rl,2,1)(12,ll,2,1)(13,cl,1,0,"app-archive-view")(14,dl,1,7,"app-legacy-view",11)(15,ml,1,12,"app-project-grid",12),c()(),h(16,pl,1,4,"app-context-menu",13),h(17,_l,1,2,"app-bulk-context-menu",14),h(18,ul,1,4,"app-share-dialog",15),h(19,gl,2,3),h(20,vl,1,2,"app-confirm-dialog",16),h(21,xl,1,2,"app-confirm-dialog",17),h(22,Cl,1,0,"app-legacy-linked-modal"),a(23,"app-legacy-switch-banner",18),_("openArchive",function(){d(e);let i=r(2);return m(i.onNavigate("archive"))}
1),c(),a(24,"app-dashboard-modals",19),_("renameValueChange",function(i){d(e);let l=r(2);return m(l.renameValue.set(i))})("confirmRename",function(){d(e);let i=r(2);return m(i.confirmRename())})("closeRename",function(){d(e);let i=r(2);return m(i.showRenameModal.set(!1))})("confirmDelete",function(){d(e);let i=r(2);return m(i.confirmDelete())})("closeDelete",function(){d(e);let i=r(2);return i.showDeleteConfirm.set(!1),i.pendingDeleteProject.set(null),m(i.bulkDeleteTargets.set([]))})("selectedTeamIdChange",function(i){d(e);let l=r(2);return m(l.moveSelectedTeamId.set(i))})("selectedIsPersonalChange",function(i){d(e);let l=r(2);return m(l.moveSelectedIsPersonal.set(i))})("confirmMoveToTeam",function(){d(e);let i=r(2);return m(i.confirmMoveToTeam())})("closeMoveToTeam",function(){d(e);let i=r(2);return i.showMoveToTeamModal.set(!1),i.moveTargetProject.set(null),i.moveSelectedTeamId.set(null),i.moveTargetIsArchived.set(!1),m(i.bulkMoveTargets.set([]))})("teamNameChange",function(i){d(e);let l=r(2);return m(l.newTeamName.set(i))})("confirmCreateTeam",function(){d(e);let i=r(2);return m(i.confirmCreateTeam())})("closeCreateTeam",function(){d(e);let i=r(2);return m(i.showCreateTeamModal.set(!1))})("emailChange",function(i){d(e);let l=r(2);return m(l.inviteEmail.set(i))})("roleChange",function(i){d(e);let l=r(2);return m(l.inviteRole.set(i))})("confirmInvite",function(){d(e);let i=r(2);return m(i.confirmInvite())})("removeMember",function(i){d(e);let l=r(2);return m(l.onRemoveMember(i))})("changeMemberRole",function(i){d(e);let l=r(2);return m(l.onChangeMemberRole(i))})("closeTeamSettings",function(){d(e);let i=r(2);return i.showTeamSettings.set(!1),i.teamMembers.set([]),m(i.inviteError.set(null))}),c(),h(25,bl,1,1,"app-upgrade-prompt",20),c()}if(o&2){let e,n,i,l,x=r(2);s(),b("isCreating",x.isCreating())("sidebarOpen",x.sidebarOpen())("activeSection",x.railSection())("userName",x.userName())("userEmail",x.userEmail())("userInitials",x.userInitials())("userId",x.currentUserId()),s(),g((e=x.accountPane())?2:-1,e),s(),g(x.showSidebar()?3:-1),s(2),b("title",x.sectionTitle())("subtitle",x.sectionSubtitle())("gridView",x.gridView())("searchQuery",x.activeSearchQuery())("showSearch",x.showSearch())("sortBy",x.activeSortBy())("sortOrder",x.activeSortOrder())("showSortControls",x.showSortControls())("showDateFilter",x.showDateFilter())("showViewToggle",x.showListControls())("showImport",x.showImport())("importDestination",x.importDestination())("isImporting",x.isImporting())("importError",x.importError())("showOwnerFilter",x.showOwnerFilter())("owners",x.dashboardService.visibleOwners())("ownerFilter",x.dashboardService.ownerFilter())("currentUserId",x.currentUserId())("showOwnedByOthers",x.showOwnedByOthers())("showWorkspaceFilter",x.showWorkspaceFilter())("workspaces",x.dashboardService.visibleWorkspaces())("workspaceFilter",x.dashboardService.workspaceFilter())("dateFilter",x.dashboardService.dateFilter())("favoritesFirst",x.dashboardService.favoritesFirst())("searchPlaceholderOverride",x.isViewingResources()?"Search resources":"")("titleGradient",x.dashboardService.activeView()==="home")("toolbarHeading",x.toolbarHeading())("teamChip",x.teamChip())("tabs",x.headerTabs())("activeTab",x.headerActiveTab()),s(2),g(x.dashboardService.activeView()==="trash"&&x.trashTab()==="projects"&&x.dashboardService.trashProjects().length>0?7:-1),s(2),g((n=x.dashboardService.activeView())==="trash"?9:n==="resources"?10:n==="recents"?11:n==="favorites"?12:n==="archive"?13:n==="legacy"?14:15),s(7),g(x.contextMenu()?16:-1),s(),g(x.bulkContextMenu()?17:-1),s(),g((i=x.shareTarget())?18:-1,i),s(),g(x.showDeleteTeamConfirm()?19:-1),s(),g(x.showEmptyTrashConfirm()?20:-1),s(),g(x.pendingRemoveResource()?21:-1),s(),g(x.showLegacyLinkedModal()?22:-1),s(2),b("showRename",x.showRenameModal())("renameTitle",x.renameTitle())("renameValue",x.renameValue())("showDelete",x.showDeleteConfirm())("pendingDeleteProject",x.pendingDeleteProject())("deleteExtraCount",x.bulkDeleteTargets().length>1?x.bulkDeleteTargets().length-1:0)("showMoveToTeam",x.showMoveToTeamModal())("moveTarget",x.moveTargetProject())("moveExtraCount",x.bulkMoveTargets().length>1?x.bulkMoveTargets().length-1:0)("selectedTeamId",x.moveSelectedTeamId())("selectedIsPersonal",x.moveSelectedIsPersonal())("isMoving",x.isMovingToTeam())("showCreateTeam",x.showCreateTeamModal())("teamName",x.newTeamName())("isCreatingTeam",x.isCreatingTeam()
1)("showTeamSettings",x.showTeamSettings())("members",x.teamMembers())("isLoadingMembers",x.isLoadingMembers())("canManage",x.canManageTeam())("email",x.inviteEmail())("role",x.inviteRole())("isInviting",x.isInviting())("inviteError",x.inviteError()),s(),g((l=x.planGate.activePrompt())?25:-1,l)}}function wl(o,t){o&1&&u(0,"app-dashboard-skeleton")}function yl(o,t){if(o&1&&(G(0),h(1,fl,26,72,"div",1)(2,wl,1,0,"app-dashboard-skeleton"),U()),o&2){let e=r();s(),g(e.isAuthReady()?1:2)}}var jn=["personal","shared","team","trash","archive"],kl=["trash","favorites","resources","archive"],Tl=224,Sl=400,It=8,Ml=["personal","team","trash","archive"],Pn=class o{dashboardService=M(Ie);legacyService=M(Ve);linkService=M(xe);authService=M(Te);assetService=M(rn);teamService=M(K);archiveService=M(fe);subscriptionService=M(je);notifications=M(pn);transloco=M(Y);language=M(Ke);router=M(Qe);route=M(en);gridView=f(!0);sidebarOpen=f(!0);isCreating=f(!1);isCreatingTeam=f(!1);isMovingToTeam=f(!1);isInviting=f(!1);isDeleting=f(!1);isRestoring=f(!1);isPermanentDeleting=f(!1);isEmptyingTrash=f(!1);showRenameModal=f(!1);showDeleteConfirm=f(!1);showMoveToTeamModal=f(!1);showCreateTeamModal=f(!1);showTeamSettings=f(!1);showLegacyLinkedModal=f(!1);renameValue=f("");newTeamName=f("");inviteEmail=f("");inviteRole=f("editor");inviteError=f(null);moveTargetProject=f(null);moveSelectedTeamId=f(null);moveSelectedIsPersonal=f(!1);moveTargetIsArchived=f(!1);pendingDeleteProject=f(null);renameKind=f("project");showDeleteTeamConfirm=f(!1);isDeletingTeam=f(!1);deleteTeamError=f(null);renameTitle=S(()=>{switch(this.language.translationsRevision(),this.renameKind()){case"resource":return this.transloco.translate("dashboard.shell.renameResource");case"team":return this.transloco.translate("dashboard.shell.renameWorkspace");default:return this.transloco.translate("dashboard.shell.renameProject")}});pendingRemoveResource=f(null);isRemovingResource=f(!1);trashTabs=[{id:"projects",labelKey:"dashboard.shell.tabProjects"},{id:"resources",labelKey:"dashboard.shell.tabResources"}];trashTab=f("projects");removedAssets=f([]);isLoadingRemoved=f(!1);isRestoringResource=f(!1);showEmptyTrashConfirm=f(!1);recentsTabs=[{id:"viewed",labelKey:"dashboard.shell.tabRecentlyViewed"},{id:"resources",labelKey:"dashboard.shell.tabResources"},{id:"shared",labelKey:"dashboard.shell.tabSharedProjects"}];sharedTabs=[{id:"projects",labelKey:"dashboard.shell.tabSharedProjects"}];favoritesTabs=[{id:"projects",labelKey:"dashboard.shell.tabProjects"},{id:"resources",labelKey:"dashboard.shell.tabResources"}];favoritesTab=f("projects");isTogglingResourceFavorite=f(!1);isViewingResources=S(()=>{let t=this.dashboardService.activeView();return t==="resources"?!0:t==="favorites"?this.favoritesTab()==="resources":t==="recents"?this.dashboardService.recentsTab()==="resources":!1});headerTabs=S(()=>{let t=this.dashboardService.activeView();return t==="trash"?this.trashTabs:t==="favorites"?this.favoritesTabs:t==="recents"?this.recentsTabs:t==="shared"?this.sharedTabs:[]});headerActiveTab=S(()=>{let t=this.dashboardService.activeView();return t==="favorites"?this.favoritesTab():t==="recents"?this.dashboardService.recentsTab():t==="shared"?"projects":this.trashTab()});showOwnedByOthers=S(()=>this.dashboardService.activeView()!=="shared");teamMembers=f([]);isLoadingMembers=f(!1);canManageTeam=S(()=>{let t=this.teamService.activeTeam();return t?.role==="owner"||t?.role==="admin"});contextMenu=f(null);bulkContextMenu=f(null);selectedProjectIds=f(new Set);selectionAnchorId=null;selectedProjects=S(()=>{let t=this.selectedProjectIds();return t.size===0?[]:this.dashboardService.filteredProjects().filter(e=>t.has(e.id))});canMoveSelection=S(()=>{let t=this.selectedProjects();return t.length>0&&t.every(e=>at(e.role))});clearSelectionOnListChange=We(()=>{this.dashboardService.filteredProjects(),this.selectedProjectIds.set(new Set),this.selectionAnchorId=null});onEscapeKey(){this.selectedProjectIds().size>0&&this.clearSelection()}clearSelection(){this.selectedProjectIds.set(new Set),this.selectionAnchorId=null}selectOnly(t){this.selectedProjectIds.set(new Set([t])),this.selectionAnchorId=t}toggleSelection(t){let e=new Set(this.selectedProjectIds());e.has(t)?e.delete(t):e.add(t),this.selectedProjectIds.set(e),this.selectionAnchorId=t}selectRangeTo(t){let e=this.dashboardService.filteredProjects(),n=this.selectionAnchorId??t,i=e.f
1indIndex(O=>O.id===n),l=e.findIndex(O=>O.id===t);if(i===-1||l===-1){this.selectOnly(t);return}let[x,B]=i<=l?[i,l]:[l,i];this.selectedProjectIds.set(new Set(e.slice(x,B+1).map(O=>O.id)))}onProjectSelect(t){let{project:e,event:n}=t;n.shiftKey?this.selectRangeTo(e.id):n.ctrlKey||n.metaKey?this.toggleSelection(e.id):this.selectOnly(e.id)}accountPane=f(null);planGate=M(ln);acceptUpgrade(){this.planGate.accept(),this.navigateToBilling()}legacyFolderStack=f([]);currentLegacyFolder=S(()=>{let t=this.legacyFolderStack();return t.length>0?t[t.length-1]:null});currentLegacyFolderId=S(()=>this.currentLegacyFolder()?.folderId??null);currentLegacySubfolders=S(()=>{let t=this.currentLegacyFolderId()??0;return this.legacyService.folders().filter(e=>e.parentId===t&&!e.isDeleted)});filteredLegacyProjects=S(()=>{let t=this.dashboardService.searchQuery().toLowerCase().trim(),e=this.currentLegacyFolderId(),n=this.legacyService.projects();return t?n.filter(i=>i.name.toLowerCase().includes(t)):e===null?n.filter(i=>!this.legacyService.folders().some(l=>l.folderId===i.parameters.folderId&&l.parentId!==0)):n.filter(i=>i.parameters.folderId===e)});filteredSharedLegacyProjects=S(()=>{let t=this.dashboardService.searchQuery().toLowerCase().trim();return t?this.legacyService.sharedProjects().filter(e=>e.name.toLowerCase().includes(t)):this.legacyService.sharedProjects()});userName=S(()=>this.authService.currentUser?.name??"User");userEmail=S(()=>this.authService.currentUser?.email??"");currentUserId=S(()=>this.authService.currentUser?.id??"");userInitials=S(()=>(this.authService.currentUser?.name??"").split(" ").map(e=>e[0]).slice(0,2).join("").toUpperCase()||"U");isAuthReady=S(()=>this.authService.isAuthReady());railSection=S(()=>this.dashboardService.activeView()==="home"?"home":"projects");showSidebar=S(()=>this.sidebarOpen()&&this.dashboardService.activeView()!=="home");recentsLabel=tn("dashboard.views.recents");toolbarHeading=S(()=>this.dashboardService.activeView()==="home"?this.recentsLabel():"");teamChip=S(()=>{if(this.dashboardService.activeView()!=="team")return null;let t=this.teamService.activeTeam();return t?{id:t.id,name:t.name}:null});sectionTitle=S(()=>{let t=this.dashboardService.activeView();this.language.translationsRevision();let e=(n,i)=>this.transloco.translate(`dashboard.views.${n}`,i);return e(t==="home"?"homeHero":t==="recents"?"recents":t==="shared"?"shared":t==="trash"?"trash":t==="legacy"?"legacy":t==="archive"?"archive":t==="favorites"?"favorites":t==="resources"?"resources":t==="personal"?"personalProjects":t==="team"?"team":"projects")});sectionSubtitle=S(()=>{this.language.translationsRevision();let t=this.dashboardService.activeView();if(t==="personal"||t==="team"||this.isViewingResources()||t==="archive")return"";if(this.dashboardService.activeView()==="legacy"){if(this.currentLegacyFolder()){let l=this.filteredLegacyProjects().length,x=this.currentLegacySubfolders().length;return`${this.transloco.translate("dashboard.shell.countFolders",{count:x})}, ${this.transloco.translate("dashboard.shell.countProjects",{count:l})}`}let i=this.filteredLegacyProjects().length+this.filteredSharedLegacyProjects().length;return this.transloco.translate("dashboard.shell.countLegacyProjects",{count:i})}let e=this.dashboardService.filteredProjects().length;return this.transloco.translate("dashboard.shell.countProjects",{count:e})});sectionLabel=S(()=>{this.language.translationsRevision();let t=this.dashboardService.activeView();if(t==="home")return"";if(t==="recents")switch(this.dashboardService.recentsTab()){case"resources":return this.transloco.translate("dashboard.shell.labelResources");case"shared":return this.transloco.translate("dashboard.shell.labelSharedProjects");default:return this.transloco.translate("dashboard.shell.labelRecentlyViewed")}return t==="shared"?this.transloco.translate("dashboard.ui.sharedProjects"):t==="favorites"?this.transloco.translate("dashboard.ui.favoriteProjects"):t==="personal"?this.transloco.translate("dashboard.shell.labelProjects"):t==="team"?this.transloco.translate("dashboard.shell.labelProjects"):""});showWorkspaceFilter=S(()=>this.dashboardService.activeView()==="recents"&&this.dashboardService.recentsTab()==="shared");showProjectFilters=S(()=>this.showListControls()&&!this.isViewingResources());showDateFilter=S(()=>this.dashboardService.activeView()!=="archive"&&(this.showProjectFilters()||this.dashboardService.activeView()==="trash"||this.isViewingResources()));showOwnerFilter=S(()=>this.showProjectFilters()&&!Ml.includes(this.dashboardService.activeView()));showSearch=S(()=>!jn.includes(this.dashboardService.activeView()));showListControls=S(()=>!0);showSortControls=S(()=>{let t=this.dashboardService.activeView();return t!=="trash"&&t!=="archive"&&!this.isViewingResources()});showImport=S(()=>!kl.includes(this.dashboardService.activeView())&&!this.isViewingResources());importTeamId=S(()=>this.dashboardService.destinationTeamId());importDestination=S(()=>{this.language.translationsRevision();let t=this.importTeamId();
1return(t?this.teamService.teams().find(n=>n.id===t):null)?.name??this.transloco.translate("dashboard.import.personal")});emptyMessage=S(()=>{this.language.translationsRevision();let t=this.dashboardService.activeView();return t==="home"?this.transloco.translate("dashboard.shell.emptyHome"):t==="shared"?this.transloco.translate("dashboard.shell.emptyShared"):t==="recents"?this.dashboardService.recentsTab()==="shared"?this.transloco.translate("dashboard.shell.emptyShared"):this.transloco.translate("dashboard.shell.emptyRecents"):t==="favorites"?this.transloco.translate("dashboard.shell.emptyFavorites"):null});emptySubMessage=S(()=>{this.language.translationsRevision();let t=this.dashboardService.activeView();return t==="home"?this.transloco.translate("dashboard.shell.emptySubtitleHome"):t==="shared"?this.transloco.translate("dashboard.shell.emptySubtitleShared"):t==="recents"?this.dashboardService.recentsTab()==="shared"?"Projects shared with you will appear here":"Projects you've worked on will appear here":t==="favorites"?this.favoritesTab()==="resources"?"Star an image in Resources to keep it here":"Star a project to keep it here":null});renameTargetId="";sidebarDataLoaded=!1;async ngOnInit(){this.subscriptionService.loadBillingInfo();let t=this.route.snapshot.data.view,e=this.route.snapshot.paramMap.get("teamId"),n=this.route.snapshot.queryParamMap.get("view"),i=this.route.snapshot.queryParamMap.get("legacy_token"),l=this.route.snapshot.queryParamMap.get("legacy_rid")?.trim()||null;this.route.snapshot.queryParamMap.get("account")==="notifications"&&this.accountPane.set("notifications"),await this.teamService.loadTeams(),i?(await this.linkService.verifyTokenFromUrl(i,l),await this.stripLegacyToken()):this.linkService.checkLinkStatus();let B=this.linkService.consumeJustLinked();if(await this.runMigrationAction())return;B&&this.showLegacyLinkedModal.set(!0);let O=this.teamService.teams();if(t==="home"||n==="home")this.dashboardService.setView("home"),O.length>0&&!this.teamService.activeTeamId()&&this.teamService.setActiveTeam(O[0].id),t!=="home"&&this.router.navigate(["/dashboard/home"],{replaceUrl:!0});else if(e){this.teamService.setActiveTeam(e);let z=n??"recents";this.dashboardService.setView(z),n||this.router.navigate(["/dashboard/workspace",e],{queryParams:{view:z},replaceUrl:!0})}else if(n==="shared")this.dashboardService.setView("shared");else if(n==="resources")this.dashboardService.setView("resources");else if(n==="favorites")this.dashboardService.setView("favorites");else if(n==="legacy")this.teamService.setActiveTeam(null),this.dashboardService.setView("legacy");else if(n==="archive")this.teamService.setActiveTeam(null),this.dashboardService.setView("archive");else if(this.dashboardService.setView("recents"),O.length>0){let z=O[0];this.teamService.setActiveTeam(z.id),this.router.navigate(["/dashboard/workspace",z.id],{queryParams:{view:"recents"},replaceUrl:!0})}else this.router.navigate(["/dashboard/workspace"],{queryParams:{view:"recents"},replaceUrl:!0});let we=this.dashboardService.activeView()==="home",J=[this.dashboardService.loadFavorites()];we||(this.sidebarDataLoaded=!0,J.push(this.dashboardService.loadProjects(),this.dashboardService.loadSharedProjects())),this.dashboardService.activeView()==="trash"&&J.push(this.dashboardService.loadTrash()),this.dashboardService.activeView()==="resources"&&J.push(this.loadResources(!1)),this.dashboardService.activeView()==="home"&&J.push(this.dashboardService.loadHomeProjects());let ue=st[this.dashboardService.activeView()];if(ue){let z=this.route.snapshot.queryParamMap.get("tab");J.push(this.selectTab(gn(ue,z)))}await Promise.all(J)}async onRailNavigate(t){await this.onNavigate(t==="home"?"home":"recents")}async onNavigate(t){if(t==="legacy"){await this.switchToLegacy();return}if(this.dashboardService.setView(t),t==="shared"&&this.dashboardService.ownerFilter()==="others"&&this.dashboardService.setOwnerFilter("any"),jn.includes(t)&&this.dashboardService.searchQuery()&&this.dashboardService.setSearch(""),t==="home")this.router.navigate(["/dashboard/home"]);else{let e=se({view:t},Rt(st[t],this.currentTab(t))),n=this.teamService.activeTeamId();n?this.router.navigate(["/dashboard/workspace",n],{queryParams:e}):this.router.navigate(["/dashboard/workspace"],{queryParams:e})}await this.loadViewData(t)}async loadViewData(t){let e=[];t!=="home"&&!this.sidebarDataLoaded&&(this.sidebarDataLoaded=!0,e.push(this.dashboardService.loadSharedProjects())),t==="home"?await this.dashboardService.loadHomeProjects():t==="trash"?(await this.dashboardService.loadTrash(),this.trashTab()==="resources"&&await this.loadRemovedResources()):t==="recents"?await this.onRecentsTabChange(this.dashboardService.recentsTab()):t==="shared"?await this.dashboardService.loadSharedProjects():t==="resources"?await this.loadResources(!1):t==="favorites"?await Promise.all([this.dashboardService.loadFavorites(),this.favoritesTab()==="resources"?this.loadResources(!0):Promise.resolve()]):await this.dashboardService.loadProjects(),await Promise.all(e)}dismissLegacyLinkedModal(){this.showLegacyLinkedModal.set(!1),this.archiveService.close()}async openArchiveFromLegacyLinked(){this.showLegacyLinkedModal.set(!1),await this.onNavigate("archive")}async switchToWorkspace(t){this.teamService.setActiveTeam(t),this.dashboardService.setView("team"),this.router.navigate(["/dashboard/workspace",t],{queryParams:{view:"team"}}),await Promise.all([this.dashboardService.loadProjects(),this.dashboardService.loadFavorites()])}navigateToProject(t){this.navigateToProjectId(t.id)}openLegacyPreview(t){window.open(`/legacyPreview/${t}`,"_blank","noopener,noreferrer")}navigateToProjectId(t){location.href=`/project/${t}`}logout(){this.authService.logout("/login")}navigateToAccount(){this.accountPane.set("profile")}navigateToBilling(){this.accountPane.set("subscription")}activeSearchQuery=S(()=>this.isViewingResources()?this.assetService.query():this.dashboardService.searchQuery());onSearchChange(t){if(this.isViewingResources()){this.assetService.search(t);return}this.dashboardService.setSearch(t)}activeSortBy=S(()=>this.isViewingResources()?this.assetService.sort()==="activity"?"date":"name":this.dashboardService.sortBy());activeSortOrder=S(()=>this.isViewingResources()?this.assetService.sort()==="az"?"asc":"desc":this.dashboardService.sortOrder());onDateChange(t){this.dashboardService.setDateFilter(t),this.isViewingResources()&&this.assetService.setModifiedRange(ot(t))}onSortChange(t){if(this.isViewingResources()){this.pendingAssetS
1ortBy=t,this.applyAssetSort();return}this.dashboardService.setSort(t)}onSortOrderChange(t){if(this.isViewingResources()){this.pendingAssetSortOrder=t,this.applyAssetSort();return}this.dashboardService.setSortOrder(t)}pendingAssetSortBy="date";pendingAssetSortOrder="desc";async applyAssetSort(){let t=this.pendingAssetSortBy==="name"?this.pendingAssetSortOrder==="asc"?"az":"za":"activity";await this.assetService.setSort(t)}onShare(){let t=this.teamService.activeTeamId();t&&this.openTeamSettings(t)}onCardMenuClick(t){t.event.stopPropagation();let e=t.event.type==="contextmenu",n=e?void 0:t.event.target.closest("button")?.getBoundingClientRect(),i=n?n.left:t.event.clientX,l=n?n.bottom+4:t.event.clientY,x=Math.max(It,Math.min(i,window.innerWidth-Tl-It)),B=Math.max(It,Math.min(l,window.innerHeight-Sl-It)),O=this.selectedProjectIds();if(e&&O.size>=2&&O.has(t.project.id)){this.bulkContextMenu.set({x,y:B,count:O.size});return}e&&!O.has(t.project.id)&&this.selectOnly(t.project.id),this.contextMenu.set({project:t.project,x,y:B})}onBulkMove(){let t=this.selectedProjects();this.bulkContextMenu.set(null),t.length>0&&this.canMoveSelection()&&this.openBulkMoveModal(t)}onBulkDuplicate(){let t=this.selectedProjects();this.bulkContextMenu.set(null),t.length>0&&this.confirmBulkDuplicate(t)}onBulkDelete(){let t=this.selectedProjects();this.bulkContextMenu.set(null),t.length>0&&this.openBulkDeleteConfirm(t)}async confirmBulkDuplicate(t){if(!this.isDuplicating()){this.isDuplicating.set(!0);try{let n=0;for(let l=0;l<t.length;l+=5){let x=t.slice(l,l+5),B=await Promise.all(x.map(O=>this.dashboardService.duplicateProject(O.id,{refresh:!1})));n+=B.filter(O=>!O.ok).length}let i=t.length-n;if(i>0){try{await this.dashboardService.loadProjects()}catch{}this.notifications.success("common.notify.projectsDuplicated",void 0,{params:{count:i}})}n>0&&this.notifications.error("common.notify.someProjectsNotDuplicated",void 0,{params:{count:n}})}finally{this.isDuplicating.set(!1),this.clearSelection()}}}projectUrl(t){return`${location.origin}/project/${t.id}`}openProjectInNewTab(t){window.open(this.projectUrl(t),"_blank","noopener")}async copyProjectLink(t){try{await navigator.clipboard.writeText(this.projectUrl(t)),this.notifications.success("common.notify.linkCopied")}catch{this.notifications.error("common.notify.couldNotCopyLink","common.notify.clipboardBlocked")}}shareTarget=f(null);shareContext=S(()=>{let t=this.shareTarget();return t?{isPersonal:t.isPersonal,canAdmin:rt(t.role)}:null});openProjectShare(t){this.shareTarget.set(t)}isDuplicating=f(!1);isDownloadingCopy=f(!1);isImporting=f(!1);importError=f(null);async duplicateProject(t){if(!this.isDuplicating()){this.isDuplicating.set(!0);try{let e=await this.dashboardService.duplicateProject(t.id);if(!e.ok){this.promptUpgradeFor(e.reason)||this.notifications.error("common.notify.couldNotDuplicate","common.notify.pleaseTryAgain");return}let n=e.project,i=n.teamId!==this.teamService.activeTeamId(),l=this.teamService.teams().find(x=>x.id===n.teamId)?.name;this.notifications.success("common.notify.projectDuplicated",i&&l?"common.notify.projectAddedTo":void 0,{params:{project:n.name,workspace:l}})}finally{this.isDuplicating.set(!1)}}}async importProject(t){if(!this.isImporting()){this.isImporting.set(!0),this.importError.set(null);try{let e=await this.dashboardService.importProject(t,this.importTeamId());if(!e.ok){this.importError.set(e.reason);return}await this.loadViewData(this.dashboardService.activeView()),this.notifications.success("common.notify.projectImported")}finally{this.isImporting.set(!1)}}}async downloadProjectCopy(t){if(!this.isDownloadingCopy()){this.isDownloadingCopy.set(!0);try{await this.dashboardService.downloadProjectCopy(t)||this.notifications.error("common.notify.couldNotDownloadCopy","common.notify.pleaseTryAgain")}finally{this.isDownloadingCopy.set(!1)}}}async stripLegacyToken(){await this.router.navigate([],{relativeTo:this.route,queryParams:{legacy_token:null,legacy_rid:null},queryParamsHandling:"merge",replaceUrl:!0})}async runMigrationAction(){let t=this.route.snapshot.queryParamMap.get("action");return t?(await this.router.navigate([],{relativeTo:this.route,queryParams:{action:null},queryParamsHandling:"merge",replaceUrl:!0}),t==="new_project"?this.quickCreateProject():!1):!1}async quickCreateProject(){if(this.isCreating())return!1;this.isCreating.set(!0);try{let t=await this.dashboardService.createProject("Untitled Project");
1if(!t.ok)return this.promptUpgradeFor(t.reason)||this.notifications.error("common.notify.couldNotCreateProject",this.transloco.translate("dashboard.shell.errTryAgain")),!1;let e=t.id;return await this.router.navigate(["/project",e]),!0}finally{this.isCreating.set(!1)}}openRenameModal(t){this.renameKind.set("project"),this.renameTargetId=t.id,this.renameValue.set(t.name),this.showRenameModal.set(!0)}async confirmRename(){let t=this.renameValue().trim();t&&(this.renameKind()==="resource"?await this.assetService.rename(this.renameTargetId,t):this.renameKind()==="team"?await this.teamService.renameTeam(this.renameTargetId,t):await this.dashboardService.renameProject(this.renameTargetId,t),this.showRenameModal.set(!1))}openResourceRename(t){this.renameKind.set("resource"),this.renameTargetId=t.id,this.renameValue.set(t.name),this.showRenameModal.set(!0)}async copyResourceLink(t){try{await navigator.clipboard.writeText(t.url)}catch{}}removeResourceConfig(){let t=this.pendingRemoveResource();return{title:this.transloco.translate("dashboard.shell.moveToTrash"),subtitle:this.transloco.translate("dashboard.confirm.restoreFromTrash"),message:this.transloco.translate("dashboard.confirm.removeResourceBody",{name:t?.name??""}),confirmLabel:this.transloco.translate("dashboard.shell.moveToTrash"),variant:"danger",icon:"trash"}}async confirmRemoveResource(){let t=this.pendingRemoveResource();if(t){this.isRemovingResource.set(!0);try{await this.assetService.remove(t.id)}catch{}finally{this.isRemovingResource.set(!1),this.pendingRemoveResource.set(null)}}}bulkDeleteTargets=f([]);bulkMoveTargets=f([]);openDeleteConfirm(t){this.bulkDeleteTargets.set([]),this.pendingDeleteProject.set(t),this.showDeleteConfirm.set(!0)}openBulkDeleteConfirm(t){t.length!==0&&(this.bulkDeleteTargets.set(t),this.pendingDeleteProject.set(t[0]),this.showDeleteConfirm.set(!0))}async confirmDelete(){let t=this.bulkDeleteTargets();if(t.length>1){await this.confirmBulkDelete(t);return}let e=this.pendingDeleteProject();e&&(this.isDeleting.set(!0),await this.dashboardService.deleteProject(e.id),this.isDeleting.set(!1),this.showDeleteConfirm.set(!1),this.pendingDeleteProject.set(null),this.bulkDeleteTargets.set([]))}async confirmBulkDelete(t){let e=new Set(t.map(n=>n.id));this.isDeleting.set(!0);try{for(let l=0;l<t.length;l+=5)await Promise.allSettled(t.slice(l,l+5).map(x=>this.dashboardService.deleteProject(x.id)));let i=this.dashboardService.filteredProjects().filter(l=>e.has(l.id)).length;i>0&&this.notifications.error("common.notify.someProjectsNotDeleted",void 0,{params:{count:i}})}finally{this.isDeleting.set(!1),this.showDeleteConfirm.set(!1),this.pendingDeleteProject.set(null),this.bulkDeleteTargets.set([]),this.clearSelection()}}openMoveToTeamModal(t){this.bulkMoveTargets.set([]),this.moveTargetIsArchived.set(!1),this.moveTargetProject.set(t),this.moveSelectedTeamId.set(null),this.moveSelectedIsPersonal.set(t.isPersonal),this.showMoveToTeamModal.set(!0)}openBulkMoveModal(t){if(t.length===0)return;let e=t[0];this.bulkMoveTargets.set(t),this.moveTargetIsArchived.set(!1),this.moveTargetProject.set(e),this.moveSelectedTeamId.set(null),this.moveSelectedIsPersonal.set(e.isPersonal),this.showMoveToTeamModal.set(!0)}openMoveArchivedModal(t){this.bulkMoveTargets.set([]),this.moveTargetIsArchived.set(!0),this.moveTargetProject.set({id:t.id,name:t.name,description:t.description??void 0,thumbnail:t.thumbnail??void 0,updatedAt:t.updatedAt,createdAt:t.createdAt,isArchived:!0,teamId:"",isPersonal:!0,role:"owner"}),this.moveSelectedTeamId.set(null),this.moveSelectedIsPersonal.set(!0),this.showMoveToTeamModal.set(!0)}async confirmMoveToTeam(){let t=this.bulkMoveTargets(),e=this.moveSelectedTeamId();if(t.length>1&&e){await this.confirmBulkMoveToTeam(t,e);return}let n=this.moveTargetProject();if(!(!n||!e)){this.isMovingToTeam.set(!0);try{let i=await this.teamService.moveProjectToTeam(n.id,e,this.moveSelectedIsPersonal());if(!i.ok){this.promptUpgradeFor(i.reason)||this.notifications.error("common.notify.couldNotMove",this.describeMoveRefusal(i.reason));return}if(this.moveTargetIsArchived()&&!await this.archiveService.unarchive(n.id)){this.notifications.error("common.notify.couldNotMove",this.transloco.translate("dashboard.shell.errStillArchived"));return}await this.dashboardService.loadProjects();
1let l=this.teamService.teams().find(x=>x.id===e)?.name;this.notifications.success("common.notify.projectMoved",l?"common.notify.projectNowIn":void 0,{params:{project:n.name,workspace:l}}),this.showMoveToTeamModal.set(!1),this.moveTargetProject.set(null),this.moveSelectedTeamId.set(null),this.moveTargetIsArchived.set(!1)}finally{this.isMovingToTeam.set(!1),this.bulkMoveTargets.set([])}}}async confirmBulkMoveToTeam(t,e){this.isMovingToTeam.set(!0);try{let n=this.moveSelectedIsPersonal(),i=5,l=0;for(let O=0;O<t.length;O+=i){let we=t.slice(O,O+i),J=await Promise.all(we.map(ue=>this.teamService.moveProjectToTeam(ue.id,e,n)));l+=J.filter(ue=>!ue.ok).length}await this.dashboardService.loadProjects();let x=t.length-l,B=this.teamService.teams().find(O=>O.id===e)?.name;x>0&&this.notifications.success("common.notify.projectsMoved",void 0,{params:{count:x,workspace:B}}),l>0&&this.notifications.error("common.notify.someProjectsNotMoved",void 0,{params:{count:l}}),this.showMoveToTeamModal.set(!1),this.moveTargetProject.set(null),this.moveSelectedTeamId.set(null)}finally{this.isMovingToTeam.set(!1),this.bulkMoveTargets.set([]),this.clearSelection()}}describeMoveRefusal(t){switch(t){case"not_project_owner":return this.transloco.translate("dashboard.shell.errOwnerOnlyMove");case"not_team_member":return this.transloco.translate("dashboard.shell.errNotMember");case"project_not_found":return this.transloco.translate("dashboard.shell.errProjectGone");default:return this.transloco.translate("dashboard.shell.errTryAgain")}}openMoveFromShare(){let t=this.shareTarget();t&&(this.shareTarget.set(null),this.openMoveToTeamModal(t))}async onHeaderTabChange(t){await this.selectTab(t),this.writeTabToUrl()}async selectTab(t){let e=this.dashboardService.activeView();if(e==="favorites")return this.onFavoritesTabChange(t);if(e==="recents")return this.onRecentsTabChange(t);if(e==="trash")return this.onTrashTabChange(t)}currentTab(t){if(t==="recents")return this.dashboardService.recentsTab();if(t==="favorites")return this.favoritesTab();if(t==="trash")return this.trashTab();if(t==="shared")return"projects"}writeTabToUrl(){let t=this.dashboardService.activeView(),e=st[t];this.router.navigate([],{relativeTo:this.route,queryParams:Rt(e,this.currentTab(t)),queryParamsHandling:"merge",replaceUrl:!0})}async onRecentsTabChange(t){let e=t==="resources"?"resources":t==="shared"?"shared":"viewed";this.dashboardService.setRecentsTab(e),e==="resources"?await this.loadResources(!1):e==="shared"?await this.dashboardService.loadSharedWorkspaceProjects():await this.dashboardService.loadHomeProjects()}async onFavoritesTabChange(t){let e=t==="resources"?"resources":"projects";if(this.favoritesTab.set(e),e==="resources"){await this.loadResources(!0);return}await this.assetService.setFavoritesOnly(!1)}async toggleResourceFavorite(t){if(!this.isTogglingResourceFavorite()){this.isTogglingResourceFavorite.set(!0);try{await this.assetService.toggleFavorite(t.id)}finally{this.isTogglingResourceFavorite.set(!1)}}}async loadResources(t){if(this.assetService.favoritesOnly()===t){await this.assetService.refresh();return}await this.assetService.setFavoritesOnly(t)}openTeamRename(){let t=this.teamService.activeTeam();t&&(this.renameKind.set("team"),this.renameTargetId=t.id,this.renameValue.set(t.name),this.showRenameModal.set(!0))}async copyTeamLink(){let t=this.teamService.activeTeamId();if(!t)return;let e=`${location.origin}/dashboard/workspace/${t}?view=team`;try{await navigator.clipboard.writeText(e),this.notifications.success("common.notify.linkCopied")}catch{this.notifications.error("common.notify.couldNotCopyLink","common.notify.clipboardBlocked")}}deleteTeamConfig(){let t=this.teamService.activeTeam();return{title:this.transloco.translate("dashboard.shell.deleteWorkspace"),subtitle:this.transloco.translate("dashboard.confirm.cannotUndoYourself"),message:this.transloco.translate("dashboard.confirm.deleteWorkspaceBody",{name:t?.name??""}),confirmLabel:this.transloco.translate("dashboard.confirm.deleteWorkspace"),variant:"danger",icon:"trash"}}async confirmDeleteTeam(){let t=this.teamService.activeTeamId();
1if(!(!t||this.isDeletingTeam())){this.isDeletingTeam.set(!0);try{let e=await this.teamService.deleteTeam(t);if(!e.ok){this.deleteTeamError.set(this.describeDeleteRefusal(e));return}this.showDeleteTeamConfirm.set(!1);let n=this.teamService.teams()[0];n&&await this.switchToWorkspace(n.id),await this.dashboardService.loadTrash()}finally{this.isDeletingTeam.set(!1)}}}describeDeleteRefusal(t){switch(t.reason){case"last_workspace":return"This is your only workspace. Create another one before deleting it.";case"insufficient_permissions":return this.transloco.translate("dashboard.shell.errOwnerOnlyDelete");default:return this.transloco.translate("dashboard.shell.errDeleteWorkspace")}}async onTrashTabChange(t){let e=t==="resources"?"resources":"projects";this.trashTab.set(e),e==="resources"&&await this.loadRemovedResources()}async loadRemovedResources(){this.isLoadingRemoved.set(!0);try{this.removedAssets.set(await this.assetService.listRemoved())}finally{this.isLoadingRemoved.set(!1)}}async restoreResource(t){if(!this.isRestoringResource()){this.isRestoringResource.set(!0);try{await this.assetService.restore(t.id)&&this.removedAssets.update(n=>n.filter(i=>i.id!==t.id))}finally{this.isRestoringResource.set(!1)}}}emptyTrashConfig(){let t=this.dashboardService.trashProjects().length;return{title:this.transloco.translate("dashboard.shell.emptyTrash"),subtitle:`${t} project${t!==1?"s":""} will be permanently deleted`,message:"All projects in Trash will be permanently deleted. This action <strong>cannot be undone</strong>.",confirmLabel:"Empty Trash",variant:"danger",icon:"trash"}}async restoreProject(t){this.isRestoring.set(!0),await this.dashboardService.restoreProject(t.id),this.isRestoring.set(!1)}async permanentDeleteProject(t){this.isPermanentDeleting.set(!0),await this.dashboardService.permanentDeleteProject(t.id),this.isPermanentDeleting.set(!1)}async emptyTrash(){let t=[...this.dashboardService.trashProjects()];this.isEmptyingTrash.set(!0);try{for(let i=0;i<t.length;i+=5)await Promise.allSettled(t.slice(i,i+5).map(l=>this.dashboardService.permanentDeleteProject(l.id)));let n=this.dashboardService.trashProjects().length;n>0&&this.dashboardService.error.set(`${n} project${n!==1?"s":""} could not be deleted.`)}finally{this.isEmptyingTrash.set(!1)}}openCreateTeamModal(){this.newTeamName.set(""),this.showCreateTeamModal.set(!0)}async confirmCreateTeam(){let t=this.newTeamName();if(!t.trim())return;this.isCreatingTeam.set(!0);let e=await this.teamService.createTeam(t.trim());if(this.isCreatingTeam.set(!1),this.showCreateTeamModal.set(!1),!e.ok){this.promptUpgradeFor(e.reason)||this.notifications.error("common.notify.couldNotCreateWorkspace",this.transloco.translate("dashboard.shell.errTryAgain"));return}await this.switchToWorkspace(e.team.id)}static PLAN_REFUSALS={shared_project_limit:"dashboard.shell.errSharedProjectLimit",workspace_limit:"dashboard.shell.errWorkspaceLimit"};promptUpgradeFor(t){let e=o.PLAN_REFUSALS[t??""];return e?(this.planGate.raise(e),!0):!1}async openTeamSettings(t){this.inviteEmail.set(""),this.inviteRole.set("editor"),this.inviteError.set(null),this.showTeamSettings.set(!0),this.isLoadingMembers.set(!0);let e=await this.teamService.getMembers(t);this.teamMembers.set(e),this.isLoadingMembers.set(!1)}async confirmInvite(){let t=this.teamService.activeTeamId(),e=this.inviteEmail();if(!t||!e.trim())return;this.isInviting.set(!0),this.inviteError.set(null);let n=await this.teamService.inviteMember(t,e.trim(),this.inviteRole());if(this.isInviting.set(!1),n){this.inviteEmail.set("");let i=await this.teamService.getMembers(t);this.teamMembers.set(i),await this.teamService.loadTeams()}else this.inviteError.set(this.teamService.teamError()??"Could not invite member.")}async onRemoveMember(t){let e=this.teamService.activeTeamId();if(!e)return;await this.teamService.removeMember(e,t.userId)&&(this.teamMembers.update(i=>i.filter(l=>l.membershipId!==t.membershipId)),await this.teamService.loadTeams())}async onChangeMemberRole(t){let e=this.teamService.activeTeamId();if(!e||t.member.role===t.newRole)return;await this.teamService.updateMemberRole(e,t.member.userId,t.newRole)&&this.teamMembers.update(i=>i.map(l=>l.membershipId===t.member.membershipId?ce(se({},l),{role:t.newRole}):l))}async switchToLegacy(){this.dashboardService.setView("legacy"),this.legacyFolderStack.set([]);let t=this.teamService.activeTeamId();t?this.router.navigate(["/dashboard/workspace",t],{queryParams:{view:"legacy"}}):this.router.navigate(["/dashboard/workspace"],{queryParams:{view:"legacy"}}),await this.linkService.checkLinkStatus(),this.linkService.isLinked()&&this.legacyService.projects().length===0&&!this.legacyService.isLoading()&&await this.legacyService.loadLegacyProjects()}enterLegacyFolder(t){this.legacyFolderStack.update(e=>[...e,t]),this.dashboardService.setSearch("")}navigateLegacyBreadcrumb(t){this.legacyFolderStack.update(e=>e.slice(0,t+1)),this.dashboardService.setSearch("")}openLegacyProject(t){this.legacyService.openInLegacyEditor(t)}importLegacyProject(t){this.router.navigate(["/legacyPreview",t.projectId])}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=I({type:o,selectors:[["app-dashboard"]],hostBindings:function(e,n){e&1&&_("keydown.escape",function(){return n.onEscapeKey()},Yt)},decls:1,vars:0,consts:[[4,"transloco"],[1,"dark","dashboard-type","flex","h-screen","bg-shell","overflow-hidden"],[3,"createProject","toggleSidebar","navigate","logout","openProfile","settings","billing","isCreating","sidebarOpen","activeSection","userName","userEmail","userInitials","userId"],[3,"initialPane"],[3,"activeView"],[1,"flex-1","min-w-0","my-2","mr-2","rounded-2xl","bg-shell-panel","bg-gradient-panel","overflow-y-auto"],[3,"importFile","importPanelClosed","ownerChange","workspaceChange","dateChange","favoritesFirstChange","teamShare","teamRename","teamCopyLink","teamDelete","gridViewChange","searchChange","sortChange","sortOrderChange","upgrade","tabChange","title","subtitle","gridView","searchQuery","showSearch","sortBy","sortOrder","showSortControls","showDateFilter","showViewToggle","showImport","importDestination","isImporting","importError","showOwnerFilter","owners","ownerFilter","currentUserId","showOwnedByOthers","showWorkspaceFilter","workspaces","workspaceFilter","dateFilter","favoritesFirst","searchPlaceholderOverride","titleGradient","toolbarHeading","teamChip","tabs","activeTab"],["ngProjectAs","[toolbar-actions]",5,["","toolbar-actions",""]],["type","button",1,"shrink-0","flex","items-center","gap-2","pl-3.5","pr-3","py-1.5","rounded-full","border","border-divider","text-sm","text-danger","hover:bg-danger/10","transition-colors","disabled:opacity-50",3,"disabled"],[1,"px-8","pb-10"],[3,"assets","isLoading","error","searchQuery","hasMore","isTogglingFavorite","gridView"],[3,"gridView","searchQuery","folderStack","currentFolderId","subfolders","projects","sharedProjects"],[3,"projects","favoriteIds","isLoading","gridView","error","searchQuery","isCreating","emptyMessage","emptySubMessage","sectionLabel","showCreateAction","selectedIds"],[3,"position","isFavorite","isDuplicating","isDownloadingCopy"],[3,"position","canMove"],[3,"isOpen","projectId","projectContext","canMoveProject"],["dialogId","empty-trash",3,"config","loading"],["dialogId","remove-resource",3,"config","loading"],[3,"openArchive"],[3,"renameValueChange","confirmRename","closeRename","confirmDelete","closeDelete","selectedTeamIdChange","selectedIsPersonalChange","confirmMoveToTeam","closeMoveToTeam","teamNameChange","confirmCreateTeam","closeCreateTeam","emailChange","roleChange","confirmInvite","removeMember","changeMemberRole","closeTeamSettings","showRename","renameTitle","renameValue","showDelete","pendingDeleteProject","deleteExtraCount","showMoveToTeam","moveTarget","moveExtraCount","selectedTeamId","selectedIsPersonal","isMoving","showCreateTeam","teamName","isCreatingTeam","showTeamSettings","members","isLoadingMembers","canManage","email","role","isInviting","inviteError"],[3,"config"],[3,"close","logout","initialPane"],[3,"navigate","switchWorkspace","teamSettings","createTeam","activeView"],["type","button",1,"shrink-0","flex","items-center","gap-2","pl-3.5","pr-3","py-1.5","rounded-full","border","border-divider","text-sm","text-danger","hover:bg-danger/10","transition-colors","disabled:opacity-50",3,"click","disabled"],["fill","none","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.6","aria-hidden","true",1,"w-4","h-4","shrink-0"],["stroke-linecap","round","stroke-linejoin","round","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"],["mode","trash",3,"gridView","assets","isLoading","isBusy"],[3,"items","gridView","isLoading","isBusy"],["mode","trash",3,"restore","gridView","assets","isLoading","isBusy"],[3,"restore","permanentDelete","items","gridView","isLoading","isBusy"],[3,"copyLink","rename","remove","toggleFavorite","loadMore","assets","isLoading","error","searchQuery","hasMore","isTogglingFavorite","gridView"],[3,"projects","favoriteIds","isLoading","gridView","error","searchQuery","isCreating","emptyMessage","emptySubMessage","sectionLabel","selectedIds"],[3,"openProject","select","clearSelection","menuClick","toggleFavorite","createProject","projects","favoriteIds","isLoading","gridView","error","searchQuery","isCreating","emptyMessage","emptySubMessage","sectionLabel","selectedIds"],[3,"assets","isLoading","error","searchQuery","hasMore","isTogglingFavorite","gridView","emptyMessage","emptySubMessage"],[3,"copyLink","rename","remove","toggleFavorite","loadMore","assets","isLoading","error","searchQuery","hasMore","isTogglingFavorite","gridView","emptyMessage","emptySubMessage"],[3,"moveArchived","inspectLegacy","openLegacy"],[3,"openProject","importProject","enterFolder","breadcrumb","gridView","searchQuery","folderStack","currentFolderId","subfolders","projects","sharedProjects"],[3,"openProject","select","clearSelection","menuClick","toggleFavorite","createProject","projects","favoriteIds","isLoading","gridView","error","searchQuery","isCreating","emptyMessage","emptySubMessage","sectionLabel","showCreateAction","selectedIds"],[3,"openProject","openInNewTab","toggleFavorite","copyLink","
1share","duplicate","downloadCopy","rename","moveToTeam","delete","close","position","isFavorite","isDuplicating","isDownloadingCopy"],[3,"move","duplicate","delete","close","position","canMove"],[3,"moveProject","close","isOpen","projectId","projectContext","canMoveProject"],["dialogId","delete-team",3,"confirm","cancel","config","loading"],[1,"fixed","inset-x-0","bottom-8","z-[60]","flex","justify-center","px-4","pointer-events-none"],[1,"max-w-md","px-4","py-2.5","rounded-xl","bg-gradient-popup","border","border-danger/50","text-sm","text-danger","shadow-2xl"],["dialogId","empty-trash",3,"confirm","cancel","config","loading"],["dialogId","remove-resource",3,"confirm","cancel","config","loading"],[3,"dismiss","openArchive"],[3,"upgrade","dismiss","config"]],template:function(e,n){e&1&&P(0,yl,3,1,"ng-container",0)},dependencies:[R,Se,dt,pt,ut,xt,Ct,Ce,sn,wt,yt,Tt,St,Mt,Vt,jt,Pt,_n,un,mn],encapsulation:2,changeDetection:0})};export{Pn as DashboardComponent};
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.