@whoz-oss/coday-client 3.14.0 → 3.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/{chunk-CCQglZL5.js → chunk-5LRyprMF.js} +1 -1
- package/browser/{chunk-Cqy-kSp8.js → chunk-5t7zJzqM.js} +1 -1
- package/browser/{chunk-CGJJDRqH.js → chunk-9CSRlx74.js} +1 -1
- package/browser/{chunk-QDqqdtZx.js → chunk-B11WEBEl.js} +1 -1
- package/browser/{chunk-BUpmxKd8.js → chunk-B5_o_qhk.js} +1 -1
- package/browser/{chunk-DzSHyN8O.js → chunk-BC0acSZF.js} +1 -1
- package/browser/{chunk-CNRDeQvk.js → chunk-BIMT-HvS.js} +1 -1
- package/browser/{chunk-DKfZ0J0-.js → chunk-BKlwFrFB.js} +1 -1
- package/browser/{chunk-Duz7aHYs.js → chunk-BLa2Gx7h.js} +1 -1
- package/browser/{chunk-Bz081WAa.js → chunk-BUEM7g7F.js} +1 -1
- package/browser/{chunk-CCFtehVS.js → chunk-BVCQOGLR.js} +1 -1
- package/browser/chunk-BZMAEe_X.js +1 -0
- package/browser/{chunk-DzXp5mWz.js → chunk-B_2kLXvG.js} +1 -1
- package/browser/{chunk-BzcZylVP.js → chunk-BfD1F12k.js} +1 -1
- package/browser/{chunk-Co3aK_ug.js → chunk-BgHTiTG2.js} +1 -1
- package/browser/{chunk-Lt-5ZOWn.js → chunk-Bgy3uCgK.js} +1 -1
- package/browser/{chunk-B6GXI9z-.js → chunk-Bh1p6jDj.js} +1 -1
- package/browser/{chunk-BUJvZgLu.js → chunk-BhM0bmJW.js} +1 -1
- package/browser/{chunk-HHbcGqdi.js → chunk-BhfpLr7-.js} +1 -1
- package/browser/{chunk-RPuzC8Su.js → chunk-BlWlE-Cq.js} +1 -1
- package/browser/{chunk-BOq6QumJ.js → chunk-Bnic_hdt.js} +1 -1
- package/browser/{chunk-BQ7Z34pK.js → chunk-BqKdrvcS.js} +1 -1
- package/browser/{chunk-BR4Pl8xo.js → chunk-C4U0w8cP.js} +1 -1
- package/browser/{chunk-CfO-PCnU.js → chunk-C5wr-vqf.js} +1 -1
- package/browser/{chunk-DQj9SXnH.js → chunk-C6RPhP4t.js} +1 -1
- package/browser/{chunk-Wd2dgg4g.js → chunk-C7MXO6BQ.js} +1 -1
- package/browser/{chunk-LgALnta4.js → chunk-C9tuHQmZ.js} +1 -1
- package/browser/{chunk-DoW9c054.js → chunk-CHrmSvQM.js} +1 -1
- package/browser/chunk-CNIfOUla.js +1 -0
- package/browser/{chunk-UX95uV76.js → chunk-CUmS2-ak.js} +1 -1
- package/browser/{chunk-BWqySSd7.js → chunk-CYMQSJz6.js} +1 -1
- package/browser/{chunk-CSa65gP2.js → chunk-CcLheUaL.js} +1 -1
- package/browser/{chunk-E-XRHTIB.js → chunk-Ce03Ba0V.js} +1 -1
- package/browser/chunk-CebS4RAf.js +1 -0
- package/browser/{chunk-DMo8nEUq.js → chunk-Cf3l2UgA.js} +1 -1
- package/browser/{chunk-Cqva3eF5.js → chunk-CnnGSYzi.js} +1 -1
- package/browser/{chunk-DJtRPrJe.js → chunk-CyUmCedx.js} +1 -1
- package/browser/{chunk-iUyWeEFy.js → chunk-CysW_ro-.js} +1 -1
- package/browser/{chunk-GHUL_MFq.js → chunk-CyxhAtE7.js} +1 -1
- package/browser/{chunk-b9_We0yK.js → chunk-DEsz0fzs.js} +1 -1
- package/browser/chunk-DG2FCeMu.js +2 -0
- package/browser/{chunk-BSY9MBD-.js → chunk-DTIhOEG_.js} +1 -1
- package/browser/{chunk-2R-L-8TB.js → chunk-DTZ7N3wC.js} +1 -1
- package/browser/{chunk-DGbegOkt.js → chunk-DX2ZzvT5.js} +1 -1
- package/browser/chunk-DXDohTwX.js +1 -0
- package/browser/chunk-DYE131qf.js +1 -0
- package/browser/{chunk-CS_CmKL0.js → chunk-DYUMiAN8.js} +1 -1
- package/browser/{chunk-Di5brgj6.js → chunk-D_vvo2qx.js} +1 -1
- package/browser/{chunk-CJIcHr4L.js → chunk-Dd2dq7xg.js} +1 -1
- package/browser/{chunk-CZutweoy.js → chunk-Dg6QAZUw.js} +1 -1
- package/browser/{chunk-CkwB4YzM.js → chunk-Dj9y_5pr.js} +1 -1
- package/browser/{chunk-Hhxvnnlp.js → chunk-DvzNS1Bs.js} +1 -1
- package/browser/{chunk-nRV2u7bW.js → chunk-DxxECdrg.js} +1 -1
- package/browser/{chunk-rjkvu4Y6.js → chunk-DzicJow4.js} +1 -1
- package/browser/{chunk-B64oBHQ_.js → chunk-HSc9fwVS.js} +1 -1
- package/browser/{chunk-DfyXf4Lw.js → chunk-Jv7RGmnK.js} +1 -1
- package/browser/{chunk-MtaKFhdm.js → chunk-K-fhwl_z.js} +1 -1
- package/browser/{chunk-CnFhM0Nt.js → chunk-RxHlNJ_t.js} +1 -1
- package/browser/{chunk-BM9I1k6S.js → chunk-XgEfnfT0.js} +1 -1
- package/browser/{chunk-D2wlWOWp.js → chunk-ZvcyZV3G.js} +1 -1
- package/browser/{chunk-CkXXby9d.js → chunk-fP29MqaN.js} +1 -1
- package/browser/{chunk-BESIk8ll.js → chunk-l0HLnBLv.js} +1 -1
- package/browser/{chunk-N-tYgqQC.js → chunk-mHtuxvLs.js} +1 -1
- package/browser/{chunk-CaAK8DtC.js → chunk-n1eKIk8H.js} +1 -1
- package/browser/{chunk-BxnUTBZC.js → chunk-nWqZHM4o.js} +1 -1
- package/browser/{chunk-DEr2MMdQ.js → chunk-qARg6ese.js} +1 -1
- package/browser/{chunk-Bf1Bttqy.js → chunk-uPxETzZs.js} +5 -5
- package/browser/index.html +1 -1
- package/browser/{main-4SCUMPDY.js → main-6K2UFGD2.js} +15 -15
- package/package.json +1 -1
- package/browser/chunk-B9IQiMog.js +0 -1
- package/browser/chunk-BUALjXbx.js +0 -1
- package/browser/chunk-Bsv9CCXL.js +0 -1
- package/browser/chunk-NLyO0ldw.js +0 -1
- package/browser/chunk-iamu8zs_.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {A,b as bt,k as kt}from'./chunk-
|
|
1
|
+
import {A,b as bt,k as kt}from'./chunk-C4U0w8cP.js';import {z as z$2}from'./chunk-CnnGSYzi.js';import {_ as _i}from'./chunk-Bnic_hdt.js';import {f as f$1}from'./chunk-BKlwFrFB.js';import {Y as Ye,E as Et$1,y as yt$1,Z as Ze}from'./chunk-C7MXO6BQ.js';import'./chunk-nWqZHM4o.js';import {g,w as we,R as Re,G,p as pe,L,P,U,O as Ot$1,F,u as ue,y as yT,z as zi,a as z$1,b as P$1,c as U$1,l as le,f,d as b,e as O,V,h as Rw,i as hr,j as pr,k as Gn$1,s as si,I as Is,q as qC,m as pl,A as Ag,t as tC,n as bg,o as iC,r as bC,J as JE,T as Tg,v as nC,x as sC,H as Hg,C as Cg,B as fE,D as Fg,E as wC,K as CC,M as dy,N,Q as c,W as Wy,S as By,X as br,Y as x,Z as z$3,_ as Ue,$ as zt$2,a0 as jt,a1 as Vt$1,a2 as Nt$1,a3 as UI,a4 as oC,a5 as vl,a6 as zI,a7 as ya,a8 as Zg,a9 as fC,aa as If,ab as wf,ac as yC,ad as Vg}from'./main-6K2UFGD2.js';import'./chunk-XgEfnfT0.js';import {x as xe,k as kt$1,C as Ct,z as ze}from'./chunk-DxxECdrg.js';import {P as Pt$1,L as Lt$1}from'./chunk-BLa2Gx7h.js';import {v as ve,n as ne}from'./chunk-fP29MqaN.js';import'./chunk-BhM0bmJW.js';import {W,k as ke$1,s as se}from'./chunk-BVCQOGLR.js';import {c as ce,n as nt,O as Ot$2,z as zt$1,T as Tn$1,S as Sn$1,a as ae}from'./chunk-BUEM7g7F.js';import {I as In$1,D as De,B as Be,E as En$1,F as Fn$1}from'./chunk-l0HLnBLv.js';import {V as Ve,n as ne$1,H as He,N as Ne}from'./chunk-DTIhOEG_.js';import {y as yt,w as wt$1,t as ti,Y as Ye$1,f as fn$1,Z as Zn,$ as $t$1,c as cn$1}from'./chunk-C9tuHQmZ.js';var Ot=(a,t)=>t.name;function Et(a,t){if(a&1&&(Is(0,"mat-option",11),qC(1),pl()),a&2){let e=t.$implicit;Tg("value",e),JE(),Zg(e);}}function Nt(a,t){a&1&&bg(0,"mat-spinner",13);}function It(a,t){if(a&1&&(Is(0,"span",20),qC(1),pl()),a&2){let e=yC().$implicit;JE(),Zg(e.description);}}function At(a,t){if(a&1&&(Is(0,"mat-option",11)(1,"span",19),qC(2),pl(),tC(3,It,2,1,"span",20),pl()),a&2){let e=t.$implicit;Tg("value",e.name),JE(2),Zg(e.name),JE(),nC(e.description?3:-1);}}function Vt(a,t){if(a&1&&(Is(0,"mat-option",11),qC(1),pl()),a&2){let e=t.$implicit;Tg("value",e),JE(),Zg(e);}}function Ft(a,t){if(a&1){let e=fC();Is(0,"div",25)(1,"mat-form-field",8)(2,"mat-label"),qC(3,"Name"),pl(),Is(4,"input",26),Ag("input",function(i){If(e);let l=yC(2);return wf(l.issueNumber.set(i.target.value))}),pl()(),Is(5,"mat-form-field",27)(6,"mat-label"),qC(7,"Type"),pl(),Is(8,"mat-select",28),Ag("selectionChange",function(i){If(e);let l=yC(2);return wf(l.branchType.set(i.value))}),iC(9,Vt,2,2,"mat-option",11,oC),pl()()();}if(a&2){let e=yC(2);JE(4),Tg("value",e.issueNumber()),JE(4),Tg("value",e.branchType()),JE(),sC(e.branchTypes);}}function Gt(a,t){a&1&&bg(0,"mat-spinner",13);}function Rt(a,t){if(a&1&&(Is(0,"mat-option",11),qC(1),pl()),a&2){let e=t.$implicit;Tg("value",e),JE(),Zg(e);}}function qt(a,t){if(a&1){let e=fC();Is(0,"mat-form-field",8)(1,"mat-label"),qC(2,"Source branch"),pl(),Is(3,"input",29,4),Ag("input",function(i){If(e);let l=yC(2);return wf(l.onBranchSearchInput(i.target.value))})("focus",function(){If(e);let i=bC(4),l=yC(2);return wf(l.openPanel(i))}),pl(),tC(5,Gt,1,0,"mat-spinner",13),Is(6,"mat-autocomplete",10,5),Ag("optionSelected",function(i){If(e);let l=yC(2);return wf(l.selectBranch(i.option.value))}),iC(8,Rt,2,2,"mat-option",11,oC),pl()();}if(a&2){let e=bC(7),n=yC(2);JE(3),Tg("value",n.branchSearch())("matAutocomplete",e)("disabled",n.isLoadingBranches()),JE(2),nC(n.isLoadingBranches()?5:-1),JE(3),sC(n.filteredBranches());}}function $t(a,t){if(a&1){let e=fC();Is(0,"div",21)(1,"button",22),Ag("click",function(){If(e);let i=yC();return wf(i.onModeChange("local"))}),Is(2,"mat-icon"),qC(3,"folder_open"),pl(),Is(4,"span",23),qC(5,"Local"),pl(),Is(6,"span",24),qC(7,"Work directly on the current branch"),pl()(),Is(8,"button",22),Ag("click",function(){If(e);let i=yC();return wf(i.onModeChange("worktree"))}),Is(9,"mat-icon"),qC(10,"account_tree"),pl(),Is(11,"span",23),qC(12,"Worktree"),pl(),Is(13,"span",24),qC(14,"Create an isolated worktree from a branch"),pl()()(),tC(15,Ft,11,2,"div",25),tC(16,qt,10,4,"mat-form-field",8);}if(a&2){let e=yC();JE(),Hg("active",e.mode()==="local"),JE(7),Hg("active",e.mode()==="worktree"),JE(7),nC(e.isWorktree()?15:-1),JE(),nC(e.isWorktree()?16:-1);}}function Lt(a,t){a&1&&bg(0,"mat-spinner",18);}function zt(a,t){a&1&&(Is(0,"mat-icon"),qC(1,"rocket_launch"),pl());}function Bt(a,t){a&1&&(Is(0,"mat-icon"),qC(1,"open_in_new"),pl());}var ke=class a{projectApi=g(c);agentApi=g(f$1);dialogRef=g(z$3);projectState=g(P);forcedProject=F(this.projectState.forcedProject$,{initialValue:null});selectedProject=zi("");projectSearch=zi("");selectedAgent=zi("");agentSearch=zi("");mode=zi("local");selectedBranch=zi("");branchSearch=zi("");issueNumber=zi("");branchType=zi("feature");task=zi("");hasGit=zi(false);branchTypes=["feature","fix","refactor","chore","docs","build"];projects=zi([]);agents=zi([]);branches=zi([]);filteredProjects=yT(()=>{let t=this.projectSearch().toLowerCase();return t?this.projects().filter(e=>e.toLowerCase().includes(t)):this.projects()});filteredAgents=yT(()=>{let t=this.agentSearch().toLowerCase();return t?this.agents().filter(e=>e.name.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)):this.agents()});filteredBranches=yT(()=>{let t=this.branchSearch().toLowerCase();return t?this.branches().filter(e=>e.toLowerCase().includes(t)):this.branches()});isLoadingAgents=zi(false);isLoadingBranches=zi(false);isSubmitting=zi(false);isWorktree=yT(()=>this.mode()==="worktree"&&this.hasGit());isValid=yT(()=>{let t=this.projects().includes(this.selectedProject()),e=this.agents().some(i=>i.name===this.selectedAgent()),n=t&&e&&!!this.task().trim();return this.isWorktree()?n&&!!this.selectedBranch()&&!!this.issueNumber().trim()&&!!this.branchType():n});canNavigate=yT(()=>this.projects().includes(this.selectedProject()));openPanel(t){t.openPanel();}onProjectSearchInput(t){this.projectSearch.set(t),this.selectedProject()&&t!==this.selectedProject()&&(this.selectedProject.set(""),this.selectedAgent.set(""),this.agentSearch.set(""),this.agents.set([]));}selectProject(t){this.selectedProject.set(t),this.projectSearch.set(t),this.selectedAgent.set(""),this.agentSearch.set(""),this.agents.set([]),this.branches.set([]),this.selectedBranch.set(""),this.branchSearch.set(""),this.hasGit.set(false),this.mode.set("local"),this.isLoadingAgents.set(true),this.agentApi.getAgents(t).subscribe({next:e=>{this.agents.set(e),this.isLoadingAgents.set(false);},error:()=>{this.isLoadingAgents.set(false);}}),this.projectApi.getGitBranches(t).subscribe({next:({branches:e})=>{this.hasGit.set(e.length>0);},error:()=>{this.hasGit.set(false);}});}onAgentSearchInput(t){this.agentSearch.set(t),this.selectedAgent()&&t!==this.selectedAgent()&&this.selectedAgent.set("");}selectAgent(t){this.selectedAgent.set(t),this.agentSearch.set(t);}onBranchSearchInput(t){this.branchSearch.set(t),this.selectedBranch()&&t!==this.selectedBranch()&&this.selectedBranch.set("");}selectBranch(t){this.selectedBranch.set(t),this.branchSearch.set(t);}ngOnInit(){this.projectApi.listProjects().subscribe({next:({projects:t})=>{let e=t.map(n=>n.name);this.projects.set(e),e.length===1&&e[0]&&this.selectProject(e[0]);}});}onProjectChange(t){this.selectProject(t);}onModeChange(t){this.mode.set(t),t==="worktree"&&this.selectedProject()&&this.branches().length===0&&this.loadBranches();}loadBranches(){this.isLoadingBranches.set(true),this.projectApi.getGitBranches(this.selectedProject()).subscribe({next:({branches:t})=>{this.branches.set(t),this.isLoadingBranches.set(false);},error:()=>{this.isLoadingBranches.set(false);}});}submit(){if(!this.isSubmitting()){if(this.isValid()){this.isSubmitting.set(true);let t=this.isWorktree()&&this.issueNumber().trim()?`${this.issueNumber().trim()} ${this.task().trim()}`:this.task().trim();this.projectApi.createTask(this.selectedProject(),this.selectedAgent(),t,this.isWorktree()?"worktree":"local",this.isWorktree()?this.selectedBranch():void 0,this.isWorktree()?this.issueNumber().trim():void 0,this.isWorktree()?this.branchType():void 0).subscribe({next:({threadId:e,projectId:n})=>{this.dialogRef.close({threadId:e,projectId:n});},error:()=>{this.isSubmitting.set(false);}});return}if(this.canNavigate()){this.dialogRef.close({projectId:this.selectedProject(),navigate:true});return}}}cancel(){this.dialogRef.close(null);}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=Rw({type:a,selectors:[["app-new-task-dialog"]],decls:37,vars:12,consts:[["projectTrigger","matAutocompleteTrigger"],["projectAuto",""],["agentTrigger","matAutocompleteTrigger"],["agentAuto",""],["branchTrigger","matAutocompleteTrigger"],["branchAuto",""],["mat-dialog-title",""],[1,"ntd-content"],["appearance","outline",1,"ntd-field"],["matInput","","placeholder","Search project...",3,"input","focus","value","matAutocomplete"],[3,"optionSelected"],[3,"value"],["matInput","","placeholder","Search agent...",3,"input","focus","value","matAutocomplete","disabled"],["matSuffix","","diameter","16"],["matInput","","placeholder","Describe what the agent should accomplish...","rows","4",3,"input","value"],["align","end"],["mat-button","",3,"click","disabled"],["mat-flat-button","",1,"ntd-launch-btn",3,"click","disabled"],["diameter","16"],[1,"ntd-agent-name"],[1,"ntd-agent-desc"],[1,"ntd-radio-group"],["type","button",1,"ntd-mode-btn",3,"click"],[1,"ntd-radio-label"],[1,"ntd-radio-hint"],[1,"ntd-row"],["matInput","","type","text","placeholder","Name",3,"input","value"],["appearance","outline",1,"ntd-field","ntd-field--small"],[3,"selectionChange","value"],["matInput","","placeholder","Search branch...",3,"input","focus","value","matAutocomplete","disabled"]],template:function(e,n){if(e&1){let i=fC();Is(0,"h2",6)(1,"mat-icon"),qC(2,"rocket_launch"),pl(),qC(3,` New Task
|
|
2
2
|
`),pl(),Is(4,"mat-dialog-content",7)(5,"mat-form-field",8)(6,"mat-label"),qC(7,"Project"),pl(),Is(8,"input",9,0),Ag("input",function(p){return n.onProjectSearchInput(p.target.value)})("focus",function(){If(i);let p=bC(9);return wf(n.openPanel(p))}),pl(),Is(10,"mat-autocomplete",10,1),Ag("optionSelected",function(p){return n.selectProject(p.option.value)}),iC(12,Et,2,2,"mat-option",11,oC),pl()(),Is(14,"mat-form-field",8)(15,"mat-label"),qC(16,"Agent"),pl(),Is(17,"input",12,2),Ag("input",function(p){return n.onAgentSearchInput(p.target.value)})("focus",function(){If(i);let p=bC(18);return wf(n.openPanel(p))}),pl(),tC(19,Nt,1,0,"mat-spinner",13),Is(20,"mat-autocomplete",10,3),Ag("optionSelected",function(p){return n.selectAgent(p.option.value)}),iC(22,At,4,3,"mat-option",11,Ot),pl()(),tC(24,$t,17,6),Is(25,"mat-form-field",8)(26,"mat-label"),qC(27,"Task"),pl(),Is(28,"textarea",14),Ag("input",function(p){return n.task.set(p.target.value)}),pl()()(),Is(29,"mat-dialog-actions",15)(30,"button",16),Ag("click",function(){return n.cancel()}),qC(31,"Cancel"),pl(),Is(32,"button",17),Ag("click",function(){return n.submit()}),tC(33,Lt,1,0,"mat-spinner",18)(34,zt,2,0,"mat-icon")(35,Bt,2,0,"mat-icon"),qC(36),pl()();}if(e&2){let i=bC(11),l=bC(21);JE(8),Tg("value",n.projectSearch())("matAutocomplete",i),JE(4),sC(n.filteredProjects()),JE(5),Tg("value",n.agentSearch())("matAutocomplete",l)("disabled",!n.selectedProject()||n.isLoadingAgents()),JE(2),nC(n.isLoadingAgents()?19:-1),JE(3),sC(n.filteredAgents()),JE(2),nC(n.hasGit()&&!n.forcedProject()?24:-1),JE(4),Tg("value",n.task()),JE(2),Tg("disabled",n.isSubmitting()),JE(2),Tg("disabled",!n.canNavigate()||n.isSubmitting()),JE(),nC(n.isSubmitting()?33:n.isValid()?34:35),JE(3),vl(" ",n.isValid()?"Launch":"Open"," ");}},dependencies:[ti,zt$2,jt,Vt$1,Nt$1,hr,pr,ce,nt,ae,zt$1,Tn$1,Sn$1,kt$1,Ct,Fn$1,ze,Pt$1,Lt$1,Et$1,yt$1,yt,wt$1],styles:["h2[mat-dialog-title][_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin-bottom:0}.ntd-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;padding-top:20px!important}.ntd-field[_ngcontent-%COMP%]{width:100%}.ntd-row[_ngcontent-%COMP%]{display:flex;gap:.75rem}.ntd-row[_ngcontent-%COMP%] .ntd-field--small[_ngcontent-%COMP%]{width:130px;flex-shrink:0}.ntd-radio-group[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding:.25rem 0 .75rem}.ntd-mode-btn[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.75rem;border:1px solid var(--color-border);border-radius:8px;background:transparent;color:var(--color-text);cursor:pointer;transition:border-color .15s,background .15s}.ntd-mode-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem;margin-bottom:.1rem}.ntd-mode-btn.active[_ngcontent-%COMP%]{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.ntd-mode-btn[_ngcontent-%COMP%]:hover:not(.active){border-color:var(--color-text-secondary)}.ntd-radio-label[_ngcontent-%COMP%]{font-weight:600;font-size:.9rem}.ntd-radio-hint[_ngcontent-%COMP%]{font-size:.72rem;color:var(--color-text-secondary);line-height:1.3;text-align:left}.ntd-agent-name[_ngcontent-%COMP%]{font-weight:500;display:block}.ntd-agent-desc[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:380px}.ntd-launch-btn[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse)}.ntd-launch-btn[_ngcontent-%COMP%]:disabled{background:var(--color-border);color:var(--color-text-secondary);opacity:.6;cursor:not-allowed}"],changeDetection:1})};var Qt=(a,t)=>t.name,Ut=(a,t)=>t.value;function Ht(a,t){if(a&1&&(Is(0,"mat-option",8),qC(1),pl()),a&2){let e=t.$implicit;Tg("value",e),JE(),Zg(e);}}function Jt(a,t){a&1&&bg(0,"mat-spinner",9);}function Xt(a,t){if(a&1&&(Is(0,"mat-option",8),qC(1),pl()),a&2){let e=t.$implicit;Tg("value",e.name),JE(),Zg(e.name);}}function Kt(a,t){if(a&1){let e=fC();Is(0,"button",37),Ag("click",function(){let i=If(e).$implicit,l=yC();return wf(l.toggleDay(i.value))}),qC(1),pl();}if(a&2){let e=t.$implicit,n=yC();Hg("selected",n.isDaySelected(e.value)),JE(),vl(" ",e.label," ");}}function Yt(a,t){if(a&1){let e=fC();Is(0,"mat-form-field",4)(1,"mat-label"),qC(2,"Number of runs"),pl(),Is(3,"input",17),Ag("ngModelChange",function(i){If(e);let l=yC();return wf(l.endOccurrences.set(i))}),pl(),UI(),pl();}if(a&2){let e=yC();JE(3),Tg("ngModel",e.endOccurrences()),zI();}}function Zt(a,t){if(a&1){let e=fC();Is(0,"mat-form-field",4)(1,"mat-label"),qC(2,"End date"),pl(),Is(3,"input",38),Ag("ngModelChange",function(i){If(e);let l=yC();return wf(l.endTimestamp.set(i))}),pl(),UI(),pl();}if(a&2){let e=yC();JE(3),Tg("ngModel",e.endTimestamp())("min",e.startTimestamp()),zI();}}function en(a,t){if(a&1&&(Is(0,"div",32)(1,"mat-icon"),qC(2,"error"),pl(),Is(3,"span"),qC(4),pl()()),a&2){let e=yC();JE(4),Zg(e.errorMessage());}}function tn(a,t){a&1&&bg(0,"mat-spinner",36);}function nn(a,t){a&1&&(Is(0,"mat-icon"),qC(1,"schedule"),pl());}var z=class a{projectApi=g(c);agentApi=g(f$1);schedulerApi=g(xe);dialogRef=g(z$3);dialogData=g(Ue,{optional:true});isEditMode=this.dialogData?.mode==="edit";projects=zi([]);agents=zi([]);name=zi("");selectedProject=zi("");selectedAgent=zi("");instruction=zi("");intervalValue=zi(1);intervalUnit=zi("d");startTimestamp=zi("");daysOfWeek=zi([]);endConditionType=zi("none");endOccurrences=zi(10);endTimestamp=zi("");enabled=zi(true);isLoadingAgents=zi(false);isSaving=zi(false);errorMessage=zi("");daysOfWeekOptions=[{value:1,label:"Mon"},{value:2,label:"Tue"},{value:3,label:"Wed"},{value:4,label:"Thu"},{value:5,label:"Fri"},{value:6,label:"Sat"},{value:0,label:"Sun"}];filteredProjects=yT(()=>{let t=this.selectedProject().toLowerCase();return this.projects().filter(e=>e.toLowerCase().includes(t))});filteredAgents=yT(()=>{let t=this.selectedAgent().toLowerCase();return this.agents().filter(e=>e.name.toLowerCase().includes(t))});isValid=yT(()=>{let t=this.projects().includes(this.selectedProject()),e=this.agents().some(l=>l.name===this.selectedAgent()),n=this.instruction().trim().length>0,i=this.intervalValue()>=1;return t&&e&&n&&i});ngOnInit(){if(this.isEditMode&&this.dialogData?.scheduler){let t=this.dialogData.scheduler;this.name.set(t.name),this.selectedAgent.set(t.agentName??""),this.instruction.set(t.instruction??""),this.enabled.set(t.enabled);let e=t.schedule.interval.match(/^(\d+)(min|h|d|M)$/);e&&e[1]&&e[2]&&(this.intervalValue.set(parseInt(e[1],10)),this.intervalUnit.set(e[2])),t.schedule.startTimestamp&&this.startTimestamp.set(this.toDatetimeLocal(new Date(t.schedule.startTimestamp))),this.daysOfWeek.set(t.schedule.daysOfWeek??[]),t.schedule.endCondition&&(this.endConditionType.set(t.schedule.endCondition.type),t.schedule.endCondition.type==="occurrences"?this.endOccurrences.set(t.schedule.endCondition.value):t.schedule.endCondition.type==="endTimestamp"&&this.endTimestamp.set(this.toDatetimeLocal(new Date(t.schedule.endCondition.value))));}else this.startTimestamp.set(this.toDatetimeLocal(new Date));this.projectApi.listProjects().subscribe({next:({projects:t})=>{let e=t.map(i=>i.name).filter(i=>!i.includes("__"));this.projects.set(e);let n=this.dialogData?.projectName;this.isEditMode&&n?this.onProjectSelected(n):e.length===1&&e[0]&&this.onProjectSelected(e[0]);}});}onProjectSelected(t){this.selectedProject.set(t),this.isEditMode||(this.agents.set([]),this.selectedAgent.set("")),this.projects().includes(t)&&(this.isLoadingAgents.set(true),this.agentApi.getAgents(t).subscribe({next:e=>{this.agents.set(e),this.isLoadingAgents.set(false),!this.isEditMode&&e.length===1&&e[0]&&this.selectedAgent.set(e[0].name);},error:()=>this.isLoadingAgents.set(false)}));}toggleDay(t){let e=this.daysOfWeek();e.indexOf(t)>-1?this.daysOfWeek.set(e.filter(i=>i!==t)):this.daysOfWeek.set([...e,t].sort());}isDaySelected(t){return this.daysOfWeek().includes(t)}toDatetimeLocal(t){let e=n=>String(n).padStart(2,"0");return `${t.getFullYear()}-${e(t.getMonth()+1)}-${e(t.getDate())}T${e(t.getHours())}:${e(t.getMinutes())}`}submit(){if(!this.isValid()||this.isSaving())return;this.errorMessage.set(""),this.isSaving.set(true);let t=this.startTimestamp(),e={startTimestamp:t?new Date(t).toISOString():new Date().toISOString(),interval:`${this.intervalValue()}${this.intervalUnit()}`},n=this.daysOfWeek();n.length>0&&(e.daysOfWeek=n);let i=this.endConditionType();i==="occurrences"?e.endCondition={type:"occurrences",value:this.endOccurrences()}:i==="endTimestamp"&&this.endTimestamp()&&(e.endCondition={type:"endTimestamp",value:new Date(this.endTimestamp()).toISOString()});let l=this.instruction().trim(),p=l.length>40?l.slice(0,40)+"\u2026":l,L=this.name().trim()||`${this.selectedAgent()} \u2014 ${p}`;this.isEditMode&&this.dialogData?.scheduler&&this.dialogData.projectName?this.schedulerApi.updateSchedulerForProject(this.dialogData.projectName,this.dialogData.scheduler.id,{name:L,agentName:this.selectedAgent(),instruction:l,schedule:e,enabled:this.enabled()}).subscribe({next:()=>{this.isSaving.set(false),this.dialogRef.close(true);},error:oe=>{this.errorMessage.set(oe?.error?.error||"Failed to update scheduler"),this.isSaving.set(false);}}):this.schedulerApi.createSchedulerForProject(this.selectedProject(),{name:L,agentName:this.selectedAgent(),instruction:l,schedule:e,enabled:this.enabled()}).subscribe({next:()=>{this.isSaving.set(false),this.dialogRef.close(true);},error:oe=>{this.errorMessage.set(oe?.error?.error||"Failed to create scheduler"),this.isSaving.set(false);}});}cancel(){this.dialogRef.close(false);}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=Rw({type:a,selectors:[["app-quick-scheduler-dialog"]],decls:84,vars:20,consts:[["projectAuto","matAutocomplete"],["agentAuto","matAutocomplete"],["mat-dialog-title",""],[1,"qsd-form"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Optional \u2014 auto-generated if empty",3,"ngModelChange","ngModel"],["matInput","","placeholder","Select a project",3,"ngModelChange","focus","ngModel","matAutocomplete"],[3,"optionSelected"],[3,"value"],["matSuffix","","diameter","18"],["matInput","","placeholder","Select an agent",3,"ngModelChange","focus","ngModel","matAutocomplete","disabled"],["matInput","","placeholder","e.g. Review open PRs and summarize what needs attention","rows","3",3,"ngModelChange","ngModel"],[1,"qsd-divider"],["matInput","","type","datetime-local",3,"ngModelChange","ngModel"],[1,"qsd-interval"],[1,"qsd-label"],["appearance","outline",1,"interval-value"],["matInput","","type","number","min","1",3,"ngModelChange","ngModel"],["appearance","outline",1,"interval-unit"],[3,"ngModelChange","ngModel"],["value","min"],["value","h"],["value","d"],["value","M"],[1,"qsd-days"],[1,"qsd-day-chips"],["type","button",1,"day-chip",3,"selected"],[1,"qsd-hint"],[1,"qsd-end"],["value","none"],["value","occurrences"],["value","endTimestamp"],[1,"qsd-error"],["align","end"],["mat-button","",3,"click","disabled"],["mat-flat-button","",3,"click","disabled"],["diameter","18"],["type","button",1,"day-chip",3,"click"],["matInput","","type","datetime-local",3,"ngModelChange","ngModel","min"]],template:function(e,n){if(e&1&&(Is(0,"h2",2)(1,"mat-icon"),qC(2,"schedule"),pl(),qC(3),pl(),Is(4,"mat-dialog-content")(5,"div",3)(6,"mat-form-field",4)(7,"mat-label"),qC(8,"Name"),pl(),Is(9,"input",5),Ag("ngModelChange",function(l){return n.name.set(l)}),pl(),UI(),pl(),Is(10,"mat-form-field",4)(11,"mat-label"),qC(12,"Project"),pl(),Is(13,"input",6),Ag("ngModelChange",function(l){return n.onProjectSelected(l)})("focus",function(){return n.selectedProject.set(n.selectedProject())}),pl(),UI(),Is(14,"mat-autocomplete",7,0),Ag("optionSelected",function(l){return n.onProjectSelected(l.option.value)}),iC(16,Ht,2,2,"mat-option",8,oC),pl()(),Is(18,"mat-form-field",4)(19,"mat-label"),qC(20,"Agent"),pl(),tC(21,Jt,1,0,"mat-spinner",9),Is(22,"input",10),Ag("ngModelChange",function(l){return n.selectedAgent.set(l)})("focus",function(){return n.selectedAgent.set(n.selectedAgent())}),pl(),UI(),Is(23,"mat-autocomplete",7,1),Ag("optionSelected",function(l){return n.selectedAgent.set(l.option.value)}),iC(25,Xt,2,2,"mat-option",8,Qt),pl()(),Is(27,"mat-form-field",4)(28,"mat-label"),qC(29,"What should the agent do?"),pl(),Is(30,"textarea",11),Ag("ngModelChange",function(l){return n.instruction.set(l)}),pl(),UI(),pl(),Is(31,"div",12)(32,"span"),qC(33,"Scheduling"),pl()(),Is(34,"mat-form-field",4)(35,"mat-label"),qC(36,"Starts on"),pl(),Is(37,"input",13),Ag("ngModelChange",function(l){return n.startTimestamp.set(l)}),pl(),UI(),pl(),Is(38,"div",14)(39,"span",15),qC(40,"Every"),pl(),Is(41,"mat-form-field",16)(42,"input",17),Ag("ngModelChange",function(l){return n.intervalValue.set(l)}),pl(),UI(),pl(),Is(43,"mat-form-field",18)(44,"mat-select",19),Ag("ngModelChange",function(l){return n.intervalUnit.set(l)}),Is(45,"mat-option",20),qC(46,"minutes"),pl(),Is(47,"mat-option",21),qC(48,"hours"),pl(),Is(49,"mat-option",22),qC(50,"days"),pl(),Is(51,"mat-option",23),qC(52,"months"),pl()(),UI(),pl()(),Is(53,"div",24)(54,"span",15),qC(55,"Days"),pl(),Is(56,"div",25),iC(57,Kt,2,3,"button",26,Ut),pl(),Is(59,"span",27),qC(60,"Leave empty for every day"),pl()(),Is(61,"div",28)(62,"mat-form-field",4)(63,"mat-label"),qC(64,"Ends on"),pl(),Is(65,"mat-select",19),Ag("ngModelChange",function(l){return n.endConditionType.set(l)}),Is(66,"mat-option",29),qC(67,"Never"),pl(),Is(68,"mat-option",30),qC(69,"After N runs"),pl(),Is(70,"mat-option",31),qC(71,"On a date"),pl()(),UI(),pl(),tC(72,Yt,4,1,"mat-form-field",4),tC(73,Zt,4,2,"mat-form-field",4),pl(),Is(74,"mat-checkbox",19),Ag("ngModelChange",function(l){return n.enabled.set(l)}),qC(75,"Enable immediately"),pl(),UI(),tC(76,en,5,1,"div",32),pl()(),Is(77,"mat-dialog-actions",33)(78,"button",34),Ag("click",function(){return n.cancel()}),qC(79,"Cancel"),pl(),Is(80,"button",35),Ag("click",function(){return n.submit()}),tC(81,tn,1,0,"mat-spinner",36)(82,nn,2,0,"mat-icon"),qC(83," Schedule "),pl()()),e&2){let i=bC(15),l=bC(24);JE(3),vl(" ",n.isEditMode?"Edit scheduled task":"New scheduled task",`
|
|
3
3
|
`),JE(6),Tg("ngModel",n.name()),zI(),JE(4),Tg("ngModel",n.selectedProject())("matAutocomplete",i),zI(),JE(3),sC(n.filteredProjects()),JE(5),nC(n.isLoadingAgents()?21:-1),JE(),Tg("ngModel",n.selectedAgent())("matAutocomplete",l)("disabled",!n.projects().includes(n.selectedProject())),zI(),JE(3),sC(n.filteredAgents()),JE(5),Tg("ngModel",n.instruction()),zI(),JE(7),Tg("ngModel",n.startTimestamp()),zI(),JE(5),Tg("ngModel",n.intervalValue()),zI(),JE(2),Tg("ngModel",n.intervalUnit()),zI(),JE(13),sC(n.daysOfWeekOptions),JE(8),Tg("ngModel",n.endConditionType()),zI(),JE(7),nC(n.endConditionType()==="occurrences"?72:-1),JE(),nC(n.endConditionType()==="endTimestamp"?73:-1),JE(),Tg("ngModel",n.enabled()),zI(),JE(2),nC(n.errorMessage()?76:-1),JE(2),Tg("disabled",n.isSaving()),JE(2),Tg("disabled",!n.isValid()||n.isSaving()),JE(),nC(n.isSaving()?81:82);}},dependencies:[ti,Ye$1,fn$1,Zn,$t$1,cn$1,zt$2,jt,Vt$1,Nt$1,hr,pr,ce,nt,ae,zt$1,Tn$1,Sn$1,kt$1,Ct,Fn$1,ze,Pt$1,Lt$1,ve,ne,Et$1,yt$1,yt,wt$1],styles:['[_nghost-%COMP%]{display:block}h2[mat-dialog-title][_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.qsd-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px;padding-top:4px}.full-width[_ngcontent-%COMP%]{width:100%}.qsd-interval[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.qsd-interval[_ngcontent-%COMP%] .qsd-label[_ngcontent-%COMP%]{font-size:14px;color:var(--mat-sys-on-surface-variant);white-space:nowrap}.qsd-interval[_ngcontent-%COMP%] .interval-value[_ngcontent-%COMP%]{width:80px}.qsd-interval[_ngcontent-%COMP%] .interval-unit[_ngcontent-%COMP%]{flex:1}.qsd-days[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.qsd-days[_ngcontent-%COMP%] .qsd-label[_ngcontent-%COMP%]{font-size:14px;color:var(--mat-sys-on-surface-variant);white-space:nowrap}.qsd-days[_ngcontent-%COMP%] .qsd-hint[_ngcontent-%COMP%]{font-size:12px;color:var(--mat-sys-on-surface-variant);opacity:.7;width:100%;margin-top:-4px;padding-left:36px}.qsd-day-chips[_ngcontent-%COMP%]{display:flex;gap:4px;flex-wrap:wrap}.day-chip[_ngcontent-%COMP%]{padding:4px 10px;border-radius:16px;border:1px solid var(--mat-sys-outline);background:transparent;color:var(--mat-sys-on-surface);font-size:12px;cursor:pointer;transition:background .15s,color .15s}.day-chip.selected[_ngcontent-%COMP%]{background:var(--mat-sys-primary);color:var(--mat-sys-on-primary);border-color:var(--mat-sys-primary)}.day-chip[_ngcontent-%COMP%]:hover:not(.selected){background:var(--mat-sys-surface-variant)}.qsd-divider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin:4px 0}.qsd-divider[_ngcontent-%COMP%]:before, .qsd-divider[_ngcontent-%COMP%]:after{content:"";flex:1;height:1px;background:var(--mat-sys-outline-variant)}.qsd-divider[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:12px;color:var(--mat-sys-on-surface-variant);text-transform:uppercase;letter-spacing:.5px}.qsd-end[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.qsd-error[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;color:var(--mat-sys-error);font-size:14px}.qsd-error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}mat-dialog-actions[_ngcontent-%COMP%]{gap:8px}mat-dialog-actions[_ngcontent-%COMP%] button[mat-flat-button][_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px}']})};var rn=(a,t)=>t.id;function an(a,t){if(a&1){let e=fC();Is(0,"button",9),Ag("click",function(){let i=If(e).$implicit,l=yC(2);return wf(l.setProject(i))}),qC(1),pl();}if(a&2){let e=t.$implicit,n=yC(2);Hg("active",n.activeProject()===e),JE(),vl(" ",e," ");}}function ln(a,t){if(a&1){let e=fC();Is(0,"nav",2)(1,"button",9),Ag("click",function(){If(e);let i=yC();return wf(i.setProject(null))}),qC(2," All projects "),pl(),iC(3,an,2,3,"button",10,oC),pl();}if(a&2){let e=yC();JE(),Hg("active",e.activeProject()===null),JE(2),sC(e.projects());}}function sn(a,t){a&1&&(Is(0,"div",3),bg(1,"mat-spinner",11),pl());}function cn(a,t){if(a&1&&(Is(0,"div",4)(1,"mat-icon"),qC(2,"error"),pl(),qC(3),pl()),a&2){let e=yC();JE(3),vl(" ",e.errorMessage()," ");}}function dn(a,t){if(a&1){let e=fC();Is(0,"div",5)(1,"mat-icon"),qC(2,"schedule"),pl(),Is(3,"p"),qC(4,"No scheduled tasks yet."),pl(),Is(5,"button",12),Ag("click",function(){If(e);let i=yC();return wf(i.openCreate())}),Is(6,"mat-icon"),qC(7,"add"),pl(),qC(8," Create one "),pl()();}}function pn(a,t){if(a&1&&(Is(0,"span",17),qC(1),pl()),a&2){let e=yC().$implicit;JE(),Zg(e.projectName);}}function mn(a,t){if(a&1){let e=fC();Is(0,"li",14)(1,"div",15)(2,"span",16),qC(3),pl(),tC(4,pn,2,1,"span",17),Is(5,"span",18),qC(6),pl()(),Is(7,"div",19)(8,"span",20),qC(9),pl(),Is(10,"span",21),qC(11),pl()(),Is(12,"div",22)(13,"mat-slide-toggle",23),Ag("change",function(){let i=If(e).$implicit,l=yC(2);return wf(l.toggleEnabled(i))}),pl(),Is(14,"button",24),Ag("click",function(){let i=If(e).$implicit,l=yC(2);return wf(l.runNow(i))}),Is(15,"mat-icon"),qC(16,"play_arrow"),pl()(),Is(17,"button",25),Ag("click",function(){let i=If(e).$implicit,l=yC(2);return wf(l.edit(i))}),Is(18,"mat-icon"),qC(19,"edit"),pl()(),Is(20,"button",26),Ag("click",function(){let i=If(e).$implicit,l=yC(2);return wf(l.delete(i))}),Is(21,"mat-icon"),qC(22,"delete"),pl()()()();}if(a&2){let e=t.$implicit,n=yC(2);Hg("disabled",!e.enabled),JE(3),Zg(e.name),JE(),nC(n.projects().length>1?4:-1),JE(2),Zg(n.getSource(e)),JE(3),Zg(n.formatInterval(e.schedule.interval)),JE(),Hg("due",!e.nextRun),JE(),Zg(n.formatNextRun(e.nextRun)),JE(2),Tg("checked",e.enabled);}}function un(a,t){if(a&1&&(Is(0,"ul",6),iC(1,mn,23,10,"li",13,rn),pl()),a&2){let e=yC();JE(),sC(e.filteredSchedulers());}}var Me=class a{projectApi=g(c);schedulerApi=g(xe);dialog=g(Re);dialogRef=g(z$3);allSchedulers=zi([]);isLoading=zi(true);errorMessage=zi("");activeProject=zi(null);projects=zi([]);filteredSchedulers=yT(()=>{let t=this.activeProject(),e=this.allSchedulers();return t?e.filter(n=>n.projectName===t):e});ngOnInit(){this.load();}load(){this.isLoading.set(true),this.errorMessage.set(""),this.projectApi.listProjects().subscribe({next:({projects:t})=>{let e=t.map(i=>i.name).filter(i=>!i.includes("__"));if(this.projects.set(e),e.length===0){this.isLoading.set(false);return}let n=e.map(i=>this.schedulerApi.listSchedulersForProject(i).pipe(ya(()=>br([]))));By(n).subscribe({next:i=>{let l=[];i.forEach((p,L)=>{p.forEach(oe=>l.push(z$1(P$1({},oe),{projectName:e[L]})));}),this.allSchedulers.set(l),this.isLoading.set(false);},error:()=>{this.errorMessage.set("Failed to load schedulers"),this.isLoading.set(false);}});},error:()=>{this.errorMessage.set("Failed to load projects"),this.isLoading.set(false);}});}setProject(t){this.activeProject.set(t);}formatInterval(t){let e=/^(\d+)(min|h|d|M)$/.exec(t);if(!e)return t;let[,n,i]=e;return `Every ${n}${{min:"min",h:"h",d:"d",M:"mo"}[i??""]??i}`}formatNextRun(t){if(!t)return "Expired";let e=new Date(t),n=new Date,i=e.getTime()-n.getTime();if(i<0)return "Due";let l=Math.floor(i/6e4);if(l<60)return `in ${l}m`;let p=Math.floor(l/60);return p<24?`in ${p}h`:`in ${Math.floor(p/24)}d`}getSource(t){if(t.agentName&&t.instruction){let e=t.instruction.length>35?t.instruction.slice(0,35)+"\u2026":t.instruction;return `${t.agentName}: ${e}`}return t.promptId??""}toggleEnabled(t){(t.enabled?this.schedulerApi.disableSchedulerForProject(t.projectName,t.id):this.schedulerApi.enableSchedulerForProject(t.projectName,t.id)).subscribe({next:()=>{this.allSchedulers.update(n=>n.map(i=>i.id===t.id?z$1(P$1({},i),{enabled:!i.enabled}):i));},error:()=>this.errorMessage.set("Failed to toggle scheduler")});}runNow(t){this.schedulerApi.runSchedulerNowForProject(t.projectName,t.id).subscribe({error:()=>this.errorMessage.set("Failed to run scheduler")});}edit(t){let e={mode:"edit",projectName:t.projectName,scheduler:{id:t.id,name:t.name,agentName:t.agentName,instruction:t.instruction,enabled:t.enabled,schedule:t.schedule}};this.dialog.open(z,{width:"480px",data:e}).afterClosed().subscribe(i=>{i&&this.load();});}delete(t){this.schedulerApi.deleteSchedulerForProject(t.projectName,t.id).subscribe({next:()=>{this.allSchedulers.update(e=>e.filter(n=>n.id!==t.id));},error:()=>this.errorMessage.set("Failed to delete scheduler")});}openCreate(){this.dialogRef.close(),this.dialog.open(z,{width:"480px"});}close(){this.dialogRef.close();}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=Rw({type:a,selectors:[["app-global-schedulers-dialog"]],decls:19,vars:3,consts:[["mat-dialog-title",""],[1,"gsd-count"],[1,"gsd-project-filters"],[1,"gsd-loading"],[1,"gsd-error"],[1,"gsd-empty"],[1,"gsd-list"],["align","end"],["mat-button","",3,"click"],[1,"proj-chip",3,"click"],[1,"proj-chip",3,"active"],["diameter","32"],["mat-flat-button","",3,"click"],[1,"gsd-item",3,"disabled"],[1,"gsd-item"],[1,"gsd-item-main"],[1,"gsd-item-name"],[1,"gsd-item-project"],[1,"gsd-item-source"],[1,"gsd-item-meta"],[1,"gsd-interval"],[1,"gsd-next"],[1,"gsd-item-actions"],["matTooltip","Enable / Disable",3,"change","checked"],["mat-icon-button","","matTooltip","Run now",3,"click"],["mat-icon-button","","matTooltip","Edit",3,"click"],["mat-icon-button","","matTooltip","Delete",1,"delete-btn",3,"click"]],template:function(e,n){e&1&&(Is(0,"h2",0)(1,"mat-icon"),qC(2,"schedule"),pl(),qC(3," Scheduled tasks "),Is(4,"span",1),qC(5),pl()(),Is(6,"mat-dialog-content"),tC(7,ln,5,2,"nav",2),tC(8,sn,2,0,"div",3)(9,cn,4,1,"div",4)(10,dn,9,0,"div",5)(11,un,3,0,"ul",6),pl(),Is(12,"mat-dialog-actions",7)(13,"button",8),Ag("click",function(){return n.openCreate()}),Is(14,"mat-icon"),qC(15,"add"),pl(),qC(16," New scheduler "),pl(),Is(17,"button",8),Ag("click",function(){return n.close()}),qC(18,"Close"),pl()()),e&2&&(JE(5),Zg(n.filteredSchedulers().length),JE(2),nC(n.projects().length>1?7:-1),JE(),nC(n.isLoading()?8:n.errorMessage()?9:n.filteredSchedulers().length===0?10:11));},dependencies:[ti,zt$2,jt,Vt$1,Nt$1,hr,pr,Gn$1,yt,wt$1,Et$1,yt$1,Pt$1,Ve,ne$1,ke$1,se],styles:["[_nghost-%COMP%]{display:block}h2[mat-dialog-title][_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}h2[mat-dialog-title][_ngcontent-%COMP%] .gsd-count[_ngcontent-%COMP%]{font-size:13px;font-weight:400;color:var(--mat-sys-on-surface-variant);margin-left:2px}.gsd-project-filters[_ngcontent-%COMP%]{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.proj-chip[_ngcontent-%COMP%]{padding:4px 12px;border-radius:16px;border:1px solid var(--mat-sys-outline);background:transparent;color:var(--mat-sys-on-surface);font-size:13px;cursor:pointer;transition:background .15s,color .15s}.proj-chip.active[_ngcontent-%COMP%]{background:var(--mat-sys-primary);color:var(--mat-sys-on-primary);border-color:var(--mat-sys-primary)}.proj-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--mat-sys-surface-variant)}.gsd-loading[_ngcontent-%COMP%], .gsd-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 0;color:var(--mat-sys-on-surface-variant)}.gsd-loading[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%], .gsd-empty[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:40px;width:40px;height:40px;opacity:.4}.gsd-error[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;color:var(--mat-sys-error);padding:16px 0}.gsd-list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.gsd-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;background:var(--mat-sys-surface-container);transition:opacity .2s}.gsd-item.disabled[_ngcontent-%COMP%]{opacity:.5}.gsd-item-main[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.gsd-item-name[_ngcontent-%COMP%]{font-weight:500;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gsd-item-project[_ngcontent-%COMP%]{font-size:11px;color:var(--mat-sys-primary);font-weight:500}.gsd-item-source[_ngcontent-%COMP%]{font-size:12px;color:var(--mat-sys-on-surface-variant);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gsd-item-meta[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}.gsd-interval[_ngcontent-%COMP%]{font-size:12px;color:var(--mat-sys-on-surface-variant)}.gsd-next[_ngcontent-%COMP%]{font-size:11px;color:var(--mat-sys-on-surface-variant)}.gsd-next.due[_ngcontent-%COMP%]{color:var(--mat-sys-error)}.gsd-item-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px}.gsd-item-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]{color:var(--mat-sys-error);opacity:.7;transition:opacity .15s}.gsd-item-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]:hover{opacity:1}mat-dialog-actions[_ngcontent-%COMP%]{gap:8px}"]})};var Se=class a{http=g(dy);threadApi=g(N);projectApi=g(c);isLoading=zi(false);tasks=zi([]);refresh(){this.isLoading.set(true),this.threadApi.listAllThreads().pipe(Wy(15e3)).subscribe({next:t=>{let e=t.filter(n=>!n.parentThreadId).map(n=>({id:n.id,name:n.name,summary:n.summary,modifiedDate:n.modifiedDate,starring:n.starring??[],users:n.users??[],isActive:false,status:this.deriveStatus(n),projectId:n.projectId,worktreeProject:n.worktreeProject}));this.tasks.set(this.sorted(e)),this.isLoading.set(false);},error:()=>{this.isLoading.set(false);}});}applyStatusEvent(t,e){let n=e==="invite"?"waiting-you":"in-progress";this.tasks.update(i=>this.sorted(i.map(l=>l.id===t?z$1(P$1({},l),{status:n}):l)));}closeTask(t,e){this.tasks.update(n=>n.filter(i=>i.id!==e)),this.http.delete(`/api/projects/${t}/missions/${e}`).subscribe({next:()=>this.refresh(),error:n=>{console.error("[GLOBAL-TC] Failed to close task:",n),this.refresh();}});}stopThread(t,e){this.http.post(`/api/projects/${t}/threads/${e}/stop`,{}).subscribe({error:n=>console.error("[GLOBAL-TC] Failed to stop thread:",n)});}deleteThread(t,e){this.tasks.update(n=>n.filter(i=>i.id!==e)),this.http.delete(`/api/projects/${t}/threads/${e}`).subscribe({next:()=>this.refresh(),error:n=>{console.error("[GLOBAL-TC] Failed to delete thread:",n),this.refresh();}});}toggleStar(t,e,n){let i=`/api/projects/${t}/threads/${e}/star`;(n?this.http.delete(i):this.http.post(i,{})).subscribe({next:()=>this.refresh(),error:p=>console.error("[GLOBAL-TC] Failed to toggle star:",p)});}markTaskDone(t,e){this.http.post(`/api/projects/${t}/threads/${e}/done`,{}).subscribe({next:()=>this.refresh(),error:n=>console.error("[GLOBAL-TC] Failed to mark task as done:",n)});}markTasksBatchDone(t){if(t.length===0)return;let e=new Map;for(let{id:l,projectId:p}of t){let L=e.get(p)??[];L.push(l),e.set(p,L);}let n=new Set(t.map(l=>l.id));this.tasks.update(l=>this.sorted(l.map(p=>n.has(p.id)?z$1(P$1({},p),{status:"done"}):p)));let i=[...e.entries()].map(([l,p])=>this.projectApi.markThreadsBatchDone(l,p));By(i.length>0?i:[br(null)]).subscribe({next:()=>this.refresh(),error:l=>{console.error("[GLOBAL-TC] Failed to batch-mark tasks as done:",l),this.refresh();}});}markTaskActive(t,e){this.http.delete(`/api/projects/${t}/threads/${e}/done`).subscribe({next:()=>this.refresh(),error:n=>console.error("[GLOBAL-TC] Failed to mark task as active:",n)});}deriveStatus(t){return t.closedByUser?"done":t.pendingInvite?"waiting-you":Date.now()-new Date(t.modifiedDate).getTime()<bt?"in-progress":"paused"}sorted(t){return [...t].sort((e,n)=>{let i=kt[e.status]-kt[n.status];return i!==0?i:e.modifiedDate>n.modifiedDate?-1:1})}static \u0275fac=function(e){return new(e||a)};static \u0275prov=x({token:a,factory:a.\u0275fac,providedIn:"root"})};var Te=class a{configApi=g(W);dialog=g(Re);openUserConfigEditor(){this.configApi.getUserConfig().subscribe({next:t=>{this.dialog.open(Ze,{data:{configType:"user",initialContent:JSON.stringify(t,null,2)}}).afterClosed().subscribe(n=>{n&&this.configApi.updateUserConfig(n).subscribe({error:i=>console.error("[CONFIG-STATE] Error saving user config:",i)});});},error:t=>console.error("[CONFIG-STATE] Error loading user config:",t)});}static \u0275fac=function(e){return new(e||a)};static \u0275prov=x({token:a,factory:a.\u0275fac,providedIn:"root"})};var gn=["layoutContainer"],hn=(a,t)=>t.key,_n=(a,t)=>t.name,fn=(a,t)=>t.status,Pt=(a,t)=>t.id;function bn(a,t){if(a&1){let e=fC();Is(0,"button",32),Ag("click",function(){If(e);let i=yC();return wf(i.clearSearch())}),Is(1,"mat-icon"),qC(2,"close"),pl()();}}function vn(a,t){if(a&1){let e=fC();Is(0,"button",33),Ag("click",function(){let i=If(e).$implicit,l=yC(2);return wf(l.setProject(i.name))}),qC(1),Is(2,"span",34),qC(3),pl()();}if(a&2){let e=t.$implicit,n=yC(2);Hg("active",n.activeProject()===e.name),JE(),vl(" ",e.name," "),JE(2),Zg(e.count);}}function Cn(a,t){if(a&1){let e=fC();Is(0,"nav",22)(1,"button",33),Ag("click",function(){If(e);let i=yC();return wf(i.setProject(null))}),qC(2," All projects "),Is(3,"span",34),qC(4),pl()(),iC(5,vn,4,4,"button",35,_n),pl();}if(a&2){let e=yC();JE(),Hg("active",e.activeProject()===null),JE(3),Zg(e.allTasks().length),JE(),sC(e.projectSummaries());}}function yn(a,t){if(a&1&&(Is(0,"span",37),qC(1),pl()),a&2){let e=yC().$implicit,n=yC();JE(),Zg(n.filterCounts()[e.key]);}}function xn(a,t){if(a&1){let e=fC();Is(0,"button",36),Ag("click",function(){let i=If(e).$implicit,l=yC();return wf(l.setFilter(i.key))}),Is(1,"mat-icon",26),qC(2),pl(),Is(3,"span"),qC(4),pl(),tC(5,yn,2,1,"span",37),pl();}if(a&2){let e=t.$implicit,n=yC();Hg("active",n.activeFilter()===e.key),Cg("aria-selected",n.activeFilter()===e.key),JE(2),Zg(e.icon),JE(2),Zg(e.label),JE(),nC(n.filterCounts()[e.key]>0?5:-1);}}function kn(a,t){a&1&&(Is(0,"div",29),bg(1,"mat-spinner",38),Is(2,"p"),qC(3,"Loading tasks from all projects\u2026"),pl()());}function Mn(a,t){a&1&&(Is(0,"div",30)(1,"mat-icon",39),qC(2,"hub"),pl(),Is(3,"p"),qC(4,"No tasks found."),pl()());}function Sn(a,t){if(a&1){let e=fC();Is(0,"button",51),Ag("click",function(){If(e);let i=yC(5);return wf(i.markSelectedPausedDone())}),Is(1,"mat-icon"),qC(2,"check_circle_outline"),pl(),qC(3),pl();}if(a&2){let e=yC(5);Tg("matTooltip","Mark "+e.selectedPausedCount()+" task(s) as done"),JE(3),vl(" Mark done (",e.selectedPausedCount(),") ");}}function Tn(a,t){if(a&1){let e=fC();Is(0,"mat-checkbox",48),Ag("change",function(){If(e);let i=yC(4);return wf(i.toggleSelectAllPaused())}),pl(),tC(1,Sn,4,2,"button",49),Is(2,"button",50),Ag("click",function(){If(e);let i=yC(4);return wf(i.toggleSelectMode())}),Is(3,"mat-icon"),qC(4,"close"),pl()();}if(a&2){let e=yC(4);Tg("checked",e.allPausedSelected())("indeterminate",e.somePausedSelected()&&!e.allPausedSelected()),JE(),nC(e.selectedPausedCount()>0?1:-1);}}function wn(a,t){if(a&1){let e=fC();Is(0,"button",52),Ag("click",function(){If(e);let i=yC(4);return wf(i.toggleSelectMode())}),Is(1,"mat-icon"),qC(2,"checklist"),pl(),qC(3," Select "),pl();}}function Pn(a,t){if(a&1&&(Is(0,"div",41)(1,"h3",42)(2,"mat-icon",44),qC(3),pl(),qC(4),Is(5,"span",45),qC(6),pl()(),Is(7,"div",46),tC(8,Tn,5,3)(9,wn,4,0,"button",47),pl()()),a&2){let e=yC().$implicit,n=yC(2);JE(3),Zg(e.icon),JE(),vl(" ",e.label," "),JE(2),Zg(e.tasks.length),JE(2),nC(n.isSelectMode()?8:9);}}function Dn(a,t){if(a&1&&(Is(0,"h3",42)(1,"mat-icon",44),qC(2),pl(),qC(3),Is(4,"span",45),qC(5),pl()()),a&2){let e=yC().$implicit;JE(2),Zg(e.icon),JE(),vl(" ",e.label," "),JE(2),Zg(e.tasks.length);}}function jn(a,t){if(a&1){let e=fC();Is(0,"app-task-card",53),Ag("stopRequested",function(i){let l=If(e).$implicit,p=yC(3);return wf(p.onStopRequested(i,l.projectId))})("deleteRequested",function(i){let l=If(e).$implicit,p=yC(3);return wf(p.onDeleteRequested(i,l.projectId))})("starToggled",function(i){let l=If(e).$implicit,p=yC(3);return wf(p.onStarToggled(i,l.projectId))})("closeTaskRequested",function(i){let l=If(e).$implicit,p=yC(3);return wf(p.onCloseTaskRequested(i,l.projectId))})("markDoneRequested",function(i){let l=If(e).$implicit,p=yC(3);return wf(p.onMarkDoneRequested(i,l.projectId))})("markActiveRequested",function(i){let l=If(e).$implicit,p=yC(3);return wf(p.onMarkActiveRequested(i,l.projectId))})("previewRequested",function(i){let l=If(e).$implicit,p=yC(3);return wf(p.onPreviewRequested(i,l.projectId,l.name))})("selectionChanged",function(i){If(e);let l=yC(3);return wf(l.onPausedSelectionChanged(i.id,i.selected))}),pl();}if(a&2){let e=t.$implicit,n=yC().$implicit,i=yC(2);Hg("is-previewed",i.previewThreadId()===e.id),Tg("task",e)("projectNameOverride",e.projectId)("showProject",true)("previewMode",i.previewActive())("selectable",n.status==="paused"&&i.isSelectMode())("selected",i.selectedPausedIds().has(e.id));}}function On(a,t){if(a&1&&(Is(0,"section",40),tC(1,Pn,10,4,"div",41)(2,Dn,6,3,"h3",42),Is(3,"div",31),iC(4,jn,1,8,"app-task-card",43,Pt),pl()()),a&2){let e=t.$implicit;JE(),nC(e.status==="paused"?1:2),JE(3),sC(e.tasks);}}function En(a,t){if(a&1&&iC(0,On,6,1,"section",40,fn),a&2){let e=yC();sC(e.taskGroups());}}function Nn(a,t){if(a&1){let e=fC();Is(0,"app-task-card",55),Ag("stopRequested",function(i){let l=If(e).$implicit,p=yC(2);return wf(p.onStopRequested(i,l.projectId))})("deleteRequested",function(i){let l=If(e).$implicit,p=yC(2);return wf(p.onDeleteRequested(i,l.projectId))})("starToggled",function(i){let l=If(e).$implicit,p=yC(2);return wf(p.onStarToggled(i,l.projectId))})("closeTaskRequested",function(i){let l=If(e).$implicit,p=yC(2);return wf(p.onCloseTaskRequested(i,l.projectId))})("markDoneRequested",function(i){let l=If(e).$implicit,p=yC(2);return wf(p.onMarkDoneRequested(i,l.projectId))})("markActiveRequested",function(i){let l=If(e).$implicit,p=yC(2);return wf(p.onMarkActiveRequested(i,l.projectId))})("previewRequested",function(i){let l=If(e).$implicit,p=yC(2);return wf(p.onPreviewRequested(i,l.projectId,l.name))}),pl();}if(a&2){let e=t.$implicit,n=yC(2);Hg("is-previewed",n.previewThreadId()===e.id),Tg("task",e)("projectNameOverride",e.projectId)("showProject",true)("previewMode",n.previewActive());}}function In(a,t){if(a&1&&(Is(0,"div",31),iC(1,Nn,1,6,"app-task-card",54,Pt),pl()),a&2){let e=yC();JE(),sC(e.displayedTasks());}}function An(a,t){if(a&1){let e=fC();Is(0,"div",56),Ag("mousedown",function(i){If(e);let l=yC();return wf(l.onResizerMousedown(i))}),pl(),Is(1,"div",57)(2,"header",58)(3,"span",59),qC(4),pl(),Is(5,"div",60)(6,"button",61),Ag("click",function(){If(e);let i=yC();return wf(i.navigateToThread())}),Is(7,"mat-icon"),qC(8,"open_in_new"),pl()(),Is(9,"button",62),Ag("click",function(){If(e);let i=yC();return wf(i.closePreview())}),Is(10,"mat-icon"),qC(11,"close"),pl()()()(),Is(12,"div",63),bg(13,"app-thread",64),pl()();}if(a&2){let e=yC();JE(),Vg("width",e.previewPanelWidthPercent(),"%"),JE(3),Zg(e.previewTaskName()||"Task"),JE(9),Tg("projectName",e.previewProjectId())("threadId",e.previewThreadId());}}var Vn=20,Fn=70,Gn=[{status:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt"},{status:"in-progress",label:"In progress",icon:"pending"},{status:"paused",label:"Paused",icon:"pause_circle"},{status:"error",label:"Error",icon:"error"},{status:"done",label:"Done",icon:"check_circle"}],Rn=[{key:"all",label:"All",icon:"grid_view"},{key:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt"},{key:"in-progress",label:"In progress",icon:"pending"},{key:"paused",label:"Paused",icon:"pause_circle"},{key:"done",label:"Done",icon:"check_circle"}],wt=class a{globalTaskService=g(Se);destroyRef=g(we);dialog=g(Re);router=g(G);configState=g(Te);userService=g(pe);preferences=g(L);projectState=g(P);threadState=g(U);breakpointObserver=g(Ot$1);username=F(this.userService.username$,{initialValue:null});isDesktop=F(this.breakpointObserver.observe("(min-width: 1280px)").pipe(ue(t=>t.matches)),{initialValue:false});previewEnabled=F(this.preferences.missionPreviewEnabled$,{initialValue:false});previewActive=yT(()=>this.previewEnabled()&&this.isDesktop());previewThreadId=zi(null);previewProjectId=zi(null);previewTaskName=zi(null);previewPanelWidthPercent=zi(this.preferences.getMissionPreviewPanelWidth());isDraggingResizer=false;dragStartX=0;dragStartWidth=0;containerWidth=0;layoutContainerRef;globalEventSource=null;filters=Rn;activeFilter=zi("all");starredOnly=zi(false);activeProject=zi(null);searchQuery=zi("");isLoading=this.globalTaskService.isLoading;allTasks=this.globalTaskService.tasks;isSelectMode=zi(false);selectedPausedIds=zi(new Set);pausedTasks=yT(()=>this.displayedTasks().filter(t=>t.status==="paused"));allPausedSelected=yT(()=>{let t=this.pausedTasks(),e=this.selectedPausedIds();return t.length>0&&t.every(n=>e.has(n.id))});somePausedSelected=yT(()=>{let t=this.selectedPausedIds();return this.pausedTasks().some(e=>t.has(e.id))});selectedPausedCount=yT(()=>{let t=this.selectedPausedIds();return this.pausedTasks().filter(e=>t.has(e.id)).length});projectSummaries=yT(()=>{let t=this.allTasks(),e=new Map;for(let n of t)e.set(n.projectId,(e.get(n.projectId)??0)+1);return [...e.entries()].map(([n,i])=>({name:n,count:i})).sort((n,i)=>n.name.localeCompare(i.name))});filteredTasks=yT(()=>{let t=this.allTasks(),e=this.activeProject();e&&(t=t.filter(l=>l.projectId===e));let n=this.username();this.starredOnly()&&n&&(t=t.filter(l=>l.starring.includes(n)));let i=this.activeFilter();return i!=="all"&&(t=t.filter(l=>l.status===i)),t});filterCounts=yT(()=>{let t=this.allTasks(),e=this.activeProject();e&&(t=t.filter(i=>i.projectId===e));let n=this.username();return this.starredOnly()&&n&&(t=t.filter(i=>i.starring.includes(n))),{all:t.length,"waiting-you":t.filter(i=>i.status==="waiting-you").length,"in-progress":t.filter(i=>i.status==="in-progress").length,done:t.filter(i=>i.status==="done").length,paused:t.filter(i=>i.status==="paused").length,error:t.filter(i=>i.status==="error").length}});displayedTasks=yT(()=>{let t=this.searchQuery().toLowerCase().trim(),e=this.sortedFilteredTasks();return t?e.filter(n=>(n.name||"").toLowerCase().includes(t)||(n.summary||"").toLowerCase().includes(t)):e});taskGroups=yT(()=>{let t=this.displayedTasks();return Gn.map(e=>z$1(P$1({},e),{tasks:t.filter(n=>n.status===e.status)})).filter(e=>e.tasks.length>0)});sortedFilteredTasks=yT(()=>{let t=this.filteredTasks(),e={"waiting-you":0,"in-progress":1,paused:2,error:3,done:4};return [...t].sort((n,i)=>(e[n.status]??99)-(e[i.status]??99))});constructor(){this.destroyRef.onDestroy(()=>this.disconnectGlobalSse());}ngOnInit(){this.globalTaskService.refresh(),this.connectGlobalSse(),this.userService.fetchCurrentUser().pipe(U$1(this.destroyRef)).subscribe({error:t=>console.warn("[GTC] Could not fetch user:",t)});}setFilter(t){this.activeFilter.set(t);}toggleStarredFilter(){this.starredOnly.update(t=>!t);}setProject(t){this.activeProject.set(t),this.activeFilter.set("all");}onSearchInput(t){this.searchQuery.set(t.target.value);}clearSearch(){this.searchQuery.set("");}refresh(){this.globalTaskService.refresh();}openPreferences(){this.dialog.open(Ye,{width:"400px"});}openTokenUsage(){this.router.navigate(["/token-usage"]);}openUserConfig(){this.configState.openUserConfigEditor();}openQuickSchedulerDialog(){this.dialog.open(z,{width:"480px",disableClose:false});}openGlobalSchedulersDialog(){this.dialog.open(Me,{width:"600px",maxHeight:"80vh"});}openNewTaskDialog(){this.dialog.open(ke,{width:"500px",disableClose:false}).afterClosed().subscribe(e=>{e&&(e.navigate?this.router.navigate(["project",e.projectId]):(setTimeout(()=>this.globalTaskService.refresh(),300),setTimeout(()=>this.globalTaskService.refresh(),1500)));});}onStopRequested(t,e){this.globalTaskService.stopThread(e,t);}onDeleteRequested(t,e){this.globalTaskService.deleteThread(e,t);}onStarToggled(t,e){let n=this.allTasks().find(p=>p.id===t);if(!n)return;let i=this.username(),l=!!i&&n.starring.includes(i);this.globalTaskService.toggleStar(e,t,l);}onCloseTaskRequested(t,e){let i=this.allTasks().find(p=>p.id===t)?.worktreeProject??e;this.dialog.open(z$2,{width:"420px",data:{title:"Close task",message:`This will stop the agent, delete the thread and remove the worktree project "${i}" from disk. This cannot be undone.`,confirmLabel:"Close task",cancelLabel:"Cancel"}}).afterClosed().subscribe(p=>{p&&this.globalTaskService.closeTask(e,t);});}onMarkDoneRequested(t,e){this.globalTaskService.markTaskDone(e,t);}onMarkActiveRequested(t,e){this.globalTaskService.markTaskActive(e,t);}toggleSelectMode(){let t=!this.isSelectMode();this.isSelectMode.set(t),t||this.selectedPausedIds.set(new Set);}onPausedSelectionChanged(t,e){this.selectedPausedIds.update(n=>{let i=new Set(n);return e?i.add(t):i.delete(t),i});}toggleSelectAllPaused(){let t=this.pausedTasks();this.allPausedSelected()?this.selectedPausedIds.set(new Set):this.selectedPausedIds.set(new Set(t.map(e=>e.id)));}markSelectedPausedDone(){let t=this.selectedPausedIds(),e=this.pausedTasks().filter(n=>t.has(n.id)).map(n=>({id:n.id,projectId:n.projectId}));e.length!==0&&(this.selectedPausedIds.set(new Set),this.isSelectMode.set(false),this.globalTaskService.markTasksBatchDone(e));}onPreviewRequested(t,e,n){this.previewThreadId()===t?(this.previewThreadId.set(null),this.previewProjectId.set(null),this.previewTaskName.set(null)):(this.projectState.selectProject(e),this.threadState.selectThread(t),this.previewProjectId.set(e),this.previewThreadId.set(t),this.previewTaskName.set(n));}closePreview(){this.previewThreadId.set(null),this.previewProjectId.set(null),this.previewTaskName.set(null);}navigateToThread(){let t=this.previewThreadId(),e=this.previewProjectId();!t||!e||this.router.navigate(["project",e,"thread",t]);}onResizerMousedown(t){t.preventDefault(),this.isDraggingResizer=true,this.dragStartX=t.clientX,this.dragStartWidth=this.previewPanelWidthPercent(),this.containerWidth=this.layoutContainerRef?.nativeElement.offsetWidth??window.innerWidth;}onDocumentMousemove(t){if(!this.isDraggingResizer)return;let n=(this.dragStartX-t.clientX)/this.containerWidth*100,i=Math.min(Fn,Math.max(Vn,this.dragStartWidth+n));this.previewPanelWidthPercent.set(i);}onDocumentMouseup(){this.isDraggingResizer&&(this.isDraggingResizer=false,this.preferences.setMissionPreviewPanelWidth(this.previewPanelWidthPercent()));}connectGlobalSse(t=5e3){this.disconnectGlobalSse();let e=new EventSource("/api/event-stream");this.globalEventSource=e,e.onmessage=n=>{try{let i=JSON.parse(n.data),l=le(i);if(!l)return;let p=l.threadId;if(!p)return;l instanceof f||l instanceof b?this.globalTaskService.applyStatusEvent(p,"invite"):l instanceof O?this.globalTaskService.applyStatusEvent(p,"thinking"):l instanceof V&&this.globalTaskService.refresh();}catch(i){}},e.onerror=()=>{e.readyState===EventSource.CLOSED&&(this.globalEventSource=null,setTimeout(()=>{this.globalEventSource||this.connectGlobalSse(Math.min(t*2,6e4));},t));};}disconnectGlobalSse(){this.globalEventSource&&(this.globalEventSource.close(),this.globalEventSource=null);}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=Rw({type:a,selectors:[["app-global-task-control"]],viewQuery:function(e,n){if(e&1&&Fg(gn,5),e&2){let i;wC(i=CC())&&(n.layoutContainerRef=i.first);}},hostBindings:function(e,n){e&1&&Ag("mousemove",function(l){return n.onDocumentMousemove(l)},fE)("mouseup",function(){return n.onDocumentMouseup()},fE);},decls:85,vars:11,consts:[["layoutContainer",""],["schedulerMenu","matMenu"],["controlCenterMenu","matMenu"],[1,"gtc"],[1,"gtc-toolbar"],[1,"gtc-toolbar-left"],[1,"gtc-logo-icon"],[1,"gtc-title"],["appearance","fill","subscriptSizing","dynamic",1,"gtc-search"],["matPrefix",""],["matInput","","type","search","placeholder","Filter tasks\u2026","autocomplete","off",3,"input","keydown.escape","value"],["matSuffix","","mat-icon-button","","aria-label","Clear"],[1,"gtc-toolbar-actions"],["mat-icon-button","","matTooltip","Schedulers","aria-label","Schedulers",3,"matMenuTriggerFor"],["mat-menu-item","",3,"click"],["mat-icon-button","","matTooltip","Control Center","aria-label","Control Center",3,"matMenuTriggerFor"],["mat-menu-item","","href","https://github.com/whoz-oss/coday","target","_blank","rel","noopener noreferrer"],["mat-icon-button","","matTooltip","Refresh all tasks","aria-label","Refresh tasks",3,"click","disabled"],["mat-stroked-button","","routerLink","/projects","aria-label","Manage projects","matTooltip","Manage projects"],[1,"btn-label"],["mat-flat-button","","aria-label","New task","matTooltip","New Task",1,"gtc-new-btn",3,"click"],[1,"gtc-filter-bar"],["aria-label","Filter by project",1,"gtc-project-filters"],["role","tablist","aria-label","Filter by status",1,"gtc-filters"],["role","tab",1,"filter-chip",3,"active"],["role","switch","aria-label","Show starred tasks only",1,"filter-chip","starred-filter",3,"click"],[1,"filter-icon"],[1,"gtc-body"],[1,"gtc-content"],[1,"gtc-loading"],[1,"gtc-empty"],[1,"gtc-grid"],["matSuffix","","mat-icon-button","","aria-label","Clear",3,"click"],[1,"project-chip",3,"click"],[1,"chip-count"],[1,"project-chip",3,"active"],["role","tab",1,"filter-chip",3,"click"],[1,"filter-badge"],["diameter","36"],[1,"empty-icon"],[1,"gtc-group"],[1,"gtc-group-header"],[1,"gtc-group-title"],[3,"task","projectNameOverride","showProject","previewMode","selectable","selected","is-previewed"],[1,"group-icon"],[1,"group-count"],[1,"gtc-group-actions"],["mat-stroked-button","","matTooltip","Select multiple tasks to mark as done","aria-label","Enter selection mode",1,"select-mode-btn"],["aria-label","Select all paused tasks",1,"select-all-checkbox",3,"change","checked","indeterminate"],["mat-flat-button","",1,"batch-done-btn",3,"matTooltip"],["mat-icon-button","","matTooltip","Cancel selection","aria-label","Cancel selection",1,"select-mode-cancel-btn",3,"click"],["mat-flat-button","",1,"batch-done-btn",3,"click","matTooltip"],["mat-stroked-button","","matTooltip","Select multiple tasks to mark as done","aria-label","Enter selection mode",1,"select-mode-btn",3,"click"],[3,"stopRequested","deleteRequested","starToggled","closeTaskRequested","markDoneRequested","markActiveRequested","previewRequested","selectionChanged","task","projectNameOverride","showProject","previewMode","selectable","selected"],[3,"task","projectNameOverride","showProject","previewMode","is-previewed"],[3,"stopRequested","deleteRequested","starToggled","closeTaskRequested","markDoneRequested","markActiveRequested","previewRequested","task","projectNameOverride","showProject","previewMode"],["matTooltip","Drag to resize","aria-hidden","true",1,"gtc-resizer",3,"mousedown"],[1,"gtc-preview-pane"],[1,"gtc-preview-header"],[1,"gtc-preview-title"],[1,"gtc-preview-actions"],["matTooltip","Open full view","aria-label","Open thread in full view","type","button",1,"preview-action-btn",3,"click"],["matTooltip","Close panel","aria-label","Close preview panel","type","button",1,"preview-action-btn",3,"click"],[1,"gtc-preview-body","thread-preview-host"],[3,"projectName","threadId"]],template:function(e,n){if(e&1&&(Is(0,"div",3,0)(2,"header",4)(3,"div",5)(4,"mat-icon",6),qC(5,"hub"),pl(),Is(6,"h1",7),qC(7,"Global Task Control"),pl()(),Is(8,"mat-form-field",8)(9,"mat-icon",9),qC(10,"search"),pl(),Is(11,"input",10),Ag("input",function(l){return n.onSearchInput(l)})("keydown.escape",function(){return n.clearSearch()}),pl(),tC(12,bn,3,0,"button",11),pl(),Is(13,"div",12)(14,"button",13)(15,"mat-icon"),qC(16,"schedule"),pl()(),Is(17,"mat-menu",null,1)(19,"button",14),Ag("click",function(){return n.openGlobalSchedulersDialog()}),Is(20,"mat-icon"),qC(21,"list"),pl(),Is(22,"span"),qC(23,"View schedulers"),pl()(),Is(24,"button",14),Ag("click",function(){return n.openQuickSchedulerDialog()}),Is(25,"mat-icon"),qC(26,"add"),pl(),Is(27,"span"),qC(28,"New scheduler"),pl()()(),Is(29,"button",15)(30,"mat-icon"),qC(31,"hub"),pl()(),Is(32,"mat-menu",null,2)(34,"button",14),Ag("click",function(){return n.openPreferences()}),Is(35,"mat-icon"),qC(36,"tune"),pl(),Is(37,"span"),qC(38,"Preferences"),pl()(),Is(39,"button",14),Ag("click",function(){return n.openTokenUsage()}),Is(40,"mat-icon"),qC(41,"data_usage"),pl(),Is(42,"span"),qC(43,"Token Usage"),pl()(),Is(44,"button",14),Ag("click",function(){return n.openUserConfig()}),Is(45,"mat-icon"),qC(46,"manage_accounts"),pl(),Is(47,"span"),qC(48,"User Configuration"),pl()(),bg(49,"mat-divider"),Is(50,"a",16)(51,"mat-icon"),qC(52,"code"),pl(),Is(53,"span"),qC(54,"Contribute on GitHub"),pl()()(),Is(55,"button",17),Ag("click",function(){return n.refresh()}),Is(56,"mat-icon"),qC(57,"refresh"),pl()(),Is(58,"button",18)(59,"mat-icon"),qC(60,"settings"),pl(),Is(61,"span",19),qC(62,"Manage projects"),pl()(),Is(63,"button",20),Ag("click",function(){return n.openNewTaskDialog()}),Is(64,"mat-icon"),qC(65,"rocket_launch"),pl(),Is(66,"span",19),qC(67,"New Task"),pl()()()(),Is(68,"div",21),tC(69,Cn,7,3,"nav",22),Is(70,"nav",23),iC(71,xn,6,6,"button",24,hn),Is(73,"button",25),Ag("click",function(){return n.toggleStarredFilter()}),Is(74,"mat-icon",26),qC(75,"star"),pl(),Is(76,"span"),qC(77,"Starred"),pl()()()(),Is(78,"div",27)(79,"main",28),tC(80,kn,4,0,"div",29)(81,Mn,5,0,"div",30)(82,En,2,0)(83,In,3,0,"div",31),pl(),tC(84,An,14,5),pl()()),e&2){let i=bC(18),l=bC(33);JE(11),Tg("value",n.searchQuery()),JE(),nC(n.searchQuery()?12:-1),JE(2),Tg("matMenuTriggerFor",i),JE(15),Tg("matMenuTriggerFor",l),JE(26),Tg("disabled",n.isLoading()),JE(14),nC(n.projectSummaries().length>1?69:-1),JE(2),sC(n.filters),JE(2),Hg("active",n.starredOnly()),Cg("aria-checked",n.starredOnly()),JE(7),nC(n.isLoading()?80:n.displayedTasks().length===0?81:n.activeFilter()==="all"&&!n.searchQuery()?82:83),JE(4),nC(n.previewActive()&&n.previewThreadId()&&n.previewProjectId()?84:-1);}},dependencies:[A,_i,ve,ne,yt,wt$1,hr,pr,Gn$1,Ve,ne$1,Et$1,yt$1,In$1,De,Be,En$1,He,Ne,ce,nt,Ot$2,zt$1,Tn$1,Sn$1,si],styles:[".glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:block;width:100%;height:100%;overflow:hidden}.gtc[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}.gtc-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:0 .75rem;height:56px;flex-shrink:0;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .1));box-sizing:border-box}.gtc-toolbar-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.gtc-logo-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem;color:var(--color-primary)}.gtc-title[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:600;color:var(--color-text);white-space:nowrap}.gtc-search[_ngcontent-%COMP%]{margin-left:auto;flex:0 1 240px;min-width:80px;--mat-form-field-container-height: 36px;--mat-form-field-container-vertical-padding: 6px;font-size:.875rem;--mdc-filled-text-field-container-color: transparent;--mdc-filled-text-field-hover-container-color: transparent;--mdc-filled-text-field-focus-container-color: transparent;--mdc-filled-text-field-active-indicator-color: transparent;--mdc-filled-text-field-hover-active-indicator-color: transparent;--mdc-filled-text-field-focus-active-indicator-color: transparent;--mdc-filled-text-field-active-indicator-height: 0}.gtc-toolbar-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.gtc-new-btn[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-radius:12px;font-weight:600;height:36px;padding:0 1rem}.gtc-new-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem}@media(max-width:600px){.gtc-toolbar[_ngcontent-%COMP%]{flex-wrap:wrap;height:auto;min-height:48px;padding:.5rem .75rem;gap:.375rem}.gtc-title[_ngcontent-%COMP%]{font-size:.875rem}.gtc-search[_ngcontent-%COMP%]{order:3;flex:1 1 100%;min-width:0;margin-left:0}.gtc-toolbar-actions[_ngcontent-%COMP%]{margin-left:auto}.btn-label[_ngcontent-%COMP%]{display:none}.gtc-toolbar-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(mat-icon-button):not([mat-icon-button]){--mdc-text-button-container-height: 36px;--mdc-filled-button-container-height: 36px;--mdc-outlined-button-container-height: 36px;min-width:36px;width:36px;height:36px;padding:0;border-radius:50%!important}.gtc-toolbar-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(mat-icon-button):not([mat-icon-button]) .mat-mdc-button-touch-target[_ngcontent-%COMP%]{width:36px;height:36px}.gtc-toolbar-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(mat-icon-button):not([mat-icon-button]) mat-icon[_ngcontent-%COMP%]{margin:0!important}}.gtc-filter-bar[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem;padding:.5rem .75rem;flex-shrink:0;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08))}.gtc-project-filters[_ngcontent-%COMP%]{display:flex;gap:.375rem;flex-wrap:wrap}.project-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;padding:.2rem .65rem;border-radius:100px;font-size:.75rem;font-weight:500;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.project-chip[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .3rem;font-size:.68rem;font-weight:700;min-width:16px;text-align:center;line-height:16px}.project-chip.active[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.project-chip.active[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%]{background:#ffffff40;color:var(--color-text-inverse)}.project-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text)}.gtc-filters[_ngcontent-%COMP%]{display:flex;gap:.375rem;flex-wrap:wrap}.filter-chip[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);display:flex;align-items:center;gap:.375rem;padding:.3rem .75rem;border-radius:100px;font-size:.8rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border:1px solid var(--color-border);transition:background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.filter-chip[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{font-size:.9rem;width:.9rem;height:.9rem}.filter-chip[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-radius:100px;padding:0 .375rem;font-size:.7rem;font-weight:700;min-width:18px;text-align:center;line-height:18px}.filter-chip.active[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.filter-chip.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:var(--color-text-inverse)}.filter-chip.active[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%]{background:#ffffff40;color:var(--color-text-inverse)}.filter-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text)}.starred-filter.active[_ngcontent-%COMP%]{background:#f5a62326;border-color:#f5a623;color:#f5a623}.starred-filter.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:#f5a623}.gtc-body[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex:1;overflow:hidden;min-height:0}.gtc-content[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding:1rem 1rem 2rem;min-width:0}.gtc-resizer[_ngcontent-%COMP%]{width:6px;flex-shrink:0;cursor:col-resize;background:transparent;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);transition:background .15s ease}.gtc-resizer[_ngcontent-%COMP%]:hover, .gtc-resizer[_ngcontent-%COMP%]:active{background:var(--color-primary);opacity:.4}.gtc-preview-pane[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden;flex-shrink:0;min-width:280px;border-left:1px solid var(--color-border);background:var(--glass-bg)}.gtc-preview-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.625rem .75rem .625rem 1rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.gtc-preview-title[_ngcontent-%COMP%]{font-size:.875rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.gtc-preview-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;flex-shrink:0}.preview-action-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;cursor:pointer;transition:background .15s ease}.preview-action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;line-height:18px;vertical-align:middle;color:var(--color-text-secondary)}.preview-action-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.preview-action-btn[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{color:var(--color-text)}.gtc-preview-body[_ngcontent-%COMP%]{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}.gtc-preview-body[_ngcontent-%COMP%] app-thread[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0} app-task-card.is-previewed .task-card{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary)}.gtc-group[_ngcontent-%COMP%]{margin-bottom:1.25rem}.gtc-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.gtc-group-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:.75rem}.gtc-group-header[_ngcontent-%COMP%] .gtc-group-title[_ngcontent-%COMP%]{margin-bottom:0}.gtc-group-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.select-all-checkbox[_ngcontent-%COMP%]{--mdc-checkbox-state-layer-size: 32px}.select-mode-btn[_ngcontent-%COMP%]{height:26px;font-size:.72rem;font-weight:600;padding:0 .625rem;border-radius:8px;color:var(--color-text-secondary);border-color:var(--color-border);line-height:26px}.select-mode-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.9rem;width:.9rem;height:.9rem;margin-right:.2rem}.select-mode-btn[_ngcontent-%COMP%]:hover{color:var(--color-text);border-color:var(--color-text-secondary);background:var(--color-bg-hover)}.batch-done-btn[_ngcontent-%COMP%]{height:26px;font-size:.72rem;font-weight:600;padding:0 .625rem;border-radius:8px;background:var(--color-success, #34c759);color:#fff;line-height:26px}.batch-done-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.9rem;width:.9rem;height:.9rem;margin-right:.2rem}.select-mode-cancel-btn[_ngcontent-%COMP%]{width:28px;height:28px;display:inline-flex!important;align-items:center!important;justify-content:center!important;color:var(--color-text-secondary)}.select-mode-cancel-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;line-height:1}.select-mode-cancel-btn[_ngcontent-%COMP%]:hover{color:var(--color-text)}.gtc-group-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.gtc-group-title[_ngcontent-%COMP%] .group-icon[_ngcontent-%COMP%]{font-size:.95rem;width:.95rem;height:.95rem}.gtc-group-title[_ngcontent-%COMP%] .group-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .375rem;font-size:.7rem;font-weight:700;min-width:16px;text-align:center;line-height:16px}.gtc-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}@media(max-width:600px){.gtc-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.gtc-loading[_ngcontent-%COMP%], .gtc-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem;color:var(--color-text-secondary);text-align:center}.gtc-loading[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .gtc-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.9rem}.empty-icon[_ngcontent-%COMP%]{font-size:2.5rem;width:2.5rem;height:2.5rem;opacity:.3}"]})};
|
|
4
4
|
export{wt as GlobalTaskControlComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {p}from'./chunk-
|
|
1
|
+
import {p}from'./chunk-uPxETzZs.js';import {g,ao as V,M as dy,d4 as y,h as Rw,aw as hl,q as qC,ax as gl,J as JE,a8 as Zg}from'./main-6K2UFGD2.js';import'./chunk-nWqZHM4o.js';import'./chunk-l0HLnBLv.js';import'./chunk-DTIhOEG_.js';import'./chunk-C9tuHQmZ.js';var A=class r{route=g(V);http=g(dy);config=g(y);message="Authentication in progress\u2026";ngOnInit(){let e=this.route.snapshot.queryParamMap.get("code"),t=this.route.snapshot.queryParamMap.get("state"),o=this.route.snapshot.queryParamMap.get("error"),i=this.route.snapshot.queryParamMap.get("error_description");if(o){console.warn("[AgentOS OAuth Callback] OAuth error:",o,i),this.notifyParentAndClose({success:false,error:i||o});return}if(!e){console.error("[AgentOS OAuth Callback] Missing authorization code"),this.message="OAuth callback error: missing authorization code.",this.notifyParentAndClose({success:false,error:"Missing authorization code"});return}this.http.post(`${this.config.basePath}/api/oauth/callback`,{code:e,state:t}).subscribe({next:()=>{console.log("[AgentOS OAuth Callback] Backend callback resolved"),this.notifyParentAndClose({success:true});},error:a=>{console.error("[AgentOS OAuth Callback] Backend callback failed:",a),this.notifyParentAndClose({success:false,error:a?.error?.message||a?.message||"Token exchange failed"});}});}notifyParentAndClose(e){if(this.message=e.success?"Authentication complete. You can close this window.":`Authentication failed: ${e.error??"unknown error"}. You can close this window.`,window.opener)try{window.opener.postMessage(e,window.location.origin);}catch(t){console.error("[AgentOS OAuth Callback] postMessage failed:",t),localStorage.setItem(p,JSON.stringify(e));}else console.warn("[AgentOS OAuth Callback] No window.opener \u2014 localStorage fallback"),localStorage.setItem(p,JSON.stringify(e));setTimeout(()=>window.close(),1e3);}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=Rw({type:r,selectors:[["agentos-oauth-callback"]],decls:2,vars:1,consts:[[2,"font-family","sans-serif","padding","2rem","text-align","center"]],template:function(t,o){t&1&&(hl(0,"p",0),qC(1),gl()),t&2&&(JE(),Zg(o.message));},encapsulation:2,changeDetection:1})};export{A as OAuthCallbackComponent};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {O}from'./chunk-CNRDeQvk.js';import {R}from'./chunk-NLyO0ldw.js';import {N}from'./chunk-DJtRPrJe.js';import {g,G,bm as Sm,w as we$1,z as zi,y as yT,F,aD as Ly,u as ue$1,c as U,h as Rw,I as Is,A as Ag,m as pl,q as qC,t as tC,J as JE,v as nC,o as iC,ac as yC,x as sC,a9 as fC,H as Hg,C as Cg,a8 as Zg,a5 as vl,n as bg,a3 as UI,T as Tg,a6 as zI,aa as If,ab as wf,cH as Jw}from'./main-4SCUMPDY.js';import {l,I,f}from'./chunk-Bf1Bttqy.js';import {S as Se$1}from'./chunk-BESIk8ll.js';import'./chunk-BSY9MBD-.js';import {o as z,k as _t,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,A as At,Z as Zn,l as Xn,E as En,p as An}from'./chunk-LgALnta4.js';import'./chunk-Bsv9CCXL.js';import'./chunk-BxnUTBZC.js';var D=(r,i)=>i.value;function se(r,i){r&1&&(Is(0,"p",4),qC(1,"Loading\u2026"),pl());}function de(r,i){if(r&1){let e=fC();Is(0,"button",18),Ag("click",function(){let d=If(e).$implicit,_=yC(2);return wf(_.setThemeVariant(d.value))}),Is(1,"span",19),qC(2),pl(),Is(3,"span",20),qC(4),pl()();}if(r&2){let e=i.$implicit,a=yC(2);Hg("user-profile__theme-variant--active",a.themeVariant()===e.value),Cg("aria-pressed",a.themeVariant()===e.value),JE(2),Zg(e.label),JE(2),Zg(e.description);}}function _e(r,i){if(r&1){let e=fC();Is(0,"button",21),Ag("click",function(){let d=If(e).$implicit,_=yC(2);return wf(_.setTheme(d.value))}),qC(1),pl();}if(r&2){let e=i.$implicit,a=yC(2);Hg("user-profile__segmented-option--active",a.themeMode()===e.value),Cg("aria-pressed",a.themeMode()===e.value),JE(),vl(" ",e.label," ");}}function ce(r,i){if(r&1){let e=fC();Is(0,"button",21),Ag("click",function(){let d=If(e).$implicit,_=yC(2);return wf(_.setEnterKeyBehavior(d.value))}),qC(1),pl();}if(r&2){let e=i.$implicit,a=yC(2);Hg("user-profile__segmented-option--active",a.enterKeyBehavior()===e.value),Cg("aria-pressed",a.enterKeyBehavior()===e.value),JE(),vl(" ",e.label," ");}}function pe(r,i){if(r&1&&(Is(0,"option",32),qC(1),pl()),r&2){let e=i.$implicit;Tg("value",e.value),JE(),Zg(e.label);}}function me(r,i){if(r&1){let e=fC();Is(0,"form",22),Ag("ngSubmit",function(){If(e);let d=yC(2);return wf(d.save())}),Is(1,"div",5)(2,"h2",6),qC(3,"Identity"),pl(),Is(4,"div",7)(5,"span",8),qC(6,"Email"),pl(),Is(7,"span",23),qC(8),pl()(),Is(9,"div",7)(10,"span",8),qC(11,"External ID"),pl(),Is(12,"span",23),qC(13),pl()()(),Is(14,"div",5)(15,"h2",6),qC(16,"Profile"),pl(),Is(17,"div",7)(18,"label",24),qC(19,"First name"),pl(),bg(20,"input",25),UI(),pl(),Is(21,"div",7)(22,"label",26),qC(23,"Last name"),pl(),bg(24,"input",27),UI(),pl(),Is(25,"div",7)(26,"label",28),qC(27,"Bio"),pl(),bg(28,"textarea",29),UI(),pl(),Is(29,"div",7)(30,"label",30),qC(31,"Language"),pl(),Is(32,"select",31),iC(33,pe,2,2,"option",32,D),pl(),UI(),pl()(),Is(35,"div",33)(36,"button",34),qC(37),pl(),Is(38,"button",35),Ag("click",function(){If(e);let d=yC(2);return wf(d.cancelEditing())}),qC(39,"Cancel"),pl()()();}if(r&2){let e=yC(),a=yC();Tg("formGroup",a.form),JE(8),Zg(e.email),JE(5),Zg(e.externalId),JE(7),zI(),JE(4),zI(),JE(4),zI(),JE(4),zI(),JE(),sC(a.languageOptions),JE(3),Tg("disabled",a.isSaving()),JE(),vl(" ",a.isSaving()?"Saving\u2026":"Save changes"," ");}}function ue(r,i){r&1&&(Is(0,"p",43),qC(1," No global configuration yet. Create one from the Integrations / AI Providers / Auth Settings pages of your namespaces. "),pl());}function fe(r,i){if(r&1){let e=fC();Is(0,"span",50),qC(1,"Delete?"),pl(),Is(2,"button",51),Ag("click",function(){If(e);let d=yC().$implicit,_=yC(6);return wf(_.confirmDelete(d))}),qC(3," Confirm "),pl(),Is(4,"button",52),Ag("click",function(){If(e);let d=yC(7);return wf(d.cancelDelete())}),qC(5," Cancel "),pl();}}function ge(r,i){if(r&1){let e=fC();Is(0,"button",52),Ag("click",function(){If(e);let d=yC().$implicit,_=yC(6);return wf(_.armDelete(d))}),qC(1," Delete "),pl();}}function Ce(r,i){if(r&1&&(Is(0,"li",46)(1,"span",47),qC(2),pl(),Is(3,"span",48),qC(4),pl(),tC(5,fe,6,0)(6,ge,2,0,"button",49),pl()),r&2){let e=i.$implicit,a=yC(6);JE(2),Zg(e.name),JE(2),Zg(e.subtitle),JE(),nC(a.isPendingDelete(e)?5:6);}}function ve(r,i){if(r&1&&(Is(0,"h3",44),qC(1,"Integrations"),pl(),Is(2,"ul",45),iC(3,Ce,7,3,"li",46,Jw().trackEntry,true),pl()),r&2){let e=yC(5);JE(3),sC(e.recap().integrations);}}function xe(r,i){if(r&1){let e=fC();Is(0,"span",50),qC(1,"Delete?"),pl(),Is(2,"button",51),Ag("click",function(){If(e);let d=yC().$implicit,_=yC(6);return wf(_.confirmDelete(d))}),qC(3," Confirm "),pl(),Is(4,"button",52),Ag("click",function(){If(e);let d=yC(7);return wf(d.cancelDelete())}),qC(5," Cancel "),pl();}}function be(r,i){if(r&1){let e=fC();Is(0,"button",52),Ag("click",function(){If(e);let d=yC().$implicit,_=yC(6);return wf(_.armDelete(d))}),qC(1," Delete "),pl();}}function ye(r,i){if(r&1&&(Is(0,"li",46)(1,"span",47),qC(2),pl(),Is(3,"span",48),qC(4),pl(),tC(5,xe,6,0)(6,be,2,0,"button",49),pl()),r&2){let e=i.$implicit,a=yC(6);JE(2),Zg(e.name),JE(2),Zg(e.subtitle),JE(),nC(a.isPendingDelete(e)?5:6);}}function he(r,i){if(r&1&&(Is(0,"h3",44),qC(1,"AI Providers"),pl(),Is(2,"ul",45),iC(3,ye,7,3,"li",46,Jw().trackEntry,true),pl()),r&2){let e=yC(5);JE(3),sC(e.recap().aiProviders);}}function Ee(r,i){if(r&1){let e=fC();Is(0,"span",50),qC(1,"Delete?"),pl(),Is(2,"button",51),Ag("click",function(){If(e);let d=yC().$implicit,_=yC(6);return wf(_.confirmDelete(d))}),qC(3," Confirm "),pl(),Is(4,"button",52),Ag("click",function(){If(e);let d=yC(7);return wf(d.cancelDelete())}),qC(5," Cancel "),pl();}}function Pe(r,i){if(r&1){let e=fC();Is(0,"button",52),Ag("click",function(){If(e);let d=yC().$implicit,_=yC(6);return wf(_.armDelete(d))}),qC(1," Delete "),pl();}}function Se(r,i){if(r&1&&(Is(0,"li",46)(1,"span",47),qC(2),pl(),Is(3,"span",48),qC(4),pl(),tC(5,Ee,6,0)(6,Pe,2,0,"button",49),pl()),r&2){let e=i.$implicit,a=yC(6);JE(2),Zg(e.name),JE(2),Zg(e.subtitle),JE(),nC(a.isPendingDelete(e)?5:6);}}function we(r,i){if(r&1&&(Is(0,"h3",44),qC(1,"My global auth settings"),pl(),Is(2,"ul",45),iC(3,Se,7,3,"li",46,Jw().trackEntry,true),pl()),r&2){let e=yC(5);JE(3),sC(e.recap().authSettings);}}function ke(r,i){if(r&1&&(tC(0,ve,5,0),tC(1,he,5,0),tC(2,we,5,0)),r&2){let e=yC(4);nC(e.recap().integrations.length>0?0:-1),JE(),nC(e.recap().aiProviders.length>0?1:-1),JE(),nC(e.recap().authSettings.length>0?2:-1);}}function Me(r,i){if(r&1&&tC(0,ue,2,0,"p",43)(1,ke,3,3),r&2){let e=yC(3);nC(e.recap().total===0?0:1);}}function Oe(r,i){if(r&1){let e=fC();Is(0,"div",17)(1,"div",5)(2,"h2",6),qC(3,"Identity"),pl(),Is(4,"div",7)(5,"span",8),qC(6,"Email"),pl(),Is(7,"span",36),qC(8),pl()(),Is(9,"div",7)(10,"span",8),qC(11,"External ID"),pl(),Is(12,"span",36),qC(13),pl()()(),Is(14,"div",5)(15,"h2",6),qC(16,"Profile"),pl(),Is(17,"div",7)(18,"span",8),qC(19,"First name"),pl(),Is(20,"span",36),qC(21),pl()(),Is(22,"div",7)(23,"span",8),qC(24,"Last name"),pl(),Is(25,"span",36),qC(26),pl()(),Is(27,"div",37)(28,"span",8),qC(29,"Bio"),pl(),Is(30,"span",36),qC(31),pl()(),Is(32,"div",7)(33,"span",8),qC(34,"Language"),pl(),Is(35,"span",36),qC(36),pl()()(),Is(37,"div",33)(38,"button",38),Ag("click",function(){If(e);let d=yC(2);return wf(d.startEditing())}),qC(39," Edit profile "),pl()(),Is(40,"div",39)(41,"button",40),Ag("click",function(){If(e);let d=yC(2);return wf(d.toggleOverrides())}),Is(42,"span",41),qC(43,"\u25B6"),pl(),qC(44," My global user configurations "),Is(45,"span",42),qC(46),pl()(),tC(47,Me,2,1),pl()();}if(r&2){let e=yC(),a=yC();JE(8),Zg(e.email),JE(5),Zg(e.externalId),JE(8),Zg(e.firstname||"\u2014"),JE(5),Zg(e.lastname||"\u2014"),JE(5),Zg(e.bio||"\u2014"),JE(5),Zg(e.preferredLanguage||"\u2014"),JE(5),Cg("aria-expanded",a.isOverridesExpanded()),JE(),Hg("user-profile__overrides-arrow--open",a.isOverridesExpanded()),JE(4),vl("(",a.recap().total,")"),JE(),nC(a.isOverridesExpanded()?47:-1);}}function Ue(r,i){if(r&1&&(Is(0,"div",5)(1,"h2",6),qC(2,"Appearance"),pl(),Is(3,"div",7)(4,"span",8),qC(5,"Skin"),pl(),Is(6,"div",9),iC(7,de,5,5,"button",10,D),pl()(),Is(9,"div",7)(10,"span",8),qC(11,"Mode"),pl(),Is(12,"div",11),iC(13,_e,2,4,"button",12,D),pl()()(),Is(15,"div",5)(16,"h2",6),qC(17,"Composer"),pl(),Is(18,"div",7)(19,"span",8),qC(20,"Enter key"),pl(),Is(21,"div",13)(22,"div",14),iC(23,ce,2,4,"button",12,D),pl(),Is(25,"p",15),qC(26,'In "New line" mode, press Ctrl or Cmd + Enter to send.'),pl()()()(),tC(27,me,40,5,"form",16)(28,Oe,48,11,"div",17)),r&2){let e=yC();JE(7),sC(e.themeVariantOptions),JE(6),sC(e.themeOptions),JE(10),sC(e.enterKeyOptions),JE(4),nC(e.isEditing()?27:28);}}function Te(r,i){r&1&&(Is(0,"p",4),qC(1,"Unable to load profile."),pl());}var le=class r{userState=g(l);router=g(G);location=g(Sm);destroyRef=g(we$1);integrationState=g(N);providerState=g(O);authSettingState=g(R);themePort=g(I);preferencesPort=g(f);isEditing=zi(false);isLoading=zi(false);isSaving=zi(false);isOverridesExpanded=zi(false);currentUser=this.userState.currentUser;theme=this.themePort.theme;themeMode=yT(()=>this.themePort.theme().mode);themeOptions=[{value:"light",label:"Light"},{value:"dark",label:"Dark"},{value:"system",label:"System"}];themeVariant=yT(()=>this.themePort.theme().variant);themeVariantOptions=[{value:"industry",label:"Industry",description:"Bleu acier, Barlow"},{value:"terminal",label:"Terminal",description:"Ambre CRT, JetBrains Mono"}];enterKeyBehavior=this.preferencesPort.enterKeyBehavior;enterKeyOptions=[{value:"send",label:"Send"},{value:"newline",label:"New line"}];languageOptions=[{value:"",label:"No preference (English fallback)"},{value:"fr",label:"French"},{value:"de",label:"German"},{value:"es",label:"Spanish"},{value:"pt",label:"Portuguese"},{value:"it",label:"Italian"},{value:"nl",label:"Dutch"},{value:"pl",label:"Polish"},{value:"ja",label:"Japanese"},{value:"zh",label:"Chinese"}];form=new z({firstname:new _t("",{nonNullable:true}),lastname:new _t("",{nonNullable:true}),bio:new _t("",{nonNullable:true}),preferredLanguage:new _t("",{nonNullable:true})});recap=F(Ly([this.integrationState.userGlobal$,this.providerState.userGlobal$,this.authSettingState.userGlobal$]).pipe(ue$1(([i,e,a])=>{let d=i.map(g=>({category:"integration",id:g.id??"",name:g.name,subtitle:g.integrationType})),_=e.map(g=>({category:"aiProvider",id:g.id??"",name:g.name,subtitle:g.apiType})),I=a.map(g=>({category:"authSetting",id:g.id??"",name:g.name,subtitle:g.authType}));return {integrations:d,aiProviders:_,authSettings:I,total:d.length+_.length+I.length}})),{initialValue:{integrations:[],aiProviders:[],authSettings:[],total:0}});ngOnInit(){if(this.currentUser()){this.syncFormFromState();return}this.isLoading.set(true),this.userState.loadMe().pipe(U(this.destroyRef)).subscribe({next:()=>{this.syncFormFromState(),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}startEditing(){this.syncFormFromState(),this.isEditing.set(true);}cancelEditing(){this.isEditing.set(false);}setTheme(i){this.themePort.setTheme({variant:this.themePort.theme().variant,mode:i});}setThemeVariant(i){this.themePort.setTheme({variant:i,mode:this.themePort.theme().mode});}setEnterKeyBehavior(i){this.preferencesPort.setEnterKeyBehavior(i);}save(){if(this.isSaving())return;this.isSaving.set(true);let i=this.form.controls.preferredLanguage.value.trim();this.userState.updateMe({firstname:this.form.controls.firstname.value.trim()||void 0,lastname:this.form.controls.lastname.value.trim()||void 0,bio:this.form.controls.bio.value.trim()||void 0,preferredLanguage:i||void 0}).pipe(U(this.destroyRef)).subscribe({next:()=>{this.isSaving.set(false),this.isEditing.set(false);},error:()=>this.isSaving.set(false)});}toggleOverrides(){this.isOverridesExpanded.update(i=>!i),this.pendingDeleteKey.set(null);}pendingDeleteKey=zi(null);isPendingDelete(i){return this.pendingDeleteKey()===this.entryKey(i)}armDelete(i){i.id&&this.pendingDeleteKey.set(this.entryKey(i));}cancelDelete(){this.pendingDeleteKey.set(null);}confirmDelete(i){if(!i.id)return;this.pendingDeleteKey.set(null),(i.category==="integration"?this.integrationState.delete(i.id,"userGlobal"):i.category==="authSetting"?this.authSettingState.delete(i.id,"userGlobal"):this.providerState.delete(i.id,"userGlobal")).pipe(U(this.destroyRef)).subscribe({error:a=>{console.error(`[UserProfile] Delete failed for ${i.category}:${i.id}:`,a);}});}entryKey(i){return `${i.category}:${i.id}`}goBack(){window.history.length>1?this.location.back():this.router.navigate(["/agentos"]);}trackEntry(i,e){return this.entryKey(e)}syncFormFromState(){let i=this.currentUser();i&&this.form.setValue({firstname:i.firstname??"",lastname:i.lastname??"",bio:i.bio??"",preferredLanguage:i.preferredLanguage??""});}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=Rw({type:r,selectors:[["agentos-user-profile"]],decls:8,vars:1,consts:[[1,"user-profile"],[1,"user-profile__header"],["icon","arrow_back","title","Back",3,"action"],[1,"user-profile__title"],[1,"user-profile__loading"],[1,"user-profile__section"],[1,"user-profile__section-title"],[1,"user-profile__field"],[1,"user-profile__label"],[1,"user-profile__theme-variants"],["type","button",1,"user-profile__theme-variant",3,"user-profile__theme-variant--active"],["role","group","aria-label","Color mode",1,"user-profile__segmented"],["type","button",1,"user-profile__segmented-option",3,"user-profile__segmented-option--active"],[1,"user-profile__field-control"],["role","group","aria-label","Enter key behavior",1,"user-profile__segmented"],[1,"user-profile__hint"],[1,"user-profile__form",3,"formGroup"],[1,"user-profile__view"],["type","button",1,"user-profile__theme-variant",3,"click"],[1,"user-profile__theme-variant-name"],[1,"user-profile__theme-variant-desc"],["type","button",1,"user-profile__segmented-option",3,"click"],[1,"user-profile__form",3,"ngSubmit","formGroup"],[1,"user-profile__value","user-profile__value--readonly"],["for","up-firstname",1,"user-profile__label"],["id","up-firstname","type","text","placeholder","Your first name","formControlName","firstname","autocomplete","given-name",1,"user-profile__input"],["for","up-lastname",1,"user-profile__label"],["id","up-lastname","type","text","placeholder","Your last name","formControlName","lastname","autocomplete","family-name",1,"user-profile__input"],["for","up-bio",1,"user-profile__label"],["id","up-bio","placeholder","A short description about yourself","formControlName","bio","rows","4",1,"user-profile__input","user-profile__input--textarea"],["for","up-preferredLanguage",1,"user-profile__label"],["id","up-preferredLanguage","formControlName","preferredLanguage",1,"user-profile__input","user-profile__select"],[3,"value"],[1,"user-profile__actions"],["type","submit",1,"user-profile__btn","user-profile__btn--primary",3,"disabled"],["type","button",1,"user-profile__btn",3,"click"],[1,"user-profile__value"],[1,"user-profile__field","user-profile__field--bio"],["type","button",1,"user-profile__btn","user-profile__btn--primary",3,"click"],[1,"user-profile__overrides"],["type","button",1,"user-profile__overrides-toggle",3,"click"],[1,"user-profile__overrides-arrow"],[1,"user-profile__overrides-count"],[1,"user-profile__overrides-empty"],[1,"user-profile__overrides-subtitle"],[1,"user-profile__overrides-list"],[1,"user-profile__overrides-row"],[1,"user-profile__overrides-name"],[1,"user-profile__overrides-subtitle-text"],["type","button",1,"user-profile__overrides-delete"],[1,"user-profile__overrides-confirm-label"],["type","button",1,"user-profile__overrides-delete","user-profile__overrides-delete--confirm",3,"click"],["type","button",1,"user-profile__overrides-delete",3,"click"]],template:function(e,a){if(e&1&&(Is(0,"div",0)(1,"header",1)(2,"ds-icon-button",2),Ag("action",function(){return a.goBack()}),pl(),Is(3,"h1",3),qC(4,"My profile"),pl()(),tC(5,se,2,0,"p",4)(6,Ue,29,1)(7,Te,2,0,"p",4),pl()),e&2){let d;JE(5),nC(a.isLoading()?5:(d=a.currentUser())?6:7,d);}},dependencies:[ni,Jn,Qn,ei,Ye,At,Zn,Xn,En,An,Se$1],styles:[`.user-profile[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.user-profile__header[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;gap:.5rem}.user-profile__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.user-profile__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.user-profile__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.user-profile__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.user-profile__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.user-profile__view[_ngcontent-%COMP%], .user-profile__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem}.user-profile__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.user-profile__section-title[_ngcontent-%COMP%]{margin:0;font-family:var(--font-heading);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);border-bottom:1px solid var(--color-divider);padding-bottom:.5rem}.user-profile__field[_ngcontent-%COMP%]{display:grid;grid-template-columns:140px 1fr;align-items:baseline;gap:.75rem}.user-profile__field--bio[_ngcontent-%COMP%]{align-items:start}.user-profile__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.user-profile__value[_ngcontent-%COMP%]{font-size:.9375rem;color:var(--color-text);word-break:break-word;white-space:pre-wrap}.user-profile__value--readonly[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.875rem}.user-profile__segmented[_ngcontent-%COMP%]{display:inline-flex;justify-self:start;border:1px solid var(--color-divider);overflow:hidden}.user-profile__segmented-option[_ngcontent-%COMP%]{padding:.4rem .85rem;background:transparent;border:none;border-right:1px solid var(--color-divider);color:var(--color-text-secondary);font-size:.875rem;cursor:pointer;transition:background .15s ease,color .15s ease}.user-profile__segmented-option[_ngcontent-%COMP%]:last-child{border-right:none}.user-profile__segmented-option[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.user-profile__segmented-option--active[_ngcontent-%COMP%]{background:var(--color-accent);color:#fff}.user-profile__segmented-option--active[_ngcontent-%COMP%]:hover{background:var(--color-accent-700)}.user-profile__field-control[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.user-profile__hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary)}.user-profile__select[_ngcontent-%COMP%]{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236e6e73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.25rem}.user-profile__input[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;border-radius:0;transition:border-color .15s ease;resize:none}.user-profile__input[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.user-profile__input[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.user-profile__input--textarea[_ngcontent-%COMP%]{line-height:1.5;resize:vertical}.user-profile__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.user-profile__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;border-radius:0;transition:background .15s ease,border-color .15s ease}.user-profile__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.user-profile__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.user-profile__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.user-profile__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}.user-profile__theme-variants[_ngcontent-%COMP%]{display:flex;gap:8px;justify-self:start}.user-profile__theme-variant[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 16px;border:1px solid var(--color-divider);background:transparent;cursor:pointer;min-width:120px;transition:background .12s,border-color .12s}.user-profile__theme-variant[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.user-profile__theme-variant--active[_ngcontent-%COMP%]{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 8%,transparent)}.user-profile__theme-variant-name[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:13px;font-weight:600;color:var(--color-text)}.user-profile__theme-variant-desc[_ngcontent-%COMP%]{font-size:11px;color:var(--color-text-secondary);font-family:var(--font-body)}.user-profile__overrides[_ngcontent-%COMP%]{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-divider)}.user-profile__overrides-toggle[_ngcontent-%COMP%]{background:transparent;border:none;padding:.25rem 0;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;gap:.4rem}.user-profile__overrides-toggle[_ngcontent-%COMP%]:hover{color:var(--color-text)}.user-profile__overrides-arrow[_ngcontent-%COMP%]{display:inline-block;font-size:.65rem;transition:transform .15s ease}.user-profile__overrides-arrow--open[_ngcontent-%COMP%]{transform:rotate(90deg)}.user-profile__overrides-count[_ngcontent-%COMP%]{color:var(--color-text-tertiary)}.user-profile__overrides-empty[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);font-style:italic;padding:.5rem 0 0;margin:0}.user-profile__overrides-subtitle[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);margin:.75rem 0 .25rem}.user-profile__overrides-list[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.user-profile__overrides-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.85rem;border-radius:0}.user-profile__overrides-row[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.user-profile__overrides-name[_ngcontent-%COMP%]{flex:1;color:var(--color-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-profile__overrides-subtitle-text[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);font-family:var(--font-heading)}.user-profile__overrides-confirm-label[_ngcontent-%COMP%]{font-size:11px;font-family:var(--font-heading);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);white-space:nowrap}.user-profile__overrides-delete[_ngcontent-%COMP%]{background:transparent;border:1px solid transparent;font-size:11px;font-family:var(--font-heading);font-weight:600;color:var(--color-neutral-500);cursor:pointer;padding:3px 8px;border-radius:0;transition:color .12s,background .12s,border-color .12s}.user-profile__overrides-delete[_ngcontent-%COMP%]:hover{color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent);border-color:var(--red)}.user-profile__overrides-delete--confirm[_ngcontent-%COMP%]{border-color:var(--red);background:var(--red);color:#fff}.user-profile__overrides-delete--confirm[_ngcontent-%COMP%]:hover{background:var(--red-deep);border-color:var(--red-deep)}`]})};
|
|
1
|
+
import {O}from'./chunk-BIMT-HvS.js';import {R}from'./chunk-DYE131qf.js';import {N}from'./chunk-CyUmCedx.js';import {g,G,bm as Sm,w as we$1,z as zi,y as yT,F,aD as Ly,u as ue$1,c as U,h as Rw,I as Is,A as Ag,m as pl,q as qC,t as tC,J as JE,v as nC,o as iC,ac as yC,x as sC,a9 as fC,H as Hg,C as Cg,a8 as Zg,a5 as vl,n as bg,a3 as UI,T as Tg,a6 as zI,aa as If,ab as wf,cH as Jw}from'./main-6K2UFGD2.js';import {l,I,f}from'./chunk-uPxETzZs.js';import {S as Se$1}from'./chunk-l0HLnBLv.js';import'./chunk-DTIhOEG_.js';import {o as z,k as _t,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,A as At,Z as Zn,l as Xn,E as En,p as An}from'./chunk-C9tuHQmZ.js';import'./chunk-DXDohTwX.js';import'./chunk-nWqZHM4o.js';var D=(r,i)=>i.value;function se(r,i){r&1&&(Is(0,"p",4),qC(1,"Loading\u2026"),pl());}function de(r,i){if(r&1){let e=fC();Is(0,"button",18),Ag("click",function(){let d=If(e).$implicit,_=yC(2);return wf(_.setThemeVariant(d.value))}),Is(1,"span",19),qC(2),pl(),Is(3,"span",20),qC(4),pl()();}if(r&2){let e=i.$implicit,a=yC(2);Hg("user-profile__theme-variant--active",a.themeVariant()===e.value),Cg("aria-pressed",a.themeVariant()===e.value),JE(2),Zg(e.label),JE(2),Zg(e.description);}}function _e(r,i){if(r&1){let e=fC();Is(0,"button",21),Ag("click",function(){let d=If(e).$implicit,_=yC(2);return wf(_.setTheme(d.value))}),qC(1),pl();}if(r&2){let e=i.$implicit,a=yC(2);Hg("user-profile__segmented-option--active",a.themeMode()===e.value),Cg("aria-pressed",a.themeMode()===e.value),JE(),vl(" ",e.label," ");}}function ce(r,i){if(r&1){let e=fC();Is(0,"button",21),Ag("click",function(){let d=If(e).$implicit,_=yC(2);return wf(_.setEnterKeyBehavior(d.value))}),qC(1),pl();}if(r&2){let e=i.$implicit,a=yC(2);Hg("user-profile__segmented-option--active",a.enterKeyBehavior()===e.value),Cg("aria-pressed",a.enterKeyBehavior()===e.value),JE(),vl(" ",e.label," ");}}function pe(r,i){if(r&1&&(Is(0,"option",32),qC(1),pl()),r&2){let e=i.$implicit;Tg("value",e.value),JE(),Zg(e.label);}}function me(r,i){if(r&1){let e=fC();Is(0,"form",22),Ag("ngSubmit",function(){If(e);let d=yC(2);return wf(d.save())}),Is(1,"div",5)(2,"h2",6),qC(3,"Identity"),pl(),Is(4,"div",7)(5,"span",8),qC(6,"Email"),pl(),Is(7,"span",23),qC(8),pl()(),Is(9,"div",7)(10,"span",8),qC(11,"External ID"),pl(),Is(12,"span",23),qC(13),pl()()(),Is(14,"div",5)(15,"h2",6),qC(16,"Profile"),pl(),Is(17,"div",7)(18,"label",24),qC(19,"First name"),pl(),bg(20,"input",25),UI(),pl(),Is(21,"div",7)(22,"label",26),qC(23,"Last name"),pl(),bg(24,"input",27),UI(),pl(),Is(25,"div",7)(26,"label",28),qC(27,"Bio"),pl(),bg(28,"textarea",29),UI(),pl(),Is(29,"div",7)(30,"label",30),qC(31,"Language"),pl(),Is(32,"select",31),iC(33,pe,2,2,"option",32,D),pl(),UI(),pl()(),Is(35,"div",33)(36,"button",34),qC(37),pl(),Is(38,"button",35),Ag("click",function(){If(e);let d=yC(2);return wf(d.cancelEditing())}),qC(39,"Cancel"),pl()()();}if(r&2){let e=yC(),a=yC();Tg("formGroup",a.form),JE(8),Zg(e.email),JE(5),Zg(e.externalId),JE(7),zI(),JE(4),zI(),JE(4),zI(),JE(4),zI(),JE(),sC(a.languageOptions),JE(3),Tg("disabled",a.isSaving()),JE(),vl(" ",a.isSaving()?"Saving\u2026":"Save changes"," ");}}function ue(r,i){r&1&&(Is(0,"p",43),qC(1," No global configuration yet. Create one from the Integrations / AI Providers / Auth Settings pages of your namespaces. "),pl());}function fe(r,i){if(r&1){let e=fC();Is(0,"span",50),qC(1,"Delete?"),pl(),Is(2,"button",51),Ag("click",function(){If(e);let d=yC().$implicit,_=yC(6);return wf(_.confirmDelete(d))}),qC(3," Confirm "),pl(),Is(4,"button",52),Ag("click",function(){If(e);let d=yC(7);return wf(d.cancelDelete())}),qC(5," Cancel "),pl();}}function ge(r,i){if(r&1){let e=fC();Is(0,"button",52),Ag("click",function(){If(e);let d=yC().$implicit,_=yC(6);return wf(_.armDelete(d))}),qC(1," Delete "),pl();}}function Ce(r,i){if(r&1&&(Is(0,"li",46)(1,"span",47),qC(2),pl(),Is(3,"span",48),qC(4),pl(),tC(5,fe,6,0)(6,ge,2,0,"button",49),pl()),r&2){let e=i.$implicit,a=yC(6);JE(2),Zg(e.name),JE(2),Zg(e.subtitle),JE(),nC(a.isPendingDelete(e)?5:6);}}function ve(r,i){if(r&1&&(Is(0,"h3",44),qC(1,"Integrations"),pl(),Is(2,"ul",45),iC(3,Ce,7,3,"li",46,Jw().trackEntry,true),pl()),r&2){let e=yC(5);JE(3),sC(e.recap().integrations);}}function xe(r,i){if(r&1){let e=fC();Is(0,"span",50),qC(1,"Delete?"),pl(),Is(2,"button",51),Ag("click",function(){If(e);let d=yC().$implicit,_=yC(6);return wf(_.confirmDelete(d))}),qC(3," Confirm "),pl(),Is(4,"button",52),Ag("click",function(){If(e);let d=yC(7);return wf(d.cancelDelete())}),qC(5," Cancel "),pl();}}function be(r,i){if(r&1){let e=fC();Is(0,"button",52),Ag("click",function(){If(e);let d=yC().$implicit,_=yC(6);return wf(_.armDelete(d))}),qC(1," Delete "),pl();}}function ye(r,i){if(r&1&&(Is(0,"li",46)(1,"span",47),qC(2),pl(),Is(3,"span",48),qC(4),pl(),tC(5,xe,6,0)(6,be,2,0,"button",49),pl()),r&2){let e=i.$implicit,a=yC(6);JE(2),Zg(e.name),JE(2),Zg(e.subtitle),JE(),nC(a.isPendingDelete(e)?5:6);}}function he(r,i){if(r&1&&(Is(0,"h3",44),qC(1,"AI Providers"),pl(),Is(2,"ul",45),iC(3,ye,7,3,"li",46,Jw().trackEntry,true),pl()),r&2){let e=yC(5);JE(3),sC(e.recap().aiProviders);}}function Ee(r,i){if(r&1){let e=fC();Is(0,"span",50),qC(1,"Delete?"),pl(),Is(2,"button",51),Ag("click",function(){If(e);let d=yC().$implicit,_=yC(6);return wf(_.confirmDelete(d))}),qC(3," Confirm "),pl(),Is(4,"button",52),Ag("click",function(){If(e);let d=yC(7);return wf(d.cancelDelete())}),qC(5," Cancel "),pl();}}function Pe(r,i){if(r&1){let e=fC();Is(0,"button",52),Ag("click",function(){If(e);let d=yC().$implicit,_=yC(6);return wf(_.armDelete(d))}),qC(1," Delete "),pl();}}function Se(r,i){if(r&1&&(Is(0,"li",46)(1,"span",47),qC(2),pl(),Is(3,"span",48),qC(4),pl(),tC(5,Ee,6,0)(6,Pe,2,0,"button",49),pl()),r&2){let e=i.$implicit,a=yC(6);JE(2),Zg(e.name),JE(2),Zg(e.subtitle),JE(),nC(a.isPendingDelete(e)?5:6);}}function we(r,i){if(r&1&&(Is(0,"h3",44),qC(1,"My global auth settings"),pl(),Is(2,"ul",45),iC(3,Se,7,3,"li",46,Jw().trackEntry,true),pl()),r&2){let e=yC(5);JE(3),sC(e.recap().authSettings);}}function ke(r,i){if(r&1&&(tC(0,ve,5,0),tC(1,he,5,0),tC(2,we,5,0)),r&2){let e=yC(4);nC(e.recap().integrations.length>0?0:-1),JE(),nC(e.recap().aiProviders.length>0?1:-1),JE(),nC(e.recap().authSettings.length>0?2:-1);}}function Me(r,i){if(r&1&&tC(0,ue,2,0,"p",43)(1,ke,3,3),r&2){let e=yC(3);nC(e.recap().total===0?0:1);}}function Oe(r,i){if(r&1){let e=fC();Is(0,"div",17)(1,"div",5)(2,"h2",6),qC(3,"Identity"),pl(),Is(4,"div",7)(5,"span",8),qC(6,"Email"),pl(),Is(7,"span",36),qC(8),pl()(),Is(9,"div",7)(10,"span",8),qC(11,"External ID"),pl(),Is(12,"span",36),qC(13),pl()()(),Is(14,"div",5)(15,"h2",6),qC(16,"Profile"),pl(),Is(17,"div",7)(18,"span",8),qC(19,"First name"),pl(),Is(20,"span",36),qC(21),pl()(),Is(22,"div",7)(23,"span",8),qC(24,"Last name"),pl(),Is(25,"span",36),qC(26),pl()(),Is(27,"div",37)(28,"span",8),qC(29,"Bio"),pl(),Is(30,"span",36),qC(31),pl()(),Is(32,"div",7)(33,"span",8),qC(34,"Language"),pl(),Is(35,"span",36),qC(36),pl()()(),Is(37,"div",33)(38,"button",38),Ag("click",function(){If(e);let d=yC(2);return wf(d.startEditing())}),qC(39," Edit profile "),pl()(),Is(40,"div",39)(41,"button",40),Ag("click",function(){If(e);let d=yC(2);return wf(d.toggleOverrides())}),Is(42,"span",41),qC(43,"\u25B6"),pl(),qC(44," My global user configurations "),Is(45,"span",42),qC(46),pl()(),tC(47,Me,2,1),pl()();}if(r&2){let e=yC(),a=yC();JE(8),Zg(e.email),JE(5),Zg(e.externalId),JE(8),Zg(e.firstname||"\u2014"),JE(5),Zg(e.lastname||"\u2014"),JE(5),Zg(e.bio||"\u2014"),JE(5),Zg(e.preferredLanguage||"\u2014"),JE(5),Cg("aria-expanded",a.isOverridesExpanded()),JE(),Hg("user-profile__overrides-arrow--open",a.isOverridesExpanded()),JE(4),vl("(",a.recap().total,")"),JE(),nC(a.isOverridesExpanded()?47:-1);}}function Ue(r,i){if(r&1&&(Is(0,"div",5)(1,"h2",6),qC(2,"Appearance"),pl(),Is(3,"div",7)(4,"span",8),qC(5,"Skin"),pl(),Is(6,"div",9),iC(7,de,5,5,"button",10,D),pl()(),Is(9,"div",7)(10,"span",8),qC(11,"Mode"),pl(),Is(12,"div",11),iC(13,_e,2,4,"button",12,D),pl()()(),Is(15,"div",5)(16,"h2",6),qC(17,"Composer"),pl(),Is(18,"div",7)(19,"span",8),qC(20,"Enter key"),pl(),Is(21,"div",13)(22,"div",14),iC(23,ce,2,4,"button",12,D),pl(),Is(25,"p",15),qC(26,'In "New line" mode, press Ctrl or Cmd + Enter to send.'),pl()()()(),tC(27,me,40,5,"form",16)(28,Oe,48,11,"div",17)),r&2){let e=yC();JE(7),sC(e.themeVariantOptions),JE(6),sC(e.themeOptions),JE(10),sC(e.enterKeyOptions),JE(4),nC(e.isEditing()?27:28);}}function Te(r,i){r&1&&(Is(0,"p",4),qC(1,"Unable to load profile."),pl());}var le=class r{userState=g(l);router=g(G);location=g(Sm);destroyRef=g(we$1);integrationState=g(N);providerState=g(O);authSettingState=g(R);themePort=g(I);preferencesPort=g(f);isEditing=zi(false);isLoading=zi(false);isSaving=zi(false);isOverridesExpanded=zi(false);currentUser=this.userState.currentUser;theme=this.themePort.theme;themeMode=yT(()=>this.themePort.theme().mode);themeOptions=[{value:"light",label:"Light"},{value:"dark",label:"Dark"},{value:"system",label:"System"}];themeVariant=yT(()=>this.themePort.theme().variant);themeVariantOptions=[{value:"industry",label:"Industry",description:"Bleu acier, Barlow"},{value:"terminal",label:"Terminal",description:"Ambre CRT, JetBrains Mono"}];enterKeyBehavior=this.preferencesPort.enterKeyBehavior;enterKeyOptions=[{value:"send",label:"Send"},{value:"newline",label:"New line"}];languageOptions=[{value:"",label:"No preference (English fallback)"},{value:"fr",label:"French"},{value:"de",label:"German"},{value:"es",label:"Spanish"},{value:"pt",label:"Portuguese"},{value:"it",label:"Italian"},{value:"nl",label:"Dutch"},{value:"pl",label:"Polish"},{value:"ja",label:"Japanese"},{value:"zh",label:"Chinese"}];form=new z({firstname:new _t("",{nonNullable:true}),lastname:new _t("",{nonNullable:true}),bio:new _t("",{nonNullable:true}),preferredLanguage:new _t("",{nonNullable:true})});recap=F(Ly([this.integrationState.userGlobal$,this.providerState.userGlobal$,this.authSettingState.userGlobal$]).pipe(ue$1(([i,e,a])=>{let d=i.map(g=>({category:"integration",id:g.id??"",name:g.name,subtitle:g.integrationType})),_=e.map(g=>({category:"aiProvider",id:g.id??"",name:g.name,subtitle:g.apiType})),I=a.map(g=>({category:"authSetting",id:g.id??"",name:g.name,subtitle:g.authType}));return {integrations:d,aiProviders:_,authSettings:I,total:d.length+_.length+I.length}})),{initialValue:{integrations:[],aiProviders:[],authSettings:[],total:0}});ngOnInit(){if(this.currentUser()){this.syncFormFromState();return}this.isLoading.set(true),this.userState.loadMe().pipe(U(this.destroyRef)).subscribe({next:()=>{this.syncFormFromState(),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}startEditing(){this.syncFormFromState(),this.isEditing.set(true);}cancelEditing(){this.isEditing.set(false);}setTheme(i){this.themePort.setTheme({variant:this.themePort.theme().variant,mode:i});}setThemeVariant(i){this.themePort.setTheme({variant:i,mode:this.themePort.theme().mode});}setEnterKeyBehavior(i){this.preferencesPort.setEnterKeyBehavior(i);}save(){if(this.isSaving())return;this.isSaving.set(true);let i=this.form.controls.preferredLanguage.value.trim();this.userState.updateMe({firstname:this.form.controls.firstname.value.trim()||void 0,lastname:this.form.controls.lastname.value.trim()||void 0,bio:this.form.controls.bio.value.trim()||void 0,preferredLanguage:i||void 0}).pipe(U(this.destroyRef)).subscribe({next:()=>{this.isSaving.set(false),this.isEditing.set(false);},error:()=>this.isSaving.set(false)});}toggleOverrides(){this.isOverridesExpanded.update(i=>!i),this.pendingDeleteKey.set(null);}pendingDeleteKey=zi(null);isPendingDelete(i){return this.pendingDeleteKey()===this.entryKey(i)}armDelete(i){i.id&&this.pendingDeleteKey.set(this.entryKey(i));}cancelDelete(){this.pendingDeleteKey.set(null);}confirmDelete(i){if(!i.id)return;this.pendingDeleteKey.set(null),(i.category==="integration"?this.integrationState.delete(i.id,"userGlobal"):i.category==="authSetting"?this.authSettingState.delete(i.id,"userGlobal"):this.providerState.delete(i.id,"userGlobal")).pipe(U(this.destroyRef)).subscribe({error:a=>{console.error(`[UserProfile] Delete failed for ${i.category}:${i.id}:`,a);}});}entryKey(i){return `${i.category}:${i.id}`}goBack(){window.history.length>1?this.location.back():this.router.navigate(["/agentos"]);}trackEntry(i,e){return this.entryKey(e)}syncFormFromState(){let i=this.currentUser();i&&this.form.setValue({firstname:i.firstname??"",lastname:i.lastname??"",bio:i.bio??"",preferredLanguage:i.preferredLanguage??""});}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=Rw({type:r,selectors:[["agentos-user-profile"]],decls:8,vars:1,consts:[[1,"user-profile"],[1,"user-profile__header"],["icon","arrow_back","title","Back",3,"action"],[1,"user-profile__title"],[1,"user-profile__loading"],[1,"user-profile__section"],[1,"user-profile__section-title"],[1,"user-profile__field"],[1,"user-profile__label"],[1,"user-profile__theme-variants"],["type","button",1,"user-profile__theme-variant",3,"user-profile__theme-variant--active"],["role","group","aria-label","Color mode",1,"user-profile__segmented"],["type","button",1,"user-profile__segmented-option",3,"user-profile__segmented-option--active"],[1,"user-profile__field-control"],["role","group","aria-label","Enter key behavior",1,"user-profile__segmented"],[1,"user-profile__hint"],[1,"user-profile__form",3,"formGroup"],[1,"user-profile__view"],["type","button",1,"user-profile__theme-variant",3,"click"],[1,"user-profile__theme-variant-name"],[1,"user-profile__theme-variant-desc"],["type","button",1,"user-profile__segmented-option",3,"click"],[1,"user-profile__form",3,"ngSubmit","formGroup"],[1,"user-profile__value","user-profile__value--readonly"],["for","up-firstname",1,"user-profile__label"],["id","up-firstname","type","text","placeholder","Your first name","formControlName","firstname","autocomplete","given-name",1,"user-profile__input"],["for","up-lastname",1,"user-profile__label"],["id","up-lastname","type","text","placeholder","Your last name","formControlName","lastname","autocomplete","family-name",1,"user-profile__input"],["for","up-bio",1,"user-profile__label"],["id","up-bio","placeholder","A short description about yourself","formControlName","bio","rows","4",1,"user-profile__input","user-profile__input--textarea"],["for","up-preferredLanguage",1,"user-profile__label"],["id","up-preferredLanguage","formControlName","preferredLanguage",1,"user-profile__input","user-profile__select"],[3,"value"],[1,"user-profile__actions"],["type","submit",1,"user-profile__btn","user-profile__btn--primary",3,"disabled"],["type","button",1,"user-profile__btn",3,"click"],[1,"user-profile__value"],[1,"user-profile__field","user-profile__field--bio"],["type","button",1,"user-profile__btn","user-profile__btn--primary",3,"click"],[1,"user-profile__overrides"],["type","button",1,"user-profile__overrides-toggle",3,"click"],[1,"user-profile__overrides-arrow"],[1,"user-profile__overrides-count"],[1,"user-profile__overrides-empty"],[1,"user-profile__overrides-subtitle"],[1,"user-profile__overrides-list"],[1,"user-profile__overrides-row"],[1,"user-profile__overrides-name"],[1,"user-profile__overrides-subtitle-text"],["type","button",1,"user-profile__overrides-delete"],[1,"user-profile__overrides-confirm-label"],["type","button",1,"user-profile__overrides-delete","user-profile__overrides-delete--confirm",3,"click"],["type","button",1,"user-profile__overrides-delete",3,"click"]],template:function(e,a){if(e&1&&(Is(0,"div",0)(1,"header",1)(2,"ds-icon-button",2),Ag("action",function(){return a.goBack()}),pl(),Is(3,"h1",3),qC(4,"My profile"),pl()(),tC(5,se,2,0,"p",4)(6,Ue,29,1)(7,Te,2,0,"p",4),pl()),e&2){let d;JE(5),nC(a.isLoading()?5:(d=a.currentUser())?6:7,d);}},dependencies:[ni,Jn,Qn,ei,Ye,At,Zn,Xn,En,An,Se$1],styles:[`.user-profile[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.user-profile__header[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;gap:.5rem}.user-profile__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.user-profile__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.user-profile__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.user-profile__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.user-profile__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.user-profile__view[_ngcontent-%COMP%], .user-profile__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem}.user-profile__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.user-profile__section-title[_ngcontent-%COMP%]{margin:0;font-family:var(--font-heading);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);border-bottom:1px solid var(--color-divider);padding-bottom:.5rem}.user-profile__field[_ngcontent-%COMP%]{display:grid;grid-template-columns:140px 1fr;align-items:baseline;gap:.75rem}.user-profile__field--bio[_ngcontent-%COMP%]{align-items:start}.user-profile__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.user-profile__value[_ngcontent-%COMP%]{font-size:.9375rem;color:var(--color-text);word-break:break-word;white-space:pre-wrap}.user-profile__value--readonly[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.875rem}.user-profile__segmented[_ngcontent-%COMP%]{display:inline-flex;justify-self:start;border:1px solid var(--color-divider);overflow:hidden}.user-profile__segmented-option[_ngcontent-%COMP%]{padding:.4rem .85rem;background:transparent;border:none;border-right:1px solid var(--color-divider);color:var(--color-text-secondary);font-size:.875rem;cursor:pointer;transition:background .15s ease,color .15s ease}.user-profile__segmented-option[_ngcontent-%COMP%]:last-child{border-right:none}.user-profile__segmented-option[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.user-profile__segmented-option--active[_ngcontent-%COMP%]{background:var(--color-accent);color:#fff}.user-profile__segmented-option--active[_ngcontent-%COMP%]:hover{background:var(--color-accent-700)}.user-profile__field-control[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.user-profile__hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary)}.user-profile__select[_ngcontent-%COMP%]{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236e6e73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.25rem}.user-profile__input[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;border-radius:0;transition:border-color .15s ease;resize:none}.user-profile__input[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.user-profile__input[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.user-profile__input--textarea[_ngcontent-%COMP%]{line-height:1.5;resize:vertical}.user-profile__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.user-profile__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;border-radius:0;transition:background .15s ease,border-color .15s ease}.user-profile__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.user-profile__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.user-profile__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.user-profile__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}.user-profile__theme-variants[_ngcontent-%COMP%]{display:flex;gap:8px;justify-self:start}.user-profile__theme-variant[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 16px;border:1px solid var(--color-divider);background:transparent;cursor:pointer;min-width:120px;transition:background .12s,border-color .12s}.user-profile__theme-variant[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.user-profile__theme-variant--active[_ngcontent-%COMP%]{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 8%,transparent)}.user-profile__theme-variant-name[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:13px;font-weight:600;color:var(--color-text)}.user-profile__theme-variant-desc[_ngcontent-%COMP%]{font-size:11px;color:var(--color-text-secondary);font-family:var(--font-body)}.user-profile__overrides[_ngcontent-%COMP%]{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-divider)}.user-profile__overrides-toggle[_ngcontent-%COMP%]{background:transparent;border:none;padding:.25rem 0;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;gap:.4rem}.user-profile__overrides-toggle[_ngcontent-%COMP%]:hover{color:var(--color-text)}.user-profile__overrides-arrow[_ngcontent-%COMP%]{display:inline-block;font-size:.65rem;transition:transform .15s ease}.user-profile__overrides-arrow--open[_ngcontent-%COMP%]{transform:rotate(90deg)}.user-profile__overrides-count[_ngcontent-%COMP%]{color:var(--color-text-tertiary)}.user-profile__overrides-empty[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);font-style:italic;padding:.5rem 0 0;margin:0}.user-profile__overrides-subtitle[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);margin:.75rem 0 .25rem}.user-profile__overrides-list[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.user-profile__overrides-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.85rem;border-radius:0}.user-profile__overrides-row[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.user-profile__overrides-name[_ngcontent-%COMP%]{flex:1;color:var(--color-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-profile__overrides-subtitle-text[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);font-family:var(--font-heading)}.user-profile__overrides-confirm-label[_ngcontent-%COMP%]{font-size:11px;font-family:var(--font-heading);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);white-space:nowrap}.user-profile__overrides-delete[_ngcontent-%COMP%]{background:transparent;border:1px solid transparent;font-size:11px;font-family:var(--font-heading);font-weight:600;color:var(--color-neutral-500);cursor:pointer;padding:3px 8px;border-radius:0;transition:color .12s,background .12s,border-color .12s}.user-profile__overrides-delete[_ngcontent-%COMP%]:hover{color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent);border-color:var(--red)}.user-profile__overrides-delete--confirm[_ngcontent-%COMP%]{border-color:var(--red);background:var(--red);color:#fff}.user-profile__overrides-delete--confirm[_ngcontent-%COMP%]:hover{background:var(--red-deep);border-color:var(--red-deep)}`]})};
|
|
2
2
|
export{le as UserProfileComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {I}from'./chunk-
|
|
1
|
+
import {I}from'./chunk-HSc9fwVS.js';import {g,ao as V$1,G as G$1,w as we,de as M,dd as $,aJ as Tr,z as zi,bS as va,S as By,a7 as ya,X as br,u as ue,c as U$1,h as Rw,aK as xb,I as Is,bf as cT,A as Ag,m as pl,af as Dg,r as bC,T as Tg,bg as lT,ah as oT,t as tC,ac as yC,v as nC,a9 as fC,aa as If,ab as wf,ag as pT}from'./main-6K2UFGD2.js';import {W as Wn,S as Se}from'./chunk-l0HLnBLv.js';import'./chunk-DTIhOEG_.js';import'./chunk-C9tuHQmZ.js';var K=()=>[];function U(n,o){if(n&1){let i=fC();Is(0,"agentos-ai-model-item",4),Ag("deleteRequested",function(a){If(i);let t=yC(2);return wf(t.deleteModel(a))})("editRequested",function(a){If(i);let t=yC(2);return wf(t.editModel(a))}),pl();}if(n&2){let i=yC().$implicit,e=yC();Tg("model",o)("namespaceId",e.namespaceId)("readOnly",e.isPlatformModel(i.id));}}function j(n,o){if(n&1&&tC(0,U,1,3,"agentos-ai-model-item",3),n&2){let i,e=o.$implicit,a=yC();nC((i=a.resolveModel(e.id))?0:-1,i);}}var G="__platform__",J="Platform (read-only)",V=class n{route=g(V$1);router=g(G$1);destroyRef=g(we);aiModelController=g(M);aiProviderController=g($);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new Tr(void 0);isLoading=zi(true);data$=this.refresh$.pipe(va(()=>(this.isLoading.set(true),By({namespace:this.aiModelController.listByNamespaceIdAiModel(this.namespaceId),platform:this.aiModelController.listPlatformLevelAiModel().pipe(ya(()=>br([]))),providers:this.aiProviderController.listAiProvider(this.namespaceId)}))));modelItems$=this.data$.pipe(ue(({namespace:o,platform:i,providers:e})=>{let a=new Map(e.map(t=>[t.id??"",t.name]));return [...i.map(t=>({id:t.id??"",name:t.alias??t.apiModelName,description:t.apiModelName,groupKey:G,groupLabel:J})),...o.map(t=>({id:t.id??"",name:t.alias??t.apiModelName,description:t.apiModelName,groupKey:t.aiProviderId,groupLabel:a.get(t.aiProviderId)??t.aiProviderId}))]}));namespaceModelsById=new Map;platformModelsById=new Map;constructor(){this.data$.pipe(U$1(this.destroyRef)).subscribe({next:({namespace:o,platform:i})=>{this.namespaceModelsById=new Map(o.map(e=>[e.id??"",e])),this.platformModelsById=new Map(i.map(e=>[e.id??"",e])),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}goBack(){this.router.navigate(["/agentos","namespaces"]);}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"ai-models","new"]);}editModel(o){this.router.navigate(["/agentos",this.namespaceId,"ai-models",o.id,"edit"]);}deleteModel(o){this.aiModelController.deleteAiModel(o.id??"").pipe(U$1(this.destroyRef)).subscribe(()=>this.refresh$.next());}resolveModel(o){return this.namespaceModelsById.get(o)??this.platformModelsById.get(o)??null}isPlatformModel(o){return this.platformModelsById.has(o)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=Rw({type:n,selectors:[["agentos-namespace-ai-models"]],decls:5,vars:7,consts:[["aiModelItemTpl",""],["title","AI models","emptyMessage","No AI models configured yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"model","namespaceId","readOnly"],[3,"deleteRequested","editRequested","model","namespaceId","readOnly"]],template:function(i,e){if(i&1&&(Is(0,"ds-entity-list",1),cT(1,"async"),Ag("createRequested",function(){return e.openCreateForm()}),Is(2,"ds-icon-button",2),Ag("action",function(){return e.goBack()}),pl()(),Dg(3,j,1,1,"ng-template",null,0,pT)),i&2){let a=bC(4);Tg("items",lT(1,4,e.modelItems$)??oT(6,K))("loading",e.isLoading())("showCreate",true)("itemTemplate",a);}},dependencies:[Wn,I,Se,xb],encapsulation:2})};export{V as NamespaceAiModelsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {g,M as dy,P,X as br,u as ue,Y as x}from'./main-
|
|
1
|
+
import {g,M as dy,P,X as br,u as ue,Y as x}from'./main-6K2UFGD2.js';var d=class i{http=g(dy);projectState=g(P);promptsCache=new Map;getBaseUrl(){return `/api/projects/${this.projectState.getSelectedProjectIdOrThrow()}/prompts`}listPrompts(){return this.http.get(this.getBaseUrl())}getPromptsAutocomplete(t,e){let r=this.promptsCache.get(t);return r?br(this.filterPromptsForAutocomplete(r,e)):this.http.get(`/api/projects/${t}/prompts`).pipe(ue(p=>(this.promptsCache.set(t,p),this.filterPromptsForAutocomplete(p,e))))}filterPromptsForAutocomplete(t,e){let r=e.toLowerCase();return t.filter(o=>o.name.toLowerCase().includes(r)||o.description.toLowerCase().includes(r)).map(o=>({name:o.name,description:o.description,parameterFormat:o.parameterFormat}))}clearCache(t){t?this.promptsCache.delete(t):this.promptsCache.clear();}getPrompt(t){return this.http.get(`${this.getBaseUrl()}/${t}`)}createPrompt(t){return this.http.post(this.getBaseUrl(),t).pipe(ue(e=>(this.clearCache(this.projectState.getSelectedProjectId()??void 0),e)))}updatePrompt(t,e){return this.http.put(`${this.getBaseUrl()}/${t}`,e).pipe(ue(r=>(this.clearCache(this.projectState.getSelectedProjectId()??void 0),r)))}deletePrompt(t){return this.http.delete(`${this.getBaseUrl()}/${t}`).pipe(ue(e=>(this.clearCache(this.projectState.getSelectedProjectId()??void 0),e)))}enableWebhook(t){return this.http.post(`${this.getBaseUrl()}/${t}/webhook`,{})}disableWebhook(t){return this.http.delete(`${this.getBaseUrl()}/${t}/webhook`)}static \u0275fac=function(e){return new(e||i)};static \u0275prov=x({token:i,factory:i.\u0275fac,providedIn:"root"})};export{d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {O}from'./chunk-
|
|
1
|
+
import {O}from'./chunk-9CSRlx74.js';import {N as N$1}from'./chunk-CyUmCedx.js';import {g,G,w as we,d7 as U,aJ as Tr,z as zi,bS as va,u as ue,c as U$1,h as Rw,aK as xb,I as Is,bf as cT,A as Ag,m as pl,af as Dg,r as bC,T as Tg,bg as lT,ah as oT,t as tC,ac as yC,v as nC,a9 as fC,aa as If,ab as wf,ag as pT}from'./main-6K2UFGD2.js';import'./chunk-uPxETzZs.js';import {W as Wn,S as Se}from'./chunk-l0HLnBLv.js';import'./chunk-DTIhOEG_.js';import'./chunk-C9tuHQmZ.js';import'./chunk-DXDohTwX.js';import'./chunk-nWqZHM4o.js';var F=()=>[];function N(i,t){if(i&1){let e=fC();Is(0,"agentos-integration-config-item",4),Ag("editRequested",function(n){If(e);let f=yC(2);return wf(f.onEdit(n))})("deleteRequested",function(n){If(e);let f=yC(2);return wf(f.deleteConfig(n))}),pl();}i&2&&Tg("config",t);}function j(i,t){if(i&1&&tC(0,N,1,1,"agentos-integration-config-item",3),i&2){let e,o=t.$implicit,n=yC();nC((e=n.resolveConfig(o.id))?0:-1,e);}}var V=class i{router=g(G);destroyRef=g(we);state=g(N$1);integrationConfigController=g(U);refresh$=new Tr(void 0);isLoading=zi(true);configs$=this.refresh$.pipe(va(()=>(this.isLoading.set(true),this.state.loadPlatformConfigs())));configItems$=this.configs$.pipe(ue(t=>t.map(e=>({id:e.id??"",name:e.name,description:e.integrationType}))));configsById=new Map;constructor(){this.configs$.pipe(U$1(this.destroyRef)).subscribe({next:t=>{this.configsById=new Map(t.map(e=>[e.id??"",e])),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}goBack(){this.router.navigate(["/agentos","admin"]);}openCreateForm(){this.router.navigate(["/agentos","admin","integration-configs","new"]);}deleteConfig(t){this.integrationConfigController.deleteIntegrationConfig(t.id??"").pipe(U$1(this.destroyRef)).subscribe(()=>this.refresh$.next());}onEdit(t){this.router.navigate(["/agentos","admin","integration-configs",t.id??"","edit"]);}resolveConfig(t){return this.configsById.get(t)??null}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=Rw({type:i,selectors:[["agentos-platform-integration-configs"]],decls:5,vars:7,consts:[["integrationConfigItemTpl",""],["title","Platform Integration Configs","emptyMessage","No platform integration configs defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],["scope","platform",3,"config"],["scope","platform",3,"editRequested","deleteRequested","config"]],template:function(e,o){if(e&1&&(Is(0,"ds-entity-list",1),cT(1,"async"),Ag("createRequested",function(){return o.openCreateForm()}),Is(2,"ds-icon-button",2),Ag("action",function(){return o.goBack()}),pl()(),Dg(3,j,1,1,"ng-template",null,0,pT)),e&2){let n=bC(4);Tg("items",lT(1,4,o.configItems$)??oT(6,F))("loading",o.isLoading())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,O,Se,xb],styles:[".platform-integration-configs__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.platform-integration-configs__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"]})};export{V as PlatformIntegrationConfigsComponent};
|