@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
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ae}from"./chunk-B2FFL2F7.js";import{a as ie,b as re}from"./chunk-J37E3F3X.js";import{a as oe}from"./chunk-IFXDK4GQ.js";import{a as te,b as ne}from"./chunk-2GTCISR4.js";import{a as q}from"./chunk-QSQYSFNQ.js";import{a as J,b as Q,c as X}from"./chunk-MSXCVNKO.js";import{a as Y}from"./chunk-LI36MCDZ.js";import{a as Z}from"./chunk-SDPOEKGB.js";import{a as ee}from"./chunk-VNCIHM33.js";import{a as H,b as W}from"./chunk-6LO3ANKL.js";import"./chunk-DE5MXWYR.js";import{a as z,d as L}from"./chunk-GAZJZBKP.js";import{b as T,d as F}from"./chunk-QWMDAFBN.js";import{b as N}from"./chunk-PKW64TFV.js";import"./chunk-ZAM3WGZM.js";import"./chunk-AJOXSD6I.js";import"./chunk-53STPEYQ.js";import"./chunk-AK6F2DC7.js";import"./chunk-IXD43YQI.js";import"./chunk-WPC6XC7P.js";import"./chunk-XJUBZLY2.js";import"./chunk-B2QA6UZX.js";import{Cb as S,Db as f,Eb as M,Fb as h,Gc as w,Ka as l,Rc as k,Tb as t,Ub as C,Wa as b,ca as p,dc as O,ec as I,kb as x,lb as g,mb as u,pb as y,qb as A,rb as E,sb as a,ta as _,tb as r,ub as P,vb as c,wb as d}from"./chunk-3JGMGRXW.js";var i=()=>!0;var me=[{path:"",loadComponent:()=>import("./chunk-O3U2KGCT.js").then(e=>e.AgentosShellComponent),children:[{path:":namespaceId/cases",canActivate:[i],loadComponent:()=>import("./chunk-AVSWQR2Q.js").then(e=>e.CaseShellComponent),children:[{path:"",loadComponent:()=>import("./chunk-E6KB6VWH.js").then(e=>e.CaseHomeComponent)},{path:":caseId",loadComponent:()=>import("./chunk-MFKNL6GY.js").then(e=>e.CaseChatComponent)}]},{path:"",loadComponent:()=>import("./chunk-I5EEQETN.js").then(e=>e.LayoutComponent),children:[{path:"namespaces/new",canActivate:[i],loadComponent:()=>import("./chunk-NAQEVUOV.js").then(e=>e.NamespaceFormComponent)},{path:"namespaces/:namespaceId/edit",canActivate:[i],loadComponent:()=>import("./chunk-NAQEVUOV.js").then(e=>e.NamespaceFormComponent)},{path:"namespaces",canActivate:[i],loadComponent:()=>import("./chunk-NUTSPDGN.js").then(e=>e.NamespaceListComponent)},{path:":namespaceId/integrations/new",canActivate:[i],loadComponent:()=>import("./chunk-S66NFQG3.js").then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations/:integrationId/edit",canActivate:[i],loadComponent:()=>import("./chunk-S66NFQG3.js").then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations",canActivate:[i],loadComponent:()=>import("./chunk-OWYVTOTW.js").then(e=>e.NamespaceIntegrationsComponent)},{path:":namespaceId/ai-providers/new",canActivate:[i],loadComponent:()=>import("./chunk-U4662WTU.js").then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers/:aiProviderId/edit",canActivate:[i],loadComponent:()=>import("./chunk-U4662WTU.js").then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers",canActivate:[i],loadComponent:()=>import("./chunk-I7DZEVJV.js").then(e=>e.NamespaceAiProvidersComponent)},{path:":namespaceId/ai-models/new",canActivate:[i],loadComponent:()=>import("./chunk-IZFHJAEI.js").then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models/:modelId/edit",canActivate:[i],loadComponent:()=>import("./chunk-IZFHJAEI.js").then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models",canActivate:[i],loadComponent:()=>import("./chunk-OHZKVDVY.js").then(e=>e.NamespaceAiModelsComponent)},{path:"admin/users/new",canActivate:[i],loadComponent:()=>import("./chunk-3D3KN52V.js").then(e=>e.UserFormComponent)},{path:"admin/users/:userId/edit",canActivate:[i],loadComponent:()=>import("./chunk-3D3KN52V.js").then(e=>e.UserFormComponent)},{path:"admin/users",canActivate:[i],loadComponent:()=>import("./chunk-VELN6XU5.js").then(e=>e.UserListComponent)},{path:"me",canActivate:[i],loadComponent:()=>import("./chunk-EPA5P2I6.js").then(e=>e.UserProfileComponent)},{path:"",redirectTo:"namespaces",pathMatch:"full"}]}]}];function V(e,o){e&1&&(c(0,"p",6),t(1,"No cases yet. Start one below."),d())}function K(e,o){if(e&1&&(c(0,"div",7)(1,"span",8),t(2),d(),c(3,"span",9),t(4),d()()),e&2){let n=o.$implicit;l(2),C(n.id),l(2),C(n.status)}}function $(e,o){if(e&1&&y(0,K,5,2,"div",7,x().trackById,!0),e&2){let n=h();A(n)}}function j(e,o){e&1&&g(0,V,2,0,"p",6)(1,$,2,0),e&2&&u(o.length===0?0:1)}var D=class e{http=p(k);router=p(F);route=p(T);config=p(z);caseController=p(L);namespaceId=this.route.snapshot.params.namespaceId;cases$=this.caseController.listByParentCase(this.namespaceId);inputValue=_("");onInput(o){this.inputValue.set(o.target.value)}onKeydown(o){o.key==="Enter"&&!o.shiftKey&&(o.preventDefault(),this.submit())}submit(){this.inputValue().trim()&&this.http.post(`${this.config.basePath}/api/cases`,{namespaceId:this.namespaceId,metadata:{}}).subscribe(n=>{this.inputValue.set(""),this.router.navigate(["/agentos",this.namespaceId,"cases",n.id??""])})}trackById(o,n){return n.id??""}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=b({type:e,selectors:[["agentos-case-list"]],decls:11,vars:4,consts:[[1,"case-list"],[1,"case-list__header"],[1,"case-list__items"],[1,"case-list__composer"],["placeholder","Start a new case\u2026","rows","3",1,"case-list__input",3,"input","keydown","value"],[1,"case-list__hint"],[1,"case-list__empty"],[1,"case-list__item"],[1,"case-list__item-id"],[1,"case-list__item-status"]],template:function(n,s){if(n&1&&(c(0,"div",0)(1,"header",1)(2,"h2"),t(3,"Cases"),d()(),c(4,"div",2),g(5,j,2,1),O(6,"async"),d(),c(7,"div",3)(8,"textarea",4),M("input",function(v){return s.onInput(v)})("keydown",function(v){return s.onKeydown(v)}),d(),c(9,"p",5),t(10,"Press Enter to send, Shift+Enter for new line"),d()()()),n&2){let m;l(5),u((m=I(6,2,s.cases$))?5:-1,m),l(3),S("value",s.inputValue())}},dependencies:[w],styles:[".case-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;max-width:720px;margin:0 auto;padding:2rem;gap:1.5rem}.case-list__header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.case-list__items[_ngcontent-%COMP%]{flex:1;overflow-y:auto}.case-list__empty[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.case-list__composer[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.case-list__input[_ngcontent-%COMP%]{width:100%;resize:none;padding:.75rem 1rem;border-radius:12px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));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));color:var(--color-text, #1d1d1f);font-size:.95rem;font-family:inherit;line-height:1.5;outline:none;box-sizing:border-box;transition:border-color .15s ease}.case-list__input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.case-list__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.case-list__hint[_ngcontent-%COMP%]{margin:0;font-size:.75rem;color:var(--color-text-secondary, #6e6e73);opacity:.7}"]})};function G(e,o){if(e&1&&(a(0,"p",11),t(1," Last action: "),a(2,"strong"),t(3),r()()),e&2){let n=h();l(3),C(n.lastAction())}}var R=class e{lastAction=_(null);onSend(){this.lastAction.set("send")}onStop(){this.lastAction.set("stop")}onAttach(){this.lastAction.set("attach")}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=b({type:e,selectors:[["agentos-hello"]],decls:35,vars:2,consts:[[1,"hello-agentos"],[1,"card"],[1,"badge"],[1,"principles"],[1,"demo"],[1,"demo-label"],[1,"demo-buttons"],["icon","send","variant","primary","title","Send",3,"action"],["icon","stop","variant","danger","title","Stop",3,"action"],["icon","attach_file","variant","default","title","Attach",3,"action"],["icon","mic","variant","default","title","Record",3,"action","disabled"],[1,"demo-feedback"]],template:function(n,s){n&1&&(a(0,"div",0)(1,"div",1)(2,"div",2),t(3,"AgentOS UI"),r(),a(4,"h1"),t(5,"Hello AgentOS"),r(),a(6,"p"),t(7," This component lives in "),a(8,"code"),t(9,"libs/agentos-ui"),r(),t(10," \u2014 isolated from Coday internals, ready to be published as "),a(11,"code"),t(12,"@whoz-oss/agentos-ui"),r(),t(13,". "),r(),P(14,"agentos-backend-status"),a(15,"ul",3)(16,"li"),t(17,"\u2726 No imports from Coday app"),r(),a(18,"li"),t(19,"\u2726 CSS custom properties as host contract"),r(),a(20,"li"),t(21,"\u2726 Standalone Angular components"),r(),a(22,"li"),t(23,"\u2726 Signals-first reactive state"),r()(),a(24,"div",4)(25,"p",5),t(26,"ds-icon-button from "),a(27,"code"),t(28,"@whoz-oss/design-system"),r()(),a(29,"div",6)(30,"ds-icon-button",7),f("action",function(){return s.onSend()}),r(),a(31,"ds-icon-button",8),f("action",function(){return s.onStop()}),r(),a(32,"ds-icon-button",9),f("action",function(){return s.onAttach()}),r(),a(33,"ds-icon-button",10),f("action",function(){return s.onAttach()}),r()(),g(34,G,4,1,"p",11),r()()()),n&2&&(l(33),E("disabled",!0),l(),u(s.lastAction()?34:-1))},dependencies:[N,H],styles:['@charset "UTF-8";.hello-agentos[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.card[_ngcontent-%COMP%]{background:var(--glass-bg, rgba(255, 255, 255, .72));border:1px solid var(--glass-border, rgba(255, 255, 255, .18));box-shadow:var(--glass-shadow, 0 8px 32px 0 rgba(31, 38, 135, .15));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));border-radius:20px;padding:3rem;max-width:480px;width:100%;text-align:center}.badge[_ngcontent-%COMP%]{display:inline-block;background:var(--color-primary, #007aff);color:var(--color-text-inverse, #ffffff);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.25rem .75rem;border-radius:100px;margin-bottom:1.5rem}h1[_ngcontent-%COMP%]{color:var(--color-text, #1d1d1f);font-size:2rem;font-weight:700;margin:0 0 1rem;letter-spacing:-.02em}p[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);line-height:1.6;margin:0 0 1.5rem}p[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--color-code-bg, rgba(142, 142, 147, .12));color:var(--color-code-text, #ff375f);padding:.125rem .375rem;border-radius:6px;font-size:.875em;border:1px solid var(--color-border, rgba(0, 0, 0, .1))}.principles[_ngcontent-%COMP%]{list-style:none;margin:0 0 1.5rem;padding:0;text-align:left;display:flex;flex-direction:column;gap:.5rem}.principles[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;padding:.5rem .75rem;background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-radius:8px;border:1px solid var(--color-border-light, rgba(40, 40, 40, .08))}.demo[_ngcontent-%COMP%]{border-top:1px solid var(--color-border-light, rgba(40, 40, 40, .08));padding-top:1.25rem}.demo[_ngcontent-%COMP%] .demo-label[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.8rem;margin:0 0 .75rem}.demo[_ngcontent-%COMP%] .demo-label[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--color-code-bg, rgba(142, 142, 147, .12));color:var(--color-code-text, #ff375f);padding:.125rem .375rem;border-radius:6px;font-size:.875em;border:1px solid var(--color-border, rgba(0, 0, 0, .1))}.demo[_ngcontent-%COMP%] .demo-buttons[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center;justify-content:center;padding:.75rem;background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-radius:12px;border:1px solid var(--color-border-light, rgba(40, 40, 40, .08))}.demo[_ngcontent-%COMP%] .demo-feedback[_ngcontent-%COMP%]{margin:.75rem 0 0;font-size:.85rem;color:var(--color-text-secondary, #6e6e73)}.demo[_ngcontent-%COMP%] .demo-feedback[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--color-primary, #007aff)}']})};export{me as AGENTOS_ROUTES,q as AgentosShellComponent,H as BackendStatusComponent,Z as CaseChatComponent,Q as CaseDrawerComponent,Y as CaseHomeComponent,J as CaseItemComponent,D as CaseListComponent,X as CaseShellComponent,W as HeaderComponent,R as HelloAgentosComponent,ee as LayoutComponent,te as NamespaceItemComponent,ne as NamespaceListComponent,oe as UserAdminStateService,ae as UserFormComponent,ie as UserItemComponent,re as UserListComponent,i as agentosReadyGuard};
|
|
1
|
+
import{a as ae}from"./chunk-B2FFL2F7.js";import{a as ie,b as re}from"./chunk-V6CWNYSW.js";import{a as oe}from"./chunk-IFXDK4GQ.js";import{a as te,b as ne}from"./chunk-H76RJSSA.js";import{a as q}from"./chunk-QSQYSFNQ.js";import{a as J,b as Q,c as X}from"./chunk-G2OAJDIX.js";import{a as Y}from"./chunk-CH66E3U2.js";import{a as Z}from"./chunk-OSNI7IJI.js";import{a as ee}from"./chunk-VNCIHM33.js";import{a as H,b as W}from"./chunk-6LO3ANKL.js";import"./chunk-DE5MXWYR.js";import{a as z,d as L}from"./chunk-GAZJZBKP.js";import{b as T,d as F}from"./chunk-QWMDAFBN.js";import{b as N}from"./chunk-LR7LOR4R.js";import"./chunk-ZAM3WGZM.js";import"./chunk-53STPEYQ.js";import"./chunk-AK6F2DC7.js";import"./chunk-AJOXSD6I.js";import"./chunk-IXD43YQI.js";import"./chunk-WPC6XC7P.js";import"./chunk-XJUBZLY2.js";import"./chunk-B2QA6UZX.js";import{Cb as S,Db as f,Eb as M,Fb as h,Gc as w,Ka as l,Rc as k,Tb as t,Ub as C,Wa as b,ca as p,dc as O,ec as I,kb as x,lb as g,mb as u,pb as y,qb as A,rb as E,sb as a,ta as _,tb as r,ub as P,vb as c,wb as d}from"./chunk-3JGMGRXW.js";var i=()=>!0;var me=[{path:"",loadComponent:()=>import("./chunk-O3U2KGCT.js").then(e=>e.AgentosShellComponent),children:[{path:":namespaceId/cases",canActivate:[i],loadComponent:()=>import("./chunk-TVFEAMIC.js").then(e=>e.CaseShellComponent),children:[{path:"",loadComponent:()=>import("./chunk-KUVTFZWT.js").then(e=>e.CaseHomeComponent)},{path:":caseId",loadComponent:()=>import("./chunk-R47KFHEX.js").then(e=>e.CaseChatComponent)}]},{path:"",loadComponent:()=>import("./chunk-I5EEQETN.js").then(e=>e.LayoutComponent),children:[{path:"namespaces/new",canActivate:[i],loadComponent:()=>import("./chunk-NAQEVUOV.js").then(e=>e.NamespaceFormComponent)},{path:"namespaces/:namespaceId/edit",canActivate:[i],loadComponent:()=>import("./chunk-NAQEVUOV.js").then(e=>e.NamespaceFormComponent)},{path:"namespaces",canActivate:[i],loadComponent:()=>import("./chunk-WGDWYJII.js").then(e=>e.NamespaceListComponent)},{path:":namespaceId/integrations/new",canActivate:[i],loadComponent:()=>import("./chunk-H7YMYOPC.js").then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations/:integrationId/edit",canActivate:[i],loadComponent:()=>import("./chunk-H7YMYOPC.js").then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations",canActivate:[i],loadComponent:()=>import("./chunk-CYLHTE22.js").then(e=>e.NamespaceIntegrationsComponent)},{path:":namespaceId/ai-providers/new",canActivate:[i],loadComponent:()=>import("./chunk-U4662WTU.js").then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers/:aiProviderId/edit",canActivate:[i],loadComponent:()=>import("./chunk-U4662WTU.js").then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers",canActivate:[i],loadComponent:()=>import("./chunk-H5SXHH6A.js").then(e=>e.NamespaceAiProvidersComponent)},{path:":namespaceId/ai-models/new",canActivate:[i],loadComponent:()=>import("./chunk-IZFHJAEI.js").then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models/:modelId/edit",canActivate:[i],loadComponent:()=>import("./chunk-IZFHJAEI.js").then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models",canActivate:[i],loadComponent:()=>import("./chunk-OR62LCJX.js").then(e=>e.NamespaceAiModelsComponent)},{path:"admin/users/new",canActivate:[i],loadComponent:()=>import("./chunk-3D3KN52V.js").then(e=>e.UserFormComponent)},{path:"admin/users/:userId/edit",canActivate:[i],loadComponent:()=>import("./chunk-3D3KN52V.js").then(e=>e.UserFormComponent)},{path:"admin/users",canActivate:[i],loadComponent:()=>import("./chunk-NCBEPUYQ.js").then(e=>e.UserListComponent)},{path:"me",canActivate:[i],loadComponent:()=>import("./chunk-EPA5P2I6.js").then(e=>e.UserProfileComponent)},{path:"",redirectTo:"namespaces",pathMatch:"full"}]}]}];function V(e,o){e&1&&(c(0,"p",6),t(1,"No cases yet. Start one below."),d())}function K(e,o){if(e&1&&(c(0,"div",7)(1,"span",8),t(2),d(),c(3,"span",9),t(4),d()()),e&2){let n=o.$implicit;l(2),C(n.id),l(2),C(n.status)}}function $(e,o){if(e&1&&y(0,K,5,2,"div",7,x().trackById,!0),e&2){let n=h();A(n)}}function j(e,o){e&1&&g(0,V,2,0,"p",6)(1,$,2,0),e&2&&u(o.length===0?0:1)}var D=class e{http=p(k);router=p(F);route=p(T);config=p(z);caseController=p(L);namespaceId=this.route.snapshot.params.namespaceId;cases$=this.caseController.listByParentCase(this.namespaceId);inputValue=_("");onInput(o){this.inputValue.set(o.target.value)}onKeydown(o){o.key==="Enter"&&!o.shiftKey&&(o.preventDefault(),this.submit())}submit(){this.inputValue().trim()&&this.http.post(`${this.config.basePath}/api/cases`,{namespaceId:this.namespaceId,metadata:{}}).subscribe(n=>{this.inputValue.set(""),this.router.navigate(["/agentos",this.namespaceId,"cases",n.id??""])})}trackById(o,n){return n.id??""}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=b({type:e,selectors:[["agentos-case-list"]],decls:11,vars:4,consts:[[1,"case-list"],[1,"case-list__header"],[1,"case-list__items"],[1,"case-list__composer"],["placeholder","Start a new case\u2026","rows","3",1,"case-list__input",3,"input","keydown","value"],[1,"case-list__hint"],[1,"case-list__empty"],[1,"case-list__item"],[1,"case-list__item-id"],[1,"case-list__item-status"]],template:function(n,s){if(n&1&&(c(0,"div",0)(1,"header",1)(2,"h2"),t(3,"Cases"),d()(),c(4,"div",2),g(5,j,2,1),O(6,"async"),d(),c(7,"div",3)(8,"textarea",4),M("input",function(v){return s.onInput(v)})("keydown",function(v){return s.onKeydown(v)}),d(),c(9,"p",5),t(10,"Press Enter to send, Shift+Enter for new line"),d()()()),n&2){let m;l(5),u((m=I(6,2,s.cases$))?5:-1,m),l(3),S("value",s.inputValue())}},dependencies:[w],styles:[".case-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;max-width:720px;margin:0 auto;padding:2rem;gap:1.5rem}.case-list__header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.case-list__items[_ngcontent-%COMP%]{flex:1;overflow-y:auto}.case-list__empty[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.case-list__composer[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.case-list__input[_ngcontent-%COMP%]{width:100%;resize:none;padding:.75rem 1rem;border-radius:12px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));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));color:var(--color-text, #1d1d1f);font-size:.95rem;font-family:inherit;line-height:1.5;outline:none;box-sizing:border-box;transition:border-color .15s ease}.case-list__input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.case-list__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.case-list__hint[_ngcontent-%COMP%]{margin:0;font-size:.75rem;color:var(--color-text-secondary, #6e6e73);opacity:.7}"]})};function G(e,o){if(e&1&&(a(0,"p",11),t(1," Last action: "),a(2,"strong"),t(3),r()()),e&2){let n=h();l(3),C(n.lastAction())}}var R=class e{lastAction=_(null);onSend(){this.lastAction.set("send")}onStop(){this.lastAction.set("stop")}onAttach(){this.lastAction.set("attach")}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=b({type:e,selectors:[["agentos-hello"]],decls:35,vars:2,consts:[[1,"hello-agentos"],[1,"card"],[1,"badge"],[1,"principles"],[1,"demo"],[1,"demo-label"],[1,"demo-buttons"],["icon","send","variant","primary","title","Send",3,"action"],["icon","stop","variant","danger","title","Stop",3,"action"],["icon","attach_file","variant","default","title","Attach",3,"action"],["icon","mic","variant","default","title","Record",3,"action","disabled"],[1,"demo-feedback"]],template:function(n,s){n&1&&(a(0,"div",0)(1,"div",1)(2,"div",2),t(3,"AgentOS UI"),r(),a(4,"h1"),t(5,"Hello AgentOS"),r(),a(6,"p"),t(7," This component lives in "),a(8,"code"),t(9,"libs/agentos-ui"),r(),t(10," \u2014 isolated from Coday internals, ready to be published as "),a(11,"code"),t(12,"@whoz-oss/agentos-ui"),r(),t(13,". "),r(),P(14,"agentos-backend-status"),a(15,"ul",3)(16,"li"),t(17,"\u2726 No imports from Coday app"),r(),a(18,"li"),t(19,"\u2726 CSS custom properties as host contract"),r(),a(20,"li"),t(21,"\u2726 Standalone Angular components"),r(),a(22,"li"),t(23,"\u2726 Signals-first reactive state"),r()(),a(24,"div",4)(25,"p",5),t(26,"ds-icon-button from "),a(27,"code"),t(28,"@whoz-oss/design-system"),r()(),a(29,"div",6)(30,"ds-icon-button",7),f("action",function(){return s.onSend()}),r(),a(31,"ds-icon-button",8),f("action",function(){return s.onStop()}),r(),a(32,"ds-icon-button",9),f("action",function(){return s.onAttach()}),r(),a(33,"ds-icon-button",10),f("action",function(){return s.onAttach()}),r()(),g(34,G,4,1,"p",11),r()()()),n&2&&(l(33),E("disabled",!0),l(),u(s.lastAction()?34:-1))},dependencies:[N,H],styles:['@charset "UTF-8";.hello-agentos[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.card[_ngcontent-%COMP%]{background:var(--glass-bg, rgba(255, 255, 255, .72));border:1px solid var(--glass-border, rgba(255, 255, 255, .18));box-shadow:var(--glass-shadow, 0 8px 32px 0 rgba(31, 38, 135, .15));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));border-radius:20px;padding:3rem;max-width:480px;width:100%;text-align:center}.badge[_ngcontent-%COMP%]{display:inline-block;background:var(--color-primary, #007aff);color:var(--color-text-inverse, #ffffff);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.25rem .75rem;border-radius:100px;margin-bottom:1.5rem}h1[_ngcontent-%COMP%]{color:var(--color-text, #1d1d1f);font-size:2rem;font-weight:700;margin:0 0 1rem;letter-spacing:-.02em}p[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);line-height:1.6;margin:0 0 1.5rem}p[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--color-code-bg, rgba(142, 142, 147, .12));color:var(--color-code-text, #ff375f);padding:.125rem .375rem;border-radius:6px;font-size:.875em;border:1px solid var(--color-border, rgba(0, 0, 0, .1))}.principles[_ngcontent-%COMP%]{list-style:none;margin:0 0 1.5rem;padding:0;text-align:left;display:flex;flex-direction:column;gap:.5rem}.principles[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;padding:.5rem .75rem;background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-radius:8px;border:1px solid var(--color-border-light, rgba(40, 40, 40, .08))}.demo[_ngcontent-%COMP%]{border-top:1px solid var(--color-border-light, rgba(40, 40, 40, .08));padding-top:1.25rem}.demo[_ngcontent-%COMP%] .demo-label[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.8rem;margin:0 0 .75rem}.demo[_ngcontent-%COMP%] .demo-label[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--color-code-bg, rgba(142, 142, 147, .12));color:var(--color-code-text, #ff375f);padding:.125rem .375rem;border-radius:6px;font-size:.875em;border:1px solid var(--color-border, rgba(0, 0, 0, .1))}.demo[_ngcontent-%COMP%] .demo-buttons[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center;justify-content:center;padding:.75rem;background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-radius:12px;border:1px solid var(--color-border-light, rgba(40, 40, 40, .08))}.demo[_ngcontent-%COMP%] .demo-feedback[_ngcontent-%COMP%]{margin:.75rem 0 0;font-size:.85rem;color:var(--color-text-secondary, #6e6e73)}.demo[_ngcontent-%COMP%] .demo-feedback[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--color-primary, #007aff)}']})};export{me as AGENTOS_ROUTES,q as AgentosShellComponent,H as BackendStatusComponent,Z as CaseChatComponent,Q as CaseDrawerComponent,Y as CaseHomeComponent,J as CaseItemComponent,D as CaseListComponent,X as CaseShellComponent,W as HeaderComponent,R as HelloAgentosComponent,ee as LayoutComponent,te as NamespaceItemComponent,ne as NamespaceListComponent,oe as UserAdminStateService,ae as UserFormComponent,ie as UserItemComponent,re as UserListComponent,i as agentosReadyGuard};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-CH66E3U2.js";import"./chunk-GAZJZBKP.js";import"./chunk-QWMDAFBN.js";import"./chunk-LR7LOR4R.js";import"./chunk-ZAM3WGZM.js";import"./chunk-53STPEYQ.js";import"./chunk-AK6F2DC7.js";import"./chunk-AJOXSD6I.js";import"./chunk-IXD43YQI.js";import"./chunk-WPC6XC7P.js";import"./chunk-XJUBZLY2.js";import"./chunk-B2QA6UZX.js";import"./chunk-3JGMGRXW.js";export{a as CaseHomeComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as Ee}from"./chunk-UORJVNGU.js";import{c as le}from"./chunk-WNNKQ2DH.js";import{b as Se}from"./chunk-O2IJMHBE.js";import{e as Pe,f as De,g as Oe,h as Ie,i as Fe,j as Te,k as ke,l as We}from"./chunk-PKW64TFV.js";import"./chunk-ZAM3WGZM.js";import"./chunk-AJOXSD6I.js";import"./chunk-53STPEYQ.js";import{c as de,d as me,i as ce,j as ge,m as Ae,n as we}from"./chunk-AK6F2DC7.js";import{a as $,b as ee,d as te,e as ne,f as ie,g as oe,h as ae}from"./chunk-DRBOHCTP.js";import"./chunk-IXD43YQI.js";import{a as F,b as T}from"./chunk-WPC6XC7P.js";import{A as xe,C as ve,c as pe,g as ue,m as _e,o as fe,p as he,w as Ce,x as Me,y as ye,z as be}from"./chunk-XJUBZLY2.js";import{b as se}from"./chunk-XIQ3L6H6.js";import{O,Q as re,S as I}from"./chunk-B2QA6UZX.js";import{Bb as b,Cc as X,Db as c,Fb as m,Ka as d,Pb as L,Rb as A,Rc as Y,Tb as l,Ub as x,Vb as B,Wa as E,Wb as G,Xb as u,Yb as _,Z as j,Zb as f,ab as k,ac as Z,bc as K,ca as h,g as V,ga as g,ha as p,hc as J,jb as N,kc as Q,lb as M,mb as y,nb as W,ob as U,pb as P,qb as D,rb as C,sb as i,ta as S,tb as o,ub as z,yb as q,zb as H}from"./chunk-3JGMGRXW.js";var v=class s{http=h(Y);projectState=h(se);getBaseUrl(){return`/api/projects/${this.projectState.getSelectedProjectIdOrThrow()}/agents`}listEditableAgents(){return this.http.get(`${this.getBaseUrl()}/editable`)}getAgent(t){return this.http.get(`${this.getBaseUrl()}/${encodeURIComponent(t)}`)}createAgent(t,e){return this.http.post(this.getBaseUrl(),{location:e,definition:t})}updateAgent(t,e){return this.http.put(`${this.getBaseUrl()}/${encodeURIComponent(t)}`,{definition:e})}listDocuments(t){return this.http.get(`${this.getBaseUrl()}/documents`,{params:{location:t}})}uploadDocument(t,e){return new V(n=>{let a=new FileReader;a.onload=()=>{let r=a.result.split(",")[1];this.http.post(`${this.getBaseUrl()}/documents`,{filename:e.name,content:r,mimeType:e.type},{params:{location:t}}).subscribe(n)},a.onerror=()=>n.error(a.error),a.readAsDataURL(e)})}deleteAgent(t){return this.http.delete(`${this.getBaseUrl()}/${encodeURIComponent(t)}`)}static \u0275fac=function(e){return new(e||s)};static \u0275prov=j({token:s,factory:s.\u0275fac,providedIn:"root"})};function Ne(s,t){s&1&&(i(0,"p",15),l(1,"No integrations defined \u2014 agent will have access to all tools."),o())}function Ue(s,t){if(s&1){let e=b();i(0,"div",16)(1,"mat-form-field",22)(2,"mat-label"),l(3,"Integration"),o(),i(4,"input",23),f("ngModelChange",function(a){let r=g(e).$implicit;return _(r.integration,a)||(r.integration=a),p(a)}),o()(),i(5,"mat-form-field",24)(6,"mat-label"),l(7,"Tools (comma-separated)"),o(),i(8,"input",25),f("ngModelChange",function(a){let r=g(e).$implicit;return _(r.tools,a)||(r.tools=a),p(a)}),o()(),i(9,"button",26),c("click",function(){let a=g(e).$index,r=m();return p(r.removeIntegrationRow(a))}),i(10,"mat-icon"),l(11,"delete"),o()()()}if(s&2){let e=t.$implicit;d(4),u("ngModel",e.integration),d(4),u("ngModel",e.tools)}}function ze(s,t){if(s&1&&(i(0,"p",30),l(1),o()),s&2){let e=m(2);d(),x(e.docUploadError)}}function qe(s,t){s&1&&(i(0,"p",15),l(1,"No mandatory documents defined."),o())}function He(s,t){if(s&1&&z(0,"option",35),s&2){let e=t.$implicit;C("value","documents/"+e)}}function Ge(s,t){if(s&1){let e=b();i(0,"div",31)(1,"mat-form-field",32)(2,"mat-label"),l(3,"Document path"),o(),i(4,"input",33),f("ngModelChange",function(a){let r=g(e).$index,R=m(2);return _(R.mandatoryDocs[r],a)||(R.mandatoryDocs[r]=a),p(a)}),o(),i(5,"datalist",34),P(6,He,1,1,"option",35,U),o()(),i(8,"button",26),c("click",function(){let a=g(e).$index,r=m(2);return p(r.removeDocRow(a))}),i(9,"mat-icon"),l(10,"delete"),o()()()}if(s&2){let e=t.$index,n=m(2);d(4),u("ngModel",n.mandatoryDocs[e]),N("list","docs-list-"+e),d(),C("id","docs-list-"+e),d(),D(n.availableDocuments)}}function Ze(s,t){if(s&1){let e=b();i(0,"div",6)(1,"span"),l(2,"Mandatory Documents"),o(),i(3,"button",27),c("click",function(){g(e);let a=m();return p(a.addDocRow())}),i(4,"mat-icon"),l(5,"add"),o()(),i(6,"label",28)(7,"mat-icon"),l(8,"upload_file"),o(),i(9,"input",29),c("change",function(a){g(e);let r=m();return p(r.onDocFileSelected(a))}),o()()(),M(10,ze,2,1,"p",30),M(11,qe,2,0,"p",15),P(12,Ge,11,3,"div",31,W)}if(s&2){let e=m();d(6),A("uploading",e.isUploadingDoc),d(3),C("disabled",e.isUploadingDoc),d(),y(e.docUploadError?10:-1),d(),y(e.mandatoryDocs.length===0?11:-1),d(),D(e.mandatoryDocs)}}function Ke(s,t){s&1&&(i(0,"p",15),l(1,"\u{1F4A1} Documents can be added after the agent is created."),o())}function Je(s,t){if(s&1){let e=b();i(0,"div",6),l(1,"Save to"),o(),i(2,"div",36)(3,"label",37)(4,"input",38),f("ngModelChange",function(a){g(e);let r=m();return _(r.location,a)||(r.location=a),p(a)}),o(),i(5,"div",39)(6,"div",40)(7,"span",41),l(8,"\u{1F464}"),o(),i(9,"span",42),l(10,"Project config"),o()(),i(11,"p",43),l(12),o()()(),i(13,"label",37)(14,"input",44),f("ngModelChange",function(a){g(e);let r=m();return _(r.location,a)||(r.location=a),p(a)}),o(),i(15,"div",39)(16,"div",40)(17,"span",41),l(18,"\u{1F4E6}"),o(),i(19,"span",42),l(20,"Colocated"),o()(),i(21,"p",43),l(22,"Next to coday.yaml in ./agents/ (committable)"),o()()()(),i(23,"p",15),l(24,"Storage location is permanent and cannot be changed after creation."),o()}if(s&2){let e=m();d(3),A("selected",e.location==="project"),d(),u("ngModel",e.location),d(8),G("~/.coday/projects/","{","name","}","/agents/ (not committed)"),d(),A("selected",e.location==="colocated"),d(),u("ngModel",e.location)}}function Qe(s,t){if(s&1&&(i(0,"div",17)(1,"span",6),l(2,"Storage Location"),o(),i(3,"span",45),l(4),o(),i(5,"p",15),l(6,"Cannot be changed after creation."),o()()),s&2){let e=m();d(3),A("badge-project",e.location==="project")("badge-colocated",e.location==="colocated"),d(),B(" ",e.location==="project"?"\u{1F464} Project config":"\u{1F4E6} Colocated"," ")}}function Xe(s,t){if(s&1&&(i(0,"div",18)(1,"mat-icon"),l(2,"error"),o(),i(3,"span"),l(4),o()()),s&2){let e=m();d(4),x(e.errorMessage)}}var w=class s{agentCrudApi=h(v);agentApi=h(Ee);dialogRef=h($);data=h(ee);name="";description="";instructions="";aiProvider="";modelName="";temperature=null;maxOutputTokens=null;openaiAssistantId="";integrationRows=[];mandatoryDocs=[];availableDocuments=[];isUploadingDoc=!1;docUploadError="";location="project";isSaving=!1;errorMessage="";isEditMode=!1;ngOnInit(){if(this.isEditMode=this.data.mode==="edit",this.isEditMode&&this.data.agent){let t=this.data.agent.definition;this.name=t.name,this.description=t.description,this.instructions=t.instructions??"",this.aiProvider=t.aiProvider??"",this.modelName=t.modelName??"",this.temperature=t.temperature??null,this.maxOutputTokens=t.maxOutputTokens??null,this.openaiAssistantId=t.openaiAssistantId??"",this.location=this.data.agent.source,t.integrations&&(this.integrationRows=Object.entries(t.integrations).map(([e,n])=>({integration:e,tools:n?.join(", ")??""}))),this.mandatoryDocs=[...t.mandatoryDocs??[]],this.loadAvailableDocuments()}}loadAvailableDocuments(){this.agentCrudApi.listDocuments(this.location).subscribe({next:t=>this.availableDocuments=t,error:()=>this.availableDocuments=[]})}addDocRow(){this.mandatoryDocs.push("")}removeDocRow(t){this.mandatoryDocs.splice(t,1)}onDocFileSelected(t){let e=t.target,n=e.files?.[0];n&&(this.isUploadingDoc=!0,this.docUploadError="",this.agentCrudApi.uploadDocument(this.location,n).subscribe({next:a=>{this.isUploadingDoc=!1,this.mandatoryDocs.push(a.relativePath),this.loadAvailableDocuments(),e.value=""},error:a=>{this.isUploadingDoc=!1,this.docUploadError=a?.error?.error??a?.message??"Upload failed",e.value=""}}))}addIntegrationRow(){this.integrationRows.push({integration:"",tools:""})}removeIntegrationRow(t){this.integrationRows.splice(t,1)}trackByIndex(t){return t}validateForm(){if(!this.name.trim())return this.errorMessage="Name is required",!1;if(!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(this.name.trim()))return this.errorMessage="Name must start with alphanumeric and contain only letters, digits, hyphens or underscores",!1;if(!this.description.trim())return this.errorMessage="Description is required",!1;for(let t of this.integrationRows)if(!t.integration.trim())return this.errorMessage="Integration name cannot be empty",!1;return!0}buildDefinition(){let t=this.mandatoryDocs.map(n=>n.trim()).filter(Boolean),e=this.integrationRows.length>0?Object.fromEntries(this.integrationRows.filter(n=>n.integration.trim()).map(n=>[n.integration.trim(),n.tools.split(",").map(a=>a.trim()).filter(Boolean)])):void 0;return{name:this.name.trim(),description:this.description.trim(),instructions:this.instructions.trim()||void 0,aiProvider:this.aiProvider.trim()||void 0,modelName:this.modelName.trim()||void 0,temperature:this.temperature??void 0,maxOutputTokens:this.maxOutputTokens??void 0,openaiAssistantId:this.openaiAssistantId.trim()||void 0,integrations:e,mandatoryDocs:t.length>0?t:void 0}}save(){if(this.errorMessage="",!this.validateForm())return;let t=this.buildDefinition();this.isSaving=!0,(this.isEditMode?this.agentCrudApi.updateAgent(this.name.trim(),t):this.agentCrudApi.createAgent(t,this.location)).subscribe({next:()=>{this.isSaving=!1,this.agentApi.clearAllCache(),this.dialogRef.close(!0)},error:n=>{this.isSaving=!1,this.errorMessage=n?.error?.error||n?.message||"Failed to save agent"}})}cancel(){this.dialogRef.close(!1)}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=E({type:s,selectors:[["app-agent-form"]],decls:69,vars:18,consts:[["mat-dialog-title",""],[1,"form-container"],["appearance","outline",1,"full-width"],["matInput","","placeholder","my-agent","required","",3,"ngModelChange","ngModel","readonly"],["matInput","","placeholder","What does this agent do?","rows","2","required","",3,"ngModelChange","ngModel"],["matInput","","placeholder","System instructions for the agent...","rows","6",3,"ngModelChange","ngModel"],[1,"section-title"],[1,"row-2col"],["appearance","outline"],["matInput","","placeholder","e.g. anthropic, openai",3,"ngModelChange","ngModel"],["matInput","","placeholder","e.g. claude-sonnet-4-5",3,"ngModelChange","ngModel"],["matInput","","type","number","min","0","max","2","step","0.1","placeholder","0.0 \u2013 2.0",3,"ngModelChange","ngModel"],["matInput","","type","number","min","1","placeholder","e.g. 4096",3,"ngModelChange","ngModel"],["matInput","","placeholder","asst_...",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Add integration",3,"click"],[1,"hint"],[1,"integration-row"],[1,"source-display"],[1,"error-message"],["align","end"],["mat-button","",3,"click","disabled"],["mat-raised-button","","color","primary",3,"click","disabled"],["appearance","outline",1,"integration-name"],["matInput","","placeholder","e.g. GITHUB",3,"ngModelChange","ngModel"],["appearance","outline",1,"integration-tools"],["matInput","","placeholder","Leave empty for all tools",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Remove",3,"click"],["mat-icon-button","","type","button","title","Add document path",3,"click"],["title","Upload a document to the pool",1,"upload-btn"],["type","file","hidden","",3,"change","disabled"],[1,"doc-upload-error"],[1,"doc-row"],["appearance","outline",1,"doc-field"],["matInput","","placeholder","documents/guide.md",3,"ngModelChange","ngModel"],[3,"id"],[3,"value"],[1,"source-options"],[1,"source-option"],["type","radio","name","location","value","project",3,"ngModelChange","ngModel"],[1,"source-content"],[1,"source-header"],[1,"source-icon"],[1,"source-label"],[1,"source-description"],["type","radio","name","location","value","colocated",3,"ngModelChange","ngModel"],[1,"source-badge"]],template:function(e,n){e&1&&(i(0,"h2",0),l(1),o(),i(2,"mat-dialog-content")(3,"div",1)(4,"mat-form-field",2)(5,"mat-label"),l(6,"Name"),o(),i(7,"input",3),f("ngModelChange",function(r){return _(n.name,r)||(n.name=r),r}),o(),i(8,"mat-hint"),l(9,"Alphanumeric, hyphens and underscores only. Cannot be changed after creation."),o()(),i(10,"mat-form-field",2)(11,"mat-label"),l(12,"Description"),o(),i(13,"textarea",4),f("ngModelChange",function(r){return _(n.description,r)||(n.description=r),r}),o()(),i(14,"mat-form-field",2)(15,"mat-label"),l(16,"Instructions"),o(),i(17,"textarea",5),f("ngModelChange",function(r){return _(n.instructions,r)||(n.instructions=r),r}),o(),i(18,"mat-hint"),l(19,"System prompt / instructions sent to the AI model"),o()(),i(20,"div",6),l(21,"AI Configuration"),o(),i(22,"div",7)(23,"mat-form-field",8)(24,"mat-label"),l(25,"AI Provider"),o(),i(26,"input",9),f("ngModelChange",function(r){return _(n.aiProvider,r)||(n.aiProvider=r),r}),o()(),i(27,"mat-form-field",8)(28,"mat-label"),l(29,"Model Name"),o(),i(30,"input",10),f("ngModelChange",function(r){return _(n.modelName,r)||(n.modelName=r),r}),o()()(),i(31,"div",7)(32,"mat-form-field",8)(33,"mat-label"),l(34,"Temperature"),o(),i(35,"input",11),f("ngModelChange",function(r){return _(n.temperature,r)||(n.temperature=r),r}),o(),i(36,"mat-hint"),l(37,"Leave empty for model default"),o()(),i(38,"mat-form-field",8)(39,"mat-label"),l(40,"Max Output Tokens"),o(),i(41,"input",12),f("ngModelChange",function(r){return _(n.maxOutputTokens,r)||(n.maxOutputTokens=r),r}),o(),i(42,"mat-hint"),l(43,"Leave empty for model default"),o()()(),i(44,"mat-form-field",2)(45,"mat-label"),l(46,"OpenAI Assistant ID"),o(),i(47,"input",13),f("ngModelChange",function(r){return _(n.openaiAssistantId,r)||(n.openaiAssistantId=r),r}),o(),i(48,"mat-hint"),l(49,"If set, forces aiProvider to openai"),o()(),i(50,"div",6)(51,"span"),l(52,"Integrations"),o(),i(53,"button",14),c("click",function(){return n.addIntegrationRow()}),i(54,"mat-icon"),l(55,"add"),o()()(),M(56,Ne,2,0,"p",15),P(57,Ue,12,2,"div",16,W),M(59,Ze,14,5)(60,Ke,2,0,"p",15),M(61,Je,25,8),M(62,Qe,7,5,"div",17),M(63,Xe,5,1,"div",18),o()(),i(64,"mat-dialog-actions",19)(65,"button",20),c("click",function(){return n.cancel()}),l(66,"Cancel"),o(),i(67,"button",21),c("click",function(){return n.save()}),l(68),o()()),e&2&&(d(),x(n.isEditMode?"Edit Agent":"Create Agent"),d(6),u("ngModel",n.name),C("readonly",n.isEditMode),d(6),u("ngModel",n.description),d(4),u("ngModel",n.instructions),d(9),u("ngModel",n.aiProvider),d(4),u("ngModel",n.modelName),d(5),u("ngModel",n.temperature),d(6),u("ngModel",n.maxOutputTokens),d(6),u("ngModel",n.openaiAssistantId),d(9),y(n.integrationRows.length===0?56:-1),d(),D(n.integrationRows),d(2),y(n.isEditMode?59:60),d(2),y(n.isEditMode?-1:61),d(),y(n.isEditMode?62:-1),d(),y(n.errorMessage?63:-1),d(2),C("disabled",n.isSaving),d(2),C("disabled",n.isSaving),d(),B(" ",n.isSaving?"Saving...":"Save"," "))},dependencies:[ve,Ce,Me,pe,fe,he,ue,xe,be,ye,_e,ae,ne,oe,ie,I,re,O,we,Ae,ce,de,me,ge,T,F,Se,le],styles:[".form-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:0;min-width:560px}@media(max-width:768px){.form-container[_ngcontent-%COMP%]{min-width:auto}}.full-width[_ngcontent-%COMP%]{width:100%}.section-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;margin-top:.5rem;margin-bottom:-.25rem}.row-2col[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:768px){.row-2col[_ngcontent-%COMP%]{grid-template-columns:1fr}}.integration-row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem}.integration-row[_ngcontent-%COMP%] .integration-name[_ngcontent-%COMP%]{flex:0 0 180px}.integration-row[_ngcontent-%COMP%] .integration-tools[_ngcontent-%COMP%]{flex:1}.hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.source-options[_ngcontent-%COMP%]{display:flex;gap:1rem;margin-bottom:.5rem}@media(max-width:768px){.source-options[_ngcontent-%COMP%]{flex-direction:column}}.source-option[_ngcontent-%COMP%]{flex:1;display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--color-bg);border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s ease}.source-option[_ngcontent-%COMP%]:hover{border-color:var(--color-primary);background:var(--color-bg-hover)}.source-option.selected[_ngcontent-%COMP%]{border-color:var(--color-primary);background:var(--color-bg-hover);box-shadow:0 0 0 1px var(--color-primary)}.source-option[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]{margin-top:2px;cursor:pointer}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%]{flex:1}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-header[_ngcontent-%COMP%] .source-icon[_ngcontent-%COMP%]{font-size:1.25rem}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-header[_ngcontent-%COMP%] .source-label[_ngcontent-%COMP%]{font-weight:600;font-size:.95rem}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-description[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-family:monospace;line-height:1.4}.source-display[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.source-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500}.source-badge.badge-project[_ngcontent-%COMP%]{background:#2196f31a;color:#2196f3;border:1px solid rgba(33,150,243,.3)}.source-badge.badge-colocated[_ngcontent-%COMP%]{background:#4caf501a;color:#4caf50;border:1px solid rgba(76,175,80,.3)}.doc-row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem}.doc-row[_ngcontent-%COMP%] .doc-field[_ngcontent-%COMP%]{flex:1}.upload-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;cursor:pointer;color:var(--color-text-secondary);transition:background .2s}.upload-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);color:var(--color-primary)}.upload-btn.uploading[_ngcontent-%COMP%]{opacity:.5;cursor:wait}.upload-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}.doc-upload-error[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-error)}.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 Ye=()=>[],$e=s=>({id:s});function et(s,t){if(s&1&&(i(0,"div",5),l(1),o()),s&2){let e=m();d(),x(e.errorMessage())}}function tt(s,t){if(s&1){let e=b();i(0,"ds-entity-card",7),c("selected",function(a){g(e);let r=m();return p(r.onEdit(a))}),q(1,8),i(2,"button",9),c("click",function(a){return a.stopPropagation()}),i(3,"mat-icon"),l(4,"more_vert"),o()(),H(),o()}if(s&2){let e=t.$implicit;m();let n=L(9);C("id",e.id)("name",e.name)("description",e.description)("badges",e.badges??Z(6,Ye)),d(2),C("matMenuTriggerFor",n)("matMenuTriggerData",K(7,$e,e.id))}}function nt(s,t){if(s&1){let e=b();i(0,"button",10),c("click",function(){let a=g(e).id,r=m();return p(r.onEdit(a))}),i(1,"mat-icon"),l(2,"edit"),o(),l(3," Edit "),o(),i(4,"button",11),c("click",function(){let a=g(e).id,r=m();return p(r.onDelete(a))}),i(5,"mat-icon"),l(6,"delete"),o(),l(7," Delete "),o()}}var Be=class s{agentCrudApi=h(v);location=h(X);dialog=h(te);agents=S([]);isLoading=S(!1);errorMessage=S(null);agentItems=Q(()=>this.agents().map(t=>({id:t.name,name:t.name,description:t.description,badges:this.buildBadges(t),groupKey:t.source,groupLabel:t.source==="project"?"Project (~/.coday/)":"Colocated (next to coday.yaml)"})));ngOnInit(){this.loadAgents()}loadAgents(){this.isLoading.set(!0),this.errorMessage.set(null),this.agentCrudApi.listEditableAgents().subscribe({next:t=>{this.agents.set(t),this.isLoading.set(!1)},error:t=>{this.errorMessage.set(t?.error?.error??"Failed to load agents"),this.isLoading.set(!1)}})}onBack(){this.location.back()}onCreate(){this.dialog.open(w,{width:"700px",maxHeight:"90vh",data:{mode:"create"}}).afterClosed().subscribe(e=>{e&&this.loadAgents()})}onEdit(t){this.agentCrudApi.getAgent(t).subscribe({next:e=>{this.dialog.open(w,{width:"700px",maxHeight:"90vh",data:{mode:"edit",agent:e}}).afterClosed().subscribe(a=>{a&&this.loadAgents()})},error:e=>this.errorMessage.set(e?.error?.error??"Failed to load agent")})}onDelete(t){confirm(`Are you sure you want to delete agent "${t}"?`)&&this.agentCrudApi.deleteAgent(t).subscribe({next:()=>this.loadAgents(),error:e=>this.errorMessage.set(e?.error?.error??"Failed to delete agent")})}buildBadges(t){return[t.source==="project"?{label:"project",variant:"info"}:{label:"colocated",variant:"success"}]}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=E({type:s,selectors:[["app-agent-list"]],decls:11,vars:4,consts:[["agentCard",""],["cardMenu","matMenu"],[1,"agent-list-page"],["title","Agents","cardMinWidth","260px","contentMaxWidth","1400px","searchPlaceholder","Filter agents\u2026","emptyMessage","No file-based agents found.",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","mat-icon-button","","title","Back",3,"click"],[1,"agent-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,"agent-list__delete-item",3,"click"]],template:function(e,n){if(e&1&&(i(0,"div",2)(1,"ds-entity-list",3),c("createRequested",function(){return n.onCreate()}),i(2,"button",4),c("click",function(){return n.onBack()}),i(3,"mat-icon"),l(4,"chevron_left"),o()()(),M(5,et,2,1,"div",5),o(),k(6,tt,5,9,"ng-template",null,0,J),i(8,"mat-menu",null,1),k(10,nt,8,0,"ng-template",6),o()),e&2){let a=L(7);d(),C("items",n.agentItems())("showCreate",!0)("itemTemplate",a),d(4),y(n.errorMessage()?5:-1)}},dependencies:[Oe,De,Pe,I,O,T,F,We,Te,Ie,Fe,ke],styles:["[_nghost-%COMP%]{display:block;width:100%;min-height:100vh;background:var(--color-bg);overflow-y:auto}.agent-list__delete-item[_ngcontent-%COMP%]{color:var(--color-error, #ff3b30)}.agent-list__delete-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:inherit}.agent-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{Be as AgentListComponent};
|
|
1
|
+
import{a as Ee}from"./chunk-UORJVNGU.js";import{c as le}from"./chunk-WNNKQ2DH.js";import{b as Se}from"./chunk-O2IJMHBE.js";import{e as Pe,f as De,g as Oe,h as Ie,i as Fe,j as Te,k as ke,l as We}from"./chunk-LR7LOR4R.js";import"./chunk-ZAM3WGZM.js";import"./chunk-53STPEYQ.js";import{c as de,d as me,i as ce,j as ge,m as Ae,n as we}from"./chunk-AK6F2DC7.js";import"./chunk-AJOXSD6I.js";import{a as $,b as ee,d as te,e as ne,f as ie,g as oe,h as ae}from"./chunk-DRBOHCTP.js";import"./chunk-IXD43YQI.js";import{a as F,b as T}from"./chunk-WPC6XC7P.js";import{A as xe,C as ve,c as pe,g as ue,m as _e,o as fe,p as he,w as Ce,x as Me,y as ye,z as be}from"./chunk-XJUBZLY2.js";import{b as se}from"./chunk-XIQ3L6H6.js";import{O,Q as re,S as I}from"./chunk-B2QA6UZX.js";import{Bb as b,Cc as X,Db as c,Fb as m,Ka as d,Pb as L,Rb as A,Rc as Y,Tb as l,Ub as x,Vb as B,Wa as E,Wb as G,Xb as u,Yb as _,Z as j,Zb as f,ab as k,ac as Z,bc as K,ca as h,g as V,ga as g,ha as p,hc as J,jb as N,kc as Q,lb as M,mb as y,nb as W,ob as U,pb as P,qb as D,rb as C,sb as i,ta as S,tb as o,ub as z,yb as q,zb as H}from"./chunk-3JGMGRXW.js";var v=class s{http=h(Y);projectState=h(se);getBaseUrl(){return`/api/projects/${this.projectState.getSelectedProjectIdOrThrow()}/agents`}listEditableAgents(){return this.http.get(`${this.getBaseUrl()}/editable`)}getAgent(t){return this.http.get(`${this.getBaseUrl()}/${encodeURIComponent(t)}`)}createAgent(t,e){return this.http.post(this.getBaseUrl(),{location:e,definition:t})}updateAgent(t,e){return this.http.put(`${this.getBaseUrl()}/${encodeURIComponent(t)}`,{definition:e})}listDocuments(t){return this.http.get(`${this.getBaseUrl()}/documents`,{params:{location:t}})}uploadDocument(t,e){return new V(n=>{let a=new FileReader;a.onload=()=>{let r=a.result.split(",")[1];this.http.post(`${this.getBaseUrl()}/documents`,{filename:e.name,content:r,mimeType:e.type},{params:{location:t}}).subscribe(n)},a.onerror=()=>n.error(a.error),a.readAsDataURL(e)})}deleteAgent(t){return this.http.delete(`${this.getBaseUrl()}/${encodeURIComponent(t)}`)}static \u0275fac=function(e){return new(e||s)};static \u0275prov=j({token:s,factory:s.\u0275fac,providedIn:"root"})};function Ne(s,t){s&1&&(i(0,"p",15),l(1,"No integrations defined \u2014 agent will have access to all tools."),o())}function Ue(s,t){if(s&1){let e=b();i(0,"div",16)(1,"mat-form-field",22)(2,"mat-label"),l(3,"Integration"),o(),i(4,"input",23),f("ngModelChange",function(a){let r=g(e).$implicit;return _(r.integration,a)||(r.integration=a),p(a)}),o()(),i(5,"mat-form-field",24)(6,"mat-label"),l(7,"Tools (comma-separated)"),o(),i(8,"input",25),f("ngModelChange",function(a){let r=g(e).$implicit;return _(r.tools,a)||(r.tools=a),p(a)}),o()(),i(9,"button",26),c("click",function(){let a=g(e).$index,r=m();return p(r.removeIntegrationRow(a))}),i(10,"mat-icon"),l(11,"delete"),o()()()}if(s&2){let e=t.$implicit;d(4),u("ngModel",e.integration),d(4),u("ngModel",e.tools)}}function ze(s,t){if(s&1&&(i(0,"p",30),l(1),o()),s&2){let e=m(2);d(),x(e.docUploadError)}}function qe(s,t){s&1&&(i(0,"p",15),l(1,"No mandatory documents defined."),o())}function He(s,t){if(s&1&&z(0,"option",35),s&2){let e=t.$implicit;C("value","documents/"+e)}}function Ge(s,t){if(s&1){let e=b();i(0,"div",31)(1,"mat-form-field",32)(2,"mat-label"),l(3,"Document path"),o(),i(4,"input",33),f("ngModelChange",function(a){let r=g(e).$index,R=m(2);return _(R.mandatoryDocs[r],a)||(R.mandatoryDocs[r]=a),p(a)}),o(),i(5,"datalist",34),P(6,He,1,1,"option",35,U),o()(),i(8,"button",26),c("click",function(){let a=g(e).$index,r=m(2);return p(r.removeDocRow(a))}),i(9,"mat-icon"),l(10,"delete"),o()()()}if(s&2){let e=t.$index,n=m(2);d(4),u("ngModel",n.mandatoryDocs[e]),N("list","docs-list-"+e),d(),C("id","docs-list-"+e),d(),D(n.availableDocuments)}}function Ze(s,t){if(s&1){let e=b();i(0,"div",6)(1,"span"),l(2,"Mandatory Documents"),o(),i(3,"button",27),c("click",function(){g(e);let a=m();return p(a.addDocRow())}),i(4,"mat-icon"),l(5,"add"),o()(),i(6,"label",28)(7,"mat-icon"),l(8,"upload_file"),o(),i(9,"input",29),c("change",function(a){g(e);let r=m();return p(r.onDocFileSelected(a))}),o()()(),M(10,ze,2,1,"p",30),M(11,qe,2,0,"p",15),P(12,Ge,11,3,"div",31,W)}if(s&2){let e=m();d(6),A("uploading",e.isUploadingDoc),d(3),C("disabled",e.isUploadingDoc),d(),y(e.docUploadError?10:-1),d(),y(e.mandatoryDocs.length===0?11:-1),d(),D(e.mandatoryDocs)}}function Ke(s,t){s&1&&(i(0,"p",15),l(1,"\u{1F4A1} Documents can be added after the agent is created."),o())}function Je(s,t){if(s&1){let e=b();i(0,"div",6),l(1,"Save to"),o(),i(2,"div",36)(3,"label",37)(4,"input",38),f("ngModelChange",function(a){g(e);let r=m();return _(r.location,a)||(r.location=a),p(a)}),o(),i(5,"div",39)(6,"div",40)(7,"span",41),l(8,"\u{1F464}"),o(),i(9,"span",42),l(10,"Project config"),o()(),i(11,"p",43),l(12),o()()(),i(13,"label",37)(14,"input",44),f("ngModelChange",function(a){g(e);let r=m();return _(r.location,a)||(r.location=a),p(a)}),o(),i(15,"div",39)(16,"div",40)(17,"span",41),l(18,"\u{1F4E6}"),o(),i(19,"span",42),l(20,"Colocated"),o()(),i(21,"p",43),l(22,"Next to coday.yaml in ./agents/ (committable)"),o()()()(),i(23,"p",15),l(24,"Storage location is permanent and cannot be changed after creation."),o()}if(s&2){let e=m();d(3),A("selected",e.location==="project"),d(),u("ngModel",e.location),d(8),G("~/.coday/projects/","{","name","}","/agents/ (not committed)"),d(),A("selected",e.location==="colocated"),d(),u("ngModel",e.location)}}function Qe(s,t){if(s&1&&(i(0,"div",17)(1,"span",6),l(2,"Storage Location"),o(),i(3,"span",45),l(4),o(),i(5,"p",15),l(6,"Cannot be changed after creation."),o()()),s&2){let e=m();d(3),A("badge-project",e.location==="project")("badge-colocated",e.location==="colocated"),d(),B(" ",e.location==="project"?"\u{1F464} Project config":"\u{1F4E6} Colocated"," ")}}function Xe(s,t){if(s&1&&(i(0,"div",18)(1,"mat-icon"),l(2,"error"),o(),i(3,"span"),l(4),o()()),s&2){let e=m();d(4),x(e.errorMessage)}}var w=class s{agentCrudApi=h(v);agentApi=h(Ee);dialogRef=h($);data=h(ee);name="";description="";instructions="";aiProvider="";modelName="";temperature=null;maxOutputTokens=null;openaiAssistantId="";integrationRows=[];mandatoryDocs=[];availableDocuments=[];isUploadingDoc=!1;docUploadError="";location="project";isSaving=!1;errorMessage="";isEditMode=!1;ngOnInit(){if(this.isEditMode=this.data.mode==="edit",this.isEditMode&&this.data.agent){let t=this.data.agent.definition;this.name=t.name,this.description=t.description,this.instructions=t.instructions??"",this.aiProvider=t.aiProvider??"",this.modelName=t.modelName??"",this.temperature=t.temperature??null,this.maxOutputTokens=t.maxOutputTokens??null,this.openaiAssistantId=t.openaiAssistantId??"",this.location=this.data.agent.source,t.integrations&&(this.integrationRows=Object.entries(t.integrations).map(([e,n])=>({integration:e,tools:n?.join(", ")??""}))),this.mandatoryDocs=[...t.mandatoryDocs??[]],this.loadAvailableDocuments()}}loadAvailableDocuments(){this.agentCrudApi.listDocuments(this.location).subscribe({next:t=>this.availableDocuments=t,error:()=>this.availableDocuments=[]})}addDocRow(){this.mandatoryDocs.push("")}removeDocRow(t){this.mandatoryDocs.splice(t,1)}onDocFileSelected(t){let e=t.target,n=e.files?.[0];n&&(this.isUploadingDoc=!0,this.docUploadError="",this.agentCrudApi.uploadDocument(this.location,n).subscribe({next:a=>{this.isUploadingDoc=!1,this.mandatoryDocs.push(a.relativePath),this.loadAvailableDocuments(),e.value=""},error:a=>{this.isUploadingDoc=!1,this.docUploadError=a?.error?.error??a?.message??"Upload failed",e.value=""}}))}addIntegrationRow(){this.integrationRows.push({integration:"",tools:""})}removeIntegrationRow(t){this.integrationRows.splice(t,1)}trackByIndex(t){return t}validateForm(){if(!this.name.trim())return this.errorMessage="Name is required",!1;if(!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(this.name.trim()))return this.errorMessage="Name must start with alphanumeric and contain only letters, digits, hyphens or underscores",!1;if(!this.description.trim())return this.errorMessage="Description is required",!1;for(let t of this.integrationRows)if(!t.integration.trim())return this.errorMessage="Integration name cannot be empty",!1;return!0}buildDefinition(){let t=this.mandatoryDocs.map(n=>n.trim()).filter(Boolean),e=this.integrationRows.length>0?Object.fromEntries(this.integrationRows.filter(n=>n.integration.trim()).map(n=>[n.integration.trim(),n.tools.split(",").map(a=>a.trim()).filter(Boolean)])):void 0;return{name:this.name.trim(),description:this.description.trim(),instructions:this.instructions.trim()||void 0,aiProvider:this.aiProvider.trim()||void 0,modelName:this.modelName.trim()||void 0,temperature:this.temperature??void 0,maxOutputTokens:this.maxOutputTokens??void 0,openaiAssistantId:this.openaiAssistantId.trim()||void 0,integrations:e,mandatoryDocs:t.length>0?t:void 0}}save(){if(this.errorMessage="",!this.validateForm())return;let t=this.buildDefinition();this.isSaving=!0,(this.isEditMode?this.agentCrudApi.updateAgent(this.name.trim(),t):this.agentCrudApi.createAgent(t,this.location)).subscribe({next:()=>{this.isSaving=!1,this.agentApi.clearAllCache(),this.dialogRef.close(!0)},error:n=>{this.isSaving=!1,this.errorMessage=n?.error?.error||n?.message||"Failed to save agent"}})}cancel(){this.dialogRef.close(!1)}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=E({type:s,selectors:[["app-agent-form"]],decls:69,vars:18,consts:[["mat-dialog-title",""],[1,"form-container"],["appearance","outline",1,"full-width"],["matInput","","placeholder","my-agent","required","",3,"ngModelChange","ngModel","readonly"],["matInput","","placeholder","What does this agent do?","rows","2","required","",3,"ngModelChange","ngModel"],["matInput","","placeholder","System instructions for the agent...","rows","6",3,"ngModelChange","ngModel"],[1,"section-title"],[1,"row-2col"],["appearance","outline"],["matInput","","placeholder","e.g. anthropic, openai",3,"ngModelChange","ngModel"],["matInput","","placeholder","e.g. claude-sonnet-4-5",3,"ngModelChange","ngModel"],["matInput","","type","number","min","0","max","2","step","0.1","placeholder","0.0 \u2013 2.0",3,"ngModelChange","ngModel"],["matInput","","type","number","min","1","placeholder","e.g. 4096",3,"ngModelChange","ngModel"],["matInput","","placeholder","asst_...",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Add integration",3,"click"],[1,"hint"],[1,"integration-row"],[1,"source-display"],[1,"error-message"],["align","end"],["mat-button","",3,"click","disabled"],["mat-raised-button","","color","primary",3,"click","disabled"],["appearance","outline",1,"integration-name"],["matInput","","placeholder","e.g. GITHUB",3,"ngModelChange","ngModel"],["appearance","outline",1,"integration-tools"],["matInput","","placeholder","Leave empty for all tools",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Remove",3,"click"],["mat-icon-button","","type","button","title","Add document path",3,"click"],["title","Upload a document to the pool",1,"upload-btn"],["type","file","hidden","",3,"change","disabled"],[1,"doc-upload-error"],[1,"doc-row"],["appearance","outline",1,"doc-field"],["matInput","","placeholder","documents/guide.md",3,"ngModelChange","ngModel"],[3,"id"],[3,"value"],[1,"source-options"],[1,"source-option"],["type","radio","name","location","value","project",3,"ngModelChange","ngModel"],[1,"source-content"],[1,"source-header"],[1,"source-icon"],[1,"source-label"],[1,"source-description"],["type","radio","name","location","value","colocated",3,"ngModelChange","ngModel"],[1,"source-badge"]],template:function(e,n){e&1&&(i(0,"h2",0),l(1),o(),i(2,"mat-dialog-content")(3,"div",1)(4,"mat-form-field",2)(5,"mat-label"),l(6,"Name"),o(),i(7,"input",3),f("ngModelChange",function(r){return _(n.name,r)||(n.name=r),r}),o(),i(8,"mat-hint"),l(9,"Alphanumeric, hyphens and underscores only. Cannot be changed after creation."),o()(),i(10,"mat-form-field",2)(11,"mat-label"),l(12,"Description"),o(),i(13,"textarea",4),f("ngModelChange",function(r){return _(n.description,r)||(n.description=r),r}),o()(),i(14,"mat-form-field",2)(15,"mat-label"),l(16,"Instructions"),o(),i(17,"textarea",5),f("ngModelChange",function(r){return _(n.instructions,r)||(n.instructions=r),r}),o(),i(18,"mat-hint"),l(19,"System prompt / instructions sent to the AI model"),o()(),i(20,"div",6),l(21,"AI Configuration"),o(),i(22,"div",7)(23,"mat-form-field",8)(24,"mat-label"),l(25,"AI Provider"),o(),i(26,"input",9),f("ngModelChange",function(r){return _(n.aiProvider,r)||(n.aiProvider=r),r}),o()(),i(27,"mat-form-field",8)(28,"mat-label"),l(29,"Model Name"),o(),i(30,"input",10),f("ngModelChange",function(r){return _(n.modelName,r)||(n.modelName=r),r}),o()()(),i(31,"div",7)(32,"mat-form-field",8)(33,"mat-label"),l(34,"Temperature"),o(),i(35,"input",11),f("ngModelChange",function(r){return _(n.temperature,r)||(n.temperature=r),r}),o(),i(36,"mat-hint"),l(37,"Leave empty for model default"),o()(),i(38,"mat-form-field",8)(39,"mat-label"),l(40,"Max Output Tokens"),o(),i(41,"input",12),f("ngModelChange",function(r){return _(n.maxOutputTokens,r)||(n.maxOutputTokens=r),r}),o(),i(42,"mat-hint"),l(43,"Leave empty for model default"),o()()(),i(44,"mat-form-field",2)(45,"mat-label"),l(46,"OpenAI Assistant ID"),o(),i(47,"input",13),f("ngModelChange",function(r){return _(n.openaiAssistantId,r)||(n.openaiAssistantId=r),r}),o(),i(48,"mat-hint"),l(49,"If set, forces aiProvider to openai"),o()(),i(50,"div",6)(51,"span"),l(52,"Integrations"),o(),i(53,"button",14),c("click",function(){return n.addIntegrationRow()}),i(54,"mat-icon"),l(55,"add"),o()()(),M(56,Ne,2,0,"p",15),P(57,Ue,12,2,"div",16,W),M(59,Ze,14,5)(60,Ke,2,0,"p",15),M(61,Je,25,8),M(62,Qe,7,5,"div",17),M(63,Xe,5,1,"div",18),o()(),i(64,"mat-dialog-actions",19)(65,"button",20),c("click",function(){return n.cancel()}),l(66,"Cancel"),o(),i(67,"button",21),c("click",function(){return n.save()}),l(68),o()()),e&2&&(d(),x(n.isEditMode?"Edit Agent":"Create Agent"),d(6),u("ngModel",n.name),C("readonly",n.isEditMode),d(6),u("ngModel",n.description),d(4),u("ngModel",n.instructions),d(9),u("ngModel",n.aiProvider),d(4),u("ngModel",n.modelName),d(5),u("ngModel",n.temperature),d(6),u("ngModel",n.maxOutputTokens),d(6),u("ngModel",n.openaiAssistantId),d(9),y(n.integrationRows.length===0?56:-1),d(),D(n.integrationRows),d(2),y(n.isEditMode?59:60),d(2),y(n.isEditMode?-1:61),d(),y(n.isEditMode?62:-1),d(),y(n.errorMessage?63:-1),d(2),C("disabled",n.isSaving),d(2),C("disabled",n.isSaving),d(),B(" ",n.isSaving?"Saving...":"Save"," "))},dependencies:[ve,Ce,Me,pe,fe,he,ue,xe,be,ye,_e,ae,ne,oe,ie,I,re,O,we,Ae,ce,de,me,ge,T,F,Se,le],styles:[".form-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:0;min-width:560px}@media(max-width:768px){.form-container[_ngcontent-%COMP%]{min-width:auto}}.full-width[_ngcontent-%COMP%]{width:100%}.section-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;margin-top:.5rem;margin-bottom:-.25rem}.row-2col[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:768px){.row-2col[_ngcontent-%COMP%]{grid-template-columns:1fr}}.integration-row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem}.integration-row[_ngcontent-%COMP%] .integration-name[_ngcontent-%COMP%]{flex:0 0 180px}.integration-row[_ngcontent-%COMP%] .integration-tools[_ngcontent-%COMP%]{flex:1}.hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.source-options[_ngcontent-%COMP%]{display:flex;gap:1rem;margin-bottom:.5rem}@media(max-width:768px){.source-options[_ngcontent-%COMP%]{flex-direction:column}}.source-option[_ngcontent-%COMP%]{flex:1;display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--color-bg);border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s ease}.source-option[_ngcontent-%COMP%]:hover{border-color:var(--color-primary);background:var(--color-bg-hover)}.source-option.selected[_ngcontent-%COMP%]{border-color:var(--color-primary);background:var(--color-bg-hover);box-shadow:0 0 0 1px var(--color-primary)}.source-option[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]{margin-top:2px;cursor:pointer}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%]{flex:1}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-header[_ngcontent-%COMP%] .source-icon[_ngcontent-%COMP%]{font-size:1.25rem}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-header[_ngcontent-%COMP%] .source-label[_ngcontent-%COMP%]{font-weight:600;font-size:.95rem}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-description[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-family:monospace;line-height:1.4}.source-display[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.source-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500}.source-badge.badge-project[_ngcontent-%COMP%]{background:#2196f31a;color:#2196f3;border:1px solid rgba(33,150,243,.3)}.source-badge.badge-colocated[_ngcontent-%COMP%]{background:#4caf501a;color:#4caf50;border:1px solid rgba(76,175,80,.3)}.doc-row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem}.doc-row[_ngcontent-%COMP%] .doc-field[_ngcontent-%COMP%]{flex:1}.upload-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;cursor:pointer;color:var(--color-text-secondary);transition:background .2s}.upload-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);color:var(--color-primary)}.upload-btn.uploading[_ngcontent-%COMP%]{opacity:.5;cursor:wait}.upload-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}.doc-upload-error[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-error)}.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 Ye=()=>[],$e=s=>({id:s});function et(s,t){if(s&1&&(i(0,"div",5),l(1),o()),s&2){let e=m();d(),x(e.errorMessage())}}function tt(s,t){if(s&1){let e=b();i(0,"ds-entity-card",7),c("selected",function(a){g(e);let r=m();return p(r.onEdit(a))}),q(1,8),i(2,"button",9),c("click",function(a){return a.stopPropagation()}),i(3,"mat-icon"),l(4,"more_vert"),o()(),H(),o()}if(s&2){let e=t.$implicit;m();let n=L(9);C("id",e.id)("name",e.name)("description",e.description)("badges",e.badges??Z(6,Ye)),d(2),C("matMenuTriggerFor",n)("matMenuTriggerData",K(7,$e,e.id))}}function nt(s,t){if(s&1){let e=b();i(0,"button",10),c("click",function(){let a=g(e).id,r=m();return p(r.onEdit(a))}),i(1,"mat-icon"),l(2,"edit"),o(),l(3," Edit "),o(),i(4,"button",11),c("click",function(){let a=g(e).id,r=m();return p(r.onDelete(a))}),i(5,"mat-icon"),l(6,"delete"),o(),l(7," Delete "),o()}}var Be=class s{agentCrudApi=h(v);location=h(X);dialog=h(te);agents=S([]);isLoading=S(!1);errorMessage=S(null);agentItems=Q(()=>this.agents().map(t=>({id:t.name,name:t.name,description:t.description,badges:this.buildBadges(t),groupKey:t.source,groupLabel:t.source==="project"?"Project (~/.coday/)":"Colocated (next to coday.yaml)"})));ngOnInit(){this.loadAgents()}loadAgents(){this.isLoading.set(!0),this.errorMessage.set(null),this.agentCrudApi.listEditableAgents().subscribe({next:t=>{this.agents.set(t),this.isLoading.set(!1)},error:t=>{this.errorMessage.set(t?.error?.error??"Failed to load agents"),this.isLoading.set(!1)}})}onBack(){this.location.back()}onCreate(){this.dialog.open(w,{width:"700px",maxHeight:"90vh",data:{mode:"create"}}).afterClosed().subscribe(e=>{e&&this.loadAgents()})}onEdit(t){this.agentCrudApi.getAgent(t).subscribe({next:e=>{this.dialog.open(w,{width:"700px",maxHeight:"90vh",data:{mode:"edit",agent:e}}).afterClosed().subscribe(a=>{a&&this.loadAgents()})},error:e=>this.errorMessage.set(e?.error?.error??"Failed to load agent")})}onDelete(t){confirm(`Are you sure you want to delete agent "${t}"?`)&&this.agentCrudApi.deleteAgent(t).subscribe({next:()=>this.loadAgents(),error:e=>this.errorMessage.set(e?.error?.error??"Failed to delete agent")})}buildBadges(t){return[t.source==="project"?{label:"project",variant:"info"}:{label:"colocated",variant:"success"}]}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=E({type:s,selectors:[["app-agent-list"]],decls:11,vars:4,consts:[["agentCard",""],["cardMenu","matMenu"],[1,"agent-list-page"],["title","Agents","cardMinWidth","260px","contentMaxWidth","1400px","searchPlaceholder","Filter agents\u2026","emptyMessage","No file-based agents found.",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","mat-icon-button","","title","Back",3,"click"],[1,"agent-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,"agent-list__delete-item",3,"click"]],template:function(e,n){if(e&1&&(i(0,"div",2)(1,"ds-entity-list",3),c("createRequested",function(){return n.onCreate()}),i(2,"button",4),c("click",function(){return n.onBack()}),i(3,"mat-icon"),l(4,"chevron_left"),o()()(),M(5,et,2,1,"div",5),o(),k(6,tt,5,9,"ng-template",null,0,J),i(8,"mat-menu",null,1),k(10,nt,8,0,"ng-template",6),o()),e&2){let a=L(7);d(),C("items",n.agentItems())("showCreate",!0)("itemTemplate",a),d(4),y(n.errorMessage()?5:-1)}},dependencies:[Oe,De,Pe,I,O,T,F,We,Te,Ie,Fe,ke],styles:["[_nghost-%COMP%]{display:block;width:100%;min-height:100vh;background:var(--color-bg);overflow-y:auto}.agent-list__delete-item[_ngcontent-%COMP%]{color:var(--color-error, #ff3b30)}.agent-list__delete-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:inherit}.agent-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{Be as AgentListComponent};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as _n,e as bn,f as yn,g as xn}from"./chunk-ZAM3WGZM.js";import{a as de}from"./chunk-AJOXSD6I.js";import{i as We}from"./chunk-53STPEYQ.js";import{a as Gt,b as Ut,e as Xt,f as Zt,i as en,j as tn,m as fn,n as gn}from"./chunk-AK6F2DC7.js";import{d as Bt,f as we,h as Ht,i as zt,j as qt,l as Kt,m as $t,p as Yt,s as Wt,v as Jt}from"./chunk-IXD43YQI.js";import{a as le,b as Qt}from"./chunk-WPC6XC7P.js";import{C as hn,D as Ye,b as nn,c as Ke,g as $e,h as on,j as an,l as ke,m as rn,o as sn,r as ln,s as dn,u as cn,v as mn,w as pn,x as un}from"./chunk-XJUBZLY2.js";import{A as Vt,E as He,K as Ie,M as De,N as ze,O as qe,P as Se,a as Nt,b as jt,h as Me,i as Le,n as Lt,t as X,u as Ve,w as Be}from"./chunk-B2QA6UZX.js";import{$a as xe,$b as z,A as ee,Ab as ot,B as Q,Bb as D,Cb as Ne,Db as _,Eb as ve,F as gt,Fb as c,Fc as Rt,G as Te,Gb as j,Hb as M,Ib as U,J as _t,Jb as re,Ka as r,Kb as S,Lb as k,Ma as vt,Na as be,Pa as Fe,Pb as Ce,Qb as Y,R as G,Ra as Ct,Rb as E,S as fe,Sa as ye,Sb as se,T as bt,Tb as u,Ub as C,Vb as je,Wa as y,Wb as St,Xa as oe,Ya as T,_ as te,_b as kt,a as J,aa as L,ab as ae,ac as Et,b as ue,bb as Mt,bc as at,ca as s,e as $,ga as x,h as F,ha as v,hc as Tt,ia as Pe,ib as wt,jb as b,jc as Pt,k as ft,ka as ge,kc as B,la as _e,lb as f,m as he,ma as ne,mb as g,mc as Ot,nb as It,nc as At,oa as h,ob as Re,oc as W,pa as Oe,pb as w,qb as I,rb as p,sb as l,sc as q,ta as R,tb as d,tc as A,ua as yt,ub as P,uc as Ft,va as ie,vb as O,wa as xt,wb as N,xb as Dt,ya as H,za as Ae}from"./chunk-3JGMGRXW.js";var zn=[[["","dsDrawerSide",""]],[["","dsDrawerContent",""]]],qn=["[dsDrawerSide]","[dsDrawerContent]"],vn=class n{breakpointObserver=s(Lt);destroyRef=s(ne);open=!0;drawerWidth="280px";mobileBreakpoint=768;openChange=new h;isMobile=R(!1);drawerMode=B(()=>this.isMobile()?"over":"side");ngOnInit(){this.breakpointObserver.observe([`(max-width: ${this.mobileBreakpoint-1}px)`]).pipe(de(this.destroyRef)).subscribe(o=>this.isMobile.set(o.matches))}onOpenedChange(o){this.openChange.emit(o)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-drawer"]],inputs:{open:"open",drawerWidth:"drawerWidth",mobileBreakpoint:"mobileBreakpoint"},outputs:{openChange:"openChange"},ngContentSelectors:qn,decls:5,vars:6,consts:[[1,"ds-drawer",2,"height","100%"],[1,"ds-drawer__sidenav",3,"openedChange","opened","mode"],[1,"ds-drawer__content"]],template:function(e,t){e&1&&(j(zn),l(0,"mat-sidenav-container",0)(1,"mat-sidenav",1),_("openedChange",function(a){return t.onOpenedChange(a)}),M(2),d(),l(3,"mat-sidenav-content",2),M(4,1),d()()),e&2&&(r(),Y("width",t.drawerWidth),E("ds-drawer__sidenav--overlay",t.isMobile()),p("opened",t.open)("mode",t.drawerMode()))},dependencies:[xn,bn,yn,_n],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0}.ds-drawer[_ngcontent-%COMP%]{width:100%;flex:1;min-height:0;--mat-sidenav-container-background-color: transparent;--mat-sidenav-container-divider-color: var(--color-border, rgba(0, 0, 0, .1));--mat-sidenav-scrim-color: rgba(0, 0, 0, .2)}.ds-drawer.mat-drawer-container[_ngcontent-%COMP%]{flex:1;min-height:0}.ds-drawer__sidenav[_ngcontent-%COMP%]{background:var(--glass-bg, rgba(255, 255, 255, .92));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));border-right:1px solid var(--color-border, rgba(0, 0, 0, .1));box-shadow:none;--mat-sidenav-container-shape: 0;border-radius:0}.ds-drawer__sidenav--overlay[_ngcontent-%COMP%]{background:var(--color-bg, #ffffff);backdrop-filter:none;-webkit-backdrop-filter:none}.ds-drawer__content[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}"],changeDetection:0})};var Je=class n{icon;title="";disabled=!1;variant="default";action=new h;onClick(){this.disabled||this.action.emit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-icon-button"]],inputs:{icon:"icon",title:"title",disabled:"disabled",variant:"variant"},outputs:{action:"action"},decls:3,vars:5,consts:[["mat-icon-button","","type","button",3,"click","disabled","title"]],template:function(e,t){e&1&&(l(0,"button",0),_("click",function(){return t.onClick()}),l(1,"mat-icon"),u(2),d()()),e&2&&(se("icon-button variant-"+t.variant),p("disabled",t.disabled)("title",t.title),r(2),C(t.icon))},dependencies:[qe,le],styles:['@charset "UTF-8";.icon-button[_ngcontent-%COMP%]{transition:color .2s ease,background .2s ease,transform .12s ease,opacity .2s ease}.icon-button[_ngcontent-%COMP%]:hover:not(:disabled){transform:scale(1.1)}.icon-button[_ngcontent-%COMP%]:active:not(:disabled){transform:scale(1.15)}.icon-button[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.icon-button.variant-default[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73)}.icon-button.variant-default[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-primary, #007aff)}.icon-button.variant-primary[_ngcontent-%COMP%]:hover:not(:disabled), .icon-button.variant-danger[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-text-inverse, #ffffff);box-shadow:0 4px 14px var(--icon-button-shadow-color);background:var(--icon-button-accent-color)}.icon-button.variant-primary[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-primary, #007aff);--icon-button-shadow-color: rgba(0, 122, 255, .3);color:var(--color-primary, #007aff)}.icon-button.variant-danger[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-error, #ff3b30);--icon-button-shadow-color: rgba(255, 59, 48, .3);color:var(--color-error, #ff3b30)}']})};var Kn=(n,o)=>o.uid;function $n(n,o){n&1&&(l(0,"span",2),u(1,"*"),d())}function Yn(n,o){if(n&1&&(l(0,"p",3),u(1),d()),n&2){let e=c();r(),C(e.description)}}function Wn(n,o){if(n&1&&P(0,"input",4),n&2){let e=c();p("type",e.htmlInputType)("id",e.inputId)("formControl",e.control()),b("required",e.required()||null)}}function Jn(n,o){if(n&1&&P(0,"input",5),n&2){let e=c();p("id",e.inputId)("formControl",e.control()),b("required",e.required()||null)}}function Qn(n,o){if(n&1&&(l(0,"div",6),P(1,"input",11),l(2,"span",12),u(3),d()()),n&2){let e=c();r(),p("id",e.inputId)("formControl",e.control()),r(2),C(e.label)}}function Gn(n,o){n&1&&(l(0,"option",13),u(1,"\u2014 none \u2014"),d())}function Un(n,o){if(n&1&&(l(0,"option",14),u(1),d()),n&2){let e=o.$implicit;p("value",e),r(),C(e)}}function Xn(n,o){if(n&1&&(l(0,"select",7),f(1,Gn,2,0,"option",13),w(2,Un,2,2,"option",14,Re),d()),n&2){let e=c();p("id",e.inputId)("formControl",e.control()),b("required",e.required()||null),r(),g(e.required()?-1:1),r(),I(e.enumOptions)}}function Zn(n,o){if(n&1){let e=D();l(0,"div",15),P(1,"input",17),l(2,"button",18),_("click",function(){let i=x(e).$index,a=c(2);return v(a.removeScalarItem(i))}),u(3," \xD7 "),d()()}if(n&2){let e=o.$index,t=c(2);r(),p("type",t.itemInputType)("formControl",t.getScalarItemControl(e)),b("aria-label",t.label+" item "+(e+1)),r(),b("aria-label","Remove "+t.label+" item "+(e+1))}}function ei(n,o){if(n&1){let e=D();l(0,"div",8),w(1,Zn,4,4,"div",15,It),l(3,"button",16),_("click",function(){x(e);let i=c();return v(i.addScalarItem())}),u(4),d()()}if(n&2){let e=c();r(),I(e.itemArray.controls),r(3),je("+ Add ",e.label)}}function ti(n,o){if(n&1){let e=D();l(0,"div",19)(1,"div",20)(2,"span",21),u(3),d(),l(4,"button",18),_("click",function(){let i=x(e).$implicit,a=c(2);return v(a.removeObjectItem(i.uid))}),u(5," \xD7 "),d()(),l(6,"ds-json-schema-form",22),_("valueChange",function(i){let a=x(e).$implicit,m=c(2);return v(m.onObjectItemChange(a.uid,i))}),d()()}if(n&2){let e=o.$implicit,t=o.$index,i=c(2);r(3),St("",(i.itemObjectSchema==null?null:i.itemObjectSchema.title)??i.label," ",t+1),r(),b("aria-label","Remove "+i.label+" item "+(t+1)),r(2),p("schema",i.itemObjectSchema)("value",e.seed)}}function ni(n,o){if(n&1){let e=D();l(0,"div",8),w(1,ti,7,5,"div",19,Kn),l(3,"button",16),_("click",function(){x(e);let i=c();return v(i.addObjectItem())}),u(4),d()()}if(n&2){let e=c();r(),I(e.objectItems()),r(3),je("+ Add ",e.label)}}function ii(n,o){if(n&1){let e=D();l(0,"div",9)(1,"ds-json-schema-form",22),_("valueChange",function(i){x(e);let a=c();return v(a.onNestedValueChange(i))}),d()()}if(n&2){let e=c();r(),p("schema",e.fieldSchema())("value",e.nestedInitialValue())}}function oi(n,o){if(n&1&&P(0,"textarea",10),n&2){let e=c();p("id",e.inputId)("formControl",e.control()),b("required",e.required()||null)}}var ai=0;function Cn(n){return{uid:ai++,seed:n,value:n}}var Qe=class n{fieldKey=W.required();fieldSchema=W.required();control=W.required();required=W(!1);itemArray=new ln([]);objectItems=R([]);nestedInitialValue=R(null);ngOnInit(){if(this.fieldType==="array-scalar")this.initScalarArray();else if(this.fieldType==="array-object")this.initObjectArray();else if(this.fieldType==="nested-object"){let o=this.control().value;this.nestedInitialValue.set(o&&typeof o=="object"&&!Array.isArray(o)?o:null)}}initScalarArray(){let o=this.control().value;(Array.isArray(o)?o:[]).forEach(t=>this.itemArray.push(new ke(t))),this.itemArray.valueChanges.subscribe(t=>{this.control().setValue(t,{emitEvent:!0})})}addScalarItem(){this.itemArray.push(new ke(null))}removeScalarItem(o){this.itemArray.removeAt(o)}getScalarItemControl(o){return this.itemArray.at(o)}get itemInputType(){let o=this.fieldSchema().items;if(!o)return"text";let e=Array.isArray(o.type)?o.type[0]:o.type;return e==="number"||e==="integer"?"number":"text"}initObjectArray(){let o=this.control().value,e=Array.isArray(o)?o:[];this.objectItems.set(e.map(t=>Cn(J({},t))))}addObjectItem(){this.objectItems.update(o=>[...o,Cn(null)]),this.syncObjectArrayToControl()}removeObjectItem(o){this.objectItems.update(e=>e.filter(t=>t.uid!==o)),this.syncObjectArrayToControl()}onObjectItemChange(o,e){this.objectItems.update(t=>t.map(i=>i.uid===o?ue(J({},i),{value:e}):i)),this.syncObjectArrayToControl()}get itemObjectSchema(){return this.fieldSchema().items??null}syncObjectArrayToControl(){this.control().setValue(this.objectItems().map(o=>o.value),{emitEvent:!0})}get label(){return this.fieldSchema().title??this.fieldKey()}get description(){return this.fieldSchema().description}get fieldType(){let o=this.fieldSchema();if(o.enum?.length)return"enum";switch(Array.isArray(o.type)?o.type[0]:o.type){case"number":case"integer":return"number";case"boolean":return"boolean";case"array":{let t=o.items;return(t?Array.isArray(t.type)?t.type[0]:t.type:void 0)==="object"&&t?.properties?"array-object":"array-scalar"}case"object":return o.properties?"nested-object":"textarea";default:return"text"}}get htmlInputType(){switch(this.fieldSchema().format){case"password":return"password";case"email":return"email";case"uri":case"url":return"url";case"date":return"date";case"date-time":return"datetime-local";default:return"text"}}get enumOptions(){return this.fieldSchema().enum??[]}get inputId(){return`ds-field-${this.fieldKey()}`}onNestedValueChange(o){let e=this.control().value;JSON.stringify(e)!==JSON.stringify(o)&&this.control().setValue(o,{emitEvent:!0})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-json-schema-field"]],inputs:{fieldKey:[1,"fieldKey"],fieldSchema:[1,"fieldSchema"],control:[1,"control"],required:[1,"required"]},decls:13,vars:5,consts:[[1,"ds-field"],[1,"ds-field__label",3,"for"],["aria-hidden","true",1,"ds-field__required"],[1,"ds-field__description"],[1,"ds-field__input",3,"type","id","formControl"],["type","number",1,"ds-field__input",3,"id","formControl"],[1,"ds-field__checkbox-row"],[1,"ds-field__select",3,"id","formControl"],[1,"ds-field__array"],[1,"ds-field__nested"],["rows","4","placeholder","JSON",1,"ds-field__textarea",3,"id","formControl"],["type","checkbox",1,"ds-field__checkbox",3,"id","formControl"],[1,"ds-field__checkbox-label"],["value",""],[3,"value"],[1,"ds-field__array-row"],["type","button",1,"ds-field__array-add",3,"click"],[1,"ds-field__input","ds-field__input--array-item",3,"type","formControl"],["type","button",1,"ds-field__array-remove",3,"click"],[1,"ds-field__array-object-card"],[1,"ds-field__array-object-header"],[1,"ds-field__array-object-title"],[3,"valueChange","schema","value"]],template:function(e,t){if(e&1&&(l(0,"div",0)(1,"label",1),u(2),f(3,$n,2,0,"span",2),d(),f(4,Yn,2,1,"p",3),f(5,Wn,1,4,"input",4)(6,Jn,1,3,"input",5)(7,Qn,4,3,"div",6)(8,Xn,4,4,"select",7)(9,ei,5,1,"div",8)(10,ni,5,1,"div",8)(11,ii,2,2,"div",9)(12,oi,1,3,"textarea",10),d()),e&2){let i;r(),p("for",t.inputId),r(),je(" ",t.label," "),r(),g(t.required()?3:-1),r(),g(t.description?4:-1),r(),g((i=t.fieldType)==="text"?5:i==="number"?6:i==="boolean"?7:i==="enum"?8:i==="array-scalar"?9:i==="array-object"?10:i==="nested-object"?11:i==="textarea"?12:-1)}},dependencies:()=>[Ye,pn,un,Ke,sn,nn,mn,$e,dn,Ge],styles:[".ds-field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.ds-field__label[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text, #1d1d1f)}.ds-field__required[_ngcontent-%COMP%]{color:var(--color-error, #d32f2f);margin-left:2px}.ds-field__description[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);margin:0}.ds-field__input[_ngcontent-%COMP%], .ds-field__select[_ngcontent-%COMP%], .ds-field__textarea[_ngcontent-%COMP%]{width:100%;padding:6px 10px;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:var(--color-bg-secondary, #f5f5f7);color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;box-sizing:border-box;transition:border-color .15s ease}.ds-field__input[_ngcontent-%COMP%]:focus, .ds-field__select[_ngcontent-%COMP%]:focus, .ds-field__textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}.ds-field__textarea[_ngcontent-%COMP%]{font-family:Menlo,Monaco,Courier New,monospace;font-size:.8125rem;resize:vertical;background:var(--color-code-bg, #f5f5f7)}.ds-field__checkbox-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.ds-field__checkbox[_ngcontent-%COMP%]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary, #007aff);flex-shrink:0}.ds-field__checkbox-label[_ngcontent-%COMP%]{font-size:.875rem;color:var(--color-text, #1d1d1f)}.ds-field__array[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.ds-field__array-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px}.ds-field__input--array-item[_ngcontent-%COMP%]{flex:1}.ds-field__array-remove[_ngcontent-%COMP%]{flex-shrink:0;width:28px;height:28px;padding:0;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease}.ds-field__array-remove[_ngcontent-%COMP%]:hover{border-color:var(--color-error, #d32f2f);color:var(--color-error, #d32f2f)}.ds-field__array-object-card[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7);display:flex;flex-direction:column;gap:10px}.ds-field__array-object-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.ds-field__array-object-title[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6e6e73)}.ds-field__array-add[_ngcontent-%COMP%]{align-self:flex-start;padding:4px 10px;border:1px dashed var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-primary, #007aff);font-size:.8125rem;font-family:inherit;cursor:pointer;transition:border-color .15s ease}.ds-field__array-add[_ngcontent-%COMP%]:hover{border-color:var(--color-primary, #007aff)}.ds-field__nested[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7)}"],changeDetection:0})};function ri(n,o){if(n&1&&P(0,"ds-json-schema-field",1),n&2){let e=o.$implicit,t=c(2);p("fieldKey",e)("fieldSchema",t.getFieldSchema(e))("control",t.getControl(e))("required",t.isRequired(e))}}function si(n,o){if(n&1&&(l(0,"div",0),w(1,ri,1,4,"ds-json-schema-field",1,Re),d()),n&2){let e=c();p("formGroup",e.formGroup),r(),I(e.fieldKeys())}}var Ge=class n{destroyRef=s(ne);schema=W(null);value=W(null);valueChange=At();formGroup=new an({});fieldKeys=B(()=>{let o=this.schema();return o?.properties?Object.keys(o.properties):[]});hasFields=B(()=>this.fieldKeys().length>0);constructor(){yt(()=>{let o=this.schema(),e=Pt(()=>this.value());this.rebuildForm(o,e)})}rebuildForm(o,e){if(Object.keys(this.formGroup.controls).forEach(t=>{this.formGroup.removeControl(t)}),!o?.properties){this.valueChange.emit(null);return}for(let[t,i]of Object.entries(o.properties)){let a=e?.[t]??i.default??null;this.formGroup.addControl(t,new ke(a))}this.formGroup.valueChanges.pipe(de(this.destroyRef)).subscribe(()=>this.emitValue()),this.emitValue()}emitValue(){if(!this.schema()?.properties){this.valueChange.emit(null);return}this.valueChange.emit(this.formGroup.value)}getFieldSchema(o){return this.schema()?.properties?.[o]??{}}isRequired(o){return this.schema()?.required?.includes(o)??!1}getControl(o){return this.formGroup.get(o)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-json-schema-form"]],inputs:{schema:[1,"schema"],value:[1,"value"]},outputs:{valueChange:"valueChange"},decls:1,vars:1,consts:[[1,"ds-json-schema-form",3,"formGroup"],[3,"fieldKey","fieldSchema","control","required"]],template:function(e,t){e&1&&f(0,si,3,1,"div",0),e&2&&g(t.hasFields()?0:-1)},dependencies:[Ye,on,cn,Qe],styles:[".ds-json-schema-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}"]})};var Ue=class n{static \u0275fac=function(e){return new(e||n)};static \u0275dir=T({type:n,selectors:[["","dsCardActions",""]]})};var di=[[["","dsCardActions",""]]],ci=["[dsCardActions]"],mi=(n,o)=>o.label;function pi(n,o){if(n&1&&(l(0,"span"),u(1),d()),n&2){let e=o.$implicit;se(kt("entity-card__badge badge-",e.variant)),r(),C(e.label)}}function ui(n,o){if(n&1&&(l(0,"div",3),w(1,pi,2,4,"span",6,mi),d()),n&2){let e=c();r(),I(e.badges)}}function hi(n,o){if(n&1&&(l(0,"span",4),u(1),d()),n&2){let e=c();p("matTooltip",e.description),r(),C(e.description)}}function fi(n,o){n&1&&(l(0,"div",5),M(1),d())}var Xe=class n{id;name;description=void 0;badges=[];selected=new h;cardActions;get hasActions(){return this.cardActions!==void 0}onClick(){this.selected.emit(this.id)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-entity-card"]],contentQueries:function(e,t,i){if(e&1&&U(i,Ue,5),e&2){let a;S(a=k())&&(t.cardActions=a.first)}},inputs:{id:"id",name:"name",description:"description",badges:"badges"},outputs:{selected:"selected"},ngContentSelectors:ci,decls:7,vars:8,consts:[["matRipple","",1,"entity-card",3,"click","keydown.enter","keydown.space"],[1,"entity-card__body"],[1,"entity-card__name"],[1,"entity-card__badges"],["matTooltipShowDelay","600",1,"entity-card__description",3,"matTooltip"],[1,"entity-card__actions"],[3,"class"]],template:function(e,t){e&1&&(j(di),l(0,"div",0),_("click",function(){return!t.hasActions&&t.onClick()})("keydown.enter",function(){return!t.hasActions&&t.onClick()})("keydown.space",function(){return!t.hasActions&&t.onClick()}),l(1,"div",1)(2,"span",2),u(3),d(),f(4,ui,3,0,"div",3),f(5,hi,2,2,"span",4),d(),f(6,fi,2,0,"div",5),d()),e&2&&(E("entity-card--clickable",!t.hasActions),b("role",t.hasActions?null:"button")("tabindex",t.hasActions?null:"0"),r(3),C(t.name),r(),g(t.badges.length>0?4:-1),r(),g(t.description?5:-1),r(),g(t.hasActions?6:-1))},dependencies:[Se,De,Ut,Gt],styles:[".entity-card[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.25rem;background:var(--color-bg-secondary, rgba(255, 255, 255, .7));border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:12px;overflow:hidden;position:relative;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease}.entity-card--clickable[_ngcontent-%COMP%]{cursor:pointer}.entity-card--clickable[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff);box-shadow:0 2px 12px var(--color-shadow, rgba(0, 0, 0, .08));transform:translateY(-1px)}.entity-card--clickable[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:2px}.entity-card--clickable[_ngcontent-%COMP%]:active{transform:translateY(0)}.entity-card__body[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.375rem}.entity-card__name[_ngcontent-%COMP%]{font-size:.9375rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1.3}.entity-card__description[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-card__badges[_ngcontent-%COMP%]{display:flex;gap:.25rem;flex-wrap:wrap}.entity-card__badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.0625rem .3rem;border-radius:999px;font-size:.5625rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#fff}.entity-card__badge.badge-warning[_ngcontent-%COMP%]{background:var(--color-warning, #ff9500)}.entity-card__badge.badge-info[_ngcontent-%COMP%]{background:var(--color-info, #5ac8fa)}.entity-card__badge.badge-success[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.entity-card__badge.badge-error[_ngcontent-%COMP%]{background:var(--color-error, #ff3b30)}.entity-card__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}"],changeDetection:0})};var rt=new L("CdkAccordion"),wn=(()=>{class n{_stateChanges=new F;_openCloseAllActions=new F;id=s(X).getId("cdk-accordion-");multi=!1;openAll(){this.multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(e){this._stateChanges.next(e)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:[2,"multi","multi",A]},exportAs:["cdkAccordion"],features:[z([{provide:rt,useExisting:n}]),ie]})}return n})(),In=(()=>{class n{accordion=s(rt,{optional:!0,skipSelf:!0});_changeDetectorRef=s(q);_expansionDispatcher=s(We);_openCloseAllSubscription=$.EMPTY;closed=new h;opened=new h;destroyed=new h;expandedChange=new h;id=s(X).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(e){if(this._expanded!==e){if(this._expanded=e,this.expandedChange.emit(e),e){this.opened.emit();let t=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,t)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;get disabled(){return this._disabled()}set disabled(e){this._disabled.set(e)}_disabled=R(!1);_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((e,t)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===t&&this.id!==e&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",A],disabled:[2,"disabled","disabled",A]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[z([{provide:rt,useValue:void 0}])]})}return n})(),Dn=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275mod=oe({type:n});static \u0275inj=te({})}return n})();var gi=["body"],_i=["bodyWrapper"],bi=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],yi=["mat-expansion-panel-header","*","mat-action-row"];function xi(n,o){}var vi=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],Ci=["mat-panel-title","mat-panel-description","*"];function Mi(n,o){n&1&&(O(0,"span",1),Pe(),O(1,"svg",2),Dt(2,"path",3),N()())}var st=new L("MAT_ACCORDION"),Sn=new L("MAT_EXPANSION_PANEL"),wi=(()=>{class n{_template=s(be);_expansionPanel=s(Sn,{optional:!0});constructor(){}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["ng-template","matExpansionPanelContent",""]]})}return n})(),kn=new L("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),ct=(()=>{class n extends In{_viewContainerRef=s(ye);_animationsDisabled=Ie();_document=s(_e);_ngZone=s(Oe);_elementRef=s(H);_renderer=s(Fe);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=e}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}_togglePosition;afterExpand=new h;afterCollapse=new h;_inputChanges=new F;accordion=s(st,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=s(X).getId("mat-expansion-panel-header-");constructor(){super();let e=s(kn,{optional:!0});this._expansionDispatcher=s(We),e&&(this.hideToggle=e.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(G(null),Q(()=>this.expanded&&!this._portal),Te(1)).subscribe(()=>{this._portal=new we(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let e=this._document.activeElement,t=this._body.nativeElement;return e===t||t.contains(e)}return!1}_transitionEndListener=({target:e,propertyName:t})=>{e===this._bodyWrapper?.nativeElement&&t==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let e=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this._transitionEndListener),e.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=y({type:n,selectors:[["mat-expansion-panel"]],contentQueries:function(t,i,a){if(t&1&&U(a,wi,5),t&2){let m;S(m=k())&&(i._lazyContent=m.first)}},viewQuery:function(t,i){if(t&1&&re(gi,5)(_i,5),t&2){let a;S(a=k())&&(i._body=a.first),S(a=k())&&(i._bodyWrapper=a.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(t,i){t&2&&E("mat-expanded",i.expanded)("mat-expansion-panel-spacing",i._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",A],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[z([{provide:st,useValue:void 0},{provide:Sn,useExisting:n}]),xe,ie],ngContentSelectors:yi,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(t,i){t&1&&(j(bi),M(0),l(1,"div",2,0)(3,"div",3,1)(5,"div",4),M(6,1),ae(7,xi,0,0,"ng-template",5),d(),M(8,2),d()()),t&2&&(r(),b("inert",i.expanded?null:""),r(2),p("id",i.id),b("aria-labelledby",i._headerId),r(4),p("cdkPortalOutlet",i._portal))},dependencies:[zt],styles:[`.mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel{position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:var(--mat-expansion-container-elevation-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))}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}@media print{.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-content{font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}
|
|
1
|
+
import{d as _n,e as bn,f as yn,g as xn}from"./chunk-ZAM3WGZM.js";import{i as We}from"./chunk-53STPEYQ.js";import{a as Gt,b as Ut,e as Xt,f as Zt,i as en,j as tn,m as fn,n as gn}from"./chunk-AK6F2DC7.js";import{a as de}from"./chunk-AJOXSD6I.js";import{d as Bt,f as we,h as Ht,i as zt,j as qt,l as Kt,m as $t,p as Yt,s as Wt,v as Jt}from"./chunk-IXD43YQI.js";import{a as le,b as Qt}from"./chunk-WPC6XC7P.js";import{C as hn,D as Ye,b as nn,c as Ke,g as $e,h as on,j as an,l as ke,m as rn,o as sn,r as ln,s as dn,u as cn,v as mn,w as pn,x as un}from"./chunk-XJUBZLY2.js";import{A as Vt,E as He,K as Ie,M as De,N as ze,O as qe,P as Se,a as Nt,b as jt,h as Me,i as Le,n as Lt,t as X,u as Ve,w as Be}from"./chunk-B2QA6UZX.js";import{$a as xe,$b as z,A as ee,Ab as ot,B as Q,Bb as D,Cb as Ne,Db as _,Eb as ve,F as gt,Fb as c,Fc as Rt,G as Te,Gb as j,Hb as M,Ib as U,J as _t,Jb as re,Ka as r,Kb as S,Lb as k,Ma as vt,Na as be,Pa as Fe,Pb as Ce,Qb as Y,R as G,Ra as Ct,Rb as E,S as fe,Sa as ye,Sb as se,T as bt,Tb as u,Ub as C,Vb as je,Wa as y,Wb as St,Xa as oe,Ya as T,_ as te,_b as kt,a as J,aa as L,ab as ae,ac as Et,b as ue,bb as Mt,bc as at,ca as s,e as $,ga as x,h as F,ha as v,hc as Tt,ia as Pe,ib as wt,jb as b,jc as Pt,k as ft,ka as ge,kc as B,la as _e,lb as f,m as he,ma as ne,mb as g,mc as Ot,nb as It,nc as At,oa as h,ob as Re,oc as W,pa as Oe,pb as w,qb as I,rb as p,sb as l,sc as q,ta as R,tb as d,tc as A,ua as yt,ub as P,uc as Ft,va as ie,vb as O,wa as xt,wb as N,xb as Dt,ya as H,za as Ae}from"./chunk-3JGMGRXW.js";var zn=[[["","dsDrawerSide",""]],[["","dsDrawerContent",""]]],qn=["[dsDrawerSide]","[dsDrawerContent]"],vn=class n{breakpointObserver=s(Lt);destroyRef=s(ne);open=!0;drawerWidth="280px";mobileBreakpoint=768;openChange=new h;isMobile=R(!1);drawerMode=B(()=>this.isMobile()?"over":"side");ngOnInit(){this.breakpointObserver.observe([`(max-width: ${this.mobileBreakpoint-1}px)`]).pipe(de(this.destroyRef)).subscribe(o=>this.isMobile.set(o.matches))}onOpenedChange(o){this.openChange.emit(o)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-drawer"]],inputs:{open:"open",drawerWidth:"drawerWidth",mobileBreakpoint:"mobileBreakpoint"},outputs:{openChange:"openChange"},ngContentSelectors:qn,decls:5,vars:6,consts:[[1,"ds-drawer",2,"height","100%"],[1,"ds-drawer__sidenav",3,"openedChange","opened","mode"],[1,"ds-drawer__content"]],template:function(e,t){e&1&&(j(zn),l(0,"mat-sidenav-container",0)(1,"mat-sidenav",1),_("openedChange",function(a){return t.onOpenedChange(a)}),M(2),d(),l(3,"mat-sidenav-content",2),M(4,1),d()()),e&2&&(r(),Y("width",t.drawerWidth),E("ds-drawer__sidenav--overlay",t.isMobile()),p("opened",t.open)("mode",t.drawerMode()))},dependencies:[xn,bn,yn,_n],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0}.ds-drawer[_ngcontent-%COMP%]{width:100%;flex:1;min-height:0;--mat-sidenav-container-background-color: transparent;--mat-sidenav-container-divider-color: var(--color-border, rgba(0, 0, 0, .1));--mat-sidenav-scrim-color: rgba(0, 0, 0, .2)}.ds-drawer.mat-drawer-container[_ngcontent-%COMP%]{flex:1;min-height:0}.ds-drawer__sidenav[_ngcontent-%COMP%]{background:var(--glass-bg, rgba(255, 255, 255, .92));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));border-right:1px solid var(--color-border, rgba(0, 0, 0, .1));box-shadow:none;--mat-sidenav-container-shape: 0;border-radius:0}.ds-drawer__sidenav--overlay[_ngcontent-%COMP%]{background:var(--color-bg, #ffffff);backdrop-filter:none;-webkit-backdrop-filter:none}.ds-drawer__content[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}"],changeDetection:0})};var Je=class n{icon;title="";disabled=!1;variant="default";action=new h;onClick(){this.disabled||this.action.emit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-icon-button"]],inputs:{icon:"icon",title:"title",disabled:"disabled",variant:"variant"},outputs:{action:"action"},decls:3,vars:5,consts:[["mat-icon-button","","type","button",3,"click","disabled","title"]],template:function(e,t){e&1&&(l(0,"button",0),_("click",function(){return t.onClick()}),l(1,"mat-icon"),u(2),d()()),e&2&&(se("icon-button variant-"+t.variant),p("disabled",t.disabled)("title",t.title),r(2),C(t.icon))},dependencies:[qe,le],styles:['@charset "UTF-8";.icon-button[_ngcontent-%COMP%]{transition:color .2s ease,background .2s ease,transform .12s ease,opacity .2s ease}.icon-button[_ngcontent-%COMP%]:hover:not(:disabled){transform:scale(1.1)}.icon-button[_ngcontent-%COMP%]:active:not(:disabled){transform:scale(1.15)}.icon-button[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.icon-button.variant-default[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73)}.icon-button.variant-default[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-primary, #007aff)}.icon-button.variant-primary[_ngcontent-%COMP%]:hover:not(:disabled), .icon-button.variant-danger[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-text-inverse, #ffffff);box-shadow:0 4px 14px var(--icon-button-shadow-color);background:var(--icon-button-accent-color)}.icon-button.variant-primary[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-primary, #007aff);--icon-button-shadow-color: rgba(0, 122, 255, .3);color:var(--color-primary, #007aff)}.icon-button.variant-danger[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-error, #ff3b30);--icon-button-shadow-color: rgba(255, 59, 48, .3);color:var(--color-error, #ff3b30)}']})};var Kn=(n,o)=>o.uid;function $n(n,o){n&1&&(l(0,"span",2),u(1,"*"),d())}function Yn(n,o){if(n&1&&(l(0,"p",3),u(1),d()),n&2){let e=c();r(),C(e.description)}}function Wn(n,o){if(n&1&&P(0,"input",4),n&2){let e=c();p("type",e.htmlInputType)("id",e.inputId)("formControl",e.control()),b("required",e.required()||null)}}function Jn(n,o){if(n&1&&P(0,"input",5),n&2){let e=c();p("id",e.inputId)("formControl",e.control()),b("required",e.required()||null)}}function Qn(n,o){if(n&1&&(l(0,"div",6),P(1,"input",11),l(2,"span",12),u(3),d()()),n&2){let e=c();r(),p("id",e.inputId)("formControl",e.control()),r(2),C(e.label)}}function Gn(n,o){n&1&&(l(0,"option",13),u(1,"\u2014 none \u2014"),d())}function Un(n,o){if(n&1&&(l(0,"option",14),u(1),d()),n&2){let e=o.$implicit;p("value",e),r(),C(e)}}function Xn(n,o){if(n&1&&(l(0,"select",7),f(1,Gn,2,0,"option",13),w(2,Un,2,2,"option",14,Re),d()),n&2){let e=c();p("id",e.inputId)("formControl",e.control()),b("required",e.required()||null),r(),g(e.required()?-1:1),r(),I(e.enumOptions)}}function Zn(n,o){if(n&1){let e=D();l(0,"div",15),P(1,"input",17),l(2,"button",18),_("click",function(){let i=x(e).$index,a=c(2);return v(a.removeScalarItem(i))}),u(3," \xD7 "),d()()}if(n&2){let e=o.$index,t=c(2);r(),p("type",t.itemInputType)("formControl",t.getScalarItemControl(e)),b("aria-label",t.label+" item "+(e+1)),r(),b("aria-label","Remove "+t.label+" item "+(e+1))}}function ei(n,o){if(n&1){let e=D();l(0,"div",8),w(1,Zn,4,4,"div",15,It),l(3,"button",16),_("click",function(){x(e);let i=c();return v(i.addScalarItem())}),u(4),d()()}if(n&2){let e=c();r(),I(e.itemArray.controls),r(3),je("+ Add ",e.label)}}function ti(n,o){if(n&1){let e=D();l(0,"div",19)(1,"div",20)(2,"span",21),u(3),d(),l(4,"button",18),_("click",function(){let i=x(e).$implicit,a=c(2);return v(a.removeObjectItem(i.uid))}),u(5," \xD7 "),d()(),l(6,"ds-json-schema-form",22),_("valueChange",function(i){let a=x(e).$implicit,m=c(2);return v(m.onObjectItemChange(a.uid,i))}),d()()}if(n&2){let e=o.$implicit,t=o.$index,i=c(2);r(3),St("",(i.itemObjectSchema==null?null:i.itemObjectSchema.title)??i.label," ",t+1),r(),b("aria-label","Remove "+i.label+" item "+(t+1)),r(2),p("schema",i.itemObjectSchema)("value",e.seed)}}function ni(n,o){if(n&1){let e=D();l(0,"div",8),w(1,ti,7,5,"div",19,Kn),l(3,"button",16),_("click",function(){x(e);let i=c();return v(i.addObjectItem())}),u(4),d()()}if(n&2){let e=c();r(),I(e.objectItems()),r(3),je("+ Add ",e.label)}}function ii(n,o){if(n&1){let e=D();l(0,"div",9)(1,"ds-json-schema-form",22),_("valueChange",function(i){x(e);let a=c();return v(a.onNestedValueChange(i))}),d()()}if(n&2){let e=c();r(),p("schema",e.fieldSchema())("value",e.nestedInitialValue())}}function oi(n,o){if(n&1&&P(0,"textarea",10),n&2){let e=c();p("id",e.inputId)("formControl",e.control()),b("required",e.required()||null)}}var ai=0;function Cn(n){return{uid:ai++,seed:n,value:n}}var Qe=class n{fieldKey=W.required();fieldSchema=W.required();control=W.required();required=W(!1);itemArray=new ln([]);objectItems=R([]);nestedInitialValue=R(null);ngOnInit(){if(this.fieldType==="array-scalar")this.initScalarArray();else if(this.fieldType==="array-object")this.initObjectArray();else if(this.fieldType==="nested-object"){let o=this.control().value;this.nestedInitialValue.set(o&&typeof o=="object"&&!Array.isArray(o)?o:null)}}initScalarArray(){let o=this.control().value;(Array.isArray(o)?o:[]).forEach(t=>this.itemArray.push(new ke(t))),this.itemArray.valueChanges.subscribe(t=>{this.control().setValue(t,{emitEvent:!0})})}addScalarItem(){this.itemArray.push(new ke(null))}removeScalarItem(o){this.itemArray.removeAt(o)}getScalarItemControl(o){return this.itemArray.at(o)}get itemInputType(){let o=this.fieldSchema().items;if(!o)return"text";let e=Array.isArray(o.type)?o.type[0]:o.type;return e==="number"||e==="integer"?"number":"text"}initObjectArray(){let o=this.control().value,e=Array.isArray(o)?o:[];this.objectItems.set(e.map(t=>Cn(J({},t))))}addObjectItem(){this.objectItems.update(o=>[...o,Cn(null)]),this.syncObjectArrayToControl()}removeObjectItem(o){this.objectItems.update(e=>e.filter(t=>t.uid!==o)),this.syncObjectArrayToControl()}onObjectItemChange(o,e){this.objectItems.update(t=>t.map(i=>i.uid===o?ue(J({},i),{value:e}):i)),this.syncObjectArrayToControl()}get itemObjectSchema(){return this.fieldSchema().items??null}syncObjectArrayToControl(){this.control().setValue(this.objectItems().map(o=>o.value),{emitEvent:!0})}get label(){return this.fieldSchema().title??this.fieldKey()}get description(){return this.fieldSchema().description}get fieldType(){let o=this.fieldSchema();if(o.enum?.length)return"enum";switch(Array.isArray(o.type)?o.type[0]:o.type){case"number":case"integer":return"number";case"boolean":return"boolean";case"array":{let t=o.items;return(t?Array.isArray(t.type)?t.type[0]:t.type:void 0)==="object"&&t?.properties?"array-object":"array-scalar"}case"object":return o.properties?"nested-object":"textarea";default:return"text"}}get htmlInputType(){switch(this.fieldSchema().format){case"password":return"password";case"email":return"email";case"uri":case"url":return"url";case"date":return"date";case"date-time":return"datetime-local";default:return"text"}}get enumOptions(){return this.fieldSchema().enum??[]}get inputId(){return`ds-field-${this.fieldKey()}`}onNestedValueChange(o){let e=this.control().value;JSON.stringify(e)!==JSON.stringify(o)&&this.control().setValue(o,{emitEvent:!0})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-json-schema-field"]],inputs:{fieldKey:[1,"fieldKey"],fieldSchema:[1,"fieldSchema"],control:[1,"control"],required:[1,"required"]},decls:13,vars:5,consts:[[1,"ds-field"],[1,"ds-field__label",3,"for"],["aria-hidden","true",1,"ds-field__required"],[1,"ds-field__description"],[1,"ds-field__input",3,"type","id","formControl"],["type","number",1,"ds-field__input",3,"id","formControl"],[1,"ds-field__checkbox-row"],[1,"ds-field__select",3,"id","formControl"],[1,"ds-field__array"],[1,"ds-field__nested"],["rows","4","placeholder","JSON",1,"ds-field__textarea",3,"id","formControl"],["type","checkbox",1,"ds-field__checkbox",3,"id","formControl"],[1,"ds-field__checkbox-label"],["value",""],[3,"value"],[1,"ds-field__array-row"],["type","button",1,"ds-field__array-add",3,"click"],[1,"ds-field__input","ds-field__input--array-item",3,"type","formControl"],["type","button",1,"ds-field__array-remove",3,"click"],[1,"ds-field__array-object-card"],[1,"ds-field__array-object-header"],[1,"ds-field__array-object-title"],[3,"valueChange","schema","value"]],template:function(e,t){if(e&1&&(l(0,"div",0)(1,"label",1),u(2),f(3,$n,2,0,"span",2),d(),f(4,Yn,2,1,"p",3),f(5,Wn,1,4,"input",4)(6,Jn,1,3,"input",5)(7,Qn,4,3,"div",6)(8,Xn,4,4,"select",7)(9,ei,5,1,"div",8)(10,ni,5,1,"div",8)(11,ii,2,2,"div",9)(12,oi,1,3,"textarea",10),d()),e&2){let i;r(),p("for",t.inputId),r(),je(" ",t.label," "),r(),g(t.required()?3:-1),r(),g(t.description?4:-1),r(),g((i=t.fieldType)==="text"?5:i==="number"?6:i==="boolean"?7:i==="enum"?8:i==="array-scalar"?9:i==="array-object"?10:i==="nested-object"?11:i==="textarea"?12:-1)}},dependencies:()=>[Ye,pn,un,Ke,sn,nn,mn,$e,dn,Ge],styles:[".ds-field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.ds-field__label[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text, #1d1d1f)}.ds-field__required[_ngcontent-%COMP%]{color:var(--color-error, #d32f2f);margin-left:2px}.ds-field__description[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);margin:0}.ds-field__input[_ngcontent-%COMP%], .ds-field__select[_ngcontent-%COMP%], .ds-field__textarea[_ngcontent-%COMP%]{width:100%;padding:6px 10px;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:var(--color-bg-secondary, #f5f5f7);color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;box-sizing:border-box;transition:border-color .15s ease}.ds-field__input[_ngcontent-%COMP%]:focus, .ds-field__select[_ngcontent-%COMP%]:focus, .ds-field__textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}.ds-field__textarea[_ngcontent-%COMP%]{font-family:Menlo,Monaco,Courier New,monospace;font-size:.8125rem;resize:vertical;background:var(--color-code-bg, #f5f5f7)}.ds-field__checkbox-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.ds-field__checkbox[_ngcontent-%COMP%]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary, #007aff);flex-shrink:0}.ds-field__checkbox-label[_ngcontent-%COMP%]{font-size:.875rem;color:var(--color-text, #1d1d1f)}.ds-field__array[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.ds-field__array-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px}.ds-field__input--array-item[_ngcontent-%COMP%]{flex:1}.ds-field__array-remove[_ngcontent-%COMP%]{flex-shrink:0;width:28px;height:28px;padding:0;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease}.ds-field__array-remove[_ngcontent-%COMP%]:hover{border-color:var(--color-error, #d32f2f);color:var(--color-error, #d32f2f)}.ds-field__array-object-card[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7);display:flex;flex-direction:column;gap:10px}.ds-field__array-object-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.ds-field__array-object-title[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6e6e73)}.ds-field__array-add[_ngcontent-%COMP%]{align-self:flex-start;padding:4px 10px;border:1px dashed var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-primary, #007aff);font-size:.8125rem;font-family:inherit;cursor:pointer;transition:border-color .15s ease}.ds-field__array-add[_ngcontent-%COMP%]:hover{border-color:var(--color-primary, #007aff)}.ds-field__nested[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7)}"],changeDetection:0})};function ri(n,o){if(n&1&&P(0,"ds-json-schema-field",1),n&2){let e=o.$implicit,t=c(2);p("fieldKey",e)("fieldSchema",t.getFieldSchema(e))("control",t.getControl(e))("required",t.isRequired(e))}}function si(n,o){if(n&1&&(l(0,"div",0),w(1,ri,1,4,"ds-json-schema-field",1,Re),d()),n&2){let e=c();p("formGroup",e.formGroup),r(),I(e.fieldKeys())}}var Ge=class n{destroyRef=s(ne);schema=W(null);value=W(null);valueChange=At();formGroup=new an({});fieldKeys=B(()=>{let o=this.schema();return o?.properties?Object.keys(o.properties):[]});hasFields=B(()=>this.fieldKeys().length>0);constructor(){yt(()=>{let o=this.schema(),e=Pt(()=>this.value());this.rebuildForm(o,e)})}rebuildForm(o,e){if(Object.keys(this.formGroup.controls).forEach(t=>{this.formGroup.removeControl(t)}),!o?.properties){this.valueChange.emit(null);return}for(let[t,i]of Object.entries(o.properties)){let a=e?.[t]??i.default??null;this.formGroup.addControl(t,new ke(a))}this.formGroup.valueChanges.pipe(de(this.destroyRef)).subscribe(()=>this.emitValue()),this.emitValue()}emitValue(){if(!this.schema()?.properties){this.valueChange.emit(null);return}this.valueChange.emit(this.formGroup.value)}getFieldSchema(o){return this.schema()?.properties?.[o]??{}}isRequired(o){return this.schema()?.required?.includes(o)??!1}getControl(o){return this.formGroup.get(o)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-json-schema-form"]],inputs:{schema:[1,"schema"],value:[1,"value"]},outputs:{valueChange:"valueChange"},decls:1,vars:1,consts:[[1,"ds-json-schema-form",3,"formGroup"],[3,"fieldKey","fieldSchema","control","required"]],template:function(e,t){e&1&&f(0,si,3,1,"div",0),e&2&&g(t.hasFields()?0:-1)},dependencies:[Ye,on,cn,Qe],styles:[".ds-json-schema-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}"]})};var Ue=class n{static \u0275fac=function(e){return new(e||n)};static \u0275dir=T({type:n,selectors:[["","dsCardActions",""]]})};var di=[[["","dsCardActions",""]]],ci=["[dsCardActions]"],mi=(n,o)=>o.label;function pi(n,o){if(n&1&&(l(0,"span"),u(1),d()),n&2){let e=o.$implicit;se(kt("entity-card__badge badge-",e.variant)),r(),C(e.label)}}function ui(n,o){if(n&1&&(l(0,"div",3),w(1,pi,2,4,"span",6,mi),d()),n&2){let e=c();r(),I(e.badges)}}function hi(n,o){if(n&1&&(l(0,"span",4),u(1),d()),n&2){let e=c();p("matTooltip",e.description),r(),C(e.description)}}function fi(n,o){n&1&&(l(0,"div",5),M(1),d())}var Xe=class n{id;name;description=void 0;badges=[];selected=new h;cardActions;get hasActions(){return this.cardActions!==void 0}onClick(){this.selected.emit(this.id)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-entity-card"]],contentQueries:function(e,t,i){if(e&1&&U(i,Ue,5),e&2){let a;S(a=k())&&(t.cardActions=a.first)}},inputs:{id:"id",name:"name",description:"description",badges:"badges"},outputs:{selected:"selected"},ngContentSelectors:ci,decls:7,vars:8,consts:[["matRipple","",1,"entity-card",3,"click","keydown.enter","keydown.space"],[1,"entity-card__body"],[1,"entity-card__name"],[1,"entity-card__badges"],["matTooltipShowDelay","600",1,"entity-card__description",3,"matTooltip"],[1,"entity-card__actions"],[3,"class"]],template:function(e,t){e&1&&(j(di),l(0,"div",0),_("click",function(){return!t.hasActions&&t.onClick()})("keydown.enter",function(){return!t.hasActions&&t.onClick()})("keydown.space",function(){return!t.hasActions&&t.onClick()}),l(1,"div",1)(2,"span",2),u(3),d(),f(4,ui,3,0,"div",3),f(5,hi,2,2,"span",4),d(),f(6,fi,2,0,"div",5),d()),e&2&&(E("entity-card--clickable",!t.hasActions),b("role",t.hasActions?null:"button")("tabindex",t.hasActions?null:"0"),r(3),C(t.name),r(),g(t.badges.length>0?4:-1),r(),g(t.description?5:-1),r(),g(t.hasActions?6:-1))},dependencies:[Se,De,Ut,Gt],styles:[".entity-card[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.25rem;background:var(--color-bg-secondary, rgba(255, 255, 255, .7));border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:12px;overflow:hidden;position:relative;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease}.entity-card--clickable[_ngcontent-%COMP%]{cursor:pointer}.entity-card--clickable[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff);box-shadow:0 2px 12px var(--color-shadow, rgba(0, 0, 0, .08));transform:translateY(-1px)}.entity-card--clickable[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:2px}.entity-card--clickable[_ngcontent-%COMP%]:active{transform:translateY(0)}.entity-card__body[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.375rem}.entity-card__name[_ngcontent-%COMP%]{font-size:.9375rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1.3}.entity-card__description[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-card__badges[_ngcontent-%COMP%]{display:flex;gap:.25rem;flex-wrap:wrap}.entity-card__badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.0625rem .3rem;border-radius:999px;font-size:.5625rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#fff}.entity-card__badge.badge-warning[_ngcontent-%COMP%]{background:var(--color-warning, #ff9500)}.entity-card__badge.badge-info[_ngcontent-%COMP%]{background:var(--color-info, #5ac8fa)}.entity-card__badge.badge-success[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.entity-card__badge.badge-error[_ngcontent-%COMP%]{background:var(--color-error, #ff3b30)}.entity-card__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}"],changeDetection:0})};var rt=new L("CdkAccordion"),wn=(()=>{class n{_stateChanges=new F;_openCloseAllActions=new F;id=s(X).getId("cdk-accordion-");multi=!1;openAll(){this.multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(e){this._stateChanges.next(e)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:[2,"multi","multi",A]},exportAs:["cdkAccordion"],features:[z([{provide:rt,useExisting:n}]),ie]})}return n})(),In=(()=>{class n{accordion=s(rt,{optional:!0,skipSelf:!0});_changeDetectorRef=s(q);_expansionDispatcher=s(We);_openCloseAllSubscription=$.EMPTY;closed=new h;opened=new h;destroyed=new h;expandedChange=new h;id=s(X).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(e){if(this._expanded!==e){if(this._expanded=e,this.expandedChange.emit(e),e){this.opened.emit();let t=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,t)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;get disabled(){return this._disabled()}set disabled(e){this._disabled.set(e)}_disabled=R(!1);_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((e,t)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===t&&this.id!==e&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",A],disabled:[2,"disabled","disabled",A]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[z([{provide:rt,useValue:void 0}])]})}return n})(),Dn=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275mod=oe({type:n});static \u0275inj=te({})}return n})();var gi=["body"],_i=["bodyWrapper"],bi=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],yi=["mat-expansion-panel-header","*","mat-action-row"];function xi(n,o){}var vi=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],Ci=["mat-panel-title","mat-panel-description","*"];function Mi(n,o){n&1&&(O(0,"span",1),Pe(),O(1,"svg",2),Dt(2,"path",3),N()())}var st=new L("MAT_ACCORDION"),Sn=new L("MAT_EXPANSION_PANEL"),wi=(()=>{class n{_template=s(be);_expansionPanel=s(Sn,{optional:!0});constructor(){}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["ng-template","matExpansionPanelContent",""]]})}return n})(),kn=new L("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),ct=(()=>{class n extends In{_viewContainerRef=s(ye);_animationsDisabled=Ie();_document=s(_e);_ngZone=s(Oe);_elementRef=s(H);_renderer=s(Fe);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=e}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}_togglePosition;afterExpand=new h;afterCollapse=new h;_inputChanges=new F;accordion=s(st,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=s(X).getId("mat-expansion-panel-header-");constructor(){super();let e=s(kn,{optional:!0});this._expansionDispatcher=s(We),e&&(this.hideToggle=e.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(G(null),Q(()=>this.expanded&&!this._portal),Te(1)).subscribe(()=>{this._portal=new we(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let e=this._document.activeElement,t=this._body.nativeElement;return e===t||t.contains(e)}return!1}_transitionEndListener=({target:e,propertyName:t})=>{e===this._bodyWrapper?.nativeElement&&t==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let e=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this._transitionEndListener),e.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=y({type:n,selectors:[["mat-expansion-panel"]],contentQueries:function(t,i,a){if(t&1&&U(a,wi,5),t&2){let m;S(m=k())&&(i._lazyContent=m.first)}},viewQuery:function(t,i){if(t&1&&re(gi,5)(_i,5),t&2){let a;S(a=k())&&(i._body=a.first),S(a=k())&&(i._bodyWrapper=a.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(t,i){t&2&&E("mat-expanded",i.expanded)("mat-expansion-panel-spacing",i._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",A],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[z([{provide:st,useValue:void 0},{provide:Sn,useExisting:n}]),xe,ie],ngContentSelectors:yi,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(t,i){t&1&&(j(bi),M(0),l(1,"div",2,0)(3,"div",3,1)(5,"div",4),M(6,1),ae(7,xi,0,0,"ng-template",5),d(),M(8,2),d()()),t&2&&(r(),b("inert",i.expanded?null:""),r(2),p("id",i.id),b("aria-labelledby",i._headerId),r(4),p("cdkPortalOutlet",i._portal))},dependencies:[zt],styles:[`.mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel{position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:var(--mat-expansion-container-elevation-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))}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}@media print{.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-content{font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}
|
|
2
2
|
`],encapsulation:2,changeDetection:0})}return n})();var mt=(()=>{class n{panel=s(ct,{host:!0});_element=s(H);_focusMonitor=s(Me);_changeDetectorRef=s(q);_parentChangeSubscription=$.EMPTY;constructor(){s(Le).load(ze);let e=this.panel,t=s(kn,{optional:!0}),i=s(new Ot("tabindex"),{optional:!0}),a=e.accordion?e.accordion._stateChanges.pipe(Q(m=>!!(m.hideToggle||m.togglePosition))):ft;this.tabIndex=parseInt(i||"")||0,this._parentChangeSubscription=ee(e.opened,e.closed,a,e._inputChanges.pipe(Q(m=>!!(m.hideToggle||m.disabled||m.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(Q(()=>e._containsFocus())).subscribe(()=>this._focusMonitor.focusVia(this._element,"program")),t&&(this.expandedHeight=t.expandedHeight,this.collapsedHeight=t.collapsedHeight)}expandedHeight;collapsedHeight;tabIndex=0;get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){let e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:Ve(e)||(e.preventDefault(),this._toggle());break;default:this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e);return}}focus(e,t){e?this._focusMonitor.focusVia(this._element,e,t):this._element.nativeElement.focus(t)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=y({type:n,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:13,hostBindings:function(t,i){t&1&&_("click",function(){return i._toggle()})("keydown",function(m){return i._keydown(m)}),t&2&&(b("id",i.panel._headerId)("tabindex",i.disabled?-1:i.tabIndex)("aria-controls",i._getPanelId())("aria-expanded",i._isExpanded())("aria-disabled",i.panel.disabled),Y("height",i._getHeaderHeight()),E("mat-expanded",i._isExpanded())("mat-expansion-toggle-indicator-after",i._getTogglePosition()==="after")("mat-expansion-toggle-indicator-before",i._getTogglePosition()==="before"))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:Ft(e)]},ngContentSelectors:Ci,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(t,i){t&1&&(j(vi),O(0,"span",0),M(1),M(2,1),M(3,2),N(),f(4,Mi,3,0,"span",1)),t&2&&(E("mat-content-hide-toggle",!i._showToggle()),r(4),g(i._showToggle()?4:-1))},styles:[`.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header{height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}}
|
|
3
3
|
`],encapsulation:2,changeDetection:0})}return n})();var En=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return n})(),Tn=(()=>{class n extends wn{_keyManager;_ownHeaders=new Ae;_headers;hideToggle=!1;displayMode="default";togglePosition="after";ngAfterContentInit(){this._headers.changes.pipe(G(this._headers)).subscribe(e=>{this._ownHeaders.reset(e.filter(t=>t.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new Be(this._ownHeaders).withWrap().withHomeAndEnd()}_handleHeaderKeydown(e){this._keyManager.onKeydown(e)}_handleHeaderFocus(e){this._keyManager.updateActiveItem(e)}ngOnDestroy(){super.ngOnDestroy(),this._keyManager?.destroy(),this._ownHeaders.destroy()}static \u0275fac=(()=>{let e;return function(i){return(e||(e=xt(n)))(i||n)}})();static \u0275dir=T({type:n,selectors:[["mat-accordion"]],contentQueries:function(t,i,a){if(t&1&&U(a,mt,5),t&2){let m;S(m=k())&&(i._headers=m)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(t,i){t&2&&E("mat-accordion-multi",i.multi)},inputs:{hideToggle:[2,"hideToggle","hideToggle",A],displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],features:[z([{provide:st,useExisting:n}]),xe]})}return n})(),Pn=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275mod=oe({type:n});static \u0275inj=te({imports:[Dn,qt,He]})}return n})();var Di=["searchInput"],Si=[[["","toolbar-start",""]],[["","toolbar-extras",""]]],ki=["[toolbar-start]","[toolbar-extras]"],An=n=>({$implicit:n}),Ei=()=>[],Ti=(n,o)=>o.groupKey,Fn=(n,o)=>o.id;function Pi(n,o){if(n&1){let e=D();l(0,"button",14),_("click",function(){x(e);let i=c();return v(i.clearSearch())}),l(1,"mat-icon"),u(2,"close"),d()()}}function Oi(n,o){if(n&1){let e=D();l(0,"button",15),_("click",function(){x(e);let i=c();return v(i.onCreateRequested())}),l(1,"mat-icon"),u(2,"add"),d()()}}function Ai(n,o){if(n&1&&(l(0,"p",11),u(1),d()),n&2){let e=c();r(),C(e.emptyMessage)}}function Fi(n,o){if(n&1&&(l(0,"mat-expansion-panel-header")(1,"mat-panel-title",18),u(2),d()()),n&2){let e=c().$implicit;r(2),C(e.groupLabel)}}function Ri(n,o){n&1&&ot(0)}function Ni(n,o){if(n&1&&ae(0,Ri,1,0,"ng-container",19),n&2){let e=o.$implicit,t=c(3),i=Ce(18);p("ngTemplateOutlet",t.itemTemplate??i)("ngTemplateOutletContext",at(2,An,e))}}function ji(n,o){if(n&1&&(l(0,"mat-expansion-panel",16),f(1,Fi,3,1,"mat-expansion-panel-header"),l(2,"div",17),w(3,Ni,1,4,"ng-container",null,Fn),d()()),n&2){let e=o.$implicit,t=c(2);p("expanded",!0),r(),g(e.groupLabel?1:-1),r(),Y("--card-min-width",t.cardMinWidth),r(),I(e.items)}}function Li(n,o){if(n&1&&(l(0,"mat-accordion",12),w(1,ji,5,4,"mat-expansion-panel",16,Ti),d()),n&2){let e=c();p("multi",!0),r(),I(e.groupedItems())}}function Vi(n,o){n&1&&ot(0)}function Bi(n,o){if(n&1&&ae(0,Vi,1,0,"ng-container",19),n&2){let e=o.$implicit,t=c(2),i=Ce(18);p("ngTemplateOutlet",t.itemTemplate??i)("ngTemplateOutletContext",at(2,An,e))}}function Hi(n,o){if(n&1&&(l(0,"div",17),w(1,Bi,1,4,"ng-container",null,Fn),d()),n&2){let e=c();Y("--card-min-width",e.cardMinWidth),r(),I(e.filteredItems())}}function zi(n,o){if(n&1){let e=D();l(0,"ds-entity-card",20),_("selected",function(i){x(e);let a=c();return v(a.onItemSelected(i))}),d()}if(n&2){let e=o.$implicit;p("id",e.id)("name",e.name)("description",e.description)("badges",e.badges??Et(4,Ei))}}var On=class n{title;items=[];searchPlaceholder="Filter\u2026";emptyMessage="No items found.";autoFocusSearch=!1;cardMinWidth="260px";contentMaxWidth="900px";showCreate=!1;itemTemplate;itemSelected=new h;createRequested=new h;searchInputRef;itemsSignal=R([]);searchQuery=R("");isSearchActive=B(()=>this.searchQuery().trim().length>0);filteredItems=B(()=>{let o=this.searchQuery().toLowerCase().trim(),e=this.itemsSignal();return o?e.filter(t=>t.name.toLowerCase().includes(o)||(t.description?.toLowerCase().includes(o)??!1)):e});groupedItems=B(()=>{let o=this.filteredItems(),e=[],t=new Map;for(let a of o){if(!a.groupKey){e.push(a);continue}t.has(a.groupKey)||t.set(a.groupKey,{groupKey:a.groupKey,groupLabel:a.groupLabel??a.groupKey,items:[]}),t.get(a.groupKey).items.push(a)}let i=[];return e.length>0&&i.push({groupKey:"",groupLabel:"",items:e}),i.push(...t.values()),i});hasGroups=B(()=>!this.isSearchActive()&&this.groupedItems().some(o=>o.groupKey!==""));ngOnChanges(o){o.items&&this.itemsSignal.set(this.items)}ngAfterViewInit(){this.autoFocusSearch&&setTimeout(()=>this.searchInputRef?.nativeElement.focus(),0)}onSearchChange(o){this.searchQuery.set(o)}clearSearch(){this.searchQuery.set(""),this.searchInputRef?.nativeElement.focus()}onItemSelected(o){this.itemSelected.emit(o)}onCreateRequested(){this.createRequested.emit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-entity-list"]],viewQuery:function(e,t){if(e&1&&re(Di,5),e&2){let i;S(i=k())&&(t.searchInputRef=i.first)}},hostVars:1,hostBindings:function(e,t){e&2&&b("title",null)},inputs:{title:"title",items:"items",searchPlaceholder:"searchPlaceholder",emptyMessage:"emptyMessage",autoFocusSearch:"autoFocusSearch",cardMinWidth:"cardMinWidth",contentMaxWidth:"contentMaxWidth",showCreate:"showCreate",itemTemplate:"itemTemplate"},outputs:{itemSelected:"itemSelected",createRequested:"createRequested"},features:[ie],ngContentSelectors:ki,decls:19,vars:8,consts:[["searchInput",""],["defaultCard",""],[1,"entity-list"],[1,"entity-list__toolbar"],[1,"entity-list__title"],["appearance","fill","subscriptSizing","dynamic",1,"entity-list__search-field"],["matPrefix",""],["matInput","","type","search","autocomplete","off",3,"ngModelChange","keydown.escape","placeholder","ngModel"],["matSuffix","","mat-icon-button","","aria-label","Clear"],["mat-icon-button","","type","button","title","Create",1,"entity-list__toolbar-btn","entity-list__toolbar-btn--primary"],[1,"entity-list__content"],[1,"entity-list__empty"],[3,"multi"],[1,"entity-list__grid",3,"--card-min-width"],["matSuffix","","mat-icon-button","","aria-label","Clear",3,"click"],["mat-icon-button","","type","button","title","Create",1,"entity-list__toolbar-btn","entity-list__toolbar-btn--primary",3,"click"],[1,"entity-list__panel",3,"expanded"],[1,"entity-list__grid"],[1,"entity-list__panel-title"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"selected","id","name","description","badges"]],template:function(e,t){e&1&&(j(Si),l(0,"div",2)(1,"div",3),M(2),l(3,"h1",4),u(4),d(),l(5,"mat-form-field",5)(6,"mat-icon",6),u(7,"search"),d(),l(8,"input",7,0),_("ngModelChange",function(a){return t.onSearchChange(a)})("keydown.escape",function(){return t.clearSearch()}),d(),f(10,Pi,3,0,"button",8),d(),M(11,1),f(12,Oi,3,0,"button",9),d(),l(13,"div",10),f(14,Ai,2,1,"p",11)(15,Li,3,1,"mat-accordion",12)(16,Hi,3,2,"div",13),d()(),ae(17,zi,1,5,"ng-template",null,1,Tt)),e&2&&(r(4),C(t.title),r(4),p("placeholder",t.searchPlaceholder)("ngModel",t.searchQuery()),r(2),g(t.isSearchActive()?10:-1),r(2),g(t.showCreate?12:-1),r(),Y("max-width",t.contentMaxWidth),r(),g(t.filteredItems().length===0?14:t.hasGroups()?15:16))},dependencies:[hn,Ke,$e,rn,Qt,le,qe,Pn,Tn,ct,mt,En,tn,en,Xt,Zt,gn,fn,Xe,Rt],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0}.entity-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;box-sizing:border-box}.entity-list__toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .1));height:56px;width:100%;box-sizing:border-box}.entity-list__title[_ngcontent-%COMP%]{flex:0 0 auto;margin:0;font-size:1rem;font-weight:600;color:var(--color-text, #1d1d1f);white-space:nowrap}.entity-list__search-field[_ngcontent-%COMP%]{margin-left:auto;padding-left:20px;flex:0 1 240px;min-width:80px;--mat-form-field-container-height: 36px;--mat-form-field-container-vertical-padding: 6px;font-size:.875rem;--mat-form-field-filled-with-label-container-padding-top: 0;--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}.entity-list__toolbar-btn[_ngcontent-%COMP%]{flex-shrink:0;color:var(--color-text-secondary, #6e6e73)}.entity-list__toolbar-btn[_ngcontent-%COMP%]:hover{color:var(--color-text, #1d1d1f)}.entity-list__toolbar-btn--primary[_ngcontent-%COMP%]{color:var(--color-primary, #007aff)}.entity-list__toolbar-btn--primary[_ngcontent-%COMP%]:hover{color:var(--color-primary-hover, #0051d5)}.entity-list__content[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;width:100%;max-width:900px;margin:0 auto;padding:.75rem 1rem;box-sizing:border-box}.entity-list__empty[_ngcontent-%COMP%]{margin:0;padding:2rem 0;text-align:center;color:var(--color-text-secondary, #6e6e73);font-size:.9375rem}.entity-list__panel[_ngcontent-%COMP%]{background:transparent;box-shadow:none!important}.entity-list__panel[_ngcontent-%COMP%] + .entity-list__panel[_ngcontent-%COMP%]{border-top:1px solid var(--color-border-light, rgba(40, 40, 40, .08))}.entity-list__panel-title[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary, #6e6e73)}.entity-list__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-min-width, 260px),1fr));gap:.75rem;padding:.5rem 0}"]})};var Yi=["mat-menu-item",""],Wi=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],Ji=["mat-icon, [matMenuItemIcon]","*"];function Qi(n,o){n&1&&(Pe(),l(0,"svg",2),P(1,"polygon",3),d())}var Gi=["*"];function Ui(n,o){if(n&1){let e=D();O(0,"div",0),ve("click",function(){x(e);let i=c();return v(i.closed.emit("click"))})("animationstart",function(i){x(e);let a=c();return v(a._onAnimationStart(i.animationName))})("animationend",function(i){x(e);let a=c();return v(a._onAnimationDone(i.animationName))})("animationcancel",function(i){x(e);let a=c();return v(a._onAnimationDone(i.animationName))}),O(1,"div",1),M(2),N()()}if(n&2){let e=c();se(e._classList),E("mat-menu-panel-animations-disabled",e._animationsDisabled)("mat-menu-panel-exit-animation",e._panelAnimationState==="void")("mat-menu-panel-animating",e._isAnimating()),Ne("id",e.panelId),b("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}var ut=new L("MAT_MENU_PANEL"),Ee=(()=>{class n{_elementRef=s(H);_document=s(_e);_focusMonitor=s(Me);_parentMenu=s(ut,{optional:!0});_changeDetectorRef=s(q);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new F;_focused=new F;_highlighted=!1;_triggersSubmenu=!1;constructor(){s(Le).load(ze),this._parentMenu?.addItem?.(this)}focus(e,t){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,t):this._getHostElement().focus(t),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){let e=this._elementRef.nativeElement.cloneNode(!0),t=e.querySelectorAll("mat-icon, .material-icons");for(let i=0;i<t.length;i++)t[i].remove();return e.textContent?.trim()||""}_setHighlighted(e){this._highlighted=e,this._changeDetectorRef.markForCheck()}_setTriggersSubmenu(e){this._triggersSubmenu=e,this._changeDetectorRef.markForCheck()}_hasFocus(){return this._document&&this._document.activeElement===this._getHostElement()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=y({type:n,selectors:[["","mat-menu-item",""]],hostAttrs:[1,"mat-mdc-menu-item","mat-focus-indicator"],hostVars:8,hostBindings:function(t,i){t&1&&_("click",function(m){return i._checkDisabled(m)})("mouseenter",function(){return i._handleMouseEnter()}),t&2&&(b("role",i.role)("tabindex",i._getTabIndex())("aria-disabled",i.disabled)("disabled",i.disabled||null),E("mat-mdc-menu-item-highlighted",i._highlighted)("mat-mdc-menu-item-submenu-trigger",i._triggersSubmenu))},inputs:{role:"role",disabled:[2,"disabled","disabled",A],disableRipple:[2,"disableRipple","disableRipple",A]},exportAs:["matMenuItem"],attrs:Yi,ngContentSelectors:Ji,decls:5,vars:3,consts:[[1,"mat-mdc-menu-item-text"],["matRipple","",1,"mat-mdc-menu-ripple",3,"matRippleDisabled","matRippleTrigger"],["viewBox","0 0 5 10","focusable","false","aria-hidden","true",1,"mat-mdc-menu-submenu-icon"],["points","0,0 5,5 0,10"]],template:function(t,i){t&1&&(j(Wi),M(0),l(1,"span",0),M(2,1),d(),P(3,"div",1),f(4,Qi,2,0,":svg:svg",2)),t&2&&(r(3),p("matRippleDisabled",i.disableRipple||i.disabled)("matRippleTrigger",i._getHostElement()),r(),g(i._triggersSubmenu?4:-1))},dependencies:[De],encapsulation:2,changeDetection:0})}return n})();var jn=new L("MatMenuContent"),Nr=(()=>{class n{_template=s(be);_appRef=s(wt);_injector=s(ge);_viewContainerRef=s(ye);_document=s(_e);_changeDetectorRef=s(q);_portal;_outlet;_attached=new F;constructor(){}attach(e={}){this._portal||(this._portal=new we(this._template,this._viewContainerRef)),this.detach(),this._outlet||(this._outlet=new Ht(this._document.createElement("div"),this._appRef,this._injector));let t=this._template.elementRef.nativeElement;t.parentNode.insertBefore(this._outlet.outletElement,t),this._changeDetectorRef.markForCheck(),this._portal.attach(this._outlet,e),this._attached.next()}detach(){this._portal?.isAttached&&this._portal.detach()}ngOnDestroy(){this.detach(),this._outlet?.dispose()}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["ng-template","matMenuContent",""]],features:[z([{provide:jn,useExisting:n}])]})}return n})(),Xi=new L("mat-menu-default-options",{providedIn:"root",factory:()=>({overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"})}),pt="_mat-menu-enter",Ze="_mat-menu-exit",me=(()=>{class n{_elementRef=s(H);_changeDetectorRef=s(q);_injector=s(ge);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled=Ie();_allItems;_directDescendantItems=new Ae;_classList={};_panelAnimationState="void";_animationDone=new F;_isAnimating=R(!1);parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}templateRef;items;lazyContent;overlapTrigger=!1;hasBackdrop;set panelClass(e){let t=this._previousPanelClass,i=J({},this._classList);t&&t.length&&t.split(" ").forEach(a=>{i[a]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(a=>{i[a]=!0}),this._elementRef.nativeElement.className=""),this._classList=i}_previousPanelClass;get classList(){return this.panelClass}set classList(e){this.panelClass=e}closed=new h;close=this.closed;panelId=s(X).getId("mat-menu-panel-");constructor(){let e=s(Xi);this.overlayPanelClass=e.overlayPanelClass||"",this._xPosition=e.xPosition,this._yPosition=e.yPosition,this.backdropClass=e.backdropClass,this.overlapTrigger=e.overlapTrigger,this.hasBackdrop=e.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new Be(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(G(this._directDescendantItems),fe(e=>ee(...e.map(t=>t._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{let t=this._keyManager;if(this._panelAnimationState==="enter"&&t.activeItem?._hasFocus()){let i=e.toArray(),a=Math.max(0,Math.min(i.length-1,t.activeItemIndex||0));i[a]&&!i[a].disabled?t.setActiveItem(a):t.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout)}_hovered(){return this._directDescendantItems.changes.pipe(G(this._directDescendantItems),fe(t=>ee(...t.map(i=>i._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){let t=e.keyCode,i=this._keyManager;switch(t){case 27:Ve(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&this.direction==="ltr"&&this.closed.emit("keydown");break;case 39:this.parentMenu&&this.direction==="rtl"&&this.closed.emit("keydown");break;default:(t===38||t===40)&&i.setFocusOrigin("keyboard"),i.onKeydown(e);return}}focusFirstItem(e="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=vt(()=>{let t=this._resolvePanel();if(!t||!t.contains(document.activeElement)){let i=this._keyManager;i.setFocusOrigin(e).setFirstItemActive(),!i.activeItem&&t&&t.focus()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){}setPositionClasses(e=this.xPosition,t=this.yPosition){this._classList=ue(J({},this._classList),{"mat-menu-before":e==="before","mat-menu-after":e==="after","mat-menu-above":t==="above","mat-menu-below":t==="below"}),this._changeDetectorRef.markForCheck()}_onAnimationDone(e){let t=e===Ze;(t||e===pt)&&(t&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(t?"void":"enter"),this._isAnimating.set(!1))}_onAnimationStart(e){(e===pt||e===Ze)&&this._isAnimating.set(!0)}_setIsOpen(e){if(this._panelAnimationState=e?"enter":"void",e){if(this._keyManager.activeItemIndex===0){let t=this._resolvePanel();t&&(t.scrollTop=0)}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(Ze),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(e?pt:Ze)}),this._changeDetectorRef.markForCheck()}_updateDirectDescendants(){this._allItems.changes.pipe(G(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(t=>t._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}_resolvePanel(){let e=null;return this._directDescendantItems.length&&(e=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),e}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=y({type:n,selectors:[["mat-menu"]],contentQueries:function(t,i,a){if(t&1&&U(a,jn,5)(a,Ee,5)(a,Ee,4),t&2){let m;S(m=k())&&(i.lazyContent=m.first),S(m=k())&&(i._allItems=m),S(m=k())&&(i.items=m)}},viewQuery:function(t,i){if(t&1&&re(be,5),t&2){let a;S(a=k())&&(i.templateRef=a.first)}},hostVars:3,hostBindings:function(t,i){t&2&&b("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",A],hasBackdrop:[2,"hasBackdrop","hasBackdrop",e=>e==null?null:A(e)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[z([{provide:ut,useExisting:n}])],ngContentSelectors:Gi,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(t,i){t&1&&(j(),Mt(0,Ui,3,12,"ng-template"))},styles:[`mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-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));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{border-top-color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: active){.mat-mdc-menu-submenu-icon{fill:CanvasText}}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}
|
|
4
4
|
`],encapsulation:2,changeDetection:0})}return n})(),Zi=new L("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{let n=s(ge);return()=>Kt(n)}});var ce=new WeakMap,eo=(()=>{class n{_canHaveBackdrop;_element=s(H);_viewContainerRef=s(ye);_menuItemInstance=s(Ee,{optional:!0,self:!0});_dir=s(Vt,{optional:!0});_focusMonitor=s(Me);_ngZone=s(Oe);_injector=s(ge);_scrollStrategy=s(Zi);_changeDetectorRef=s(q);_animationsDisabled=Ie();_portal;_overlayRef=null;_menuOpen=!1;_closingActionsSubscription=$.EMPTY;_menuCloseSubscription=$.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_openedBy=void 0;get _menu(){return this._menuInternal}set _menu(e){e!==this._menuInternal&&(this._menuInternal=e,this._menuCloseSubscription.unsubscribe(),e&&(this._parentMaterialMenu,this._menuCloseSubscription=e.close.subscribe(t=>{this._destroyMenu(t),(t==="click"||t==="tab")&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(t)})),this._menuItemInstance?._setTriggersSubmenu(this._triggersSubmenu()))}_menuInternal=null;constructor(e){this._canHaveBackdrop=e;let t=s(ut,{optional:!0});this._parentMaterialMenu=t instanceof me?t:void 0}ngOnDestroy(){this._menu&&this._ownsMenu(this._menu)&&ce.delete(this._menu),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null)}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this._menu)}_closeMenu(){this._menu?.close.emit()}_openMenu(e){if(this._triggerIsAriaDisabled())return;let t=this._menu;if(this._menuOpen||!t)return;this._pendingRemoval?.unsubscribe();let i=ce.get(t);ce.set(t,this),i&&i!==this&&i._closeMenu();let a=this._createOverlay(t),m=a.getConfig(),K=m.positionStrategy;this._setPosition(t,K),this._canHaveBackdrop?m.hasBackdrop=t.hasBackdrop==null?!this._triggersSubmenu():t.hasBackdrop:m.hasBackdrop=t.hasBackdrop??!1,a.hasAttached()||(a.attach(this._getPortal(t)),t.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this._closeMenu()),t.parentMenu=this._triggersSubmenu()?this._parentMaterialMenu:void 0,t.direction=this.dir,e&&t.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0),t instanceof me&&(t._setIsOpen(!0),t._directDescendantItems.changes.pipe(bt(t.close)).subscribe(()=>{K.withLockedPosition(!1).reapplyLastPosition(),K.withLockedPosition(!0)}))}focus(e,t){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,t):this._element.nativeElement.focus(t)}_destroyMenu(e){let t=this._overlayRef,i=this._menu;!t||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),i instanceof me&&this._ownsMenu(i)?(this._pendingRemoval=i._animationDone.pipe(Te(1)).subscribe(()=>{t.detach(),ce.has(i)||i.lazyContent?.detach()}),i._setIsOpen(!1)):(t.detach(),i?.lazyContent?.detach()),i&&this._ownsMenu(i)&&ce.delete(i),this.restoreFocus&&(e==="keydown"||!this._openedBy||!this._triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(!1))}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this._triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){let t=this._getOverlayConfig(e);this._subscribeToPositions(e,t.positionStrategy),this._overlayRef=Wt(this._injector,t),this._overlayRef.keydownEvents().subscribe(i=>{this._menu instanceof me&&this._menu._handleKeydown(i)})}return this._overlayRef}_getOverlayConfig(e){return new $t({positionStrategy:Yt(this._injector,this._getOverlayOrigin()).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir||"ltr",disableAnimations:this._animationsDisabled})}_subscribeToPositions(e,t){e.setPositionClasses&&t.positionChanges.subscribe(i=>{this._ngZone.run(()=>{let a=i.connectionPair.overlayX==="start"?"after":"before",m=i.connectionPair.overlayY==="top"?"below":"above";e.setPositionClasses(a,m)})})}_setPosition(e,t){let[i,a]=e.xPosition==="before"?["end","start"]:["start","end"],[m,K]=e.yPosition==="above"?["bottom","top"]:["top","bottom"],[et,tt]=[m,K],[nt,it]=[i,a],pe=0;if(this._triggersSubmenu()){if(it=i=e.xPosition==="before"?"start":"end",a=nt=i==="end"?"start":"end",this._parentMaterialMenu){if(this._parentInnerPadding==null){let ht=this._parentMaterialMenu.items.first;this._parentInnerPadding=ht?ht._getHostElement().offsetTop:0}pe=m==="bottom"?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(et=m==="top"?"bottom":"top",tt=K==="top"?"bottom":"top");t.withPositions([{originX:i,originY:et,overlayX:nt,overlayY:m,offsetY:pe},{originX:a,originY:et,overlayX:it,overlayY:m,offsetY:pe},{originX:i,originY:tt,overlayX:nt,overlayY:K,offsetY:-pe},{originX:a,originY:tt,overlayX:it,overlayY:K,offsetY:-pe}])}_menuClosingActions(){let e=this._getOutsideClickStream(this._overlayRef),t=this._overlayRef.detachments(),i=this._parentMaterialMenu?this._parentMaterialMenu.closed:he(),a=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Q(m=>this._menuOpen&&m!==this._menuItemInstance)):he();return ee(e,i,a,t)}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new we(e.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(e){return ce.get(e)===this}_triggerIsAriaDisabled(){return A(this._element.nativeElement.getAttribute("aria-disabled"))}static \u0275fac=function(t){Ct()};static \u0275dir=T({type:n})}return n})(),Ln=(()=>{class n extends eo{_cleanupTouchstart;_hoverSubscription=$.EMPTY;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){this._menu=e}menuData;restoreFocus=!0;menuOpened=new h;onMenuOpen=this.menuOpened;menuClosed=new h;onMenuClose=this.menuClosed;constructor(){super(!0);let e=s(Fe);this._cleanupTouchstart=e.listen(this._element.nativeElement,"touchstart",t=>{jt(t)||(this._openedBy="touch")},{passive:!0})}triggersSubmenu(){return super._triggersSubmenu()}toggleMenu(){return this.menuOpen?this.closeMenu():this.openMenu()}openMenu(){this._openMenu(!0)}closeMenu(){this._closeMenu()}updatePosition(){this._overlayRef?.updatePosition()}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTouchstart(),this._hoverSubscription.unsubscribe()}_getOverlayOrigin(){return this._element}_getOutsideClickStream(e){return e.backdropClick()}_handleMousedown(e){Nt(e)||(this._openedBy=e.button===0?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){let t=e.keyCode;(t===13||t===32)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(t===39&&this.dir==="ltr"||t===37&&this.dir==="rtl")&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().subscribe(e=>{e===this._menuItemInstance&&!e.disabled&&this._parentMaterialMenu?._panelAnimationState!=="void"&&(this._openedBy="mouse",this._openMenu(!1))}))}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(t,i){t&1&&_("click",function(m){return i._handleClick(m)})("mousedown",function(m){return i._handleMousedown(m)})("keydown",function(m){return i._handleKeydown(m)}),t&2&&b("aria-haspopup",i.menu?"menu":null)("aria-expanded",i.menuOpen)("aria-controls",i.menuOpen?i.menu==null?null:i.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],features:[xe]})}return n})();var Vn=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275mod=oe({type:n});static \u0275inj=te({imports:[Se,Jt,He,Bt]})}return n})();var no=(n,o)=>o.id;function io(n,o){if(n&1&&(O(0,"span",6),u(1),N()),n&2){let e=c().$implicit;r(),C(e.description)}}function oo(n,o){if(n&1){let e=D();O(0,"div",4),ve("mousedown",function(){let i=x(e).$implicit,a=c(2);return v(a.selectItem(i))})("touchstart",function(){let i=x(e).$implicit,a=c(2);return v(a.selectItem(i))}),O(1,"span",5),u(2),N(),f(3,io,2,1,"span",6),N()}if(n&2){let e=o.$implicit,t=o.$index,i=c(2);E("selected",t===i.selectedIndex),r(2),C(e.name),r(),g(e.description?3:-1)}}function ao(n,o){if(n&1&&(O(0,"div",2),w(1,oo,4,4,"div",3,no),N()),n&2){let e=c();r(),I(e.items)}}var Bn=class n{dataSource;placeholder="";disabled=!1;itemSelected=new h;elementRef=s(H);destroyRef=s(ne);query$=new F;query="";items=[];showDropdown=!1;selectedIndex=-1;ngOnInit(){this.query$.pipe(gt(200),_t(),fe(o=>{let e=o.trim();return e?this.dataSource.search(e):he([])}),de(this.destroyRef)).subscribe(o=>{this.items=o,this.selectedIndex=-1,this.showDropdown=o.length>0})}onInput(o){this.query=o.target.value,this.query$.next(this.query)}onFocus(){this.items.length>0&&(this.showDropdown=!0)}onBlur(){setTimeout(()=>this.closeDropdown(),150)}onKeydown(o){if(this.showDropdown)switch(o.key){case"ArrowDown":o.preventDefault(),this.selectedIndex=Math.min(this.selectedIndex+1,this.items.length-1),this.scrollSelectedIntoView();break;case"ArrowUp":o.preventDefault(),this.selectedIndex=Math.max(this.selectedIndex-1,0),this.scrollSelectedIntoView();break;case"Tab":o.preventDefault(),o.shiftKey?this.selectedIndex<=0?this.closeDropdown():(this.selectedIndex--,this.scrollSelectedIntoView()):this.selectedIndex>=this.items.length-1?this.closeDropdown():(this.selectedIndex++,this.scrollSelectedIntoView());break;case"Enter":o.preventDefault(),this.selectedIndex>=0&&this.selectedIndex<this.items.length&&this.selectItem(this.items[this.selectedIndex]);break;case"Escape":o.preventDefault(),this.closeDropdown();break}}selectItem(o){this.itemSelected.emit(o),this.query="",this.closeDropdown()}closeDropdown(){this.showDropdown=!1,this.selectedIndex=-1,this.items=[]}scrollSelectedIntoView(){setTimeout(()=>{this.elementRef.nativeElement.querySelector(".autocomplete-dropdown")?.querySelector(".autocomplete-option.selected")?.scrollIntoView({block:"nearest"})})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-autocomplete-input"]],inputs:{dataSource:"dataSource",placeholder:"placeholder",disabled:"disabled"},outputs:{itemSelected:"itemSelected"},decls:3,vars:4,consts:[[1,"autocomplete-container"],["type","text",3,"input","keydown","focus","blur","placeholder","disabled","value"],[1,"autocomplete-dropdown"],[1,"autocomplete-option",3,"selected"],[1,"autocomplete-option",3,"mousedown","touchstart"],[1,"option-name"],[1,"option-description"]],template:function(e,t){e&1&&(O(0,"div",0)(1,"input",1),ve("input",function(a){return t.onInput(a)})("keydown",function(a){return t.onKeydown(a)})("focus",function(){return t.onFocus()})("blur",function(){return t.onBlur()}),N(),f(2,ao,3,0,"div",2),N()),e&2&&(r(),Ne("placeholder",t.placeholder)("disabled",t.disabled)("value",t.query),r(),g(t.showDropdown&&t.items.length>0?2:-1))},styles:['@charset "UTF-8";.autocomplete-container[_ngcontent-%COMP%]{position:relative;display:block;width:100%}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;font-size:14px;line-height:1.5;color:var(--color-text, #1d1d1f);background:var(--glass-bg);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff);box-shadow:0 0 0 3px #007aff26}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.autocomplete-dropdown[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:var(--glass-bg);border:1px solid var(--color-border, #e0e0e0);border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;max-height:240px;overflow-y:auto;overflow-x:hidden}.autocomplete-option[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;padding:10px 12px;cursor:pointer;transition:background .1s ease}.autocomplete-option[_ngcontent-%COMP%]:first-child{border-radius:8px 8px 0 0}.autocomplete-option[_ngcontent-%COMP%]:last-child{border-radius:0 0 8px 8px}.autocomplete-option[_ngcontent-%COMP%]:only-child{border-radius:8px}.autocomplete-option[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, #f5f5f5)}.autocomplete-option.selected[_ngcontent-%COMP%]{background:var(--color-bg-hover, #f5f5f5);outline:2px solid var(--color-primary, #007aff);outline-offset:-2px}.autocomplete-option[_ngcontent-%COMP%] .option-name[_ngcontent-%COMP%]{font-size:14px;font-weight:400;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-option[_ngcontent-%COMP%] .option-description[_ngcontent-%COMP%]{font-size:12px;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}']})};var ro=(n,o)=>o.key;function so(n,o){if(n&1&&(l(0,"mat-icon"),u(1),d()),n&2){let e=c().$implicit;r(),C(e.icon)}}function lo(n,o){if(n&1){let e=D();l(0,"button",3),_("click",function(){let i=x(e).$implicit,a=c();return v(a.onItemClick(i.key))}),f(1,so,2,1,"mat-icon"),l(2,"span"),u(3),d()()}if(n&2){let e=o.$implicit;p("disabled",e.disabled??!1),b("data-variant",e.variant??"default"),r(),g(e.icon?1:-1),r(2),C(e.label)}}var Hn=class n{items;itemSelected=new h;onItemClick(o){this.itemSelected.emit(o)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-kebab-menu"]],inputs:{items:"items"},outputs:{itemSelected:"itemSelected"},decls:5,vars:1,consts:[["menu","matMenu"],["icon","more_vert","title","More actions",3,"matMenuTriggerFor"],["mat-menu-item","",3,"disabled"],["mat-menu-item","",3,"click","disabled"]],template:function(e,t){if(e&1&&(P(0,"ds-icon-button",1),l(1,"mat-menu",null,0),w(3,lo,4,4,"button",2,ro),d()),e&2){let i=Ce(2);p("matMenuTriggerFor",i),r(3),I(t.items)}},dependencies:[Je,le,Vn,me,Ee,Ln],styles:["[_nghost-%COMP%]{display:inline-flex;align-items:center}"],changeDetection:0})};export{vn as a,Je as b,Ge as c,Bn as d,Ue as e,Xe as f,On as g,Ee as h,Nr as i,me as j,Ln as k,Vn as l,Hn as m};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as a}from"./chunk-V6CWNYSW.js";import"./chunk-IFXDK4GQ.js";import"./chunk-GAZJZBKP.js";import"./chunk-QWMDAFBN.js";import"./chunk-LR7LOR4R.js";import"./chunk-ZAM3WGZM.js";import"./chunk-53STPEYQ.js";import"./chunk-AK6F2DC7.js";import"./chunk-AJOXSD6I.js";import"./chunk-IXD43YQI.js";import"./chunk-WPC6XC7P.js";import"./chunk-XJUBZLY2.js";import"./chunk-B2QA6UZX.js";import"./chunk-3JGMGRXW.js";export{a as UserListComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as L,c as z}from"./chunk-GAZJZBKP.js";import{b as F,d as y}from"./chunk-QWMDAFBN.js";import{b as v,g as K,m as j}from"./chunk-
|
|
1
|
+
import{b as L,c as z}from"./chunk-GAZJZBKP.js";import{b as F,d as y}from"./chunk-QWMDAFBN.js";import{b as v,g as K,m as j}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 u,Db as s,Fb as l,Gc as $,Ka as p,Pb as T,S as P,Tb as f,Ub as I,Vb as E,Wa as g,ab as R,ac as O,ca as d,dc as B,ec as V,ga as m,ha as c,hc as q,i as w,lb as C,ma as k,mb as b,oa as N,rb as _,sb as a,t as A,ta as S,tb as r,u as D}from"./chunk-3JGMGRXW.js";function H(o,i){if(o&1){let e=u();a(0,"span",7),f(1,"Delete?"),r(),a(2,"ds-icon-button",8),s("action",function(){m(e);let t=l();return c(t.onDeleteConfirmed())}),r(),a(3,"ds-icon-button",9),s("action",function(){m(e);let t=l();return c(t.onDeleteCancelled())}),r()}}function J(o,i){if(o&1){let e=u();a(0,"ds-kebab-menu",10),s("itemSelected",function(t){m(e);let h=l();return c(h.onMenuAction(t))}),r()}if(o&2){let e=l();_("items",e.menuItems)}}var M=class o{router=d(y);model;namespaceId;deleteRequested=new N;pendingDelete=S(!1);menuItems=[{key:"edit",label:"Edit model",icon:"edit"},{key:"delete",label:"Delete model",icon:"delete",variant:"danger"}];get displayTitle(){return this.model.alias??this.model.apiModelName}onMenuAction(i){switch(i){case"edit":this.router.navigate(["/agentos",this.namespaceId,"ai-models",this.model.id,"edit"]);break;case"delete":this.pendingDelete.set(!0);break}}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.model)}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=g({type:o,selectors:[["agentos-ai-model-item"]],inputs:{model:"model",namespaceId:"namespaceId"},outputs:{deleteRequested:"deleteRequested"},decls:12,vars:4,consts:[["role","listitem",1,"ai-model-item"],[1,"ai-model-item__body"],[1,"ai-model-item__name"],[1,"ai-model-item__api-name"],[1,"ai-model-item__params"],[1,"ai-model-item__actions"],[3,"items"],[1,"ai-model-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&&(a(0,"div",0)(1,"div",1)(2,"span",2),f(3),r(),a(4,"span",3),f(5),r(),a(6,"span",4)(7,"span"),f(8),r()()(),a(9,"div",5),C(10,H,4,0)(11,J,1,1,"ds-kebab-menu",6),r()()),e&2&&(p(3),I(n.displayTitle),p(2),I(n.model.apiModelName),p(3),E("priority: ",n.model.priority),p(2),b(n.pendingDelete()?10:11))},dependencies:[j,v],styles:[".ai-model-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-model-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.ai-model-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.ai-model-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-item__api-name[_ngcontent-%COMP%]{font-size:.78rem;color:var(--color-text-secondary, #6e6e73);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-item__params[_ngcontent-%COMP%]{display:flex;gap:.75rem;font-size:.75rem;color:var(--color-text-secondary, #6e6e73)}.ai-model-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.ai-model-item[_ngcontent-%COMP%]:hover .ai-model-item__actions[_ngcontent-%COMP%], .ai-model-item[_ngcontent-%COMP%]:focus-within .ai-model-item__actions[_ngcontent-%COMP%]{opacity:1}.ai-model-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 Q=()=>[];function X(o,i){if(o&1){let e=u();a(0,"agentos-ai-model-item",4),s("deleteRequested",function(t){m(e);let h=l(2);return c(h.deleteModel(t))}),r()}if(o&2){let e=l(2);_("model",i)("namespaceId",e.namespaceId)}}function Y(o,i){if(o&1&&C(0,X,1,2,"agentos-ai-model-item",3),o&2){let e,n=i.$implicit,t=l();b((e=t.resolveModel(n.id))?0:-1,e)}}var U=class o{route=d(F);router=d(y);destroyRef=d(k);aiModelController=d(L);aiProviderController=d(z);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new w(void 0);data$=this.refresh$.pipe(P(()=>D([this.aiModelController.listByNamespaceIdAiModel(this.namespaceId),this.aiProviderController.listByParentAiProvider(this.namespaceId)])));modelItems$=this.data$.pipe(A(([i,e])=>{let n=new Map(e.map(t=>[t.id??"",t.name]));return i.map(t=>({id:t.id??"",name:t.alias??t.apiModelName,description:t.apiModelName,groupKey:t.aiProviderId,groupLabel:n.get(t.aiProviderId)??t.aiProviderId}))}));modelsById=new Map;constructor(){this.data$.pipe(x(this.destroyRef)).subscribe(([i])=>{this.modelsById=new Map(i.map(e=>[e.id??"",e]))})}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"ai-models","new"])}deleteModel(i){this.aiModelController.deleteAiModel(i.id??"").pipe(x(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveModel(i){return this.modelsById.get(i)??null}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=g({type:o,selectors:[["agentos-namespace-ai-models"]],decls:5,vars:6,consts:[["aiModelItemTpl",""],["title","AI models","emptyMessage","No AI models configured yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"model","namespaceId"],[3,"deleteRequested","model","namespaceId"]],template:function(e,n){if(e&1&&(a(0,"ds-entity-list",1),B(1,"async"),s("createRequested",function(){return n.openCreateForm()}),a(2,"ds-icon-button",2),s("action",function(){return n.goBack()}),r()(),R(3,Y,1,1,"ng-template",null,0,q)),e&2){let t=T(4);_("items",V(1,3,n.modelItems$)??O(5,Q))("showCreate",!0)("itemTemplate",t)}},dependencies:[K,M,v,$],encapsulation:2,changeDetection:0})};export{U as NamespaceAiModelsComponent};
|