@whoz-oss/coday-client 3.15.1 → 3.16.0
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-CysW_ro-.js → chunk-0OiZWE88.js} +1 -1
- package/browser/{chunk-BhfpLr7-.js → chunk-6gdeYlLc.js} +1 -1
- package/browser/{chunk-B5_o_qhk.js → chunk-7jUQT_3F.js} +1 -1
- package/browser/{chunk-K-fhwl_z.js → chunk-B0vRsgnD.js} +1 -1
- package/browser/{chunk-RxHlNJ_t.js → chunk-BEKR4Un_.js} +1 -1
- package/browser/chunk-BEUXx3TO.js +1 -0
- package/browser/{chunk-Bnic_hdt.js → chunk-BHZY3TvC.js} +5 -5
- package/browser/{chunk-C6RPhP4t.js → chunk-BJYyjaQ6.js} +1 -1
- package/browser/chunk-BJeLQooO.js +1 -0
- package/browser/{chunk-BIMT-HvS.js → chunk-BNS6Fgaw.js} +1 -1
- package/browser/{chunk-BVCQOGLR.js → chunk-BSSDDOqW.js} +2 -2
- package/browser/{chunk-Dd2dq7xg.js → chunk-BTS5TBK0.js} +1 -1
- package/browser/{chunk-B11WEBEl.js → chunk-BUJoEGsf.js} +1 -1
- package/browser/chunk-BY7uKZAo.js +9 -0
- package/browser/{chunk-5t7zJzqM.js → chunk-B_9LxHBv.js} +1 -1
- package/browser/{chunk-DTZ7N3wC.js → chunk-BdApeECy.js} +1 -1
- package/browser/{chunk-BhM0bmJW.js → chunk-BdpJ2ZCM.js} +1 -1
- package/browser/{chunk-CyUmCedx.js → chunk-Be1LOFvg.js} +1 -1
- package/browser/{chunk-CYMQSJz6.js → chunk-Bhq5earA.js} +1 -1
- package/browser/{chunk-C5wr-vqf.js → chunk-Bib1Seeu.js} +1 -1
- package/browser/{chunk-C7MXO6BQ.js → chunk-Bn3R3VC2.js} +5 -5
- package/browser/{chunk-DxxECdrg.js → chunk-C-aF2_1R.js} +2 -2
- package/browser/{chunk-Jv7RGmnK.js → chunk-CBNhmZDS.js} +1 -1
- package/browser/{chunk-DzicJow4.js → chunk-CFZbDe5T.js} +3 -3
- package/browser/{chunk-mHtuxvLs.js → chunk-CGMAzvSo.js} +1 -1
- package/browser/chunk-CPBcDx4G.js +1 -0
- package/browser/{chunk-DYUMiAN8.js → chunk-CTuHnJP4.js} +1 -1
- package/browser/{chunk-n1eKIk8H.js → chunk-CXLytVC3.js} +1 -1
- package/browser/{chunk-5LRyprMF.js → chunk-CYulIMKp.js} +1 -1
- package/browser/{chunk-CyxhAtE7.js → chunk-C_s4Z3Dk.js} +1 -1
- package/browser/{chunk-D_vvo2qx.js → chunk-CbK5Lcu9.js} +1 -1
- package/browser/{chunk-9CSRlx74.js → chunk-CgqDTJ5-.js} +1 -1
- package/browser/{chunk-Dg6QAZUw.js → chunk-Ci1jk71f.js} +2 -2
- package/browser/{chunk-Bh1p6jDj.js → chunk-CiWu4t_i.js} +1 -1
- package/browser/{chunk-CUmS2-ak.js → chunk-CjrWXBiR.js} +1 -1
- package/browser/{chunk-BqKdrvcS.js → chunk-Co81dkbz.js} +1 -1
- package/browser/{chunk-Ce03Ba0V.js → chunk-CtWMrBfw.js} +1 -1
- package/browser/{chunk-l0HLnBLv.js → chunk-CtkiOUdU.js} +6 -6
- package/browser/{chunk-BlWlE-Cq.js → chunk-CwaAd8kk.js} +1 -1
- package/browser/{chunk-Bgy3uCgK.js → chunk-DDnWPYAA.js} +1 -1
- package/browser/{chunk-CHrmSvQM.js → chunk-DOq0u21j.js} +1 -1
- package/browser/{chunk-DX2ZzvT5.js → chunk-DQLU3kYb.js} +1 -1
- package/browser/{chunk-fP29MqaN.js → chunk-Dcftf7UY.js} +1 -1
- package/browser/{chunk-BZMAEe_X.js → chunk-Dfujxxcr.js} +1 -1
- package/browser/chunk-DgrvmqY2.js +2 -0
- package/browser/{chunk-CebS4RAf.js → chunk-DoKoAMs6.js} +1 -1
- package/browser/{chunk-CNIfOUla.js → chunk-Dtu-PLbq.js} +1 -1
- package/browser/{chunk-C4U0w8cP.js → chunk-DzlrRiVM.js} +1 -1
- package/browser/{chunk-BfD1F12k.js → chunk-HjD5Rk4C.js} +3 -3
- package/browser/{chunk-CcLheUaL.js → chunk-IUvEtpfr.js} +1 -1
- package/browser/{chunk-DTIhOEG_.js → chunk-S8F5_Te_.js} +6 -6
- package/browser/{chunk-HSc9fwVS.js → chunk-SbH2L3h2.js} +1 -1
- package/browser/{chunk-BKlwFrFB.js → chunk-UzUd84Qf.js} +1 -1
- package/browser/chunk-YS-vAhPY.js +190 -0
- package/browser/{chunk-BUEM7g7F.js → chunk-YfG457Nc.js} +3 -3
- package/browser/{chunk-DG2FCeMu.js → chunk-axGY7UtD.js} +1 -1
- package/browser/chunk-fYErSEXN.js +1 -0
- package/browser/{chunk-BgHTiTG2.js → chunk-fhFxOLYS.js} +1 -1
- package/browser/{chunk-qARg6ese.js → chunk-gmPqDrDS.js} +1 -1
- package/browser/{chunk-DvzNS1Bs.js → chunk-iNIQR015.js} +1 -1
- package/browser/{chunk-Dj9y_5pr.js → chunk-izARvh_2.js} +1 -1
- package/browser/{chunk-Cf3l2UgA.js → chunk-jv0lz5Ah.js} +1 -1
- package/browser/{chunk-nWqZHM4o.js → chunk-kvCfAm7Z.js} +1 -1
- package/browser/{chunk-ZvcyZV3G.js → chunk-pH1k_bet.js} +1 -1
- package/browser/{chunk-DYE131qf.js → chunk-rwEyLSEP.js} +1 -1
- package/browser/{chunk-XgEfnfT0.js → chunk-swj7IkJA.js} +1 -1
- package/browser/chunk-tTmeIHGS.js +37 -0
- package/browser/index.html +1 -1
- package/browser/{main-6K2UFGD2.js → main-5PAOSHSM.js} +19 -19
- package/package.json +1 -1
- package/browser/chunk-BC0acSZF.js +0 -1
- package/browser/chunk-BLa2Gx7h.js +0 -190
- package/browser/chunk-B_2kLXvG.js +0 -1
- package/browser/chunk-C9tuHQmZ.js +0 -37
- package/browser/chunk-CnnGSYzi.js +0 -2
- package/browser/chunk-DEsz0fzs.js +0 -1
- package/browser/chunk-DXDohTwX.js +0 -1
- package/browser/chunk-uPxETzZs.js +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
import {S as S$1}from'./chunk-
|
|
1
|
+
import {S as S$1}from'./chunk-CYulIMKp.js';import {g,G,w as we,dd as $,aJ as Tr,a as Gi,bS as Da,u as ue,c as U,h as Fw,aK as Ob,m as ws,bf as dT,o as Rg,n as hl,af as Eg,M as MC,v as bg,bg as pT,ah as aT,q as oC,ac as EC,x as iC,a9 as gC,aa as wf,ab as Cf,ag as mT}from'./main-5PAOSHSM.js';import {W as Wn,S as Se}from'./chunk-CtkiOUdU.js';import'./chunk-S8F5_Te_.js';import'./chunk-tTmeIHGS.js';var S=()=>[];function V(r,e){if(r&1){let t=gC();ws(0,"agentos-ai-provider-item",4),Rg("editRequested",function(i){wf(t);let p=EC(2);return Cf(p.onEdit(i))})("deleteRequested",function(i){wf(t);let p=EC(2);return Cf(p.onDelete(i))}),hl();}r&2&&bg("config",e)("showBadge",false);}function F(r,e){if(r&1&&oC(0,V,1,2,"agentos-ai-provider-item",3),r&2){let t,o=e.$implicit,i=EC();iC((t=i.resolveProvider(o.id))?0:-1,t);}}var E=class r{router=g(G);destroyRef=g(we);aiProviderController=g($);refresh$=new Tr(void 0);isLoading=Gi(true);providers$=this.refresh$.pipe(Da(()=>(this.isLoading.set(true),this.aiProviderController.listAiProvider("none"))));providerItems$=this.providers$.pipe(ue(e=>e.map(t=>({id:t.id??"",name:t.name,description:t.apiType}))));providersById=new Map;constructor(){this.providers$.pipe(U(this.destroyRef)).subscribe({next:e=>{this.providersById=new Map(e.map(t=>[t.id??"",t])),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}goBack(){this.router.navigate(["/agentos","admin"]);}openCreateForm(){this.router.navigate(["/agentos","admin","ai-providers","new"]);}onEdit(e){e.id&&this.router.navigate(["/agentos","admin","ai-providers",e.id,"edit"]);}onDelete(e){e.id&&this.aiProviderController.deleteAiProvider(e.id).pipe(U(this.destroyRef)).subscribe(()=>this.refresh$.next());}resolveProvider(e){return this.providersById.get(e)??null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=Fw({type:r,selectors:[["agentos-platform-ai-providers"]],decls:5,vars:7,consts:[["aiProviderItemTpl",""],["title","Platform AI Providers","emptyMessage","No platform AI providers defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],["scope","namespace",3,"config","showBadge"],["scope","namespace",3,"editRequested","deleteRequested","config","showBadge"]],template:function(t,o){if(t&1&&(ws(0,"ds-entity-list",1),dT(1,"async"),Rg("createRequested",function(){return o.openCreateForm()}),ws(2,"ds-icon-button",2),Rg("action",function(){return o.goBack()}),hl()(),Eg(3,F,1,1,"ng-template",null,0,mT)),t&2){let i=MC(4);bg("items",pT(1,4,o.providerItems$)??aT(6,S))("loading",o.isLoading())("showCreate",true)("itemTemplate",i);}},dependencies:[Wn,S$1,Se,Ob],styles:[".platform-ai-providers__back[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;font-family:inherit;font-size:.875rem;color:var(--color-text-secondary, #6e6e73);padding:.25rem .5rem;border-radius:4px;transition:color .15s ease}.platform-ai-providers__back[_ngcontent-%COMP%]:hover{color:var(--color-primary, #007aff)}"]})};export{E as PlatformAiProvidersComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {O}from'./chunk-
|
|
1
|
+
import {O}from'./chunk-CgqDTJ5-.js';import {N as N$1}from'./chunk-Be1LOFvg.js';import {g,G,w as we,d7 as U,aJ as Tr,a as Gi,bS as Da,u as ue,c as U$1,h as Fw,aK as Ob,m as ws,bf as dT,o as Rg,n as hl,af as Eg,M as MC,v as bg,bg as pT,ah as aT,q as oC,ac as EC,x as iC,a9 as gC,aa as wf,ab as Cf,ag as mT}from'./main-5PAOSHSM.js';import'./chunk-BY7uKZAo.js';import {W as Wn,S as Se}from'./chunk-CtkiOUdU.js';import'./chunk-S8F5_Te_.js';import'./chunk-tTmeIHGS.js';import'./chunk-BEUXx3TO.js';import'./chunk-kvCfAm7Z.js';var F=()=>[];function N(i,t){if(i&1){let e=gC();ws(0,"agentos-integration-config-item",4),Rg("editRequested",function(n){wf(e);let f=EC(2);return Cf(f.onEdit(n))})("deleteRequested",function(n){wf(e);let f=EC(2);return Cf(f.deleteConfig(n))}),hl();}i&2&&bg("config",t);}function j(i,t){if(i&1&&oC(0,N,1,1,"agentos-integration-config-item",3),i&2){let e,o=t.$implicit,n=EC();iC((e=n.resolveConfig(o.id))?0:-1,e);}}var V=class i{router=g(G);destroyRef=g(we);state=g(N$1);integrationConfigController=g(U);refresh$=new Tr(void 0);isLoading=Gi(true);configs$=this.refresh$.pipe(Da(()=>(this.isLoading.set(true),this.state.loadPlatformConfigs())));configItems$=this.configs$.pipe(ue(t=>t.map(e=>({id:e.id??"",name:e.name,description:e.integrationType}))));configsById=new Map;constructor(){this.configs$.pipe(U$1(this.destroyRef)).subscribe({next:t=>{this.configsById=new Map(t.map(e=>[e.id??"",e])),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}goBack(){this.router.navigate(["/agentos","admin"]);}openCreateForm(){this.router.navigate(["/agentos","admin","integration-configs","new"]);}deleteConfig(t){this.integrationConfigController.deleteIntegrationConfig(t.id??"").pipe(U$1(this.destroyRef)).subscribe(()=>this.refresh$.next());}onEdit(t){this.router.navigate(["/agentos","admin","integration-configs",t.id??"","edit"]);}resolveConfig(t){return this.configsById.get(t)??null}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=Fw({type:i,selectors:[["agentos-platform-integration-configs"]],decls:5,vars:7,consts:[["integrationConfigItemTpl",""],["title","Platform Integration Configs","emptyMessage","No platform integration configs defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],["scope","platform",3,"config"],["scope","platform",3,"editRequested","deleteRequested","config"]],template:function(e,o){if(e&1&&(ws(0,"ds-entity-list",1),dT(1,"async"),Rg("createRequested",function(){return o.openCreateForm()}),ws(2,"ds-icon-button",2),Rg("action",function(){return o.goBack()}),hl()(),Eg(3,j,1,1,"ng-template",null,0,mT)),e&2){let n=MC(4);bg("items",pT(1,4,o.configItems$)??aT(6,F))("loading",o.isLoading())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,O,Se,Ob],styles:[".platform-integration-configs__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.platform-integration-configs__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"]})};export{V as PlatformIntegrationConfigsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {g,G,cb as
|
|
1
|
+
import {g,G,cb as LB,cc as PB,a as Gi,h as Fw,m as ws,Q as QC,n as hl,q as oC,t as nI,a8 as Yg,x as iC,ac as EC,a9 as gC,o as Rg,v as bg,aa as wf,ab as Cf}from'./main-5PAOSHSM.js';import {K as Kn,Z as Zn,S as Se}from'./chunk-CtkiOUdU.js';function P(n,o){if(n&1&&(ws(0,"span",3),QC(1),hl()),n&2){let e=EC();nI(),Yg(e.config().modelName);}}function k(n,o){if(n&1&&(ws(0,"span",4),QC(1),hl()),n&2){let e=EC();nI(),Yg(e.config().description);}}function S(n,o){if(n&1){let e=gC();ws(0,"span",7),QC(1,"Delete?"),hl(),ws(2,"ds-icon-button",8),Rg("action",function(){wf(e);let l=EC();return Cf(l.onDeleteConfirmed())}),hl(),ws(3,"ds-icon-button",9),Rg("action",function(){wf(e);let l=EC();return Cf(l.onDeleteCancelled())}),hl();}}function E(n,o){if(n&1){let e=gC();ws(0,"ds-kebab-menu",10),Rg("itemSelected",function(l){wf(e);let A=EC();return Cf(A.onMenuAction(l))}),hl();}if(n&2){let e=EC();bg("items",e.readOnly()?e.readOnlyMenuItems:e.menuItems);}}var O=class n{router=g(G);config=LB.required();namespaceId=LB(void 0);platformMode=LB(false);readOnly=LB(false);deleteRequested=PB();pendingDelete=Gi(false);menuItems=[{key:"edit",label:"Edit agent config",icon:"edit"},{key:"inspect",label:"Inspect definition",icon:"search"},{key:"delete",label:"Delete agent config",icon:"delete",variant:"danger"}];readOnlyMenuItems=[{key:"inspect",label:"Inspect definition",icon:"search"}];onMenuAction(o){switch(o){case "edit":this.platformMode()?this.router.navigate(["/agentos","admin","agent-configs",this.config().id,"edit"]):this.router.navigate(["/agentos",this.namespaceId(),"agent-configs",this.config().id,"edit"]);break;case "inspect":this.platformMode()?this.router.navigate(["/agentos","admin","agent-configs",this.config().id,"inspect"]):this.router.navigate(["/agentos",this.namespaceId(),"agent-configs",this.config().id,"inspect"]);break;case "delete":this.pendingDelete.set(true);break}}onDeleteConfirmed(){this.pendingDelete.set(false),this.deleteRequested.emit(this.config());}onDeleteCancelled(){this.pendingDelete.set(false);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Fw({type:n,selectors:[["agentos-agent-config-item"]],inputs:{config:[1,"config"],namespaceId:[1,"namespaceId"],platformMode:[1,"platformMode"],readOnly:[1,"readOnly"]},outputs:{deleteRequested:"deleteRequested"},decls:9,vars:4,consts:[["role","listitem","dsBlueprint","",1,"agent-config-item"],[1,"agent-config-item__body"],[1,"agent-config-item__name"],[1,"agent-config-item__model"],[1,"agent-config-item__description"],[1,"agent-config-item__actions"],[3,"items"],[1,"agent-config-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,a){e&1&&(ws(0,"div",0)(1,"div",1)(2,"span",2),QC(3),hl(),oC(4,P,2,1,"span",3),oC(5,k,2,1,"span",4),hl(),ws(6,"div",5),oC(7,S,4,0)(8,E,1,1,"ds-kebab-menu",6),hl()()),e&2&&(nI(3),Yg(a.config().name),nI(),iC(a.config().modelName?4:-1),nI(),iC(a.config().description?5:-1),nI(2),iC(a.pendingDelete()?7:8));},dependencies:[Kn,Zn,Se],styles:[".agent-config-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:14px 16px;position:relative;border-radius:0;border:1px solid var(--color-divider);background:var(--color-bg);box-shadow:var(--shadow-sm);overflow:visible;transition:border-color .15s ease}.agent-config-item[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}.agent-config-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.agent-config-item__name[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__model[_ngcontent-%COMP%], .agent-config-item__description[_ngcontent-%COMP%]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.agent-config-item[_ngcontent-%COMP%]:hover .agent-config-item__actions[_ngcontent-%COMP%], .agent-config-item[_ngcontent-%COMP%]:focus-within .agent-config-item__actions[_ngcontent-%COMP%]{opacity:1}.agent-config-item[_ngcontent-%COMP%]:has(.agent-config-item__confirm-label) .agent-config-item__actions[_ngcontent-%COMP%]{opacity:1}.agent-config-item__confirm-label[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);margin-right:.25rem;white-space:nowrap}"]})};export{O};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {z}from'./chunk-
|
|
1
|
+
import {z}from'./chunk-DgrvmqY2.js';import {s}from'./chunk-swj7IkJA.js';import {g as g$1,G,P,R as Re,w as we,F,E as ET,z as z$1,b as P$1,ae as Ot,c as U,h as Fw,k as Gn,s as si,m as ws,o as Rg,S as Sg,n as hl,af as Eg,ag as mT,M as MC,t as nI,v as bg,a9 as gC,aa as wf,ac as EC,ab as Cf,Q as QC,ah as aT}from'./main-5PAOSHSM.js';import'./chunk-Dcftf7UY.js';import {W as Wn,o as ot}from'./chunk-CtkiOUdU.js';import'./chunk-S8F5_Te_.js';import {y as yt,w as wt}from'./chunk-tTmeIHGS.js';var ee=()=>[];function te(u,t){if(u&1){let o=gC();ws(0,"div",5)(1,"ds-entity-card",6),Rg("selected",function(r){wf(o);let i=EC();return Cf(i.onItemSelected(r))}),hl(),ws(2,"button",7),Rg("click",function(r){let i=wf(o).$implicit,f=EC();return r.stopPropagation(),Cf(f.onDeleteRequested(i.id))}),ws(3,"mat-icon"),QC(4,"close"),hl()()();}if(u&2){let o=t.$implicit;nI(),bg("id",o.id)("name",o.name)("description",o.description)("badges",o.badges??aT(4,ee));}}var g="__",Y=class u{router=g$1(G);projectStateService=g$1(P);dialog=g$1(Re);destroyRef=g$1(we);notification=g$1(s);projects=F(this.projectStateService.projectList$);forcedProject=F(this.projectStateService.forcedProject$,{initialValue:null});isLoading=F(this.projectStateService.isLoading$,{initialValue:false});projectItems=ET(()=>{let t=this.projects();if(!t)return [];let o=t.filter(e=>!e.name.includes(g)),n=t.filter(e=>e.name.includes(g)),r=new Set(o.map(e=>e.name)),i=e=>e.split(g)[0]??null,f=new Set(n.map(e=>i(e.name)).filter(e=>e!==null&&r.has(e))),l=[],G=[...f].sort((e,a)=>e.localeCompare(a));for(let e of G){let a=o.find(s=>s.name===e);l.push(z$1(P$1({},this.toEntityListItem(a)),{groupKey:e,groupLabel:e}));let Z=n.filter(s=>i(s.name)===e).sort((s,C)=>s.name.localeCompare(C.name));for(let s of Z){let C=s.name.slice(e.length+g.length);l.push(z$1(P$1({},this.toEntityListItem(s)),{name:C,description:s.name,groupKey:e,groupLabel:e}));}}let H=[...o].filter(e=>!f.has(e.name)&&!e.volatile).sort((e,a)=>e.name.localeCompare(a.name));for(let e of H)l.push(z$1(P$1({},this.toEntityListItem(e)),{groupKey:"__standalone__",groupLabel:"Projects"}));let Q=[...o].filter(e=>!f.has(e.name)&&e.volatile).sort((e,a)=>e.name.localeCompare(a.name));for(let e of Q)l.push(z$1(P$1({},this.toEntityListItem(e)),{groupKey:"__volatile__",groupLabel:"Temporary"}));let X=n.filter(e=>{let a=i(e.name);return a!==null&&!r.has(a)}).sort((e,a)=>e.name.localeCompare(a.name));for(let e of X)l.push(z$1(P$1({},this.toEntityListItem(e)),{groupKey:"__orphaned__",groupLabel:"Orphaned worktrees"}));return l});showCreateButton=ET(()=>!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(z,{width:"400px",panelClass:"confirm-dialog-panel",data:P$1({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:true},o?{checkboxLabel:"Also remove git worktree from disk"}:{})}).afterClosed().pipe(Ot(r=>r?.confirmed===true),U(this.destroyRef)).subscribe(r=>{this.notification.info("Deleting project\u2026"),this.projectStateService.deleteProject(t,r.checkboxChecked).pipe(U(this.destroyRef)).subscribe({next:()=>{this.notification.success(`Project "${t}" deleted`),this.router.url.includes(`/project/${encodeURIComponent(t)}`)&&this.router.navigate(["/"]);},error:i=>{console.error("[PROJECT-LIST] Failed to delete project:",i),this.notification.error(i?.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=Fw({type:u,selectors:[["app-project-selection"]],decls:6,vars:5,consts:[["projectCard",""],[1,"project-page-layout"],["title","Projects","contentMaxWidth","1400px","searchPlaceholder","Filter projects\u2026","emptyMessage","No projects found.",3,"itemSelected","createRequested","items","loading","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,n){if(o&1&&(ws(0,"div",1)(1,"ds-entity-list",2),Rg("itemSelected",function(i){return n.onItemSelected(i)})("createRequested",function(){return n.onCreateRequested()}),ws(2,"a",3),Sg(3,"img",4),hl()()(),Eg(4,te,5,5,"ng-template",null,0,mT)),o&2){let r=MC(5);nI(),bg("items",n.projectItems())("loading",n.isLoading())("itemTemplate",r)("showCreate",n.showCreateButton())("autoFocusSearch",true);}},dependencies:[Wn,ot,yt,wt,Gn,si],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}"],changeDetection:1})};export{Y as ProjectListComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {A,k as kt,b as bt}from'./chunk-C4U0w8cP.js';import {S as St}from'./chunk-DzicJow4.js';import {E as Et,y as yt$1,G as Ge}from'./chunk-C7MXO6BQ.js';import {g,G,P,U,N,p as pe$1,Q as c,w as we,z as zi,F as F$1,y as yT,c as U$1,h as Rw,i as hr,j as pr,I as Is,q as qC,m as pl,A as Ag,t as tC,o as iC,J as JE,T as Tg,v as nC,x as sC,H as Hg,C as Cg,u as ue$1,ca as _e$1,Y as x,an as ce$1,ap as Vy,l as le$1,V,n as bg,a9 as fC,aa as If,ac as yC,ab as wf,a8 as Zg,a5 as vl}from'./main-6K2UFGD2.js';import'./chunk-fP29MqaN.js';import'./chunk-BVCQOGLR.js';import'./chunk-BUEM7g7F.js';import'./chunk-DTIhOEG_.js';import {y as yt,w as wt}from'./chunk-C9tuHQmZ.js';var R=class n{threadState=g(U);codayService=g(Ge);threadList=F$1(this.threadState.threadList$,{initialValue:[]});selectedThread=F$1(this.threadState.selectedThread$,{initialValue:null});isThinking=F$1(this.codayService.isThinking$,{initialValue:false});inviteEvent=F$1(this.codayService.currentInviteEvent$.pipe(ue$1(t=>t?.invite===_e$1?null:t)),{initialValue:null});tasks=yT(()=>{let t=this.threadList(),e=this.selectedThread(),r=this.isThinking(),o=this.inviteEvent();return t.filter(i=>!i.parentThreadId).map(i=>{let m=!!e&&i.id===e.id;return {id:i.id,name:i.name,summary:i.summary,modifiedDate:i.modifiedDate,starring:i.starring??[],users:i.users??[],status:this.deriveStatus(i,m,r,!!o),isActive:m,worktreeProject:i.worktreeProject}}).sort((i,m)=>{let q=kt[i.status]-kt[m.status];return q!==0?q:i.modifiedDate>m.modifiedDate?-1:1})});deriveStatus(t,e,r,o){let i=Date.now()-new Date(t.modifiedDate).getTime();return t.closedByUser?"done":t.pendingInvite?"waiting-you":e?r?"in-progress":"paused":i<bt?"in-progress":"paused"}static \u0275fac=function(e){return new(e||n)};static \u0275prov=x({token:n,factory:n.\u0275fac,providedIn:"root"})};var F=class n{projectState=g(P);threadState=g(U);destroy$=new ce$1;eventSource=null;currentProject=null;constructor(){this.projectState.selectedProject$.pipe(Vy(this.destroy$)).subscribe(t=>{let e=t?.name??null;e!==this.currentProject&&(this.disconnect(),e&&this.connect(e));});}connect(t,e=5e3){this.currentProject=t;let r=`/api/projects/${encodeURIComponent(t)}/event-stream`;console.log(`[PROJECT_SSE] Connecting to ${r}`),this.eventSource=new EventSource(r),this.eventSource.onmessage=o=>{try{let i=JSON.parse(o.data),m=le$1(i);if(!m)return;m instanceof V&&(console.log("[PROJECT_SSE] ThreadUpdateEvent \u2014 refreshing thread list"),this.threadState.refreshThreadList());}catch(i){console.warn("[PROJECT_SSE] Failed to parse event:",i);}},this.eventSource.onerror=()=>{this.eventSource?.readyState===EventSource.CLOSED&&(console.warn(`[PROJECT_SSE] Connection closed for ${t}, reconnecting in ${e}ms`),this.eventSource=null,setTimeout(()=>{this.currentProject===t&&this.connect(t,Math.min(e*2,6e4));},e));};}disconnect(){this.eventSource&&(this.eventSource.close(),this.eventSource=null,console.log(`[PROJECT_SSE] Disconnected from project ${this.currentProject}`)),this.currentProject=null;}ngOnDestroy(){this.disconnect(),this.destroy$.next(),this.destroy$.complete();}static \u0275fac=function(e){return new(e||n)};static \u0275prov=x({token:n,factory:n.\u0275fac,providedIn:"root"})};var ce=(n,t)=>t.key,de=(n,t)=>t.status,le=(n,t)=>t.id;function pe(n,t){n&1&&bg(0,"mat-spinner",6);}function me(n,t){n&1&&(Is(0,"mat-icon"),qC(1,"add"),pl());}function ue(n,t){if(n&1&&(Is(0,"span",16),qC(1),pl()),n&2){let e=yC().$implicit,r=yC();JE(),Zg(r.filterCounts()[e.key]);}}function ge(n,t){if(n&1){let e=fC();Is(0,"button",15),Ag("click",function(){let o=If(e).$implicit,i=yC();return wf(i.setFilter(o.key))}),Is(1,"mat-icon",10),qC(2),pl(),Is(3,"span"),qC(4),pl(),tC(5,ue,2,1,"span",16),pl();}if(n&2){let e=t.$implicit,r=yC();Hg("active",r.activeFilter()===e.key),Cg("aria-selected",r.activeFilter()===e.key),JE(2),Zg(e.icon),JE(2),Zg(e.label),JE(),nC(r.filterCounts()[e.key]>0?5:-1);}}function _e(n,t){n&1&&(Is(0,"div",12),bg(1,"mat-spinner",17),Is(2,"p"),qC(3,"Loading tasks\u2026"),pl()());}function fe(n,t){if(n&1){let e=fC();Is(0,"p"),qC(1,"No tasks yet. Start your first one!"),pl(),Is(2,"button",19),Ag("click",function(){If(e);let o=yC(2);return wf(o.createTask())}),Is(3,"mat-icon"),qC(4,"add"),pl(),qC(5," New Task "),pl();}}function he(n,t){n&1&&(Is(0,"p"),qC(1,"No tasks in this category."),pl());}function ke(n,t){if(n&1&&(Is(0,"div",13)(1,"mat-icon",18),qC(2,"rocket_launch"),pl(),tC(3,fe,6,0)(4,he,2,0,"p"),pl()),n&2){let e=yC();JE(3),nC(e.activeFilter()==="all"?3:4);}}function ve(n,t){if(n&1){let e=fC();Is(0,"app-task-card",25),Ag("stopRequested",function(o){If(e);let i=yC(3);return wf(i.onStopRequested(o))})("deleteRequested",function(o){If(e);let i=yC(3);return wf(i.onDeleteRequested(o))})("starToggled",function(o){If(e);let i=yC(3);return wf(i.onStarToggled(o))})("markDoneRequested",function(o){If(e);let i=yC(3);return wf(i.onMarkDoneRequested(o))})("markActiveRequested",function(o){If(e);let i=yC(3);return wf(i.onMarkActiveRequested(o))}),pl();}if(n&2){let e=t.$implicit;Tg("task",e);}}function Ce(n,t){if(n&1&&(Is(0,"section",20)(1,"h2",21)(2,"mat-icon",22),qC(3),pl(),qC(4),Is(5,"span",23),qC(6),pl()(),Is(7,"div",14),iC(8,ve,1,1,"app-task-card",24,le),pl()()),n&2){let e=t.$implicit;JE(3),Zg(e.icon),JE(),vl(" ",e.label," "),JE(2),Zg(e.tasks.length),JE(2),sC(e.tasks);}}function be(n,t){if(n&1&&iC(0,Ce,10,3,"section",20,de),n&2){let e=yC();sC(e.taskGroups());}}function ye(n,t){if(n&1){let e=fC();Is(0,"app-task-card",25),Ag("stopRequested",function(o){If(e);let i=yC(2);return wf(i.onStopRequested(o))})("deleteRequested",function(o){If(e);let i=yC(2);return wf(i.onDeleteRequested(o))})("starToggled",function(o){If(e);let i=yC(2);return wf(i.onStarToggled(o))})("markDoneRequested",function(o){If(e);let i=yC(2);return wf(i.onMarkDoneRequested(o))})("markActiveRequested",function(o){If(e);let i=yC(2);return wf(i.onMarkActiveRequested(o))}),pl();}if(n&2){let e=t.$implicit;Tg("task",e);}}function xe(n,t){if(n&1&&(Is(0,"div",14),iC(1,ye,1,1,"app-task-card",24,le),pl()),n&2){let e=yC();JE(),sC(e.filteredTasks());}}var Te=[{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"}],se=class n{router=g(G);projectState=g(P);threadState=g(U);threadApi=g(N);taskStatus=g(R);userService=g(pe$1);projectApi=g(c);destroyRef=g(we);_projectEventStream=g(F);filters=Te;activeFilter=zi("all");starredOnly=zi(false);isCreating=zi(false);isLoadingList=F$1(this.threadState.isLoadingThreadList$,{initialValue:false});username=F$1(this.userService.username$,{initialValue:null});allTasks=this.taskStatus.tasks;filteredTasks=yT(()=>{let t=this.activeFilter(),e=this.username(),r=this.allTasks();return this.starredOnly()&&e&&(r=r.filter(o=>o.starring.includes(e))),t==="all"?r:r.filter(o=>o.status===t)});filterCounts=yT(()=>{let t=this.username(),e=this.allTasks();return this.starredOnly()&&t&&(e=e.filter(r=>r.starring.includes(t))),{all:e.length,"waiting-you":e.filter(r=>r.status==="waiting-you").length,"in-progress":e.filter(r=>r.status==="in-progress").length,paused:e.filter(r=>r.status==="paused").length,done:e.filter(r=>r.status==="done").length}});taskGroups=yT(()=>{let t=this.username(),e=this.allTasks();this.starredOnly()&&t&&(e=e.filter(o=>o.starring.includes(t)));let r=[{status:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt",tasks:[]},{status:"in-progress",label:"In progress",icon:"pending",tasks:[]},{status:"done",label:"Done",icon:"check_circle",tasks:[]},{status:"paused",label:"Paused",icon:"pause_circle",tasks:[]},{status:"error",label:"Error",icon:"error",tasks:[]}];for(let o of e){let i=r.find(m=>m.status===o.status);i&&i.tasks.push(o);}return r.filter(o=>o.tasks.length>0)});ngOnInit(){this.userService.fetchCurrentUser().pipe(U$1(this.destroyRef)).subscribe({error:t=>console.warn("[TASK-CONTROL] Could not fetch user:",t)});}setFilter(t){this.activeFilter.set(t);}toggleStarredFilter(){this.starredOnly.update(t=>!t);}createTask(){let t=this.projectState.getSelectedProjectId();!t||this.isCreating()||(this.isCreating.set(true),this.threadApi.createThread().pipe(U$1(this.destroyRef)).subscribe({next:e=>{this.isCreating.set(false),this.router.navigate(["project",t,"thread",e.thread.id]);},error:e=>{console.error("[TASK-CONTROL] Failed to create thread:",e),this.isCreating.set(false);}}));}onStopRequested(t){this.threadApi.stopThread(t).pipe(U$1(this.destroyRef)).subscribe({error:e=>console.error("[TASK-CONTROL] Failed to stop thread:",e)});}onDeleteRequested(t){this.threadApi.deleteThread(t).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:e=>console.error("[TASK-CONTROL] Failed to delete thread:",e)});}onStarToggled(t){let e=this.username();if(!e)return;let r=this.allTasks().find(m=>m.id===t);if(!r)return;let o=r.starring.includes(e),i=o?this.threadApi.unstarThread(t):this.threadApi.starThread(t);this.threadState.updateStarLocal(t,!o,e),i.pipe(U$1(this.destroyRef)).subscribe({error:m=>{console.error("[TASK-CONTROL] Failed to toggle star:",m),this.threadState.refreshThreadList();}});}onMarkDoneRequested(t){let e=this.projectState.getSelectedProjectId();e&&this.projectApi.markThreadDone(e,t).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:r=>console.error("[TASK-CONTROL] Failed to mark task as done:",r)});}onMarkActiveRequested(t){let e=this.projectState.getSelectedProjectId();e&&this.projectApi.markThreadActive(e,t).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:r=>console.error("[TASK-CONTROL] Failed to mark task as active:",r)});}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Rw({type:n,selectors:[["app-task-control"]],decls:25,vars:6,consts:[[1,"task-control"],[1,"tc-header"],[1,"tc-title-row"],[1,"tc-title"],[1,"title-icon"],["mat-flat-button","","aria-label","Start a new task",1,"new-task-btn",3,"click","disabled"],["diameter","16"],["role","tablist","aria-label","Filter tasks",1,"tc-filters"],["role","tab",1,"filter-chip",3,"active"],["role","switch","aria-label","Show starred tasks only",1,"filter-chip","starred-filter",3,"click"],[1,"filter-icon"],[1,"tc-grid-wrapper"],[1,"tc-loading"],[1,"tc-empty"],[1,"tc-grid"],["role","tab",1,"filter-chip",3,"click"],[1,"filter-badge"],["diameter","40"],[1,"empty-icon"],["mat-flat-button","",1,"new-task-btn",3,"click"],[1,"tc-group"],[1,"tc-group-title"],[1,"group-icon"],[1,"group-count"],[3,"task"],[3,"stopRequested","deleteRequested","starToggled","markDoneRequested","markActiveRequested","task"]],template:function(e,r){e&1&&(Is(0,"app-sidenav")(1,"div",0)(2,"header",1)(3,"div",2)(4,"h1",3)(5,"mat-icon",4),qC(6,"rocket_launch"),pl(),qC(7," Task Control "),pl(),Is(8,"button",5),Ag("click",function(){return r.createTask()}),tC(9,pe,1,0,"mat-spinner",6)(10,me,2,0,"mat-icon"),qC(11," New Task "),pl()(),Is(12,"nav",7),iC(13,ge,6,6,"button",8,ce),Is(15,"button",9),Ag("click",function(){return r.toggleStarredFilter()}),Is(16,"mat-icon",10),qC(17,"star"),pl(),Is(18,"span"),qC(19,"Starred"),pl()()()(),Is(20,"main",11),tC(21,_e,4,0,"div",12)(22,ke,5,1,"div",13)(23,be,2,0)(24,xe,3,0,"div",14),pl()()()),e&2&&(JE(8),Tg("disabled",r.isCreating()),JE(),nC(r.isCreating()?9:10),JE(4),sC(r.filters),JE(2),Hg("active",r.starredOnly()),Cg("aria-checked",r.starredOnly()),JE(6),nC(r.isLoadingList()?21:r.filteredTasks().length===0?22:r.activeFilter()==="all"?23:24));},dependencies:[A,St,yt,wt,hr,pr,Et,yt$1],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:flex;height:100vh;width:100%;overflow:hidden}.task-control[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:1.5rem;gap:1.25rem;box-sizing:border-box}.tc-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;flex-shrink:0}.tc-title-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem}.tc-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text)}.tc-title[_ngcontent-%COMP%] .title-icon[_ngcontent-%COMP%]{font-size:1.5rem;width:1.5rem;height:1.5rem;color:var(--color-primary)}.new-task-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;background:var(--color-primary);color:var(--color-text-inverse);border-radius:12px;font-weight:600;padding:0 1rem;height:36px;flex-shrink:0}.new-task-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem}.new-task-btn[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block}.tc-filters[_ngcontent-%COMP%]{display:flex;gap:.5rem;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:.375rem .875rem;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:#ffffff4d;color:var(--color-text-inverse)}.filter-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text)}.starred-filter.active[_ngcontent-%COMP%]{background:#f5a62326;border-color:#f5a623;color:#f5a623}.starred-filter.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:#f5a623}.tc-group[_ngcontent-%COMP%]{margin-bottom:1.5rem}.tc-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.tc-group-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.85rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.tc-group-title[_ngcontent-%COMP%] .group-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem}.tc-group-title[_ngcontent-%COMP%] .group-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .375rem;font-size:.75rem;font-weight:700;min-width:18px;text-align:center;line-height:18px}.tc-grid-wrapper[_ngcontent-%COMP%]{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.tc-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding-bottom:1rem}@media(max-width:600px){.tc-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.tc-loading[_ngcontent-%COMP%], .tc-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:100%;min-height:240px;color:var(--color-text-secondary);text-align:center}.tc-loading[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .tc-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.95rem}.empty-icon[_ngcontent-%COMP%]{font-size:3rem;width:3rem;height:3rem;opacity:.3}"]})};export{se as TaskControlComponent};
|
|
1
|
+
import {A,k as kt,b as bt}from'./chunk-DzlrRiVM.js';import {S as St}from'./chunk-CFZbDe5T.js';import {E as Et,y as yt$1,G as Ge}from'./chunk-Bn3R3VC2.js';import {g,G,P,U,N,p as pe$1,J as c,w as we,a as Gi,F as F$1,E as ET,c as U$1,h as Fw,i as hr,j as pr,m as ws,Q as QC,n as hl,o as Rg,q as oC,r as cC,t as nI,v as bg,x as iC,y as uC,A as Ug,T as Tg,u as ue$1,ca as _e$1,Y as x,an as ce$1,ap as Hy,l as le$1,V,S as Sg,a9 as gC,aa as wf,ac as EC,ab as Cf,a8 as Yg,a5 as Dl}from'./main-5PAOSHSM.js';import'./chunk-Dcftf7UY.js';import'./chunk-BSSDDOqW.js';import'./chunk-YfG457Nc.js';import'./chunk-S8F5_Te_.js';import {y as yt,w as wt}from'./chunk-tTmeIHGS.js';var R=class n{threadState=g(U);codayService=g(Ge);threadList=F$1(this.threadState.threadList$,{initialValue:[]});selectedThread=F$1(this.threadState.selectedThread$,{initialValue:null});isThinking=F$1(this.codayService.isThinking$,{initialValue:false});inviteEvent=F$1(this.codayService.currentInviteEvent$.pipe(ue$1(t=>t?.invite===_e$1?null:t)),{initialValue:null});tasks=ET(()=>{let t=this.threadList(),e=this.selectedThread(),r=this.isThinking(),o=this.inviteEvent();return t.filter(i=>!i.parentThreadId).map(i=>{let m=!!e&&i.id===e.id;return {id:i.id,name:i.name,summary:i.summary,modifiedDate:i.modifiedDate,starring:i.starring??[],users:i.users??[],status:this.deriveStatus(i,m,r,!!o),isActive:m,worktreeProject:i.worktreeProject}}).sort((i,m)=>{let q=kt[i.status]-kt[m.status];return q!==0?q:i.modifiedDate>m.modifiedDate?-1:1})});deriveStatus(t,e,r,o){let i=Date.now()-new Date(t.modifiedDate).getTime();return t.closedByUser?"done":t.pendingInvite?"waiting-you":e?r?"in-progress":"paused":i<bt?"in-progress":"paused"}static \u0275fac=function(e){return new(e||n)};static \u0275prov=x({token:n,factory:n.\u0275fac,providedIn:"root"})};var F=class n{projectState=g(P);threadState=g(U);destroy$=new ce$1;eventSource=null;currentProject=null;constructor(){this.projectState.selectedProject$.pipe(Hy(this.destroy$)).subscribe(t=>{let e=t?.name??null;e!==this.currentProject&&(this.disconnect(),e&&this.connect(e));});}connect(t,e=5e3){this.currentProject=t;let r=`/api/projects/${encodeURIComponent(t)}/event-stream`;console.log(`[PROJECT_SSE] Connecting to ${r}`),this.eventSource=new EventSource(r),this.eventSource.onmessage=o=>{try{let i=JSON.parse(o.data),m=le$1(i);if(!m)return;m instanceof V&&(console.log("[PROJECT_SSE] ThreadUpdateEvent \u2014 refreshing thread list"),this.threadState.refreshThreadList());}catch(i){console.warn("[PROJECT_SSE] Failed to parse event:",i);}},this.eventSource.onerror=()=>{this.eventSource?.readyState===EventSource.CLOSED&&(console.warn(`[PROJECT_SSE] Connection closed for ${t}, reconnecting in ${e}ms`),this.eventSource=null,setTimeout(()=>{this.currentProject===t&&this.connect(t,Math.min(e*2,6e4));},e));};}disconnect(){this.eventSource&&(this.eventSource.close(),this.eventSource=null,console.log(`[PROJECT_SSE] Disconnected from project ${this.currentProject}`)),this.currentProject=null;}ngOnDestroy(){this.disconnect(),this.destroy$.next(),this.destroy$.complete();}static \u0275fac=function(e){return new(e||n)};static \u0275prov=x({token:n,factory:n.\u0275fac,providedIn:"root"})};var ce=(n,t)=>t.key,de=(n,t)=>t.status,le=(n,t)=>t.id;function pe(n,t){n&1&&Sg(0,"mat-spinner",6);}function me(n,t){n&1&&(ws(0,"mat-icon"),QC(1,"add"),hl());}function ue(n,t){if(n&1&&(ws(0,"span",16),QC(1),hl()),n&2){let e=EC().$implicit,r=EC();nI(),Yg(r.filterCounts()[e.key]);}}function ge(n,t){if(n&1){let e=gC();ws(0,"button",15),Rg("click",function(){let o=wf(e).$implicit,i=EC();return Cf(i.setFilter(o.key))}),ws(1,"mat-icon",10),QC(2),hl(),ws(3,"span"),QC(4),hl(),oC(5,ue,2,1,"span",16),hl();}if(n&2){let e=t.$implicit,r=EC();Ug("active",r.activeFilter()===e.key),Tg("aria-selected",r.activeFilter()===e.key),nI(2),Yg(e.icon),nI(2),Yg(e.label),nI(),iC(r.filterCounts()[e.key]>0?5:-1);}}function _e(n,t){n&1&&(ws(0,"div",12),Sg(1,"mat-spinner",17),ws(2,"p"),QC(3,"Loading tasks\u2026"),hl()());}function fe(n,t){if(n&1){let e=gC();ws(0,"p"),QC(1,"No tasks yet. Start your first one!"),hl(),ws(2,"button",19),Rg("click",function(){wf(e);let o=EC(2);return Cf(o.createTask())}),ws(3,"mat-icon"),QC(4,"add"),hl(),QC(5," New Task "),hl();}}function he(n,t){n&1&&(ws(0,"p"),QC(1,"No tasks in this category."),hl());}function ke(n,t){if(n&1&&(ws(0,"div",13)(1,"mat-icon",18),QC(2,"rocket_launch"),hl(),oC(3,fe,6,0)(4,he,2,0,"p"),hl()),n&2){let e=EC();nI(3),iC(e.activeFilter()==="all"?3:4);}}function ve(n,t){if(n&1){let e=gC();ws(0,"app-task-card",25),Rg("stopRequested",function(o){wf(e);let i=EC(3);return Cf(i.onStopRequested(o))})("deleteRequested",function(o){wf(e);let i=EC(3);return Cf(i.onDeleteRequested(o))})("starToggled",function(o){wf(e);let i=EC(3);return Cf(i.onStarToggled(o))})("markDoneRequested",function(o){wf(e);let i=EC(3);return Cf(i.onMarkDoneRequested(o))})("markActiveRequested",function(o){wf(e);let i=EC(3);return Cf(i.onMarkActiveRequested(o))}),hl();}if(n&2){let e=t.$implicit;bg("task",e);}}function Ce(n,t){if(n&1&&(ws(0,"section",20)(1,"h2",21)(2,"mat-icon",22),QC(3),hl(),QC(4),ws(5,"span",23),QC(6),hl()(),ws(7,"div",14),cC(8,ve,1,1,"app-task-card",24,le),hl()()),n&2){let e=t.$implicit;nI(3),Yg(e.icon),nI(),Dl(" ",e.label," "),nI(2),Yg(e.tasks.length),nI(2),uC(e.tasks);}}function be(n,t){if(n&1&&cC(0,Ce,10,3,"section",20,de),n&2){let e=EC();uC(e.taskGroups());}}function ye(n,t){if(n&1){let e=gC();ws(0,"app-task-card",25),Rg("stopRequested",function(o){wf(e);let i=EC(2);return Cf(i.onStopRequested(o))})("deleteRequested",function(o){wf(e);let i=EC(2);return Cf(i.onDeleteRequested(o))})("starToggled",function(o){wf(e);let i=EC(2);return Cf(i.onStarToggled(o))})("markDoneRequested",function(o){wf(e);let i=EC(2);return Cf(i.onMarkDoneRequested(o))})("markActiveRequested",function(o){wf(e);let i=EC(2);return Cf(i.onMarkActiveRequested(o))}),hl();}if(n&2){let e=t.$implicit;bg("task",e);}}function xe(n,t){if(n&1&&(ws(0,"div",14),cC(1,ye,1,1,"app-task-card",24,le),hl()),n&2){let e=EC();nI(),uC(e.filteredTasks());}}var Te=[{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"}],se=class n{router=g(G);projectState=g(P);threadState=g(U);threadApi=g(N);taskStatus=g(R);userService=g(pe$1);projectApi=g(c);destroyRef=g(we);_projectEventStream=g(F);filters=Te;activeFilter=Gi("all");starredOnly=Gi(false);isCreating=Gi(false);isLoadingList=F$1(this.threadState.isLoadingThreadList$,{initialValue:false});username=F$1(this.userService.username$,{initialValue:null});allTasks=this.taskStatus.tasks;filteredTasks=ET(()=>{let t=this.activeFilter(),e=this.username(),r=this.allTasks();return this.starredOnly()&&e&&(r=r.filter(o=>o.starring.includes(e))),t==="all"?r:r.filter(o=>o.status===t)});filterCounts=ET(()=>{let t=this.username(),e=this.allTasks();return this.starredOnly()&&t&&(e=e.filter(r=>r.starring.includes(t))),{all:e.length,"waiting-you":e.filter(r=>r.status==="waiting-you").length,"in-progress":e.filter(r=>r.status==="in-progress").length,paused:e.filter(r=>r.status==="paused").length,done:e.filter(r=>r.status==="done").length}});taskGroups=ET(()=>{let t=this.username(),e=this.allTasks();this.starredOnly()&&t&&(e=e.filter(o=>o.starring.includes(t)));let r=[{status:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt",tasks:[]},{status:"in-progress",label:"In progress",icon:"pending",tasks:[]},{status:"done",label:"Done",icon:"check_circle",tasks:[]},{status:"paused",label:"Paused",icon:"pause_circle",tasks:[]},{status:"error",label:"Error",icon:"error",tasks:[]}];for(let o of e){let i=r.find(m=>m.status===o.status);i&&i.tasks.push(o);}return r.filter(o=>o.tasks.length>0)});ngOnInit(){this.userService.fetchCurrentUser().pipe(U$1(this.destroyRef)).subscribe({error:t=>console.warn("[TASK-CONTROL] Could not fetch user:",t)});}setFilter(t){this.activeFilter.set(t);}toggleStarredFilter(){this.starredOnly.update(t=>!t);}createTask(){let t=this.projectState.getSelectedProjectId();!t||this.isCreating()||(this.isCreating.set(true),this.threadApi.createThread().pipe(U$1(this.destroyRef)).subscribe({next:e=>{this.isCreating.set(false),this.router.navigate(["project",t,"thread",e.thread.id]);},error:e=>{console.error("[TASK-CONTROL] Failed to create thread:",e),this.isCreating.set(false);}}));}onStopRequested(t){this.threadApi.stopThread(t).pipe(U$1(this.destroyRef)).subscribe({error:e=>console.error("[TASK-CONTROL] Failed to stop thread:",e)});}onDeleteRequested(t){this.threadApi.deleteThread(t).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:e=>console.error("[TASK-CONTROL] Failed to delete thread:",e)});}onStarToggled(t){let e=this.username();if(!e)return;let r=this.allTasks().find(m=>m.id===t);if(!r)return;let o=r.starring.includes(e),i=o?this.threadApi.unstarThread(t):this.threadApi.starThread(t);this.threadState.updateStarLocal(t,!o,e),i.pipe(U$1(this.destroyRef)).subscribe({error:m=>{console.error("[TASK-CONTROL] Failed to toggle star:",m),this.threadState.refreshThreadList();}});}onMarkDoneRequested(t){let e=this.projectState.getSelectedProjectId();e&&this.projectApi.markThreadDone(e,t).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:r=>console.error("[TASK-CONTROL] Failed to mark task as done:",r)});}onMarkActiveRequested(t){let e=this.projectState.getSelectedProjectId();e&&this.projectApi.markThreadActive(e,t).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:r=>console.error("[TASK-CONTROL] Failed to mark task as active:",r)});}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Fw({type:n,selectors:[["app-task-control"]],decls:25,vars:6,consts:[[1,"task-control"],[1,"tc-header"],[1,"tc-title-row"],[1,"tc-title"],[1,"title-icon"],["mat-flat-button","","aria-label","Start a new task",1,"new-task-btn",3,"click","disabled"],["diameter","16"],["role","tablist","aria-label","Filter tasks",1,"tc-filters"],["role","tab",1,"filter-chip",3,"active"],["role","switch","aria-label","Show starred tasks only",1,"filter-chip","starred-filter",3,"click"],[1,"filter-icon"],[1,"tc-grid-wrapper"],[1,"tc-loading"],[1,"tc-empty"],[1,"tc-grid"],["role","tab",1,"filter-chip",3,"click"],[1,"filter-badge"],["diameter","40"],[1,"empty-icon"],["mat-flat-button","",1,"new-task-btn",3,"click"],[1,"tc-group"],[1,"tc-group-title"],[1,"group-icon"],[1,"group-count"],[3,"task"],[3,"stopRequested","deleteRequested","starToggled","markDoneRequested","markActiveRequested","task"]],template:function(e,r){e&1&&(ws(0,"app-sidenav")(1,"div",0)(2,"header",1)(3,"div",2)(4,"h1",3)(5,"mat-icon",4),QC(6,"rocket_launch"),hl(),QC(7," Task Control "),hl(),ws(8,"button",5),Rg("click",function(){return r.createTask()}),oC(9,pe,1,0,"mat-spinner",6)(10,me,2,0,"mat-icon"),QC(11," New Task "),hl()(),ws(12,"nav",7),cC(13,ge,6,6,"button",8,ce),ws(15,"button",9),Rg("click",function(){return r.toggleStarredFilter()}),ws(16,"mat-icon",10),QC(17,"star"),hl(),ws(18,"span"),QC(19,"Starred"),hl()()()(),ws(20,"main",11),oC(21,_e,4,0,"div",12)(22,ke,5,1,"div",13)(23,be,2,0)(24,xe,3,0,"div",14),hl()()()),e&2&&(nI(8),bg("disabled",r.isCreating()),nI(),iC(r.isCreating()?9:10),nI(4),uC(r.filters),nI(2),Ug("active",r.starredOnly()),Tg("aria-checked",r.starredOnly()),nI(6),iC(r.isLoadingList()?21:r.filteredTasks().length===0?22:r.activeFilter()==="all"?23:24));},dependencies:[A,St,yt,wt,hr,pr,Et,yt$1],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:flex;height:100vh;width:100%;overflow:hidden}.task-control[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:1.5rem;gap:1.25rem;box-sizing:border-box}.tc-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;flex-shrink:0}.tc-title-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem}.tc-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text)}.tc-title[_ngcontent-%COMP%] .title-icon[_ngcontent-%COMP%]{font-size:1.5rem;width:1.5rem;height:1.5rem;color:var(--color-primary)}.new-task-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;background:var(--color-primary);color:var(--color-text-inverse);border-radius:12px;font-weight:600;padding:0 1rem;height:36px;flex-shrink:0}.new-task-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem}.new-task-btn[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block}.tc-filters[_ngcontent-%COMP%]{display:flex;gap:.5rem;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:.375rem .875rem;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:#ffffff4d;color:var(--color-text-inverse)}.filter-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text)}.starred-filter.active[_ngcontent-%COMP%]{background:#f5a62326;border-color:#f5a623;color:#f5a623}.starred-filter.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:#f5a623}.tc-group[_ngcontent-%COMP%]{margin-bottom:1.5rem}.tc-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.tc-group-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.85rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.tc-group-title[_ngcontent-%COMP%] .group-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem}.tc-group-title[_ngcontent-%COMP%] .group-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .375rem;font-size:.75rem;font-weight:700;min-width:18px;text-align:center;line-height:18px}.tc-grid-wrapper[_ngcontent-%COMP%]{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.tc-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding-bottom:1rem}@media(max-width:600px){.tc-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.tc-loading[_ngcontent-%COMP%], .tc-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:100%;min-height:240px;color:var(--color-text-secondary);text-align:center}.tc-loading[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .tc-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.95rem}.empty-icon[_ngcontent-%COMP%]{font-size:3rem;width:3rem;height:3rem;opacity:.3}"]})};export{se as TaskControlComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {bS as Da,a7 as va,X as br,cE as Od}from'./main-5PAOSHSM.js';function i(t,o,p){return t.pipe(Da(()=>o().pipe(va(()=>br(p)))),Od({bufferSize:1,refCount:true}))}export{i};
|