@whoz-oss/coday-client 0.125.2 → 0.125.3
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-YZSDQIEK.js → chunk-23SYUINW.js} +4 -4
- package/browser/chunk-63U732OW.js +2 -0
- package/browser/{chunk-LI36MCDZ.js → chunk-CH66E3U2.js} +1 -1
- package/browser/{chunk-OWYVTOTW.js → chunk-CYLHTE22.js} +1 -1
- package/browser/{chunk-CP2BIFCA.js → chunk-ECBXPEAC.js} +1 -1
- package/browser/{chunk-MSXCVNKO.js → chunk-G2OAJDIX.js} +1 -1
- package/browser/{chunk-I7DZEVJV.js → chunk-H5SXHH6A.js} +1 -1
- package/browser/{chunk-2GTCISR4.js → chunk-H76RJSSA.js} +1 -1
- package/browser/{chunk-S66NFQG3.js → chunk-H7YMYOPC.js} +1 -1
- package/browser/{chunk-EAGBL5PQ.js → chunk-K3XBOMJY.js} +1 -1
- package/browser/{chunk-VXZ7ZIMM.js → chunk-KC2EKCAS.js} +1 -1
- package/browser/chunk-KUVTFZWT.js +1 -0
- package/browser/{chunk-7QZZJ3DG.js → chunk-LPN5AG4A.js} +1 -1
- package/browser/{chunk-PKW64TFV.js → chunk-LR7LOR4R.js} +1 -1
- package/browser/chunk-NCBEPUYQ.js +1 -0
- package/browser/{chunk-OHZKVDVY.js → chunk-OR62LCJX.js} +1 -1
- package/browser/{chunk-SDPOEKGB.js → chunk-OSNI7IJI.js} +1 -1
- package/browser/{chunk-J76ELV3B.js → chunk-PWF6LYR2.js} +1 -1
- package/browser/chunk-R47KFHEX.js +1 -0
- package/browser/{chunk-EUTBCAQW.js → chunk-TMWJKQYT.js} +2 -2
- package/browser/chunk-TVFEAMIC.js +1 -0
- package/browser/{chunk-J37E3F3X.js → chunk-V6CWNYSW.js} +1 -1
- package/browser/chunk-WGDWYJII.js +1 -0
- package/browser/{chunk-JUPV65PP.js → chunk-Y5OX3ZR2.js} +1 -1
- package/browser/index.html +1 -1
- package/browser/{main-PC4NDE3G.js → main-UAKWI34J.js} +1 -1
- package/package.json +1 -1
- package/browser/chunk-AVSWQR2Q.js +0 -1
- package/browser/chunk-E6KB6VWH.js +0 -1
- package/browser/chunk-HTRRBKXE.js +0 -2
- package/browser/chunk-MFKNL6GY.js +0 -1
- package/browser/chunk-NUTSPDGN.js +0 -1
- package/browser/chunk-VELN6XU5.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as ke,b as je,c as Q}from"./chunk-7MXZXY4I.js";import{a as Pe}from"./chunk-3U3QVZEU.js";import{a as Me}from"./chunk-UORJVNGU.js";import{a as F,b as G}from"./chunk-HCG45H7O.js";import{a as le,c as ue,j as _e,m as fe,o as he,t as be}from"./chunk-EWEA7F46.js";import{e as X}from"./chunk-QWMDAFBN.js";import{a as xe,b as Te,c as ye}from"./chunk-PWDBCAQS.js";import{a as we,b as Se}from"./chunk-O2IJMHBE.js";import"./chunk-KTPX26DH.js";import{e as Ce}from"./chunk-53STPEYQ.js";import{a as ce,b as de,c as pe,e as me,f as V,i as R,j as L,m as $,n as B}from"./chunk-AK6F2DC7.js";import{b as ve}from"./chunk-AJOXSD6I.js";import{a as Z,d as ee,e as te,f as ne,g as oe,h as ie}from"./chunk-DRBOHCTP.js";import"./chunk-IXD43YQI.js";import{a as A,b as I}from"./chunk-WPC6XC7P.js";import{C as ge}from"./chunk-XJUBZLY2.js";import{a as ae,b as se}from"./chunk-XIQ3L6H6.js";import{O as re,Q as N,S as E}from"./chunk-B2QA6UZX.js";import{Bb as x,Db as _,Fb as p,Ka as l,Pb as w,Rb as S,Rc as J,Tb as d,Ub as h,Vb as W,Wa as D,Z as U,a as P,b as j,ca as C,ga as m,ha as g,jb as H,kc as v,lb as b,ma as Y,mb as k,ob as O,pb as T,qb as y,rb as f,s as K,sb as r,ta as u,tb as s,ub as M}from"./chunk-3JGMGRXW.js";var Re=(i,t)=>t.name;function Le(i,t){if(i&1&&(r(0,"mat-option",11),d(1),s()),i&2){let e=t.$implicit;f("value",e),l(),h(e)}}function $e(i,t){i&1&&M(0,"mat-spinner",13)}function Be(i,t){if(i&1&&(r(0,"span",20),d(1),s()),i&2){let e=p().$implicit;l(),h(e.description)}}function qe(i,t){if(i&1&&(r(0,"mat-option",11)(1,"span",19),d(2),s(),b(3,Be,2,1,"span",20),s()),i&2){let e=t.$implicit;f("value",e.name),l(2),h(e.name),l(),k(e.description?3:-1)}}function ze(i,t){if(i&1&&(r(0,"mat-option",11),d(1),s()),i&2){let e=t.$implicit;f("value",e),l(),h(e)}}function We(i,t){if(i&1){let e=x();r(0,"div",25)(1,"mat-form-field",8)(2,"mat-label"),d(3,"Name"),s(),r(4,"input",26),_("input",function(o){m(e);let a=p(2);return g(a.issueNumber.set(o.target.value))}),s()(),r(5,"mat-form-field",27)(6,"mat-label"),d(7,"Type"),s(),r(8,"mat-select",28),_("selectionChange",function(o){m(e);let a=p(2);return g(a.branchType.set(o.value))}),T(9,ze,2,2,"mat-option",11,O),s()()()}if(i&2){let e=p(2);l(4),f("value",e.issueNumber()),l(4),f("value",e.branchType()),l(),y(e.branchTypes)}}function Qe(i,t){i&1&&M(0,"mat-spinner",13)}function Ke(i,t){if(i&1&&(r(0,"mat-option",11),d(1),s()),i&2){let e=t.$implicit;f("value",e),l(),h(e)}}function Ue(i,t){if(i&1){let e=x();r(0,"mat-form-field",8)(1,"mat-label"),d(2,"Source branch"),s(),r(3,"input",29,4),_("input",function(o){m(e);let a=p(2);return g(a.onBranchSearchInput(o.target.value))})("focus",function(){m(e);let o=w(4),a=p(2);return g(a.openPanel(o))}),s(),b(5,Qe,1,0,"mat-spinner",13),r(6,"mat-autocomplete",10,5),_("optionSelected",function(o){m(e);let a=p(2);return g(a.selectBranch(o.option.value))}),T(8,Ke,2,2,"mat-option",11,O),s()()}if(i&2){let e=w(7),n=p(2);l(3),f("value",n.branchSearch())("matAutocomplete",e)("disabled",n.isLoadingBranches()),l(2),k(n.isLoadingBranches()?5:-1),l(3),y(n.filteredBranches())}}function Ye(i,t){if(i&1){let e=x();r(0,"div",21)(1,"button",22),_("click",function(){m(e);let o=p();return g(o.onModeChange("local"))}),r(2,"mat-icon"),d(3,"folder_open"),s(),r(4,"span",23),d(5,"Local"),s(),r(6,"span",24),d(7,"Work directly on the current branch"),s()(),r(8,"button",22),_("click",function(){m(e);let o=p();return g(o.onModeChange("worktree"))}),r(9,"mat-icon"),d(10,"account_tree"),s(),r(11,"span",23),d(12,"Worktree"),s(),r(13,"span",24),d(14,"Create an isolated worktree from a branch"),s()()(),b(15,We,11,2,"div",25),b(16,Ue,10,4,"mat-form-field",8)}if(i&2){let e=p();l(),S("active",e.mode()==="local"),l(7),S("active",e.mode()==="worktree"),l(7),k(e.isWorktree()?15:-1),l(),k(e.isWorktree()?16:-1)}}function He(i,t){i&1&&M(0,"mat-spinner",18)}function Je(i,t){i&1&&(r(0,"mat-icon"),d(1,"rocket_launch"),s())}var q=class i{projectApi=C(ae);agentApi=C(Me);dialogRef=C(Z);projectState=C(se);forcedProject=ve(this.projectState.forcedProject$,{initialValue:null});selectedProject=u("");projectSearch=u("");selectedAgent=u("");agentSearch=u("");mode=u("local");selectedBranch=u("");branchSearch=u("");issueNumber=u("");branchType=u("feature");task=u("");hasGit=u(!1);branchTypes=["feature","fix","refactor","chore","docs","build"];projects=u([]);agents=u([]);branches=u([]);filteredProjects=v(()=>{let t=this.projectSearch().toLowerCase();return t?this.projects().filter(e=>e.toLowerCase().includes(t)):this.projects()});filteredAgents=v(()=>{let t=this.agentSearch().toLowerCase();return t?this.agents().filter(e=>e.name.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)):this.agents()});filteredBranches=v(()=>{let t=this.branchSearch().toLowerCase();return t?this.branches().filter(e=>e.toLowerCase().includes(t)):this.branches()});isLoadingAgents=u(!1);isLoadingBranches=u(!1);isSubmitting=u(!1);isWorktree=v(()=>this.mode()==="worktree"&&this.hasGit());isValid=v(()=>{let t=this.projects().includes(this.selectedProject()),e=this.agents().some(o=>o.name===this.selectedAgent()),n=t&&e&&!!this.task().trim();return this.isWorktree()?n&&!!this.selectedBranch()&&!!this.issueNumber().trim()&&!!this.branchType():n});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(!1),this.mode.set("local"),this.isLoadingAgents.set(!0),this.agentApi.getAgents(t).subscribe({next:e=>{this.agents.set(e),this.isLoadingAgents.set(!1)},error:()=>{this.isLoadingAgents.set(!1)}}),this.projectApi.getGitBranches(t).subscribe({next:({branches:e})=>{this.hasGit.set(e.length>0)},error:()=>{this.hasGit.set(!1)}})}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(!0),this.projectApi.getGitBranches(this.selectedProject()).subscribe({next:({branches:t})=>{this.branches.set(t),this.isLoadingBranches.set(!1)},error:()=>{this.isLoadingBranches.set(!1)}})}submit(){if(!this.isValid()||this.isSubmitting())return;this.isSubmitting.set(!0);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(!1)}})}cancel(){this.dialogRef.close(null)}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=D({type:i,selectors:[["app-new-task-dialog"]],decls:36,vars:11,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 o=x();r(0,"h2",6)(1,"mat-icon"),d(2,"rocket_launch"),s(),d(3,` New Task
|
|
2
|
+
`),s(),r(4,"mat-dialog-content",7)(5,"mat-form-field",8)(6,"mat-label"),d(7,"Project"),s(),r(8,"input",9,0),_("input",function(c){return n.onProjectSearchInput(c.target.value)})("focus",function(){m(o);let c=w(9);return g(n.openPanel(c))}),s(),r(10,"mat-autocomplete",10,1),_("optionSelected",function(c){return n.selectProject(c.option.value)}),T(12,Le,2,2,"mat-option",11,O),s()(),r(14,"mat-form-field",8)(15,"mat-label"),d(16,"Agent"),s(),r(17,"input",12,2),_("input",function(c){return n.onAgentSearchInput(c.target.value)})("focus",function(){m(o);let c=w(18);return g(n.openPanel(c))}),s(),b(19,$e,1,0,"mat-spinner",13),r(20,"mat-autocomplete",10,3),_("optionSelected",function(c){return n.selectAgent(c.option.value)}),T(22,qe,4,3,"mat-option",11,Re),s()(),b(24,Ye,17,6),r(25,"mat-form-field",8)(26,"mat-label"),d(27,"Task"),s(),r(28,"textarea",14),_("input",function(c){return n.task.set(c.target.value)}),s()()(),r(29,"mat-dialog-actions",15)(30,"button",16),_("click",function(){return n.cancel()}),d(31,"Cancel"),s(),r(32,"button",17),_("click",function(){return n.submit()}),b(33,He,1,0,"mat-spinner",18)(34,Je,2,0,"mat-icon"),d(35," Launch "),s()()}if(e&2){let o=w(11),a=w(21);l(8),f("value",n.projectSearch())("matAutocomplete",o),l(4),y(n.filteredProjects()),l(5),f("value",n.agentSearch())("matAutocomplete",a)("disabled",!n.selectedProject()||n.isLoadingAgents()),l(2),k(n.isLoadingAgents()?19:-1),l(3),y(n.filteredAgents()),l(2),k(n.hasGit()&&!n.forcedProject()?24:-1),l(4),f("value",n.task()),l(2),f("disabled",n.isSubmitting()),l(2),f("disabled",!n.isValid()||n.isSubmitting()),l(),k(n.isSubmitting()?33:34)}},dependencies:[ge,ie,te,oe,ne,E,N,L,R,pe,V,B,$,ye,xe,Ce,Te,Se,we,G,F,I,A],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)}"]})};var z=class i{http=C(J);threadApi=C(le);isLoading=u(!1);tasks=u([]);refresh(){this.isLoading.set(!0),this.threadApi.listAllThreads().pipe(K(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:!1,status:this.deriveStatus(n),projectId:n.projectId,worktreeProject:n.worktreeProject}));this.tasks.set(this.sorted(e)),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1)}})}applyStatusEvent(t,e){let n=e==="invite"?"waiting-you":"in-progress";this.tasks.update(o=>this.sorted(o.map(a=>a.id===t?j(P({},a),{status:n}):a)))}closeTask(t,e){this.tasks.update(n=>n.filter(o=>o.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(o=>o.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 o=`/api/projects/${t}/threads/${e}/star`;(n?this.http.delete(o):this.http.post(o,{})).subscribe({next:()=>this.refresh(),error:c=>console.error("[GLOBAL-TC] Failed to toggle star:",c)})}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)})}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()<je?"in-progress":"paused"}sorted(t){return[...t].sort((e,n)=>{let o=Q[e.status]-Q[n.status];return o!==0?o:e.modifiedDate>n.modifiedDate?-1:1})}static \u0275fac=function(e){return new(e||i)};static \u0275prov=U({token:i,factory:i.\u0275fac,providedIn:"root"})};var Xe=(i,t)=>t.key,Ze=(i,t)=>t.name,et=(i,t)=>t.status,Ne=(i,t)=>t.id;function tt(i,t){if(i&1){let e=x();r(0,"button",21),_("click",function(){m(e);let o=p();return g(o.clearSearch())}),r(1,"mat-icon"),d(2,"close"),s()()}}function nt(i,t){if(i&1){let e=x();r(0,"button",22),_("click",function(){let o=m(e).$implicit,a=p(2);return g(a.setProject(o.name))}),d(1),r(2,"span",23),d(3),s()()}if(i&2){let e=t.$implicit,n=p(2);S("active",n.activeProject()===e.name),l(),W(" ",e.name," "),l(2),h(e.count)}}function ot(i,t){if(i&1){let e=x();r(0,"nav",14)(1,"button",22),_("click",function(){m(e);let o=p();return g(o.setProject(null))}),d(2," All projects "),r(3,"span",23),d(4),s()(),T(5,nt,4,4,"button",24,Ze),s()}if(i&2){let e=p();l(),S("active",e.activeProject()===null),l(3),h(e.allTasks().length),l(),y(e.projectSummaries())}}function it(i,t){if(i&1&&(r(0,"span",27),d(1),s()),i&2){let e=p().$implicit,n=p();l(),h(n.filterCounts()[e.key])}}function rt(i,t){if(i&1){let e=x();r(0,"button",25),_("click",function(){let o=m(e).$implicit,a=p();return g(a.setFilter(o.key))}),r(1,"mat-icon",26),d(2),s(),r(3,"span"),d(4),s(),b(5,it,2,1,"span",27),s()}if(i&2){let e=t.$implicit,n=p();S("active",n.activeFilter()===e.key),H("aria-selected",n.activeFilter()===e.key),l(2),h(e.icon),l(2),h(e.label),l(),k(n.filterCounts()[e.key]>0?5:-1)}}function at(i,t){i&1&&(r(0,"div",18),M(1,"mat-spinner",28),r(2,"p"),d(3,"Loading tasks from all projects\u2026"),s()())}function st(i,t){i&1&&(r(0,"div",19)(1,"mat-icon",29),d(2,"hub"),s(),r(3,"p"),d(4,"No tasks found."),s()())}function lt(i,t){if(i&1){let e=x();r(0,"app-task-card",35),_("stopRequested",function(o){let a=m(e).$implicit,c=p(3);return g(c.onStopRequested(o,a.projectId))})("deleteRequested",function(o){let a=m(e).$implicit,c=p(3);return g(c.onDeleteRequested(o,a.projectId))})("starToggled",function(o){let a=m(e).$implicit,c=p(3);return g(c.onStarToggled(o,a.projectId))})("closeTaskRequested",function(o){let a=m(e).$implicit,c=p(3);return g(c.onCloseTaskRequested(o,a.projectId))})("markDoneRequested",function(o){let a=m(e).$implicit,c=p(3);return g(c.onMarkDoneRequested(o,a.projectId))})("markActiveRequested",function(o){let a=m(e).$implicit,c=p(3);return g(c.onMarkActiveRequested(o,a.projectId))}),s()}if(i&2){let e=t.$implicit;f("task",e)("projectNameOverride",e.projectId)("showProject",!0)}}function ct(i,t){if(i&1&&(r(0,"section",30)(1,"h3",31)(2,"mat-icon",32),d(3),s(),d(4),r(5,"span",33),d(6),s()(),r(7,"div",20),T(8,lt,1,3,"app-task-card",34,Ne),s()()),i&2){let e=t.$implicit;l(3),h(e.icon),l(),W(" ",e.label," "),l(2),h(e.tasks.length),l(2),y(e.tasks)}}function dt(i,t){if(i&1&&T(0,ct,10,3,"section",30,et),i&2){let e=p();y(e.taskGroups())}}function pt(i,t){if(i&1){let e=x();r(0,"app-task-card",35),_("stopRequested",function(o){let a=m(e).$implicit,c=p(2);return g(c.onStopRequested(o,a.projectId))})("deleteRequested",function(o){let a=m(e).$implicit,c=p(2);return g(c.onDeleteRequested(o,a.projectId))})("starToggled",function(o){let a=m(e).$implicit,c=p(2);return g(c.onStarToggled(o,a.projectId))})("closeTaskRequested",function(o){let a=m(e).$implicit,c=p(2);return g(c.onCloseTaskRequested(o,a.projectId))})("markDoneRequested",function(o){let a=m(e).$implicit,c=p(2);return g(c.onMarkDoneRequested(o,a.projectId))})("markActiveRequested",function(o){let a=m(e).$implicit,c=p(2);return g(c.onMarkActiveRequested(o,a.projectId))}),s()}if(i&2){let e=t.$implicit;f("task",e)("projectNameOverride",e.projectId)("showProject",!0)}}function mt(i,t){if(i&1&&(r(0,"div",20),T(1,pt,1,3,"app-task-card",34,Ne),s()),i&2){let e=p();l(),y(e.displayedTasks())}}var gt=[{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"}],ut=[{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"}],Oe=class i{globalTaskService=C(z);destroyRef=C(Y);dialog=C(ee);globalEventSource=null;filters=ut;activeFilter=u("all");activeProject=u(null);searchQuery=u("");isLoading=this.globalTaskService.isLoading;allTasks=this.globalTaskService.tasks;projectSummaries=v(()=>{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,o])=>({name:n,count:o})).sort((n,o)=>n.name.localeCompare(o.name))});filteredTasks=v(()=>{let t=this.allTasks(),e=this.activeProject();e&&(t=t.filter(o=>o.projectId===e));let n=this.activeFilter();return n!=="all"&&(t=t.filter(o=>o.status===n)),t});filterCounts=v(()=>{let t=this.allTasks(),e=this.activeProject();return e&&(t=t.filter(n=>n.projectId===e)),{all:t.length,"waiting-you":t.filter(n=>n.status==="waiting-you").length,"in-progress":t.filter(n=>n.status==="in-progress").length,done:t.filter(n=>n.status==="done").length,paused:t.filter(n=>n.status==="paused").length,error:t.filter(n=>n.status==="error").length}});displayedTasks=v(()=>{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=v(()=>{let t=this.displayedTasks();return gt.map(e=>j(P({},e),{tasks:t.filter(n=>n.status===e.status)})).filter(e=>e.tasks.length>0)});sortedFilteredTasks=v(()=>{let t=this.filteredTasks(),e={"waiting-you":0,"in-progress":1,paused:2,error:3,done:4};return[...t].sort((n,o)=>(e[n.status]??99)-(e[o.status]??99))});constructor(){this.destroyRef.onDestroy(()=>this.disconnectGlobalSse())}ngOnInit(){this.globalTaskService.refresh(),this.connectGlobalSse()}setFilter(t){this.activeFilter.set(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()}openNewTaskDialog(){this.dialog.open(q,{width:"500px",disableClose:!1}).afterClosed().subscribe(e=>{e&&(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(a=>a.id===t);if(!n)return;let o=n.starring.length>0;this.globalTaskService.toggleStar(e,t,o)}onCloseTaskRequested(t,e){let o=this.allTasks().find(c=>c.id===t)?.worktreeProject??e;this.dialog.open(Pe,{width:"420px",data:{title:"Close task",message:`This will stop the agent, delete the thread and remove the worktree project "${o}" from disk. This cannot be undone.`,confirmLabel:"Close task",cancelLabel:"Cancel"}}).afterClosed().subscribe(c=>{c&&this.globalTaskService.closeTask(e,t)})}onMarkDoneRequested(t,e){this.globalTaskService.markTaskDone(e,t)}onMarkActiveRequested(t,e){this.globalTaskService.markTaskActive(e,t)}connectGlobalSse(t=5e3){this.disconnectGlobalSse();let e=new EventSource("/api/event-stream");this.globalEventSource=e,e.onmessage=n=>{try{let o=JSON.parse(n.data),a=be(o);if(!a)return;let c=a.threadId;if(!c)return;a instanceof ue||a instanceof _e?this.globalTaskService.applyStatusEvent(c,"invite"):a instanceof fe?this.globalTaskService.applyStatusEvent(c,"thinking"):a instanceof he&&this.globalTaskService.refresh()}catch(o){}},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||i)};static \u0275cmp=D({type:i,selectors:[["app-global-task-control"]],decls:34,vars:5,consts:[[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","Refresh all tasks","aria-label","Refresh tasks",3,"click","disabled"],["mat-stroked-button","","routerLink","/projects","aria-label","Manage projects"],["mat-flat-button","","aria-label","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"],[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-icon"],[1,"filter-badge"],["diameter","36"],[1,"empty-icon"],[1,"gtc-group"],[1,"gtc-group-title"],[1,"group-icon"],[1,"group-count"],[3,"task","projectNameOverride","showProject"],[3,"stopRequested","deleteRequested","starToggled","closeTaskRequested","markDoneRequested","markActiveRequested","task","projectNameOverride","showProject"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"header",1)(2,"div",2)(3,"mat-icon",3),d(4,"hub"),s(),r(5,"h1",4),d(6,"Global Task Control"),s()(),r(7,"mat-form-field",5)(8,"mat-icon",6),d(9,"search"),s(),r(10,"input",7),_("input",function(a){return n.onSearchInput(a)})("keydown.escape",function(){return n.clearSearch()}),s(),b(11,tt,3,0,"button",8),s(),r(12,"div",9)(13,"button",10),_("click",function(){return n.refresh()}),r(14,"mat-icon"),d(15,"refresh"),s()(),r(16,"button",11)(17,"mat-icon"),d(18,"settings"),s(),d(19," Manage projects "),s(),r(20,"button",12),_("click",function(){return n.openNewTaskDialog()}),r(21,"mat-icon"),d(22,"rocket_launch"),s(),d(23," New Task "),s()()(),r(24,"div",13),b(25,ot,7,3,"nav",14),r(26,"nav",15),T(27,rt,6,6,"button",16,Xe),s()(),r(29,"main",17),b(30,at,4,0,"div",18)(31,st,5,0,"div",19)(32,dt,2,0)(33,mt,3,0,"div",20),s()()),e&2&&(l(10),f("value",n.searchQuery()),l(),k(n.searchQuery()?11:-1),l(2),f("disabled",n.isLoading()),l(12),k(n.projectSummaries().length>1?25:-1),l(2),y(n.filters),l(3),k(n.isLoading()?30:n.displayedTasks().length===0?31:n.activeFilter()==="all"&&!n.searchQuery()?32:33))},dependencies:[ke,I,A,E,N,re,de,ce,G,F,L,R,me,V,B,$,X],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}.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)}.gtc-content[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding:1rem 1rem 2rem}.gtc-group[_ngcontent-%COMP%]{margin-bottom:1.25rem}.gtc-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.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}"],changeDetection:0})};export{Oe as GlobalTaskControlComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as E}from"./chunk-GAZJZBKP.js";import{b as w,d as M}from"./chunk-QWMDAFBN.js";import{b as k}from"./chunk-
|
|
1
|
+
import{a as E}from"./chunk-GAZJZBKP.js";import{b as w,d as M}from"./chunk-QWMDAFBN.js";import{b as k}from"./chunk-LR7LOR4R.js";import{a as I}from"./chunk-AJOXSD6I.js";import{Db as d,Jb as y,Ka as m,Kb as v,Lb as C,Ma as _,Rc as x,S as f,Tb as l,Wa as b,ca as n,ma as g,rb as p,sb as a,t as h,ta as c,tb as i}from"./chunk-3JGMGRXW.js";var H=["composerInput"],P=class u{http=n(x);router=n(M);route=n(w);config=n(E);destroyRef=n(g);composerInput;namespaceId=this.route.snapshot.params.namespaceId;inputValue=c("");isCreating=c(!1);constructor(){_(()=>{this.composerInput?.nativeElement.focus()})}get canSend(){return!!this.inputValue().trim()&&!this.isCreating()}onInput(t){this.inputValue.set(t.target.value)}onKeydown(t){t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),this.submit())}submit(){if(!this.canSend)return;let t=this.inputValue().trim();this.inputValue.set(""),this.isCreating.set(!0),this.http.post(`${this.config.basePath}/api/cases`,{namespaceId:this.namespaceId,metadata:{}}).pipe(f(e=>this.http.post(`${this.config.basePath}/api/cases/${e.id}/messages`,{content:t,userId:"default-user"}).pipe(h(()=>e))),I(this.destroyRef)).subscribe({next:e=>{this.router.navigate([e.id??""],{relativeTo:this.route})},error:e=>{console.error("[CaseHome] Failed to create case or send first message",e),this.isCreating.set(!1),this.inputValue.set(t)}})}static \u0275fac=function(e){return new(e||u)};static \u0275cmp=b({type:u,selectors:[["agentos-case-home"]],viewQuery:function(e,o){if(e&1&&y(H,5),e&2){let r;v(r=C())&&(o.composerInput=r.first)}},decls:11,vars:3,consts:[["composerInput",""],[1,"case-home"],[1,"case-home__hero"],[1,"case-home__headline"],[1,"case-home__composer"],["placeholder","Describe your task or ask a question\u2026","rows","4",1,"case-home__input",3,"input","keydown","value","disabled"],[1,"case-home__composer-footer"],[1,"case-home__hint"],["icon","send","variant","primary","title","Start case (Enter)",3,"action","disabled"]],template:function(e,o){e&1&&(a(0,"div",1)(1,"div",2)(2,"h1",3),l(3,"What can I help you with?"),i(),a(4,"div",4)(5,"textarea",5,0),d("input",function(s){return o.onInput(s)})("keydown",function(s){return o.onKeydown(s)}),i(),a(7,"div",6)(8,"span",7),l(9,"Enter to send\xA0\xA0\xB7\xA0\xA0Shift+Enter for new line"),i(),a(10,"ds-icon-button",8),d("action",function(){return o.submit()}),i()()()()()),e&2&&(m(5),p("value",o.inputValue())("disabled",o.isCreating()),m(5),p("disabled",!o.canSend))},dependencies:[k],styles:[".case-home[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;align-items:center;justify-content:center}.case-home__hero[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem 1.5rem 4rem;max-width:680px;width:100%}.case-home__headline[_ngcontent-%COMP%]{margin:0;font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;letter-spacing:-.03em;color:var(--color-text, #1d1d1f);text-align:center}.case-home__composer[_ngcontent-%COMP%]{width:100%;display:flex;flex-direction:column;background:var(--glass-bg, rgba(255, 255, 255, .72));border:1px solid var(--glass-border, rgba(255, 255, 255, .18));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));border-radius:16px;box-shadow:0 4px 24px #00000012;overflow:hidden;transition:box-shadow .2s ease,border-color .2s ease}.case-home__composer[_ngcontent-%COMP%]:focus-within{box-shadow:0 4px 32px #007aff26;border-color:var(--color-primary, #007aff)}.case-home__input[_ngcontent-%COMP%]{width:100%;resize:none;padding:1rem 1.25rem .5rem;border:none;background:transparent;color:var(--color-text, #1d1d1f);font-size:1rem;font-family:inherit;line-height:1.6;outline:none;box-sizing:border-box}.case-home__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.case-home__input[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.case-home__composer-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:.5rem .5rem .5rem 1.25rem}.case-home__hint[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);opacity:.7}"]})};export{P as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as $}from"./chunk-GAZJZBKP.js";import{b as q,d as I}from"./chunk-QWMDAFBN.js";import{b as y,g as A}from"./chunk-
|
|
1
|
+
import{e as $}from"./chunk-GAZJZBKP.js";import{b as q,d as I}from"./chunk-QWMDAFBN.js";import{b as y,g as A}from"./chunk-LR7LOR4R.js";import"./chunk-ZAM3WGZM.js";import"./chunk-53STPEYQ.js";import"./chunk-AK6F2DC7.js";import{a as x}from"./chunk-AJOXSD6I.js";import"./chunk-IXD43YQI.js";import"./chunk-WPC6XC7P.js";import"./chunk-XJUBZLY2.js";import"./chunk-B2QA6UZX.js";import{Bb as p,Db as s,Fb as c,Gc as B,Ka as d,Pb as P,S as M,Tb as C,Ub as h,Wa as f,ab as k,ac as N,ca as m,dc as S,ec as V,ga as l,ha as g,hc as O,i as w,lb as _,ma as E,mb as u,oa as T,rb as v,sb as r,t as D,ta as R,tb as a}from"./chunk-3JGMGRXW.js";function U(n,t){if(n&1){let e=p();r(0,"span",5),C(1,"Delete?"),a(),r(2,"ds-icon-button",6),s("action",function(){l(e);let i=c();return g(i.onDeleteConfirmed())}),a(),r(3,"ds-icon-button",7),s("action",function(){l(e);let i=c();return g(i.onDeleteCancelled())}),a()}}function W(n,t){if(n&1){let e=p();r(0,"ds-icon-button",8),s("action",function(){l(e);let i=c();return g(i.onEdit())}),a(),r(1,"ds-icon-button",9),s("action",function(){l(e);let i=c();return g(i.onDeleteArmed())}),a()}}var b=class n{router=m(I);config;namespaceId;deleteRequested=new T;pendingDelete=R(!1);onEdit(){this.router.navigate(["/agentos",this.namespaceId,"integrations",this.config.id,"edit"])}onDeleteArmed(){this.pendingDelete.set(!0)}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.config)}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=f({type:n,selectors:[["agentos-integration-config-item"]],inputs:{config:"config",namespaceId:"namespaceId"},outputs:{deleteRequested:"deleteRequested"},decls:9,vars:3,consts:[["role","listitem",1,"integration-config-item"],[1,"integration-config-item__body"],[1,"integration-config-item__name"],[1,"integration-config-item__type"],[1,"integration-config-item__actions"],[1,"integration-config-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],["icon","edit","title","Edit integration",3,"action"],["icon","delete","variant","danger","title","Delete integration",3,"action"]],template:function(e,o){e&1&&(r(0,"div",0)(1,"div",1)(2,"span",2),C(3),a(),r(4,"span",3),C(5),a()(),r(6,"div",4),_(7,U,4,0)(8,W,2,0),a()()),e&2&&(d(3),h(o.config.name),d(2),h(o.config.integrationType),d(2),u(o.pendingDelete()?7:8))},dependencies:[y],styles:[".integration-config-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--glass-bg, rgba(255, 255, 255, .72));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px));transition:background .15s ease,border-color .15s ease}.integration-config-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.integration-config-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.integration-config-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.integration-config-item__type[_ngcontent-%COMP%]{font-size:.78rem;color:var(--color-text-secondary, #6e6e73);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.integration-config-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.integration-config-item[_ngcontent-%COMP%]:hover .integration-config-item__actions[_ngcontent-%COMP%], .integration-config-item[_ngcontent-%COMP%]:focus-within .integration-config-item__actions[_ngcontent-%COMP%]{opacity:1}.integration-config-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error, #ff3b30);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};var G=()=>[];function H(n,t){if(n&1){let e=p();r(0,"agentos-integration-config-item",4),s("deleteRequested",function(i){l(e);let j=c(2);return g(j.deleteConfig(i))}),a()}if(n&2){let e=c(2);v("config",t)("namespaceId",e.namespaceId)}}function J(n,t){if(n&1&&_(0,H,1,2,"agentos-integration-config-item",3),n&2){let e,o=t.$implicit,i=c();u((e=i.resolveConfig(o.id))?0:-1,e)}}var F=class n{route=m(q);router=m(I);destroyRef=m(E);integrationConfigController=m($);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new w(void 0);configs$=this.refresh$.pipe(M(()=>this.integrationConfigController.listByParentIntegrationConfig(this.namespaceId)));configItems$=this.configs$.pipe(D(t=>t.map(e=>({id:e.id??"",name:e.name,description:e.integrationType}))));configsById=new Map;constructor(){this.configs$.pipe(x(this.destroyRef)).subscribe(t=>{this.configsById=new Map(t.map(e=>[e.id??"",e]))})}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"integrations","new"])}deleteConfig(t){this.integrationConfigController.deleteIntegrationConfig(t.id??"").pipe(x(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveConfig(t){return this.configsById.get(t)??null}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=f({type:n,selectors:[["agentos-namespace-integrations"]],decls:5,vars:6,consts:[["integrationItemTpl",""],["title","Integrations","emptyMessage","No integrations configured yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"config","namespaceId"],[3,"deleteRequested","config","namespaceId"]],template:function(e,o){if(e&1&&(r(0,"ds-entity-list",1),S(1,"async"),s("createRequested",function(){return o.openCreateForm()}),r(2,"ds-icon-button",2),s("action",function(){return o.goBack()}),a()(),k(3,J,1,1,"ng-template",null,0,O)),e&2){let i=P(4);v("items",V(1,3,o.configItems$)??N(5,G))("showCreate",!0)("itemTemplate",i)}},dependencies:[A,b,y,B],encapsulation:2})};export{F as NamespaceIntegrationsComponent};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./chunk-PWDBCAQS.js";import{a as ot,b as rt}from"./chunk-O2IJMHBE.js";import{a as lt,b as st}from"./chunk-KTPX26DH.js";import{a as H}from"./chunk-AQ3SEH2N.js";import{a as ft,b as _t,c as vt}from"./chunk-UKAN3Y3I.js";import{e as dt,f as ct,g as ut,h as mt,i as gt,j as pt,k as ht,l as bt}from"./chunk-PKW64TFV.js";import"./chunk-ZAM3WGZM.js";import"./chunk-AJOXSD6I.js";import{a as nt,e as at,j as it}from"./chunk-53STPEYQ.js";import{c as $e,d as He,i as qe,j as Qe,m as et,n as tt}from"./chunk-AK6F2DC7.js";import{a as Be,b as De,d as Re,e as Ve,f as Ae,g as Le,h as We}from"./chunk-DRBOHCTP.js";import"./chunk-IXD43YQI.js";import{a as N,b as U}from"./chunk-WPC6XC7P.js";import{A as Je,C as $,a as Ke,c as Xe,g as z,m as j,o as Ye,z as Ze}from"./chunk-XJUBZLY2.js";import{b as je}from"./chunk-XIQ3L6H6.js";import{A as Ee,E as Pe,K as Fe,M as Ge,N as Ne,O as W,P as Ue,Q as ze,S as G,h as we,i as Ie,t as ne,u as Oe}from"./chunk-B2QA6UZX.js";import{$b as _e,Bb as x,Cc as xe,Db as g,Fb as u,Gb as pe,Hb as he,Ib as be,Jb as fe,Jc as ke,Ka as d,Kb as Z,Lb as J,Pb as F,Rb as ee,Rc as Te,Tb as s,Ub as O,Vb as w,Wa as I,Xa as de,Xb as f,Y as oe,Ya as ce,Yb as _,Z as re,Zb as v,_ as le,aa as K,ab as X,ac as ve,bc as ye,ca as c,ga as p,ha as h,hc as Me,jb as V,kc as Se,lb as M,mb as S,mc as Ce,nb as ue,oa as R,pb as A,qb as L,rb as b,sb as o,sc as te,ta as k,tb as r,tc as C,ub as Y,ya as se,yb as me,zb as ge}from"./chunk-3JGMGRXW.js";var E=class l{http=c(Te);projectState=c(je);getBaseUrl(){return`/api/projects/${this.projectState.getSelectedProjectIdOrThrow()}/schedulers`}listSchedulers(){return this.http.get(this.getBaseUrl())}getScheduler(a){return this.http.get(`${this.getBaseUrl()}/${a}`)}createScheduler(a){return this.http.post(this.getBaseUrl(),a)}updateScheduler(a,e){return this.http.put(`${this.getBaseUrl()}/${a}`,e)}deleteScheduler(a){return this.http.delete(`${this.getBaseUrl()}/${a}`)}enableScheduler(a){return this.http.post(`${this.getBaseUrl()}/${a}/enable`,{})}disableScheduler(a){return this.http.post(`${this.getBaseUrl()}/${a}/disable`,{})}runSchedulerNow(a){return this.http.post(`${this.getBaseUrl()}/${a}/run-now`,{})}static \u0275fac=function(e){return new(e||l)};static \u0275prov=re({token:l,factory:l.\u0275fac,providedIn:"root"})};var Pt=["button"],Ft=["*"];function Bt(l,a){if(l&1&&(o(0,"div",2),Y(1,"mat-pseudo-checkbox",6),r()),l&2){let e=u();d(),b("disabled",e.disabled)}}var yt=new K("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:()=>({hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1})}),Mt=new K("MatButtonToggleGroup"),Dt={provide:Ke,useExisting:oe(()=>ie),multi:!0},q=class{source;value;constructor(a,e){this.source=a,this.value=e}},ie=(()=>{class l{_changeDetector=c(te);_dir=c(Ee,{optional:!0});_multiple=!1;_disabled=!1;_disabledInteractive=!1;_selectionModel;_rawValue;_controlValueAccessorChangeFn=()=>{};_onTouched=()=>{};_buttonToggles;appearance;get name(){return this._name}set name(e){this._name=e,this._markButtonsForCheck()}_name=c(ne).getId("mat-button-toggle-group-");vertical=!1;get value(){let e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e.map(t=>t.value):e[0]?e[0].value:void 0}set value(e){this._setSelectionByValue(e),this.valueChange.emit(this.value)}valueChange=new R;get selected(){let e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e:e[0]||null}get multiple(){return this._multiple}set multiple(e){this._multiple=e,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._markButtonsForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e,this._markButtonsForCheck()}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}change=new R;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._markButtonsForCheck()}_hideSingleSelectionIndicator;get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(e){this._hideMultipleSelectionIndicator=e,this._markButtonsForCheck()}_hideMultipleSelectionIndicator;constructor(){let e=c(yt,{optional:!0});this.appearance=e&&e.appearance?e.appearance:"standard",this._hideSingleSelectionIndicator=e?.hideSingleSelectionIndicator??!1,this._hideMultipleSelectionIndicator=e?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new it(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(e=>e.checked)),this.multiple||this._initializeTabIndex()}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_keydown(e){if(this.multiple||this.disabled||Oe(e))return;let n=e.target.id,i=this._buttonToggles.toArray().findIndex(T=>T.buttonId===n),m=null;switch(e.keyCode){case 32:case 13:m=this._buttonToggles.get(i)||null;break;case 38:m=this._getNextButton(i,-1);break;case 37:m=this._getNextButton(i,this.dir==="ltr"?-1:1);break;case 40:m=this._getNextButton(i,1);break;case 39:m=this._getNextButton(i,this.dir==="ltr"?1:-1);break;default:return}m&&(e.preventDefault(),m._onButtonClick(),m.focus())}_emitChangeEvent(e){let t=new q(e,this.value);this._rawValue=t.value,this._controlValueAccessorChangeFn(t.value),this.change.emit(t)}_syncButtonToggle(e,t,n=!1,i=!1){!this.multiple&&this.selected&&!e.checked&&(this.selected.checked=!1),this._selectionModel?t?this._selectionModel.select(e):this._selectionModel.deselect(e):i=!0,i?Promise.resolve().then(()=>this._updateModelValue(e,n)):this._updateModelValue(e,n)}_isSelected(e){return this._selectionModel&&this._selectionModel.isSelected(e)}_isPrechecked(e){return typeof this._rawValue>"u"?!1:this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(t=>e.value!=null&&t===e.value):e.value===this._rawValue}_initializeTabIndex(){if(this._buttonToggles.forEach(e=>{e.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let e=0;e<this._buttonToggles.length;e++){let t=this._buttonToggles.get(e);if(!t.disabled){t.tabIndex=0;break}}}_getNextButton(e,t){let n=this._buttonToggles;for(let i=1;i<=n.length;i++){let m=(e+t*i+n.length)%n.length,T=n.get(m);if(T&&!T.disabled)return T}return null}_setSelectionByValue(e){if(this._rawValue=e,!this._buttonToggles)return;let t=this._buttonToggles.toArray();if(this.multiple&&e?(Array.isArray(e),this._clearSelection(),e.forEach(n=>this._selectValue(n,t))):(this._clearSelection(),this._selectValue(e,t)),!this.multiple&&t.every(n=>n.tabIndex===-1)){for(let n of t)if(!n.disabled){n.tabIndex=0;break}}}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(e=>{e.checked=!1,this.multiple||(e.tabIndex=-1)})}_selectValue(e,t){for(let n of t)if(n.value===e){n.checked=!0,this._selectionModel.select(n),this.multiple||(n.tabIndex=0);break}}_updateModelValue(e,t){t&&this._emitChangeEvent(e),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(e=>e._markForCheck())}static \u0275fac=function(t){return new(t||l)};static \u0275dir=ce({type:l,selectors:[["mat-button-toggle-group"]],contentQueries:function(t,n,i){if(t&1&&be(i,Q,5),t&2){let m;Z(m=J())&&(n._buttonToggles=m)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(t,n){t&1&&g("keydown",function(m){return n._keydown(m)}),t&2&&(V("role",n.multiple?"group":"radiogroup")("aria-disabled",n.disabled),ee("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard",n.appearance==="standard"))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",C],value:"value",multiple:[2,"multiple","multiple",C],disabled:[2,"disabled","disabled",C],disabledInteractive:[2,"disabledInteractive","disabledInteractive",C],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",C],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",C]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[_e([Dt,{provide:Mt,useExisting:l}])]})}return l})(),Q=(()=>{class l{_changeDetectorRef=c(te);_elementRef=c(se);_focusMonitor=c(we);_idGenerator=c(ne);_animationDisabled=Fe();_checked=!1;ariaLabel;ariaLabelledby=null;_buttonElement;buttonToggleGroup;get buttonId(){return`${this.id}-button`}id;name;value;get tabIndex(){return this._tabIndex()}set tabIndex(e){this._tabIndex.set(e)}_tabIndex;disableRipple=!1;get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(e){this._appearance=e}_appearance;get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(e){e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(e){this._disabled=e}_disabled=!1;get disabledInteractive(){return this._disabledInteractive||this.buttonToggleGroup!==null&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e}_disabledInteractive;change=new R;constructor(){c(Ie).load(Ne);let e=c(Mt,{optional:!0}),t=c(new Ce("tabindex"),{optional:!0})||"",n=c(yt,{optional:!0});this._tabIndex=k(parseInt(t)||0),this.buttonToggleGroup=e,this._appearance=n&&n.appearance?n.appearance:"standard",this._disabledInteractive=n?.disabledInteractive??!1}ngOnInit(){let e=this.buttonToggleGroup;this.id=this.id||this._idGenerator.getId("mat-button-toggle-"),e&&(e._isPrechecked(this)?this.checked=!0:e._isSelected(this)!==this._checked&&e._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._animationDisabled||this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"),this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){let e=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),e&&e._isSelected(this)&&e._syncButtonToggle(this,!1,!1,!0)}focus(e){this._buttonElement.nativeElement.focus(e)}_onButtonClick(){if(this.disabled)return;let e=this.isSingleSelector()?!0:!this._checked;if(e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){let t=this.buttonToggleGroup._buttonToggles.find(n=>n.tabIndex===0);t&&(t.tabIndex=-1),this.tabIndex=0}this.change.emit(new q(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static \u0275fac=function(t){return new(t||l)};static \u0275cmp=I({type:l,selectors:[["mat-button-toggle"]],viewQuery:function(t,n){if(t&1&&fe(Pt,5),t&2){let i;Z(i=J())&&(n._buttonElement=i.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(t,n){t&1&&g("focus",function(){return n.focus()}),t&2&&(V("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),ee("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-disabled-interactive",n.disabledInteractive)("mat-button-toggle-appearance-standard",n.appearance==="standard"))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",C],appearance:"appearance",checked:[2,"checked","checked",C],disabled:[2,"disabled","disabled",C],disabledInteractive:[2,"disabledInteractive","disabledInteractive",C]},outputs:{change:"change"},exportAs:["matButtonToggle"],ngContentSelectors:Ft,decls:7,vars:13,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-checkbox-wrapper"],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"],["state","checked","aria-hidden","true","appearance","minimal",3,"disabled"]],template:function(t,n){if(t&1&&(pe(),o(0,"button",1,0),g("click",function(){return n._onButtonClick()}),M(2,Bt,2,1,"div",2),o(3,"span",3),he(4),r()(),Y(5,"span",4)(6,"span",5)),t&2){let i=F(1);b("id",n.buttonId)("disabled",n.disabled&&!n.disabledInteractive||null),V("role",n.isSingleSelector()?"radio":"button")("tabindex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("aria-pressed",n.isSingleSelector()?null:n.checked)("aria-checked",n.isSingleSelector()?n.checked:null)("name",n._getButtonName())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),d(2),S(n.buttonToggleGroup&&(!n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideSingleSelectionIndicator||n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideMultipleSelectionIndicator)?2:-1),d(4),b("matRippleTrigger",i)("matRippleDisabled",n.disableRipple||n.disabled)}},dependencies:[Ge,nt],styles:[`.mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);border-radius:var(--mat-button-toggle-legacy-shape);transform:translateZ(0)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border:solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-button-toggle-legacy-text-color);font-family:var(--mat-button-toggle-legacy-label-text-font);font-size:var(--mat-button-toggle-legacy-label-text-size);line-height:var(--mat-button-toggle-legacy-label-text-line-height);font-weight:var(--mat-button-toggle-legacy-label-text-weight);letter-spacing:var(--mat-button-toggle-legacy-label-text-tracking);--mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-button-toggle-legacy-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-button-toggle-legacy-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-button-toggle-legacy-selected-state-text-color);background-color:var(--mat-button-toggle-legacy-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-button-toggle-legacy-disabled-state-text-color);background-color:var(--mat-button-toggle-legacy-disabled-state-background-color);--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: var(--mat-button-toggle-legacy-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-button-toggle-legacy-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-button-toggle-background-color, transparent);font-family:var(--mat-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: var(--mat-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-button-toggle-legacy-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-button-toggle-legacy-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-right-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-left-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-left-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border-top-left-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}
|
|
1
|
+
import"./chunk-PWDBCAQS.js";import{a as ot,b as rt}from"./chunk-O2IJMHBE.js";import{a as lt,b as st}from"./chunk-KTPX26DH.js";import{a as H}from"./chunk-AQ3SEH2N.js";import{a as ft,b as _t,c as vt}from"./chunk-UKAN3Y3I.js";import{e as dt,f as ct,g as ut,h as mt,i as gt,j as pt,k as ht,l as bt}from"./chunk-LR7LOR4R.js";import"./chunk-ZAM3WGZM.js";import{a as nt,e as at,j as it}from"./chunk-53STPEYQ.js";import{c as $e,d as He,i as qe,j as Qe,m as et,n as tt}from"./chunk-AK6F2DC7.js";import"./chunk-AJOXSD6I.js";import{a as Be,b as De,d as Re,e as Ve,f as Ae,g as Le,h as We}from"./chunk-DRBOHCTP.js";import"./chunk-IXD43YQI.js";import{a as N,b as U}from"./chunk-WPC6XC7P.js";import{A as Je,C as $,a as Ke,c as Xe,g as z,m as j,o as Ye,z as Ze}from"./chunk-XJUBZLY2.js";import{b as je}from"./chunk-XIQ3L6H6.js";import{A as Ee,E as Pe,K as Fe,M as Ge,N as Ne,O as W,P as Ue,Q as ze,S as G,h as we,i as Ie,t as ne,u as Oe}from"./chunk-B2QA6UZX.js";import{$b as _e,Bb as x,Cc as xe,Db as g,Fb as u,Gb as pe,Hb as he,Ib as be,Jb as fe,Jc as ke,Ka as d,Kb as Z,Lb as J,Pb as F,Rb as ee,Rc as Te,Tb as s,Ub as O,Vb as w,Wa as I,Xa as de,Xb as f,Y as oe,Ya as ce,Yb as _,Z as re,Zb as v,_ as le,aa as K,ab as X,ac as ve,bc as ye,ca as c,ga as p,ha as h,hc as Me,jb as V,kc as Se,lb as M,mb as S,mc as Ce,nb as ue,oa as R,pb as A,qb as L,rb as b,sb as o,sc as te,ta as k,tb as r,tc as C,ub as Y,ya as se,yb as me,zb as ge}from"./chunk-3JGMGRXW.js";var E=class l{http=c(Te);projectState=c(je);getBaseUrl(){return`/api/projects/${this.projectState.getSelectedProjectIdOrThrow()}/schedulers`}listSchedulers(){return this.http.get(this.getBaseUrl())}getScheduler(a){return this.http.get(`${this.getBaseUrl()}/${a}`)}createScheduler(a){return this.http.post(this.getBaseUrl(),a)}updateScheduler(a,e){return this.http.put(`${this.getBaseUrl()}/${a}`,e)}deleteScheduler(a){return this.http.delete(`${this.getBaseUrl()}/${a}`)}enableScheduler(a){return this.http.post(`${this.getBaseUrl()}/${a}/enable`,{})}disableScheduler(a){return this.http.post(`${this.getBaseUrl()}/${a}/disable`,{})}runSchedulerNow(a){return this.http.post(`${this.getBaseUrl()}/${a}/run-now`,{})}static \u0275fac=function(e){return new(e||l)};static \u0275prov=re({token:l,factory:l.\u0275fac,providedIn:"root"})};var Pt=["button"],Ft=["*"];function Bt(l,a){if(l&1&&(o(0,"div",2),Y(1,"mat-pseudo-checkbox",6),r()),l&2){let e=u();d(),b("disabled",e.disabled)}}var yt=new K("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:()=>({hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1})}),Mt=new K("MatButtonToggleGroup"),Dt={provide:Ke,useExisting:oe(()=>ie),multi:!0},q=class{source;value;constructor(a,e){this.source=a,this.value=e}},ie=(()=>{class l{_changeDetector=c(te);_dir=c(Ee,{optional:!0});_multiple=!1;_disabled=!1;_disabledInteractive=!1;_selectionModel;_rawValue;_controlValueAccessorChangeFn=()=>{};_onTouched=()=>{};_buttonToggles;appearance;get name(){return this._name}set name(e){this._name=e,this._markButtonsForCheck()}_name=c(ne).getId("mat-button-toggle-group-");vertical=!1;get value(){let e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e.map(t=>t.value):e[0]?e[0].value:void 0}set value(e){this._setSelectionByValue(e),this.valueChange.emit(this.value)}valueChange=new R;get selected(){let e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e:e[0]||null}get multiple(){return this._multiple}set multiple(e){this._multiple=e,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._markButtonsForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e,this._markButtonsForCheck()}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}change=new R;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._markButtonsForCheck()}_hideSingleSelectionIndicator;get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(e){this._hideMultipleSelectionIndicator=e,this._markButtonsForCheck()}_hideMultipleSelectionIndicator;constructor(){let e=c(yt,{optional:!0});this.appearance=e&&e.appearance?e.appearance:"standard",this._hideSingleSelectionIndicator=e?.hideSingleSelectionIndicator??!1,this._hideMultipleSelectionIndicator=e?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new it(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(e=>e.checked)),this.multiple||this._initializeTabIndex()}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_keydown(e){if(this.multiple||this.disabled||Oe(e))return;let n=e.target.id,i=this._buttonToggles.toArray().findIndex(T=>T.buttonId===n),m=null;switch(e.keyCode){case 32:case 13:m=this._buttonToggles.get(i)||null;break;case 38:m=this._getNextButton(i,-1);break;case 37:m=this._getNextButton(i,this.dir==="ltr"?-1:1);break;case 40:m=this._getNextButton(i,1);break;case 39:m=this._getNextButton(i,this.dir==="ltr"?1:-1);break;default:return}m&&(e.preventDefault(),m._onButtonClick(),m.focus())}_emitChangeEvent(e){let t=new q(e,this.value);this._rawValue=t.value,this._controlValueAccessorChangeFn(t.value),this.change.emit(t)}_syncButtonToggle(e,t,n=!1,i=!1){!this.multiple&&this.selected&&!e.checked&&(this.selected.checked=!1),this._selectionModel?t?this._selectionModel.select(e):this._selectionModel.deselect(e):i=!0,i?Promise.resolve().then(()=>this._updateModelValue(e,n)):this._updateModelValue(e,n)}_isSelected(e){return this._selectionModel&&this._selectionModel.isSelected(e)}_isPrechecked(e){return typeof this._rawValue>"u"?!1:this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(t=>e.value!=null&&t===e.value):e.value===this._rawValue}_initializeTabIndex(){if(this._buttonToggles.forEach(e=>{e.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let e=0;e<this._buttonToggles.length;e++){let t=this._buttonToggles.get(e);if(!t.disabled){t.tabIndex=0;break}}}_getNextButton(e,t){let n=this._buttonToggles;for(let i=1;i<=n.length;i++){let m=(e+t*i+n.length)%n.length,T=n.get(m);if(T&&!T.disabled)return T}return null}_setSelectionByValue(e){if(this._rawValue=e,!this._buttonToggles)return;let t=this._buttonToggles.toArray();if(this.multiple&&e?(Array.isArray(e),this._clearSelection(),e.forEach(n=>this._selectValue(n,t))):(this._clearSelection(),this._selectValue(e,t)),!this.multiple&&t.every(n=>n.tabIndex===-1)){for(let n of t)if(!n.disabled){n.tabIndex=0;break}}}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(e=>{e.checked=!1,this.multiple||(e.tabIndex=-1)})}_selectValue(e,t){for(let n of t)if(n.value===e){n.checked=!0,this._selectionModel.select(n),this.multiple||(n.tabIndex=0);break}}_updateModelValue(e,t){t&&this._emitChangeEvent(e),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(e=>e._markForCheck())}static \u0275fac=function(t){return new(t||l)};static \u0275dir=ce({type:l,selectors:[["mat-button-toggle-group"]],contentQueries:function(t,n,i){if(t&1&&be(i,Q,5),t&2){let m;Z(m=J())&&(n._buttonToggles=m)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(t,n){t&1&&g("keydown",function(m){return n._keydown(m)}),t&2&&(V("role",n.multiple?"group":"radiogroup")("aria-disabled",n.disabled),ee("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard",n.appearance==="standard"))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",C],value:"value",multiple:[2,"multiple","multiple",C],disabled:[2,"disabled","disabled",C],disabledInteractive:[2,"disabledInteractive","disabledInteractive",C],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",C],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",C]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[_e([Dt,{provide:Mt,useExisting:l}])]})}return l})(),Q=(()=>{class l{_changeDetectorRef=c(te);_elementRef=c(se);_focusMonitor=c(we);_idGenerator=c(ne);_animationDisabled=Fe();_checked=!1;ariaLabel;ariaLabelledby=null;_buttonElement;buttonToggleGroup;get buttonId(){return`${this.id}-button`}id;name;value;get tabIndex(){return this._tabIndex()}set tabIndex(e){this._tabIndex.set(e)}_tabIndex;disableRipple=!1;get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(e){this._appearance=e}_appearance;get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(e){e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(e){this._disabled=e}_disabled=!1;get disabledInteractive(){return this._disabledInteractive||this.buttonToggleGroup!==null&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e}_disabledInteractive;change=new R;constructor(){c(Ie).load(Ne);let e=c(Mt,{optional:!0}),t=c(new Ce("tabindex"),{optional:!0})||"",n=c(yt,{optional:!0});this._tabIndex=k(parseInt(t)||0),this.buttonToggleGroup=e,this._appearance=n&&n.appearance?n.appearance:"standard",this._disabledInteractive=n?.disabledInteractive??!1}ngOnInit(){let e=this.buttonToggleGroup;this.id=this.id||this._idGenerator.getId("mat-button-toggle-"),e&&(e._isPrechecked(this)?this.checked=!0:e._isSelected(this)!==this._checked&&e._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._animationDisabled||this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"),this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){let e=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),e&&e._isSelected(this)&&e._syncButtonToggle(this,!1,!1,!0)}focus(e){this._buttonElement.nativeElement.focus(e)}_onButtonClick(){if(this.disabled)return;let e=this.isSingleSelector()?!0:!this._checked;if(e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){let t=this.buttonToggleGroup._buttonToggles.find(n=>n.tabIndex===0);t&&(t.tabIndex=-1),this.tabIndex=0}this.change.emit(new q(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static \u0275fac=function(t){return new(t||l)};static \u0275cmp=I({type:l,selectors:[["mat-button-toggle"]],viewQuery:function(t,n){if(t&1&&fe(Pt,5),t&2){let i;Z(i=J())&&(n._buttonElement=i.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(t,n){t&1&&g("focus",function(){return n.focus()}),t&2&&(V("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),ee("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-disabled-interactive",n.disabledInteractive)("mat-button-toggle-appearance-standard",n.appearance==="standard"))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",C],appearance:"appearance",checked:[2,"checked","checked",C],disabled:[2,"disabled","disabled",C],disabledInteractive:[2,"disabledInteractive","disabledInteractive",C]},outputs:{change:"change"},exportAs:["matButtonToggle"],ngContentSelectors:Ft,decls:7,vars:13,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-checkbox-wrapper"],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"],["state","checked","aria-hidden","true","appearance","minimal",3,"disabled"]],template:function(t,n){if(t&1&&(pe(),o(0,"button",1,0),g("click",function(){return n._onButtonClick()}),M(2,Bt,2,1,"div",2),o(3,"span",3),he(4),r()(),Y(5,"span",4)(6,"span",5)),t&2){let i=F(1);b("id",n.buttonId)("disabled",n.disabled&&!n.disabledInteractive||null),V("role",n.isSingleSelector()?"radio":"button")("tabindex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("aria-pressed",n.isSingleSelector()?null:n.checked)("aria-checked",n.isSingleSelector()?n.checked:null)("name",n._getButtonName())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),d(2),S(n.buttonToggleGroup&&(!n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideSingleSelectionIndicator||n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideMultipleSelectionIndicator)?2:-1),d(4),b("matRippleTrigger",i)("matRippleDisabled",n.disableRipple||n.disabled)}},dependencies:[Ge,nt],styles:[`.mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);border-radius:var(--mat-button-toggle-legacy-shape);transform:translateZ(0)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border:solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-button-toggle-legacy-text-color);font-family:var(--mat-button-toggle-legacy-label-text-font);font-size:var(--mat-button-toggle-legacy-label-text-size);line-height:var(--mat-button-toggle-legacy-label-text-line-height);font-weight:var(--mat-button-toggle-legacy-label-text-weight);letter-spacing:var(--mat-button-toggle-legacy-label-text-tracking);--mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-button-toggle-legacy-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-button-toggle-legacy-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-button-toggle-legacy-selected-state-text-color);background-color:var(--mat-button-toggle-legacy-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-button-toggle-legacy-disabled-state-text-color);background-color:var(--mat-button-toggle-legacy-disabled-state-background-color);--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: var(--mat-button-toggle-legacy-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-button-toggle-legacy-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-button-toggle-background-color, transparent);font-family:var(--mat-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: var(--mat-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-button-toggle-legacy-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-button-toggle-legacy-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-right-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-left-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-left-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border-top-left-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}
|
|
2
2
|
`],encapsulation:2,changeDetection:0})}return l})(),St=(()=>{class l{static \u0275fac=function(t){return new(t||l)};static \u0275mod=de({type:l});static \u0275inj=le({imports:[Ue,Q,Pe]})}return l})();var Gt=(l,a)=>a.id,Nt=(l,a)=>a.value;function Ut(l,a){if(l&1&&(o(0,"mat-option",5),s(1),r()),l&2){let e=a.$implicit;b("value",e.id),d(),w(" ",e.name," ")}}function zt(l,a){if(l&1){let e=x();o(0,"mat-checkbox",35),g("change",function(){let n=p(e).$implicit,i=u();return h(i.toggleDayOfWeek(n.value))}),s(1),r()}if(l&2){let e=a.$implicit,t=u();b("checked",t.isDaySelected(e.value)),d(),w(" ",e.label," ")}}function jt(l,a){if(l&1){let e=x();o(0,"mat-form-field",2)(1,"mat-label"),s(2,"Number of Occurrences"),r(),o(3,"input",10),v("ngModelChange",function(n){p(e);let i=u();return _(i.endOccurrences,n)||(i.endOccurrences=n),h(n)}),r()()}if(l&2){let e=u();d(3),f("ngModel",e.endOccurrences)}}function $t(l,a){if(l&1){let e=x();o(0,"mat-form-field",2)(1,"mat-label"),s(2,"End Date"),r(),o(3,"input",36),v("ngModelChange",function(n){p(e);let i=u();return _(i.endTimestamp,n)||(i.endTimestamp=n),h(n)}),r()()}if(l&2){let e=u();d(3),f("ngModel",e.endTimestamp)}}function Ht(l,a){if(l&1){let e=x();o(0,"div")(1,"mat-form-field",2)(2,"mat-label"),s(3,"Parameter Value"),r(),o(4,"input",37),v("ngModelChange",function(n){p(e);let i=u();return _(i.simpleParameter,n)||(i.simpleParameter=n),h(n)}),r(),o(5,"mat-hint"),s(6),r()()()}if(l&2){let e=u();d(4),f("ngModel",e.simpleParameter),d(2),w("Simple value for ","{{PARAMETERS}}"," placeholder or appended to first command")}}function qt(l,a){if(l&1){let e=x();o(0,"div",40)(1,"mat-form-field",41)(2,"mat-label"),s(3,"Key"),r(),o(4,"input",42),v("ngModelChange",function(n){let i=p(e).$implicit;return _(i.key,n)||(i.key=n),h(n)}),r()(),o(5,"mat-form-field",43)(6,"mat-label"),s(7,"Value"),r(),o(8,"input",44),v("ngModelChange",function(n){let i=p(e).$implicit;return _(i.value,n)||(i.value=n),h(n)}),r()(),o(9,"button",45),g("click",function(){let n=p(e).$index,i=u(3);return h(i.removeParameter(n))}),o(10,"mat-icon"),s(11,"delete"),r()()()}if(l&2){let e=a.$implicit;d(4),f("ngModel",e.key),d(4),f("ngModel",e.value)}}function Qt(l,a){if(l&1&&(o(0,"div",39),A(1,qt,12,2,"div",40,ue),r()),l&2){let e=u(2);d(),L(e.parameters)}}function Kt(l,a){if(l&1){let e=x();o(0,"div")(1,"div",26)(2,"button",38),g("click",function(){p(e);let n=u();return h(n.addParameter())}),o(3,"mat-icon"),s(4,"add"),r()()(),M(5,Qt,3,0,"div",39),o(6,"p",19),s(7),r()()}if(l&2){let e=u();d(5),S(e.parameters.length>0?5:-1),d(2),w("Key-value pairs for ","{{key}}"," placeholders in prompt commands")}}function Xt(l,a){if(l&1&&(o(0,"div",31)(1,"mat-icon"),s(2,"error"),r(),o(3,"span"),s(4),r()()),l&2){let e=u();d(4),O(e.errorMessage)}}var B=class l{schedulerApi=c(E);promptApi=c(H);dialogRef=c(Be);availablePrompts=[];isLoadingPrompts=!1;name="";promptId="";enabled=!0;startTimestamp="";intervalValue=1;intervalUnit="h";daysOfWeek=[];endConditionType="none";endOccurrences=10;endTimestamp="";parameterMode="simple";simpleParameter="";parameters=[];isSaving=!1;errorMessage="";isEditMode=!1;schedulerId="";data=c(De);daysOfWeekOptions=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:2,label:"Tuesday"},{value:3,label:"Wednesday"},{value:4,label:"Thursday"},{value:5,label:"Friday"},{value:6,label:"Saturday"}];constructor(){this.isEditMode=this.data.mode==="edit"}ngOnInit(){if(this.loadPrompts(),this.isEditMode||(this.startTimestamp=this.formatDateForInput(new Date)),this.isEditMode&&this.data.scheduler){if(this.schedulerId=this.data.scheduler.id,this.name=this.data.scheduler.name,this.promptId=this.data.scheduler.promptId,this.enabled=this.data.scheduler.enabled,this.data.scheduler.schedule.startTimestamp){let e=new Date(this.data.scheduler.schedule.startTimestamp);this.startTimestamp=this.formatDateForInput(e)}let a=this.data.scheduler.schedule.interval.match(/^(\d+)(min|h|d|M)$/);a&&a[1]&&a[2]&&(this.intervalValue=parseInt(a[1],10),this.intervalUnit=a[2]),this.daysOfWeek=this.data.scheduler.schedule.daysOfWeek||[],this.data.scheduler.schedule.endCondition&&(this.endConditionType=this.data.scheduler.schedule.endCondition.type,this.endConditionType==="occurrences"?this.endOccurrences=this.data.scheduler.schedule.endCondition.value:this.endConditionType==="endTimestamp"&&(this.endTimestamp=this.data.scheduler.schedule.endCondition.value)),this.data.scheduler.parameters&&(typeof this.data.scheduler.parameters=="object"&&Object.keys(this.data.scheduler.parameters).length===1&&"PARAMETERS"in this.data.scheduler.parameters?(this.parameterMode="simple",this.simpleParameter=String(this.data.scheduler.parameters.PARAMETERS)):(this.parameterMode="structured",this.parameters=Object.entries(this.data.scheduler.parameters).map(([e,t])=>({key:e,value:String(t)}))))}}loadPrompts(){this.isLoadingPrompts=!0,this.promptApi.listPrompts().subscribe({next:a=>{this.availablePrompts=a,this.isLoadingPrompts=!1},error:a=>{console.error("Error loading prompts:",a),this.errorMessage="Failed to load prompts",this.isLoadingPrompts=!1}})}toggleDayOfWeek(a){let e=this.daysOfWeek.indexOf(a);e>-1?this.daysOfWeek.splice(e,1):this.daysOfWeek.push(a),this.daysOfWeek.sort()}isDaySelected(a){return this.daysOfWeek.includes(a)}addParameter(){this.parameters.push({key:"",value:""})}removeParameter(a){this.parameters.splice(a,1)}trackByIndex(a){return a}formatDateForInput(a){let e=a.getFullYear(),t=String(a.getMonth()+1).padStart(2,"0"),n=String(a.getDate()).padStart(2,"0"),i=String(a.getHours()).padStart(2,"0"),m=String(a.getMinutes()).padStart(2,"0");return`${e}-${t}-${n}T${i}:${m}`}validateForm(){if(!this.name.trim())return this.errorMessage="Name is required",!1;if(!this.promptId)return this.errorMessage="Prompt is required",!1;if(this.intervalValue<1)return this.errorMessage="Interval must be at least 1",!1;switch(this.intervalUnit){case"min":if(this.intervalValue>59)return this.errorMessage="Minutes interval must be between 1 and 59 (use hours for longer)",!1;break;case"h":if(this.intervalValue>24)return this.errorMessage="Hours interval must be between 1 and 24 (use days for longer)",!1;break;case"d":if(this.intervalValue>31)return this.errorMessage="Days interval must be between 1 and 31 (use months for longer)",!1;break;case"M":if(this.intervalValue>12)return this.errorMessage="Months interval must be between 1 and 12",!1;break}return this.endConditionType==="occurrences"&&this.endOccurrences<1?(this.errorMessage="Occurrences must be at least 1",!1):this.endConditionType==="endTimestamp"&&!this.endTimestamp?(this.errorMessage="End date is required",!1):!0}buildSchedule(){let e={startTimestamp:(this.startTimestamp?new Date(this.startTimestamp):new Date).toISOString(),interval:`${this.intervalValue}${this.intervalUnit}`};return this.daysOfWeek.length>0&&(e.daysOfWeek=[...this.daysOfWeek]),this.endConditionType==="occurrences"?e.endCondition={type:"occurrences",value:this.endOccurrences}:this.endConditionType==="endTimestamp"&&(e.endCondition={type:"endTimestamp",value:this.endTimestamp}),e}buildParameters(){if(this.parameterMode==="simple")return this.simpleParameter.trim()?{PARAMETERS:this.simpleParameter.trim()}:void 0;let a=this.parameters.filter(t=>t.key.trim());if(a.length===0)return;let e={};return a.forEach(t=>{e[t.key]=t.value}),e}save(){if(this.errorMessage="",!this.validateForm())return;let a=this.buildSchedule(),e=this.buildParameters();this.isSaving=!0,this.isEditMode&&this.schedulerId?this.schedulerApi.updateScheduler(this.schedulerId,{name:this.name.trim(),enabled:this.enabled,promptId:this.promptId,schedule:a,parameters:e}).subscribe({next:()=>{this.isSaving=!1,this.dialogRef.close(!0)},error:t=>{console.error("Error updating scheduler:",t),this.errorMessage=t?.error?.error||t?.message||"Failed to update scheduler",this.isSaving=!1}}):this.schedulerApi.createScheduler({name:this.name.trim(),promptId:this.promptId,schedule:a,parameters:e,enabled:this.enabled}).subscribe({next:()=>{this.isSaving=!1,this.dialogRef.close(!0)},error:t=>{console.error("Error creating scheduler:",t),this.errorMessage=t?.error?.error||t?.message||"Failed to create scheduler",this.isSaving=!1}})}cancel(){this.dialogRef.close(!1)}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=I({type:l,selectors:[["app-scheduler-form"]],decls:89,vars:17,consts:[["mat-dialog-title",""],[1,"form-container"],["appearance","outline",1,"full-width"],["matInput","","placeholder","My Scheduler","required","",3,"ngModelChange","ngModel"],["required","",3,"ngModelChange","ngModel"],[3,"value"],["matInput","","type","datetime-local",3,"ngModelChange","ngModel"],[1,"interval-section"],[1,"interval-fields"],["appearance","outline",1,"interval-value"],["matInput","","type","number","min","1","required","",3,"ngModelChange","ngModel"],["appearance","outline",1,"interval-unit"],["value","min"],["value","h"],["value","d"],["value","M"],[1,"days-section"],[1,"days-checkboxes"],[3,"checked"],[1,"hint"],[1,"end-condition-section"],[3,"ngModelChange","ngModel"],["value","none"],["value","occurrences"],["value","endTimestamp"],[1,"parameters-section"],[1,"section-header"],[1,"mode-toggle",3,"ngModelChange","ngModel"],["value","simple"],["value","structured"],[1,"enabled-section"],[1,"error-message"],["align","end"],["mat-button","",3,"click","disabled"],["mat-raised-button","","color","primary",3,"click","disabled"],[3,"change","checked"],["matInput","","type","datetime-local","required","",3,"ngModelChange","ngModel"],["matInput","","placeholder","e.g., 1234 or staging",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Add parameter",3,"click"],[1,"parameters-list"],[1,"parameter-item"],["appearance","outline",1,"param-key"],["matInput","","placeholder","parameterName",3,"ngModelChange","ngModel"],["appearance","outline",1,"param-value"],["matInput","","placeholder","value",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Remove parameter",1,"remove-btn",3,"click"]],template:function(e,t){e&1&&(o(0,"h2",0),s(1),r(),o(2,"mat-dialog-content")(3,"div",1)(4,"mat-form-field",2)(5,"mat-label"),s(6,"Name"),r(),o(7,"input",3),v("ngModelChange",function(i){return _(t.name,i)||(t.name=i),i}),r(),o(8,"mat-hint"),s(9,"A descriptive name for this scheduler"),r()(),o(10,"mat-form-field",2)(11,"mat-label"),s(12,"Prompt"),r(),o(13,"mat-select",4),v("ngModelChange",function(i){return _(t.promptId,i)||(t.promptId=i),i}),A(14,Ut,2,2,"mat-option",5,Gt),r(),o(16,"mat-hint"),s(17,"Select the prompt to execute"),r()(),o(18,"mat-form-field",2)(19,"mat-label"),s(20,"Start Date & Time"),r(),o(21,"input",6),v("ngModelChange",function(i){return _(t.startTimestamp,i)||(t.startTimestamp=i),i}),r(),o(22,"mat-hint"),s(23,"When to start the scheduler (leave empty for now)"),r()(),o(24,"div",7)(25,"h3"),s(26,"Schedule Interval"),r(),o(27,"div",8)(28,"mat-form-field",9)(29,"mat-label"),s(30,"Every"),r(),o(31,"input",10),v("ngModelChange",function(i){return _(t.intervalValue,i)||(t.intervalValue=i),i}),r()(),o(32,"mat-form-field",11)(33,"mat-label"),s(34,"Unit"),r(),o(35,"mat-select",4),v("ngModelChange",function(i){return _(t.intervalUnit,i)||(t.intervalUnit=i),i}),o(36,"mat-option",12),s(37,"Minutes (1-59)"),r(),o(38,"mat-option",13),s(39,"Hours (1-24)"),r(),o(40,"mat-option",14),s(41,"Days (1-31)"),r(),o(42,"mat-option",15),s(43,"Months (1-12)"),r()()()()(),o(44,"div",16)(45,"h3"),s(46,"Days of Week (Optional)"),r(),o(47,"div",17),A(48,zt,2,2,"mat-checkbox",18,Nt),r(),o(50,"p",19),s(51,"Leave empty to run every day"),r()(),o(52,"div",20)(53,"h3"),s(54,"End Condition (Optional)"),r(),o(55,"mat-form-field",2)(56,"mat-label"),s(57,"End Type"),r(),o(58,"mat-select",21),v("ngModelChange",function(i){return _(t.endConditionType,i)||(t.endConditionType=i),i}),o(59,"mat-option",22),s(60,"Never (run indefinitely)"),r(),o(61,"mat-option",23),s(62,"After X occurrences"),r(),o(63,"mat-option",24),s(64,"Until specific date"),r()()(),M(65,jt,4,1,"mat-form-field",2),M(66,$t,4,1,"mat-form-field",2),r(),o(67,"div",25)(68,"div",26)(69,"h3"),s(70,"Parameters (Optional)"),r(),o(71,"mat-button-toggle-group",27),v("ngModelChange",function(i){return _(t.parameterMode,i)||(t.parameterMode=i),i}),o(72,"mat-button-toggle",28),s(73,"Simple"),r(),o(74,"mat-button-toggle",29),s(75,"Structured"),r()()(),M(76,Ht,7,2,"div"),M(77,Kt,8,2,"div"),r(),o(78,"div",30)(79,"mat-checkbox",21),v("ngModelChange",function(i){return _(t.enabled,i)||(t.enabled=i),i}),s(80,"Enabled"),r(),o(81,"p",19),s(82,"Scheduler will only run if enabled"),r()(),M(83,Xt,5,1,"div",31),r()(),o(84,"mat-dialog-actions",32)(85,"button",33),g("click",function(){return t.cancel()}),s(86,"Cancel"),r(),o(87,"button",34),g("click",function(){return t.save()}),s(88),r()()),e&2&&(d(),O(t.isEditMode?"Edit Scheduler":"Create Scheduler"),d(6),f("ngModel",t.name),d(6),f("ngModel",t.promptId),d(),L(t.availablePrompts),d(7),f("ngModel",t.startTimestamp),d(10),f("ngModel",t.intervalValue),d(4),f("ngModel",t.intervalUnit),d(13),L(t.daysOfWeekOptions),d(10),f("ngModel",t.endConditionType),d(7),S(t.endConditionType==="occurrences"?65:-1),d(),S(t.endConditionType==="endTimestamp"?66:-1),d(5),f("ngModel",t.parameterMode),d(5),S(t.parameterMode==="simple"?76:-1),d(),S(t.parameterMode==="structured"?77:-1),d(2),f("ngModel",t.enabled),d(4),S(t.errorMessage?83:-1),d(2),b("disabled",t.isSaving),d(2),b("disabled",t.isSaving),d(),w(" ",t.isSaving?"Saving...":"Save"," "))},dependencies:[ke,$,Xe,Ye,z,Je,Ze,j,We,Ve,Le,Ae,G,ze,W,tt,et,qe,$e,He,Qe,U,N,rt,ot,at,st,lt,St,ie,Q],styles:[".form-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:0;min-width:600px}@media(max-width:768px){.form-container[_ngcontent-%COMP%]{min-width:auto}}.full-width[_ngcontent-%COMP%]{width:100%}.interval-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:1rem;font-weight:600}.interval-section[_ngcontent-%COMP%] .interval-fields[_ngcontent-%COMP%]{display:flex;gap:1rem}.interval-section[_ngcontent-%COMP%] .interval-fields[_ngcontent-%COMP%] .interval-value[_ngcontent-%COMP%], .interval-section[_ngcontent-%COMP%] .interval-fields[_ngcontent-%COMP%] .interval-unit[_ngcontent-%COMP%]{flex:1}.days-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:1rem;font-weight:600}.days-section[_ngcontent-%COMP%] .days-checkboxes[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.5rem}.days-section[_ngcontent-%COMP%] .days-checkboxes[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{min-width:120px}.days-section[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary)}.end-condition-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:1rem;font-weight:600}.parameters-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.parameters-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:600}.parameters-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] .mode-toggle[_ngcontent-%COMP%]{height:32px}.parameters-section[_ngcontent-%COMP%] .parameters-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.parameters-section[_ngcontent-%COMP%] .parameter-item[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem}.parameters-section[_ngcontent-%COMP%] .parameter-item[_ngcontent-%COMP%] .param-key[_ngcontent-%COMP%]{flex:1}.parameters-section[_ngcontent-%COMP%] .parameter-item[_ngcontent-%COMP%] .param-value[_ngcontent-%COMP%]{flex:2}.parameters-section[_ngcontent-%COMP%] .parameter-item[_ngcontent-%COMP%] .remove-btn[_ngcontent-%COMP%]{margin-top:8px}.parameters-section[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{margin:.5rem 0 0;font-size:.85rem;color:var(--color-text-secondary)}.enabled-section[_ngcontent-%COMP%]{padding:1rem;background:var(--color-surface);border-radius:8px;border:1px solid var(--color-border)}.enabled-section[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{display:block;margin-bottom:.5rem}.enabled-section[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary)}.error-message[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#f443361a;border:1px solid var(--color-error);border-radius:4px;color:var(--color-error)}.error-message[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}.error-message[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex:1}"]})};var Yt=()=>[],Zt=l=>({id:l});function Jt(l,a){if(l&1&&(o(0,"div",6),s(1),r()),l&2){let e=u();d(),O(e.errorMessage())}}function en(l,a){if(l&1){let e=x();o(0,"ds-entity-card",8),g("selected",function(n){p(e);let i=u();return h(i.onEdit(n))}),me(1,9),o(2,"button",10),g("click",function(n){return n.stopPropagation()}),o(3,"mat-icon"),s(4,"more_vert"),r()(),ge(),r()}if(l&2){let e=a.$implicit;u();let t=F(11);b("id",e.id)("name",e.name)("description",e.description)("badges",e.badges??ve(6,Yt)),d(2),b("matMenuTriggerFor",t)("matMenuTriggerData",ye(7,Zt,e.id))}}function tn(l,a){if(l&1){let e=x();o(0,"button",11),g("click",function(){let n=p(e).id,i=u();return h(i.onEdit(n))}),o(1,"mat-icon"),s(2,"edit"),r(),s(3," Edit "),r(),o(4,"button",11),g("click",function(){let n=p(e).id,i=u();return h(i.onToggleEnabled(n))}),o(5,"mat-icon"),s(6),r(),s(7),r(),o(8,"button",11),g("click",function(){let n=p(e).id,i=u();return h(i.onRunNow(n))}),o(9,"mat-icon"),s(10,"play_arrow"),r(),s(11," Run now "),r(),o(12,"button",12),g("click",function(){let n=p(e).id,i=u();return h(i.onDelete(n))}),o(13,"mat-icon"),s(14,"delete"),r(),s(15," Delete "),r()}if(l&2){let e=a.id,t=u();d(6),O(t.isEnabled(e)?"pause_circle":"play_circle"),d(),w(" ",t.isEnabled(e)?"Disable":"Enable"," ")}}var Ct=class l{schedulerApi=c(E);promptApi=c(H);configApi=c(ft);location=c(xe);dialog=c(Re);schedulers=k([]);prompts=k([]);isLoading=k(!1);errorMessage=k(null);showOnlyMine=k(!0);currentUsername=k("");schedulerItems=Se(()=>{let a=this.schedulers(),e=this.currentUsername(),n=this.showOnlyMine()&&e?a.filter(y=>this.isMyScheduler(y)):a,m=[...new Set(n.map(y=>y.createdBy))].sort((y,P)=>y===e&&P!==e?-1:P===e&&y!==e?1:y.localeCompare(P)),T=[];for(let y of m){let P=y===e?`${y} (you)`:y;for(let D of n.filter(xt=>xt.createdBy===y))T.push({id:D.id,name:D.name,description:this.buildDescription(D),badges:this.buildBadges(D),groupKey:y,groupLabel:P})}return T});ngOnInit(){this.configApi.getUserConfig().subscribe({next:a=>this.currentUsername.set(a.username??""),error:()=>{}}),this.loadPrompts(),this.loadSchedulers()}loadPrompts(){this.promptApi.listPrompts().subscribe({next:a=>this.prompts.set(a),error:()=>{}})}loadSchedulers(){this.isLoading.set(!0),this.schedulerApi.listSchedulers().subscribe({next:a=>{this.schedulers.set(a),this.isLoading.set(!1)},error:a=>{this.errorMessage.set(a?.error?.error??"Failed to load schedulers"),this.isLoading.set(!1)}})}onBack(){this.location.back()}onCreate(){this.dialog.open(B,{width:"700px",maxHeight:"90vh",data:{mode:"create"}}).afterClosed().subscribe(e=>{e&&this.loadSchedulers()})}onEdit(a){this.schedulerApi.getScheduler(a).subscribe({next:e=>{this.dialog.open(B,{width:"700px",maxHeight:"90vh",data:{mode:"edit",scheduler:e}}).afterClosed().subscribe(n=>{n&&this.loadSchedulers()})},error:e=>this.errorMessage.set(e?.error?.error??"Failed to load scheduler")})}onToggleEnabled(a){let e=this.schedulers().find(n=>n.id===a);if(!e)return;(e.enabled?this.schedulerApi.disableScheduler(a):this.schedulerApi.enableScheduler(a)).subscribe({next:()=>this.loadSchedulers(),error:n=>this.errorMessage.set(n?.error?.error??"Failed to toggle scheduler")})}onRunNow(a){this.schedulerApi.runSchedulerNow(a).subscribe({next:e=>{alert(`Scheduler executed successfully! Thread ID: ${e.threadId}`),this.loadSchedulers()},error:e=>this.errorMessage.set(e?.error?.error??"Failed to run scheduler")})}onDelete(a){confirm("Are you sure you want to delete this scheduler?")&&this.schedulerApi.deleteScheduler(a).subscribe({next:()=>this.loadSchedulers(),error:e=>this.errorMessage.set(e?.error?.error??"Failed to delete scheduler")})}isEnabled(a){return this.schedulers().find(e=>e.id===a)?.enabled??!1}buildDescription(a){let e=this.getPromptName(a.promptId),t=this.formatInterval(a.schedule.interval),n=a.nextRun?new Date(a.nextRun).toLocaleString():"Expired";return`${e} \xB7 ${t} \xB7 Next: ${n}`}buildBadges(a){return[a.enabled?{label:"enabled",variant:"success"}:{label:"disabled",variant:"warning"}]}getPromptName(a){let e=this.prompts().find(t=>t.id===a);return e?e.name:a}formatInterval(a){let e=/^(\d+)(min|h|d|M)$/.exec(a);if(!e)return a;let[,t,n]=e;if(!t||!n)return a;let m={min:"minute",h:"hour",d:"day",M:"month"}[n]??n;return`Every ${t} ${m}${parseInt(t,10)>1?"s":""}`}isMyScheduler(a){let e=t=>t.replace(/[.\s]+/g,"_").toLowerCase();return e(a.createdBy)===e(this.currentUsername())}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=I({type:l,selectors:[["app-scheduler-list"]],decls:13,vars:5,consts:[["schedulerCard",""],["cardMenu","matMenu"],[1,"scheduler-list-page"],["title","Schedulers","cardMinWidth","384px","contentMaxWidth","1400px","searchPlaceholder","Filter schedulers\u2026","emptyMessage","No schedulers found.",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","mat-icon-button","","title","Back",3,"click"],["toolbar-extras","","color","primary",1,"scheduler-list__mine-toggle",3,"ngModelChange","ngModel"],[1,"scheduler-list__error"],["matMenuContent",""],[3,"selected","id","name","description","badges"],["dsCardActions",""],["mat-icon-button","",3,"click","matMenuTriggerFor","matMenuTriggerData"],["mat-menu-item","",3,"click"],["mat-menu-item","",1,"scheduler-list__delete-item",3,"click"]],template:function(e,t){if(e&1&&(o(0,"div",2)(1,"ds-entity-list",3),g("createRequested",function(){return t.onCreate()}),o(2,"button",4),g("click",function(){return t.onBack()}),o(3,"mat-icon"),s(4,"chevron_left"),r()(),o(5,"mat-slide-toggle",5),g("ngModelChange",function(i){return t.showOnlyMine.set(i)}),s(6," Mine "),r()(),M(7,Jt,2,1,"div",6),r(),X(8,en,5,9,"ng-template",null,0,Me),o(10,"mat-menu",null,1),X(12,tn,16,2,"ng-template",7),r()),e&2){let n=F(9);d(),b("items",t.schedulerItems())("showCreate",!0)("itemTemplate",n),d(4),b("ngModel",t.showOnlyMine()),d(2),S(t.errorMessage()?7:-1)}},dependencies:[ut,ct,dt,G,W,U,N,vt,_t,bt,pt,mt,gt,ht,$,z,j],styles:["[_nghost-%COMP%]{display:block;width:100%;min-height:100vh;background:var(--color-bg);overflow-y:auto}.scheduler-list__mine-toggle[_ngcontent-%COMP%]{flex-shrink:0;font-size:.875rem}.scheduler-list__delete-item[_ngcontent-%COMP%]{color:var(--color-error, #ff3b30)}.scheduler-list__delete-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:inherit}.scheduler-list__error[_ngcontent-%COMP%]{margin:1rem auto;max-width:900px;padding:.75rem 1rem;background:#dc262614;border:1px solid rgba(220,38,38,.25);border-radius:8px;color:var(--color-error, #ff3b30);font-size:.875rem}"]})};export{Ct as SchedulerListComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as Y}from"./chunk-6LO3ANKL.js";import{d as K}from"./chunk-GAZJZBKP.js";import{a as A,b as H,c as G,d as J}from"./chunk-QWMDAFBN.js";import{a as U,b as g,g as X}from"./chunk-
|
|
1
|
+
import{b as Y}from"./chunk-6LO3ANKL.js";import{d as K}from"./chunk-GAZJZBKP.js";import{a as A,b as H,c as G,d as J}from"./chunk-QWMDAFBN.js";import{a as U,b as g,g as X}from"./chunk-LR7LOR4R.js";import{b}from"./chunk-AJOXSD6I.js";import{A as D,B as O,Bb as h,Db as l,Fb as m,Jb as N,Ka as c,Kb as k,Lb as L,Pb as V,Rb as F,S as R,Tb as W,Ub as $,Wa as d,Xb as B,Yb as Q,Zb as j,ab as q,ca as p,ga as u,ha as C,hc as z,i as I,lb as P,m as x,mb as E,oa as f,rb as _,sb as o,t as y,ta as M,tb as s,ub as S,va as T}from"./chunk-3JGMGRXW.js";var v=class i{case;static toListItem(e){return{id:e.id??"",name:e.id??"\u2014",description:void 0}}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=d({type:i,selectors:[["agentos-case-item"]],inputs:{case:"case"},decls:0,vars:0,template:function(t,n){},encapsulation:2,changeDetection:0})};var ne=["caseItemTpl"];function ae(i,e){if(i&1){let t=h();o(0,"button",3),l("click",function(){let a=u(t).$implicit,r=m();return C(r.onItemSelected(a.id))}),o(1,"span",4),W(2),s()()}if(i&2){let t=e.$implicit,n=m();F("case-drawer-item--active",t.id===n.activeCaseId),c(2),$(t.name)}}var w=class i{cases=[];activeCaseId=null;caseSelected=new f;createRequested=new f;closeRequested=new f;caseItemTpl;caseItems=[];ngOnChanges(e){e.cases&&(this.caseItems=this.cases.map(v.toListItem))}onItemSelected(e){this.caseSelected.emit(e)}onCreateRequested(){this.createRequested.emit()}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=d({type:i,selectors:[["agentos-case-drawer"]],viewQuery:function(t,n){if(t&1&&N(ne,7),t&2){let a;k(a=L())&&(n.caseItemTpl=a.first)}},inputs:{cases:"cases",activeCaseId:"activeCaseId"},outputs:{caseSelected:"caseSelected",createRequested:"createRequested",closeRequested:"closeRequested"},features:[T],decls:4,vars:3,consts:[["caseItemTpl",""],["title","Cases","emptyMessage","No cases yet. Start one below.","searchPlaceholder","Filter cases\u2026","cardMinWidth","220px","contentMaxWidth","100%",3,"itemSelected","createRequested","items","itemTemplate","showCreate"],["toolbar-start","","icon","chevron_left","variant","default","title","Close drawer",3,"action"],["type","button",1,"case-drawer-item",3,"click"],[1,"case-drawer-item__name"]],template:function(t,n){if(t&1&&(o(0,"ds-entity-list",1),l("itemSelected",function(r){return n.onItemSelected(r)})("createRequested",function(){return n.onCreateRequested()}),o(1,"ds-icon-button",2),l("action",function(){return n.closeRequested.emit()}),s()(),q(2,ae,3,3,"ng-template",null,0,z)),t&2){let a=V(3);_("items",n.caseItems)("itemTemplate",a)("showCreate",!0)}},dependencies:[X,g],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.case-drawer-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .75rem;border-radius:8px;border:none;background:transparent;cursor:pointer;text-align:left;font-family:inherit;font-size:.875rem;color:var(--color-text, #1d1d1f);transition:background .12s ease;gap:.5rem}.case-drawer-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.case-drawer-item--active[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);color:var(--color-text-inverse, #fff)}.case-drawer-item--active[_ngcontent-%COMP%] .case-drawer-item__status[_ngcontent-%COMP%]{color:#ffffffb3}.case-drawer-item--active[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover, #0051d5)}.case-drawer-item__name[_ngcontent-%COMP%]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-family:var(--font-mono, ui-monospace, "SF Mono", monospace);font-size:.8rem}'],changeDetection:0})};function ie(i,e){if(i&1){let t=h();o(0,"div",7)(1,"ds-icon-button",8),l("action",function(){u(t);let a=m();return C(a.toggleDrawer())}),s()()}}var te=class i{router=p(J);route=p(H);caseController=p(K);namespaceId=this.route.snapshot.params.namespaceId;drawerOpen=M(!0);refresh$=new I(void 0);cases$=this.refresh$.pipe(R(()=>this.caseController.listByParentCase(this.namespaceId)));cases=b(this.cases$,{initialValue:[]});activeCaseId=b(D(x(this.router.url),this.router.events.pipe(O(e=>e instanceof A),y(e=>e.urlAfterRedirects))).pipe(y(e=>this.extractCaseId(e))),{initialValue:null});extractCaseId(e){return e.match(/\/cases\/([^/?#]+)/)?.[1]??null}toggleDrawer(){this.drawerOpen.update(e=>!e)}onCaseSelected(e){this.router.navigate([e],{relativeTo:this.route})}onCreateRequested(){this.router.navigate(["."],{relativeTo:this.route})}refreshCases(){this.refresh$.next()}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=d({type:i,selectors:[["agentos-case-shell"]],decls:9,vars:4,consts:[[1,"case-shell"],[1,"case-shell__header"],[1,"case-shell__body"],["drawerWidth","400px",3,"openChange","open"],["dsDrawerSide","",1,"case-shell__sidenav"],[3,"caseSelected","createRequested","closeRequested","cases","activeCaseId"],["dsDrawerContent","",1,"case-shell__content"],[1,"case-shell__toggle"],["icon","menu","variant","default","title","Open drawer",3,"action"]],template:function(t,n){t&1&&(o(0,"div",0),S(1,"agentos-header",1),o(2,"div",2)(3,"ds-drawer",3),j("openChange",function(r){return Q(n.drawerOpen,r)||(n.drawerOpen=r),r}),o(4,"div",4)(5,"agentos-case-drawer",5),l("caseSelected",function(r){return n.onCaseSelected(r)})("createRequested",function(){return n.onCreateRequested()})("closeRequested",function(){return n.toggleDrawer()}),s()(),o(6,"div",6),P(7,ie,2,0,"div",7),S(8,"router-outlet"),s()()()()),t&2&&(c(3),B("open",n.drawerOpen),c(2),_("cases",n.cases())("activeCaseId",n.activeCaseId()),c(2),E(n.drawerOpen()?-1:7))},dependencies:[G,U,w,Y,g],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100dvh}.case-shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.case-shell__header[_ngcontent-%COMP%]{flex-shrink:0}.case-shell__body[_ngcontent-%COMP%]{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.case-shell__sidenav[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}.case-shell__content[_ngcontent-%COMP%]{position:relative;flex:1;display:flex;flex-direction:column;height:100%;overflow:hidden}.case-shell__toggle[_ngcontent-%COMP%]{position:absolute;top:.375rem;left:.5rem;z-index:10}"]})};export{v as a,w as b,te as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as $}from"./chunk-GAZJZBKP.js";import{b as q,d as y}from"./chunk-QWMDAFBN.js";import{b as h,g as F,m as z}from"./chunk-
|
|
1
|
+
import{c as $}from"./chunk-GAZJZBKP.js";import{b as q,d as y}from"./chunk-QWMDAFBN.js";import{b as h,g as F,m as z}from"./chunk-LR7LOR4R.js";import"./chunk-ZAM3WGZM.js";import"./chunk-53STPEYQ.js";import"./chunk-AK6F2DC7.js";import{a as I}from"./chunk-AJOXSD6I.js";import"./chunk-IXD43YQI.js";import"./chunk-WPC6XC7P.js";import"./chunk-XJUBZLY2.js";import"./chunk-B2QA6UZX.js";import{Bb as u,Db as d,Fb as s,Gc as V,Ka as l,Pb as R,S as M,Tb as g,Ub as b,Wa as C,ab as E,ac as S,ca as c,dc as N,ec as O,ga as p,ha as m,hc as B,i as w,lb as _,ma as D,mb as v,oa as k,rb as f,sb as r,t as A,ta as T,tb as a}from"./chunk-3JGMGRXW.js";function U(i,t){if(i&1&&(r(0,"span",4),g(1),a()),i&2){let e=s();l(),b(e.config.baseUrl)}}function W(i,t){if(i&1){let e=u();r(0,"span",7),g(1,"Delete?"),a(),r(2,"ds-icon-button",8),d("action",function(){p(e);let o=s();return m(o.onDeleteConfirmed())}),a(),r(3,"ds-icon-button",9),d("action",function(){p(e);let o=s();return m(o.onDeleteCancelled())}),a()}}function G(i,t){if(i&1){let e=u();r(0,"ds-kebab-menu",10),d("itemSelected",function(o){p(e);let P=s();return m(P.onMenuAction(o))}),a()}if(i&2){let e=s();f("items",e.menuItems)}}var x=class i{router=c(y);config;namespaceId;deleteRequested=new k;pendingDelete=T(!1);menuItems=[{key:"edit",label:"Edit provider",icon:"edit"},{key:"delete",label:"Delete provider",icon:"delete",variant:"danger"}];onMenuAction(t){switch(t){case"edit":this.router.navigate(["/agentos",this.namespaceId,"ai-providers",this.config.id,"edit"]);break;case"delete":this.pendingDelete.set(!0);break}}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.config)}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=C({type:i,selectors:[["agentos-ai-provider-item"]],inputs:{config:"config",namespaceId:"namespaceId"},outputs:{deleteRequested:"deleteRequested"},decls:10,vars:4,consts:[["role","listitem",1,"ai-provider-item"],[1,"ai-provider-item__body"],[1,"ai-provider-item__name"],[1,"ai-provider-item__type"],[1,"ai-provider-item__url"],[1,"ai-provider-item__actions"],[3,"items"],[1,"ai-provider-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],[3,"itemSelected","items"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"div",1)(2,"span",2),g(3),a(),r(4,"span",3),g(5),a(),_(6,U,2,1,"span",4),a(),r(7,"div",5),_(8,W,4,0)(9,G,1,1,"ds-kebab-menu",6),a()()),e&2&&(l(3),b(n.config.name),l(2),b(n.config.apiType),l(),v(n.config.baseUrl?6:-1),l(2),v(n.pendingDelete()?8:9))},dependencies:[z,h],styles:[".ai-provider-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--glass-bg, rgba(255, 255, 255, .72));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px));transition:background .15s ease,border-color .15s ease}.ai-provider-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.ai-provider-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.ai-provider-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-provider-item__type[_ngcontent-%COMP%]{font-size:.78rem;color:var(--color-text-secondary, #6e6e73);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-provider-item__url[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-provider-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.ai-provider-item[_ngcontent-%COMP%]:hover .ai-provider-item__actions[_ngcontent-%COMP%], .ai-provider-item[_ngcontent-%COMP%]:focus-within .ai-provider-item__actions[_ngcontent-%COMP%]{opacity:1}.ai-provider-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error, #ff3b30);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};var H=()=>[];function J(i,t){if(i&1){let e=u();r(0,"agentos-ai-provider-item",4),d("deleteRequested",function(o){p(e);let P=s(2);return m(P.deleteConfig(o))}),a()}if(i&2){let e=s(2);f("config",t)("namespaceId",e.namespaceId)}}function Q(i,t){if(i&1&&_(0,J,1,2,"agentos-ai-provider-item",3),i&2){let e,n=t.$implicit,o=s();v((e=o.resolveConfig(n.id))?0:-1,e)}}var j=class i{route=c(q);router=c(y);destroyRef=c(D);aiProviderController=c($);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new w(void 0);configs$=this.refresh$.pipe(M(()=>this.aiProviderController.listByParentAiProvider(this.namespaceId)));configItems$=this.configs$.pipe(A(t=>t.map(e=>({id:e.id??"",name:e.name,description:e.apiType}))));configsById=new Map;constructor(){this.configs$.pipe(I(this.destroyRef)).subscribe(t=>{this.configsById=new Map(t.map(e=>[e.id??"",e]))})}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"ai-providers","new"])}deleteConfig(t){this.aiProviderController.deleteAiProvider(t.id??"").pipe(I(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveConfig(t){return this.configsById.get(t)??null}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=C({type:i,selectors:[["agentos-namespace-ai-providers"]],decls:5,vars:6,consts:[["aiProviderItemTpl",""],["title","AI Providers","emptyMessage","No AI providers configured yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"config","namespaceId"],[3,"deleteRequested","config","namespaceId"]],template:function(e,n){if(e&1&&(r(0,"ds-entity-list",1),N(1,"async"),d("createRequested",function(){return n.openCreateForm()}),r(2,"ds-icon-button",2),d("action",function(){return n.goBack()}),a()(),E(3,Q,1,1,"ng-template",null,0,B)),e&2){let o=R(4);f("items",O(1,3,n.configItems$)??S(5,H))("showCreate",!0)("itemTemplate",o)}},dependencies:[F,x,h,V],encapsulation:2,changeDetection:0})};export{j as NamespaceAiProvidersComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as D}from"./chunk-GAZJZBKP.js";import{d as V}from"./chunk-QWMDAFBN.js";import{g as O,m as A}from"./chunk-
|
|
1
|
+
import{g as D}from"./chunk-GAZJZBKP.js";import{d as V}from"./chunk-QWMDAFBN.js";import{g as O,m as A}from"./chunk-LR7LOR4R.js";import{a as N}from"./chunk-AJOXSD6I.js";import{Bb as I,Db as l,Fb as o,Gc as E,Ka as _,Pb as k,S as w,Tb as b,Ub as h,Wa as f,ab as M,ac as T,ca as g,dc as P,ec as S,ga as c,ha as p,hc as L,i as x,lb as v,ma as q,mb as C,oa as d,rb as u,sb as r,t as R,tb as m}from"./chunk-3JGMGRXW.js";function K(s,e){if(s&1&&(r(0,"span",3),b(1),m()),s&2){let t=o();_(),h(t.namespace.description)}}var y=class s{namespace;selected=new d;editRequested=new d;integrationsRequested=new d;aiProvidersRequested=new d;aiModelsRequested=new d;deleteRequested=new d;menuItems=[{key:"edit",label:"Edit namespace",icon:"edit"},{key:"integrations",label:"Manage integrations",icon:"settings"},{key:"ai-providers",label:"AI Providers",icon:"smart_toy"},{key:"ai-models",label:"AI models",icon:"model_training"},{key:"delete",label:"Delete namespace",icon:"delete",variant:"danger"}];onSelect(){this.selected.emit(this.namespace)}onMenuAction(e){switch(e){case"edit":this.editRequested.emit(this.namespace);break;case"integrations":this.integrationsRequested.emit(this.namespace);break;case"ai-providers":this.aiProvidersRequested.emit(this.namespace);break;case"ai-models":this.aiModelsRequested.emit(this.namespace);break;case"delete":confirm(`Delete namespace "${this.namespace.name}"?`)&&this.deleteRequested.emit(this.namespace);break}}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=f({type:s,selectors:[["agentos-namespace-item"]],inputs:{namespace:"namespace"},outputs:{selected:"selected",editRequested:"editRequested",integrationsRequested:"integrationsRequested",aiProvidersRequested:"aiProvidersRequested",aiModelsRequested:"aiModelsRequested",deleteRequested:"deleteRequested"},decls:7,vars:3,consts:[["role","listitem",1,"namespace-item"],["type","button",1,"namespace-item__body",3,"click"],[1,"namespace-item__name"],[1,"namespace-item__desc"],[1,"namespace-item__actions"],[3,"itemSelected","items"]],template:function(t,a){t&1&&(r(0,"div",0)(1,"button",1),l("click",function(){return a.onSelect()}),r(2,"span",2),b(3),m(),v(4,K,2,1,"span",3),m(),r(5,"div",4)(6,"ds-kebab-menu",5),l("itemSelected",function(i){return a.onMenuAction(i)}),m()()()),t&2&&(_(3),h(a.namespace.name),_(),C(a.namespace.description?4:-1),_(2),u("items",a.menuItems))},dependencies:[A],styles:[".namespace-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.25rem;border-radius:10px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--glass-bg, rgba(255, 255, 255, .72));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px));transition:background .15s ease,border-color .15s ease}.namespace-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.namespace-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;background:none;border:none;padding:0;cursor:pointer;text-align:left;min-width:0}.namespace-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.namespace-item__desc[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.namespace-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.namespace-item[_ngcontent-%COMP%]:hover .namespace-item__actions[_ngcontent-%COMP%], .namespace-item[_ngcontent-%COMP%]:focus-within .namespace-item__actions[_ngcontent-%COMP%]{opacity:1}"],changeDetection:0})};var j=()=>[];function z(s,e){if(s&1){let t=I();r(0,"agentos-namespace-item",3),l("selected",function(n){c(t);let i=o(2);return p(i.navigateToCases(n.id??""))})("editRequested",function(n){c(t);let i=o(2);return p(i.navigateToEdit(n))})("deleteRequested",function(n){c(t);let i=o(2);return p(i.deleteNamespace(n))})("integrationsRequested",function(n){c(t);let i=o(2);return p(i.openIntegrations(n))})("aiProvidersRequested",function(n){c(t);let i=o(2);return p(i.openAiProviders(n))})("aiModelsRequested",function(n){c(t);let i=o(2);return p(i.openAiModels(n))}),m()}s&2&&u("namespace",e)}function U(s,e){if(s&1&&v(0,z,1,1,"agentos-namespace-item",2),s&2){let t,a=e.$implicit,n=o();C((t=n.resolveNamespace(a.id))?0:-1,t)}}var $=class s{router=g(V);namespaceController=g(D);destroyRef=g(q);refresh$=new x(void 0);namespaces$=this.refresh$.pipe(w(()=>this.namespaceController.listAllNamespace()));namespaceItems$=this.namespaces$.pipe(R(e=>e.map(t=>({id:t.id??"",name:t.name,description:t.description}))));namespacesById=new Map;constructor(){this.namespaces$.pipe(N(this.destroyRef)).subscribe(e=>{this.namespacesById=new Map(e.map(t=>[t.id??"",t]))})}navigateToCases(e){this.router.navigate(["/agentos",e,"cases"])}navigateToCreate(){this.router.navigate(["/agentos/namespaces/new"])}navigateToEdit(e){this.router.navigate(["/agentos/namespaces",e.id??"","edit"])}openIntegrations(e){this.router.navigate(["/agentos",e.id,"integrations"])}openAiProviders(e){this.router.navigate(["/agentos",e.id,"ai-providers"])}openAiModels(e){this.router.navigate(["/agentos",e.id,"ai-models"])}deleteNamespace(e){this.namespaceController.deleteNamespace(e.id??"").pipe(N(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveNamespace(e){return this.namespacesById.get(e)??null}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=f({type:s,selectors:[["agentos-namespace-list"]],decls:4,vars:6,consts:[["namespaceItemTpl",""],["title","Namespaces","emptyMessage","No namespaces yet. Create one to get started.","cardMinWidth","400px",3,"itemSelected","createRequested","items","showCreate","itemTemplate"],[3,"namespace"],[3,"selected","editRequested","deleteRequested","integrationsRequested","aiProvidersRequested","aiModelsRequested","namespace"]],template:function(t,a){if(t&1&&(r(0,"ds-entity-list",1),P(1,"async"),l("itemSelected",function(i){return a.navigateToCases(i)})("createRequested",function(){return a.navigateToCreate()}),m(),M(2,U,1,1,"ng-template",null,0,L)),t&2){let n=k(3);u("items",S(1,3,a.namespaceItems$)??T(5,j))("showCreate",!0)("itemTemplate",n)}},dependencies:[y,O,E],encapsulation:2})};export{y as a,$ as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as R,f as z}from"./chunk-GAZJZBKP.js";import{b as F,d as N}from"./chunk-QWMDAFBN.js";import{c as Q}from"./chunk-
|
|
1
|
+
import{e as R,f as z}from"./chunk-GAZJZBKP.js";import{b as F,d as N}from"./chunk-QWMDAFBN.js";import{c as Q}from"./chunk-LR7LOR4R.js";import"./chunk-ZAM3WGZM.js";import"./chunk-53STPEYQ.js";import"./chunk-AK6F2DC7.js";import{a as M,b as I}from"./chunk-AJOXSD6I.js";import"./chunk-IXD43YQI.js";import"./chunk-WPC6XC7P.js";import{D as H,c as B,e as u,g as L,h as j,i as G,l as C,n as J,s as A,u as $,v as q,w as K,x as U}from"./chunk-XJUBZLY2.js";import"./chunk-B2QA6UZX.js";import{Bb as v,Db as p,Fb as g,Ka as l,Tb as r,Ub as x,Vb as V,Wa as P,a as S,b as O,ca as c,ga as f,ha as _,kb as T,kc as D,lb as b,ma as k,mb as y,pb as w,qb as E,rb as s,sb as i,ta as d,tb as o,ub as h}from"./chunk-3JGMGRXW.js";function Y(a,t){a&1&&(i(0,"p",5),r(1,"Loading\u2026"),o())}function Z(a,t){if(a&1&&(i(0,"option",13),r(1),o()),a&2){let e=t.$implicit;s("value",e.type),l(),x(e.displayName)}}function ee(a,t){if(a&1){let e=v();i(0,"div",18)(1,"ds-json-schema-form",22),p("valueChange",function(m){f(e);let X=g(2);return _(X.onParamsChange(m))}),o()()}if(a&2){let e=g(2);l(),s("schema",t)("value",e.initialParams())}}function te(a,t){if(a&1){let e=v();i(0,"form",7),p("ngSubmit",function(){f(e);let m=g();return _(m.submit())}),i(1,"div",8)(2,"label",9),r(3,"Type "),i(4,"span",10),r(5,"*"),o()(),i(6,"select",11)(7,"option",12),r(8,"Select type"),o(),w(9,Z,2,2,"option",13,T().trackByType,!0),o()(),i(11,"div",8)(12,"label",14),r(13,"Name "),i(14,"span",10),r(15,"*"),o()(),h(16,"input",15),o(),i(17,"div",8)(18,"label",16),r(19,"Description"),o(),h(20,"textarea",17),o(),b(21,ee,2,2,"div",18),i(22,"div",19)(23,"button",20),r(24),o(),i(25,"button",21),p("click",function(){f(e);let m=g();return _(m.cancel())}),r(26,"Cancel"),o()()()}if(a&2){let e,n=g();s("formGroup",n.form),l(6),s("formControl",n.typeControl),l(3),E(n.integrationTypes()),l(7),s("formControl",n.nameControl),l(4),s("formControl",n.descriptionControl),l(),y((e=n.schema())?21:-1,e),l(2),s("disabled",n.nameControl.invalid||n.typeControl.invalid||n.isSubmitting()),l(),V(" ",n.isEditMode()?"Save changes":"Create"," ")}}var W=class a{route=c(F);router=c(N);destroyRef=c(k);integrationConfigController=c(R);integrationTypeController=c(z);namespaceId=this.route.snapshot.params.namespaceId;form=new G({name:new C("",{nonNullable:!0,validators:[u.required,u.minLength(1)]}),description:new C(null),type:new C("",{nonNullable:!0,validators:[u.required]})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get typeControl(){return this.form.controls.type}isEditMode=d(!1);isSubmitting=d(!1);isLoading=d(!1);paramsValue=d(null);initialParams=d(null);integrationTypes=I(this.integrationTypeController.listTypesIntegrationType(),{initialValue:[]});selectedType=I(this.form.controls.type.valueChanges,{initialValue:this.form.controls.type.value});schema=D(()=>{let t=this.selectedType();return t?this.integrationTypes().find(n=>n.type===t)?.configSchema??null:null});existingConfig=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("integrationId");t&&(this.isEditMode.set(!0),this.loadConfig(t))}loadConfig(t){this.isLoading.set(!0),this.integrationConfigController.getByIdIntegrationConfig(t).pipe(M(this.destroyRef)).subscribe({next:e=>{this.existingConfig=e,this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??null),this.typeControl.setValue(e.integrationType),this.initialParams.set(e.parameters),this.paramsValue.set(e.parameters),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1),this.navigateBack()}})}onParamsChange(t){this.paramsValue.set(t)}submit(){if(this.nameControl.invalid||this.typeControl.invalid||this.isSubmitting())return;this.isSubmitting.set(!0),(this.isEditMode()?this.integrationConfigController.updateIntegrationConfig(this.existingConfig.id??"",O(S({},this.existingConfig),{name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,integrationType:this.typeControl.value,parameters:this.paramsValue()})):this.integrationConfigController.createIntegrationConfig({name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,integrationType:this.typeControl.value,namespaceId:this.namespaceId,parameters:this.paramsValue()})).pipe(M(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(!1)})}cancel(){this.navigateBack()}navigateBack(){this.router.navigate(["/agentos",this.namespaceId,"integrations"])}trackByType(t,e){return e.type}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=P({type:a,selectors:[["agentos-integration-form"]],decls:10,vars:2,consts:[[1,"integration-form"],[1,"integration-form__header"],["type","button","title","Back to integrations",1,"integration-form__back",3,"click"],[1,"integration-form__back-icon"],[1,"integration-form__title"],[1,"integration-form__loading"],[1,"integration-form__form",3,"formGroup"],[1,"integration-form__form",3,"ngSubmit","formGroup"],[1,"integration-form__field"],["for","integration-type",1,"integration-form__label"],["aria-hidden","true"],["id","integration-type",1,"integration-form__select",3,"formControl"],["value","","disabled",""],[3,"value"],["for","integration-name",1,"integration-form__label"],["id","integration-name","type","text","placeholder","Integration name","autocomplete","off",1,"integration-form__input",3,"formControl"],["for","integration-description",1,"integration-form__label"],["id","integration-description","placeholder","Optional description","rows","3",1,"integration-form__textarea",3,"formControl"],[1,"integration-form__schema-form"],[1,"integration-form__actions"],["type","submit",1,"integration-form__btn","integration-form__btn--primary",3,"disabled"],["type","button",1,"integration-form__btn",3,"click"],[3,"valueChange","schema","value"]],template:function(e,n){e&1&&(i(0,"div",0)(1,"header",1)(2,"button",2),p("click",function(){return n.cancel()}),i(3,"span",3),r(4,"\u2190"),o(),r(5," Integrations "),o(),i(6,"h1",4),r(7),o()(),b(8,Y,2,0,"p",5)(9,te,27,7,"form",6),o()),e&2&&(l(7),x(n.isEditMode()?"Edit integration":"New integration"),l(),y(n.isLoading()?8:9))},dependencies:[H,J,K,U,B,q,L,j,A,$,Q],styles:[".integration-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.integration-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.integration-form__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-primary, #007aff);font-family:inherit}.integration-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.integration-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.integration-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.integration-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.integration-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.integration-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.integration-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text, #1d1d1f)}.integration-form__input[_ngcontent-%COMP%], .integration-form__textarea[_ngcontent-%COMP%], .integration-form__select[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.integration-form__input[_ngcontent-%COMP%]:focus, .integration-form__textarea[_ngcontent-%COMP%]:focus, .integration-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.integration-form__input[_ngcontent-%COMP%]::placeholder, .integration-form__textarea[_ngcontent-%COMP%]::placeholder, .integration-form__select[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.integration-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:4.5rem;line-height:1.5}.integration-form__select[_ngcontent-%COMP%]{cursor:pointer}.integration-form__select[_ngcontent-%COMP%] option[disabled][_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73)}.integration-form__schema-form[_ngcontent-%COMP%]{padding:1rem;border-radius:10px;border:1px solid var(--color-border-light, rgba(0, 0, 0, .06));background:var(--glass-bg, rgba(255, 255, 255, .5));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px))}.integration-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.integration-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.integration-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.integration-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.integration-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.integration-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"],changeDetection:0})};export{W as IntegrationFormComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as N}from"./chunk-3U3QVZEU.js";import{a as J}from"./chunk-I5OT3IGD.js";import{d as F,e as $}from"./chunk-QWMDAFBN.js";import"./chunk-WNNKQ2DH.js";import"./chunk-KTPX26DH.js";import{f as U,g as z}from"./chunk-
|
|
1
|
+
import{a as N}from"./chunk-3U3QVZEU.js";import{a as J}from"./chunk-I5OT3IGD.js";import{d as F,e as $}from"./chunk-QWMDAFBN.js";import"./chunk-WNNKQ2DH.js";import"./chunk-KTPX26DH.js";import{f as U,g as z}from"./chunk-LR7LOR4R.js";import"./chunk-ZAM3WGZM.js";import"./chunk-53STPEYQ.js";import"./chunk-AK6F2DC7.js";import{a as L,b as S}from"./chunk-AJOXSD6I.js";import{d as K}from"./chunk-DRBOHCTP.js";import"./chunk-IXD43YQI.js";import{a as W,b as A}from"./chunk-WPC6XC7P.js";import"./chunk-XJUBZLY2.js";import{b as B}from"./chunk-XIQ3L6H6.js";import{O as V}from"./chunk-B2QA6UZX.js";import{B as x,Bb as k,Db as h,Fb as b,Ka as v,Pb as E,Tb as O,Wa as D,a as c,ab as I,ac as T,b as p,ca as m,ga as C,ha as j,hc as q,kc as w,ma as R,rb as P,sb as d,tb as _,ub as M}from"./chunk-3JGMGRXW.js";var ee=()=>[];function te(u,t){if(u&1){let o=k();d(0,"div",5)(1,"ds-entity-card",6),h("selected",function(r){C(o);let n=b();return j(n.onItemSelected(r))}),_(),d(2,"button",7),h("click",function(r){let n=C(o).$implicit,f=b();return r.stopPropagation(),j(f.onDeleteRequested(n.id))}),d(3,"mat-icon"),O(4,"close"),_()()()}if(u&2){let o=t.$implicit;v(),P("id",o.id)("name",o.name)("description",o.description)("badges",o.badges??T(4,ee))}}var g="__",Y=class u{router=m(F);projectStateService=m(B);dialog=m(K);destroyRef=m(R);notification=m(J);projects=S(this.projectStateService.projectList$);forcedProject=S(this.projectStateService.forcedProject$,{initialValue:null});projectItems=w(()=>{let t=this.projects();if(!t)return[];let o=t.filter(e=>!e.name.includes(g)),a=t.filter(e=>e.name.includes(g)),r=new Set(o.map(e=>e.name)),n=e=>e.split(g)[0]??null,f=new Set(a.map(e=>n(e.name)).filter(e=>e!==null&&r.has(e))),l=[],G=[...f].sort((e,i)=>e.localeCompare(i));for(let e of G){let i=o.find(s=>s.name===e);l.push(p(c({},this.toEntityListItem(i)),{groupKey:e,groupLabel:e}));let Z=a.filter(s=>n(s.name)===e).sort((s,y)=>s.name.localeCompare(y.name));for(let s of Z){let y=s.name.slice(e.length+g.length);l.push(p(c({},this.toEntityListItem(s)),{name:y,description:s.name,groupKey:e,groupLabel:e}))}}let H=[...o].filter(e=>!f.has(e.name)&&!e.volatile).sort((e,i)=>e.name.localeCompare(i.name));for(let e of H)l.push(p(c({},this.toEntityListItem(e)),{groupKey:"__standalone__",groupLabel:"Projects"}));let Q=[...o].filter(e=>!f.has(e.name)&&e.volatile).sort((e,i)=>e.name.localeCompare(i.name));for(let e of Q)l.push(p(c({},this.toEntityListItem(e)),{groupKey:"__volatile__",groupLabel:"Temporary"}));let X=a.filter(e=>{let i=n(e.name);return i!==null&&!r.has(i)}).sort((e,i)=>e.name.localeCompare(i.name));for(let e of X)l.push(p(c({},this.toEntityListItem(e)),{groupKey:"__orphaned__",groupLabel:"Orphaned worktrees"}));return l});showCreateButton=w(()=>!this.forcedProject());constructor(){}onItemSelected(t){this.projectStateService.selectProject(t),this.router.navigate(["project",t])}onCreateRequested(){this.router.navigate(["project","new"])}onDeleteRequested(t){let o=t.includes(g);this.dialog.open(N,{width:"400px",panelClass:"confirm-dialog-panel",data:c({title:"Delete project",message:`This will remove the project "${t}" from Coday and archive its configuration. The project source code on disk is not affected.`,confirmLabel:"Delete",cancelLabel:"Cancel",isDestructive:!0},o?{checkboxLabel:"Also remove git worktree from disk"}:{})}).afterClosed().pipe(x(r=>r?.confirmed===!0),L(this.destroyRef)).subscribe(r=>{this.notification.info("Deleting project\u2026"),this.projectStateService.deleteProject(t,r.checkboxChecked).pipe(L(this.destroyRef)).subscribe({next:()=>{this.notification.success(`Project "${t}" deleted`),this.router.url.includes(`/project/${encodeURIComponent(t)}`)&&this.router.navigate(["/"])},error:n=>{console.error("[PROJECT-LIST] Failed to delete project:",n),this.notification.error(n?.error?.error??"Failed to delete project")}})})}toEntityListItem(t){return{id:t.name,name:t.name,badges:t.volatile?[{label:"temp",variant:"warning"}]:[]}}static \u0275fac=function(o){return new(o||u)};static \u0275cmp=D({type:u,selectors:[["app-project-selection"]],decls:6,vars:4,consts:[["projectCard",""],[1,"project-page-layout"],["title","Projects","contentMaxWidth","1400px","searchPlaceholder","Filter projects\u2026","emptyMessage","No projects found.",3,"itemSelected","createRequested","items","itemTemplate","showCreate","autoFocusSearch"],["toolbar-start","","routerLink","/","title","Back to tasks",1,"project-list__logo"],["src","CODAY-Logo.png","alt","Coday"],[1,"project-card-wrapper"],[3,"selected","id","name","description","badges"],["mat-icon-button","","title","Delete project",1,"project-card-wrapper__delete",3,"click"]],template:function(o,a){if(o&1&&(d(0,"div",1)(1,"ds-entity-list",2),h("itemSelected",function(n){return a.onItemSelected(n)})("createRequested",function(){return a.onCreateRequested()}),d(2,"a",3),M(3,"img",4),_()()(),I(4,te,5,5,"ng-template",null,0,q)),o&2){let r=E(5);v(),P("items",a.projectItems())("itemTemplate",r)("showCreate",a.showCreateButton())("autoFocusSearch",!0)}},dependencies:[z,U,A,W,V,$],styles:["[_nghost-%COMP%]{display:block;width:100%;min-height:100vh;background:var(--color-bg);overflow-y:auto}.project-page-layout[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.project-list__logo[_ngcontent-%COMP%]{display:flex;align-items:center;flex-shrink:0;border-radius:4px;opacity:.85;transition:opacity .15s ease;cursor:pointer}.project-list__logo[_ngcontent-%COMP%]:hover{opacity:1}.project-list__logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:40px;height:40px;object-fit:contain;border-radius:4px}.project-card-wrapper[_ngcontent-%COMP%]{position:relative}.project-card-wrapper__delete[_ngcontent-%COMP%]{position:absolute;top:4px;right:4px;width:28px;height:28px;line-height:28px;padding:0;opacity:0;transition:opacity .15s ease;color:var(--color-text-secondary, #6e6e73)}.project-card-wrapper__delete[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}.project-card-wrapper__delete[_ngcontent-%COMP%]:hover{color:var(--color-error, #ff3b30)}.project-card-wrapper[_ngcontent-%COMP%]:hover .project-card-wrapper__delete[_ngcontent-%COMP%]{opacity:1}"]})};export{Y as ProjectListComponent};
|