@whoz-oss/coday-client 0.249.0 → 0.249.2

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.
Files changed (183) hide show
  1. package/3rdpartylicenses.txt +372 -372
  2. package/browser/chunk-6uQvW5vO.js +1 -0
  3. package/browser/chunk-8QCOKWfy.js +1 -0
  4. package/browser/chunk-B0QeL_YS.js +474 -0
  5. package/browser/chunk-B1T1lhxO.js +1 -0
  6. package/browser/chunk-B4ZxVpmQ.js +1 -0
  7. package/browser/chunk-B9VW5ZdD.js +1 -0
  8. package/browser/chunk-BGG8qTjD.js +1 -0
  9. package/browser/chunk-BHrJwQJY.js +1 -0
  10. package/browser/chunk-BWVGuXWV.js +1 -0
  11. package/browser/chunk-BXRE8Jnn.js +1 -0
  12. package/browser/chunk-BXeg32ej.js +1 -0
  13. package/browser/chunk-BYobt-yL.js +1 -0
  14. package/browser/chunk-Bb8FM5N7.js +1 -0
  15. package/browser/chunk-BbkTgcYb.js +1 -0
  16. package/browser/chunk-BngP4FHh.js +2 -0
  17. package/browser/chunk-Bo7V2O_x.js +1 -0
  18. package/browser/chunk-CEFRpdhC.js +1 -0
  19. package/browser/chunk-CESBNo1v.js +4 -0
  20. package/browser/chunk-CI20rCP1.js +1 -0
  21. package/browser/chunk-CMgbU-FY.js +1 -0
  22. package/browser/chunk-CRujMca4.js +1 -0
  23. package/browser/chunk-CSLsbjtc.js +429 -0
  24. package/browser/chunk-CSWaefpi.js +1 -0
  25. package/browser/chunk-C_hps2N_.js +1 -0
  26. package/browser/chunk-CawleOYk.js +1 -0
  27. package/browser/chunk-CeEsFGfn.js +276 -0
  28. package/browser/chunk-CfgXrte_.js +1 -0
  29. package/browser/chunk-ChlM0KaI.js +1 -0
  30. package/browser/chunk-Cl7N3gK-.js +2 -0
  31. package/browser/chunk-CoVKXwLW.js +7 -0
  32. package/browser/chunk-CtCrz21E.js +1 -0
  33. package/browser/chunk-CujZ5wxO.js +1 -0
  34. package/browser/chunk-Cvmc37VM.js +1 -0
  35. package/browser/chunk-CyUSpM0s.js +1 -0
  36. package/browser/chunk-D36CcRIa.js +1 -0
  37. package/browser/chunk-D3bTMcOe.js +1 -0
  38. package/browser/chunk-D4O2SdR-.js +1 -0
  39. package/browser/chunk-D615HDbJ.js +37 -0
  40. package/browser/chunk-D8jkRlhn.js +141 -0
  41. package/browser/chunk-DATqkmXk.js +1 -0
  42. package/browser/chunk-DF9JuMSS.js +1 -0
  43. package/browser/chunk-DIeUX6U7.js +1 -0
  44. package/browser/chunk-DVw6VVSF.js +182 -0
  45. package/browser/chunk-DW95Jf_o.js +1 -0
  46. package/browser/chunk-DWXHIgAs.js +1 -0
  47. package/browser/chunk-Dc58xQxP.js +1 -0
  48. package/browser/chunk-Df2NmKyO.js +190 -0
  49. package/browser/chunk-Dh70Sw4n.js +675 -0
  50. package/browser/chunk-DqOy3vx6.js +55 -0
  51. package/browser/chunk-DrzUXE6a.js +1 -0
  52. package/browser/chunk-DuetvIR9.js +1 -0
  53. package/browser/chunk-Dv3y4cq8.js +508 -0
  54. package/browser/chunk-DxyVrxwh.js +1 -0
  55. package/browser/chunk-Ims5pjdx.js +1 -0
  56. package/browser/chunk-Js79q0Hk.js +1 -0
  57. package/browser/chunk-NZ2JSd9Y.js +976 -0
  58. package/browser/chunk-R1YuCBfk.js +1 -0
  59. package/browser/chunk-Tnt17Uum.js +1 -0
  60. package/browser/chunk-TsE9fL5L.js +1 -0
  61. package/browser/chunk-ZgaZX2Mw.js +1 -0
  62. package/browser/chunk-cxvtBPGk.js +1 -0
  63. package/browser/chunk-hivMYdms.js +5 -0
  64. package/browser/chunk-hpkckHAH.js +1 -0
  65. package/browser/chunk-otU95DGd.js +1 -0
  66. package/browser/chunk-rdNDu_G5.js +61 -0
  67. package/browser/chunk-sQ2hJaJy.js +1 -0
  68. package/browser/chunk-tiXMntK-.js +1 -0
  69. package/browser/index.html +1 -1
  70. package/browser/main-CERDHS7N.js +1811 -0
  71. package/package.json +14 -11
  72. package/browser/chunk-2PWIGCN2.js +0 -4
  73. package/browser/chunk-3FDPLGME.js +0 -1
  74. package/browser/chunk-46V5PCBB.js +0 -1
  75. package/browser/chunk-4KA7TIB4.js +0 -1
  76. package/browser/chunk-4NPMNHQN.js +0 -1
  77. package/browser/chunk-4OSUCDSF.js +0 -1
  78. package/browser/chunk-4QBMPKYR.js +0 -1
  79. package/browser/chunk-4U47ZPZP.js +0 -1
  80. package/browser/chunk-5GITXCTT.js +0 -1
  81. package/browser/chunk-6PGRBK22.js +0 -2
  82. package/browser/chunk-6XX7GME4.js +0 -1
  83. package/browser/chunk-7HQ3TFIP.js +0 -1
  84. package/browser/chunk-7OGOI6WM.js +0 -1
  85. package/browser/chunk-7P7KJUWV.js +0 -1
  86. package/browser/chunk-7SEGP55P.js +0 -1
  87. package/browser/chunk-7TO465TS.js +0 -1
  88. package/browser/chunk-ABU55DK2.js +0 -1
  89. package/browser/chunk-AIC4U2MU.js +0 -1
  90. package/browser/chunk-AKLSF437.js +0 -32
  91. package/browser/chunk-AS2L77JV.js +0 -2
  92. package/browser/chunk-AZOMCTR7.js +0 -1
  93. package/browser/chunk-AZSB2H23.js +0 -1
  94. package/browser/chunk-B5ZVUFND.js +0 -1
  95. package/browser/chunk-BK6WNBAO.js +0 -8
  96. package/browser/chunk-BTOJ27OO.js +0 -3
  97. package/browser/chunk-C6PO7H3U.js +0 -1
  98. package/browser/chunk-C7VJCZQE.js +0 -2
  99. package/browser/chunk-CHEXA6RY.js +0 -5
  100. package/browser/chunk-CJQ4FDXR.js +0 -1
  101. package/browser/chunk-CLTMZI2I.js +0 -2
  102. package/browser/chunk-CNUJJQAG.js +0 -4
  103. package/browser/chunk-CXNTZ6XI.js +0 -1
  104. package/browser/chunk-DIJGQPPG.js +0 -1
  105. package/browser/chunk-EMVHTOJY.js +0 -1
  106. package/browser/chunk-EWQMM44H.js +0 -1
  107. package/browser/chunk-F7UYEPIO.js +0 -1
  108. package/browser/chunk-FAHNOZ4S.js +0 -1
  109. package/browser/chunk-FELDR7HF.js +0 -1
  110. package/browser/chunk-FFXIBE7G.js +0 -1
  111. package/browser/chunk-FL2HNVMC.js +0 -1
  112. package/browser/chunk-G5RWG2GK.js +0 -9
  113. package/browser/chunk-GFK56P4B.js +0 -3
  114. package/browser/chunk-GIIRKWUO.js +0 -1
  115. package/browser/chunk-GNUSEOSN.js +0 -1
  116. package/browser/chunk-GOERELOH.js +0 -1
  117. package/browser/chunk-GS52HX7Q.js +0 -1
  118. package/browser/chunk-IPWNT3U4.js +0 -1
  119. package/browser/chunk-IWVV3FNS.js +0 -1
  120. package/browser/chunk-J6NBYNRX.js +0 -3
  121. package/browser/chunk-JOFWSHOO.js +0 -1
  122. package/browser/chunk-JVZA4C5U.js +0 -1
  123. package/browser/chunk-K2ZZYRVT.js +0 -1
  124. package/browser/chunk-KHCLVVXY.js +0 -1
  125. package/browser/chunk-KHMEGI4Z.js +0 -1
  126. package/browser/chunk-KSZNM45C.js +0 -2
  127. package/browser/chunk-L2LMV4CM.js +0 -1
  128. package/browser/chunk-LPIKNWWZ.js +0 -1
  129. package/browser/chunk-LVZVGPMV.js +0 -6
  130. package/browser/chunk-MHOEYCWL.js +0 -1
  131. package/browser/chunk-MIVM4FAD.js +0 -1
  132. package/browser/chunk-MNWA4UGA.js +0 -1
  133. package/browser/chunk-MXD6ICBN.js +0 -1
  134. package/browser/chunk-NHUXMXD2.js +0 -1
  135. package/browser/chunk-NLCT6PBH.js +0 -1
  136. package/browser/chunk-NQHQFPW5.js +0 -2
  137. package/browser/chunk-NWFFZ2FW.js +0 -1
  138. package/browser/chunk-NXINMPV4.js +0 -1
  139. package/browser/chunk-OCMS2KMG.js +0 -1
  140. package/browser/chunk-OO2H5F7U.js +0 -6
  141. package/browser/chunk-OOO6KSSL.js +0 -1
  142. package/browser/chunk-P4UYIBTK.js +0 -1
  143. package/browser/chunk-P5FCG3WF.js +0 -1
  144. package/browser/chunk-PGEMQVT2.js +0 -1
  145. package/browser/chunk-PI7ZIR5W.js +0 -1
  146. package/browser/chunk-PNPPZSOI.js +0 -1
  147. package/browser/chunk-QVW2GZXC.js +0 -1
  148. package/browser/chunk-QYUULQIF.js +0 -1
  149. package/browser/chunk-RB7N2NWN.js +0 -1
  150. package/browser/chunk-ROOPYJTV.js +0 -1
  151. package/browser/chunk-RSTB4RTA.js +0 -1
  152. package/browser/chunk-RUXH3KF5.js +0 -1
  153. package/browser/chunk-SFQE4GQ6.js +0 -1
  154. package/browser/chunk-SN27D3CH.js +0 -1
  155. package/browser/chunk-SPV5SLNS.js +0 -2
  156. package/browser/chunk-SQACXL4U.js +0 -1
  157. package/browser/chunk-SVOSTUY5.js +0 -1
  158. package/browser/chunk-SXFAR5TU.js +0 -1
  159. package/browser/chunk-TSYL5EEO.js +0 -61
  160. package/browser/chunk-TTHFWEW7.js +0 -6
  161. package/browser/chunk-UAC4ZZCA.js +0 -1
  162. package/browser/chunk-UAVOIVZW.js +0 -2
  163. package/browser/chunk-UKR2PSUI.js +0 -1
  164. package/browser/chunk-VCUQMGKI.js +0 -1
  165. package/browser/chunk-VMYKE4ZC.js +0 -1
  166. package/browser/chunk-VN2SNJFT.js +0 -1
  167. package/browser/chunk-WARAZYNV.js +0 -1
  168. package/browser/chunk-WLOUHJRC.js +0 -1
  169. package/browser/chunk-WNJYWSOR.js +0 -1
  170. package/browser/chunk-WRMHUQWQ.js +0 -1
  171. package/browser/chunk-WVXEP3PL.js +0 -1
  172. package/browser/chunk-XIV35L24.js +0 -1
  173. package/browser/chunk-XORVTVXX.js +0 -1
  174. package/browser/chunk-XXVFHAN5.js +0 -270
  175. package/browser/chunk-XZIT26QS.js +0 -1
  176. package/browser/chunk-YFCRBVWD.js +0 -1
  177. package/browser/chunk-YFONUBPG.js +0 -1
  178. package/browser/chunk-YGUO4DH3.js +0 -1
  179. package/browser/chunk-YJOXSEUO.js +0 -1
  180. package/browser/chunk-YV2SJQAM.js +0 -1
  181. package/browser/chunk-Z3AHFIZF.js +0 -1
  182. package/browser/chunk-ZEQWC4IU.js +0 -1
  183. package/browser/main-7VP3QZBV.js +0 -1
@@ -0,0 +1 @@
1
+ import {O}from'./chunk-CMgbU-FY.js';import {v}from'./chunk-BXeg32ej.js';import {g,ao as V,G,w as we,H as Hi,F as F$1,dc as ue$1,cc as Hf,b as U,A as Aw,v as vs,l as Ag,W as WC,k as dl,n as eC,X as XE,a8 as Zg,t as tC,a9 as dC,q as oC,a4 as rC,a3 as HI,o as bg,bn as nC,ac as mC,r as Tg,a6 as $I,x as iC,a5 as ml,cG as Xw,aa as If,ab as wf}from'./main-CERDHS7N.js';import'./chunk-CoVKXwLW.js';import {o as z,z as ze,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,A as At,m as mn,Z as Zn,l as Xn,C as Cn,E as En,p as An,q as Ct,V as Vt}from'./chunk-D615HDbJ.js';import'./chunk-BWVGuXWV.js';import'./chunk-rdNDu_G5.js';import'./chunk-Dh70Sw4n.js';import'./chunk-Dv3y4cq8.js';function ce(a,r){a&1&&(vs(0,"p",5),WC(1,"Loading\u2026"),dl());}function me(a,r){if(a&1&&(vs(0,"label",30),bg(1,"input",31),HI(),vs(2,"span"),WC(3),dl()()),a&2){let e=r.$implicit,l=mC(3);XE(),Tg("formControl",l.scopeControl)("value",e.value)("disabled",e.value==="namespace"&&!l.isAdmin()),$I(),XE(2),Zg(e.label);}}function ue(a,r){if(a&1&&(vs(0,"fieldset",8)(1,"legend",24),WC(2,"Port\xE9e de la configuration"),dl(),oC(3,me,4,4,"label",30,Xw().trackByScope,true),dl()),a&2){let e=mC(2);Tg("disabled",e.isEditMode()),XE(3),iC(e.scopeOptions);}}function ve(a,r){if(a&1&&(vs(0,"option",13),WC(1),dl()),a&2){let e=r.$implicit;Tg("value",e),XE(),Zg(e);}}function fe(a,r){if(a&1){let e=dC();vs(0,"div",26),bg(1,"input",32),HI(),bg(2,"input",33),HI(),vs(3,"button",34),Ag("click",function(){let s=If(e).$index,f=mC(2);return wf(f.removeHeader(s))}),WC(4," \xD7 "),dl()();}if(a&2){let e=r.$index;Tg("formGroupName",e),XE(),$I(),XE(),$I();}}function _e(a,r){if(a&1){let e=dC();vs(0,"form",7),Ag("ngSubmit",function(){If(e);let s=mC();return wf(s.submit())}),eC(1,ue,5,1,"fieldset",8),vs(2,"div",9)(3,"label",10),WC(4,"API type "),vs(5,"span",11),WC(6,"*"),dl()(),vs(7,"select",12),oC(8,ve,2,2,"option",13,rC),dl(),HI(),dl(),vs(10,"div",9)(11,"label",14),WC(12,"Name "),vs(13,"span",11),WC(14,"*"),dl()(),bg(15,"input",15),HI(),dl(),vs(16,"div",9)(17,"label",16),WC(18,"Description"),dl(),bg(19,"input",17),HI(),dl(),vs(20,"div",9)(21,"label",18),WC(22,"Base URL"),dl(),bg(23,"input",19),HI(),dl(),vs(24,"div",9)(25,"label",20),WC(26,"API key"),dl(),bg(27,"input",21),HI(),dl(),vs(28,"div",22)(29,"div",23)(30,"span",24),WC(31,"Custom headers"),dl(),vs(32,"button",25),Ag("click",function(){If(e);let s=mC();return wf(s.addHeader())}),WC(33,"+ Add header"),dl()(),oC(34,fe,5,1,"div",26,nC),dl(),vs(36,"div",27)(37,"button",28),WC(38),dl(),vs(39,"button",29),Ag("click",function(){If(e);let s=mC();return wf(s.cancel())}),WC(40,"Cancel"),dl()()();}if(a&2){let e=mC();Tg("formGroup",e.form),XE(),tC(e.isPlatformMode?-1:1),XE(6),Tg("formControl",e.apiTypeControl),$I(),XE(),iC(e.apiTypeOptions),XE(7),Tg("formControl",e.nameControl),$I(),XE(4),Tg("formControl",e.descriptionControl),$I(),XE(4),Tg("formControl",e.baseUrlControl),$I(),XE(4),Tg("formControl",e.apiKeyControl),$I(),XE(),Tg("formArrayName","headers"),XE(6),iC(e.headersArray.controls),XE(3),Tg("disabled",e.form.invalid||e.isSubmitting()),XE(),ml(" ",e.isEditMode()?"Save changes":"Create"," ");}}var ge=new Set(["namespace","userOnNs","userGlobal"]),F=Object.freeze({platform:"Configuration de niveau plateforme",namespace:"Configuration du namespace",userOnNs:"Pour moi sur ce namespace",userGlobal:"Pour moi globalement"}),se=class a{route=g(V);router=g(G);destroyRef=g(we);state=g(O);namespaceRole=g(v);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=this.namespaceId===void 0;isAdmin=this.isPlatformMode?Hi(true):F$1(this.namespaceRole.isAdminOfNamespace$(this.namespaceId),{initialValue:false});apiTypeOptions=Object.values(ue$1);scopeOptions=[{value:"namespace",label:F.namespace},{value:"userOnNs",label:F.userOnNs},{value:"userGlobal",label:F.userGlobal}];form=new z({name:new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(null),apiType:new _t("OpenAI",{nonNullable:true,validators:[_e$1.required]}),baseUrl:new _t("",{nonNullable:true}),apiKey:new _t("",{nonNullable:true}),scope:new _t("namespace",{nonNullable:true}),headers:new ze([],{validators:[]})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get apiTypeControl(){return this.form.controls.apiType}get baseUrlControl(){return this.form.controls.baseUrl}get apiKeyControl(){return this.form.controls.apiKey}get scopeControl(){return this.form.controls.scope}get headersArray(){return this.form.controls.headers}addHeader(){this.headersArray.push(new z({key:new _t("",{nonNullable:true,validators:[_e$1.required]}),value:new _t("",{nonNullable:true})}));}removeHeader(r){this.headersArray.removeAt(r);}isEditMode=Hi(false);isSubmitting=Hi(false);isLoading=Hi(false);existingConfig=null;initialApiKey="";constructor(){this.isPlatformMode||Hf(()=>{this.isAdmin()||this.isEditMode()||this.scopeControl.value==="namespace"&&this.scopeControl.setValue("userOnNs");});}ngOnInit(){this.namespaceId&&this.state.setNamespace(this.namespaceId);let r=this.route.snapshot.paramMap,e=this.route.snapshot.queryParamMap,l=r.get("aiProviderId"),s=this.isPlatformMode?"namespace":this.parseScope(e.get("scope"));if(l){this.isEditMode.set(true),this.scopeControl.disable(),this.apiTypeControl.disable(),this.loadConfig(l);return}this.scopeControl.setValue(s);let f=e.get("template");f&&this.hydrateFromTemplate(f);}parseScope(r){return r&&ge.has(r)?r:"namespace"}deriveScopeFromConfig(r){return !r.userId?"namespace":r.namespaceId?"userOnNs":"userGlobal"}loadConfig(r){this.isLoading.set(true),this.state.getById(r).pipe(U(this.destroyRef)).subscribe({next:e=>{this.existingConfig=e,this.scopeControl.setValue(this.deriveScopeFromConfig(e)),this.applyConfigToForm(e),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),console.warn(`[AiProviderForm] Could not load provider '${r}' \u2014 navigating back`),this.navigateBack();}});}hydrateFromTemplate(r){this.isLoading.set(true),this.state.getById(r).pipe(U(this.destroyRef)).subscribe({next:e=>{this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??null),this.apiTypeControl.setValue(e.apiType),this.baseUrlControl.setValue(e.baseUrl??""),this.apiKeyControl.setValue(""),this.initialApiKey="",this.apiKeyControl.markAsTouched(),this.isLoading.set(false),this.router.navigate([],{relativeTo:this.route,queryParams:{template:null,templateScope:null},queryParamsHandling:"merge",replaceUrl:true});},error:e=>{console.warn(`[AiProviderForm] Could not hydrate from template ${r}:`,e),this.isLoading.set(false),this.router.navigate([],{relativeTo:this.route,queryParams:{template:null,templateScope:null},queryParamsHandling:"merge",replaceUrl:true});}});}applyConfigToForm(r){this.nameControl.setValue(r.name),this.descriptionControl.setValue(r.description??null),this.apiTypeControl.setValue(r.apiType),this.baseUrlControl.setValue(r.baseUrl??"");let e=r.apiKey??"";this.apiKeyControl.setValue(e),this.initialApiKey=e,this.headersArray.clear();for(let[l,s]of Object.entries(r.headers??{}))this.headersArray.push(new z({key:new _t(l,{nonNullable:true,validators:[_e$1.required]}),value:new _t(s,{nonNullable:true})}));}submit(){if(this.form.invalid||this.isSubmitting())return;if(this.isEditMode()&&!this.existingConfig?.id){this.navigateBack();return}this.isSubmitting.set(true);let r=this.descriptionControl.value?.trim(),e=this.baseUrlControl.value.trim(),l=this.apiKeyControl.value,s=this.isEditMode()&&l===this.initialApiKey?null:l,f=this.headersArray.controls.filter(x=>x.controls.key.value.trim()).map(x=>[x.controls.key.value.trim(),x.controls.value.value]),de=f.length>0?Object.fromEntries(f):null,N={name:this.nameControl.value.trim(),apiType:this.apiTypeControl.value,description:r||null,baseUrl:e||null,apiKey:s,headers:de},T=this.form.getRawValue().scope,pe=this.isPlatformMode?null:this.namespaceId??null;(this.isEditMode()&&this.existingConfig?.id?this.state.update(this.existingConfig.id,N,T,this.existingConfig):this.state.create(N,T,pe)).pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(false)});}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","ai-providers"]):this.router.navigate(["/agentos",this.namespaceId,"ai-providers"]);}trackByScope(r,e){return e.value}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=Aw({type:a,selectors:[["agentos-ai-provider-form"]],decls:10,vars:2,consts:[[1,"ai-provider-form"],[1,"ai-provider-form__header"],["type","button","title","Back to AI providers",1,"ai-provider-form__back",3,"click"],[1,"ai-provider-form__back-icon"],[1,"ai-provider-form__title"],[1,"ai-provider-form__loading"],[1,"ai-provider-form__form",3,"formGroup"],[1,"ai-provider-form__form",3,"ngSubmit","formGroup"],[1,"ai-provider-form__scope",3,"disabled"],[1,"ai-provider-form__field"],["for","llm-api-type",1,"ai-provider-form__label"],["aria-hidden","true"],["id","llm-api-type",1,"ai-provider-form__select",3,"formControl"],[3,"value"],["for","llm-name",1,"ai-provider-form__label"],["id","llm-name","type","text","placeholder","e.g. OpenAI prod","autocomplete","off",1,"ai-provider-form__input",3,"formControl"],["for","llm-description",1,"ai-provider-form__label"],["id","llm-description","type","text","placeholder","Optional \u2014 short description of this provider","autocomplete","off",1,"ai-provider-form__input",3,"formControl"],["for","llm-base-url",1,"ai-provider-form__label"],["id","llm-base-url","type","url","placeholder","Optional \u2014 leave empty for default endpoint","autocomplete","off",1,"ai-provider-form__input",3,"formControl"],["for","llm-api-key",1,"ai-provider-form__label"],["id","llm-api-key","type","password","placeholder","sk-\u2026","autocomplete","new-password",1,"ai-provider-form__input","ai-provider-form__input--secret",3,"formControl"],[1,"ai-provider-form__headers",3,"formArrayName"],[1,"ai-provider-form__headers-title"],[1,"ai-provider-form__label"],["type","button",1,"ai-provider-form__headers-add",3,"click"],[1,"ai-provider-form__header-row",3,"formGroupName"],[1,"ai-provider-form__actions"],["type","submit",1,"ai-provider-form__btn","ai-provider-form__btn--primary",3,"disabled"],["type","button",1,"ai-provider-form__btn",3,"click"],[1,"ai-provider-form__scope-option"],["type","radio",3,"formControl","value","disabled"],["type","text","placeholder","Header name","formControlName","key","autocomplete","off",1,"ai-provider-form__input"],["type","text","placeholder","Value","formControlName","value","autocomplete","off",1,"ai-provider-form__input"],["type","button","title","Remove header","aria-label","Remove header",1,"ai-provider-form__header-remove",3,"click"]],template:function(e,l){e&1&&(vs(0,"div",0)(1,"header",1)(2,"button",2),Ag("click",function(){return l.cancel()}),vs(3,"span",3),WC(4,"\u2190"),dl(),WC(5," AI Providers "),dl(),vs(6,"h1",4),WC(7),dl()(),eC(8,ce,2,0,"p",5)(9,_e,41,10,"form",6),dl()),e&2&&(XE(7),Zg(l.isEditMode()?"Edit AI provider":"New AI provider"),XE(),tC(l.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,At,mn,Zn,Xn,Cn,En,An,Ct,Vt],styles:[".ai-provider-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:480px;margin:0 auto;padding:2rem 1rem}.ai-provider-form__scope[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.4rem;border:1px solid var(--color-divider);border-radius:0;padding:.75rem 1rem;margin:0}.ai-provider-form__scope[disabled][_ngcontent-%COMP%]{opacity:.6}.ai-provider-form__scope-option[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--color-text);cursor:pointer}.ai-provider-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.ai-provider-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.ai-provider-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.ai-provider-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.ai-provider-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.ai-provider-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.ai-provider-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.ai-provider-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.ai-provider-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.ai-provider-form__input[_ngcontent-%COMP%], .ai-provider-form__select[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.ai-provider-form__input[_ngcontent-%COMP%]:focus, .ai-provider-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.ai-provider-form__input[_ngcontent-%COMP%]::placeholder, .ai-provider-form__select[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.ai-provider-form__input--secret[_ngcontent-%COMP%]{font-family:monospace;letter-spacing:.05em}.ai-provider-form__headers[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.ai-provider-form__headers-title[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.ai-provider-form__headers-add[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.8125rem;color:var(--color-accent)}.ai-provider-form__headers-add[_ngcontent-%COMP%]:hover{text-decoration:underline}.ai-provider-form__header-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem;align-items:center}.ai-provider-form__header-remove[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:none;border:1px solid transparent;border-radius:0;cursor:pointer;font-size:1rem;color:var(--color-neutral-500);transition:background .15s ease,color .15s ease,border-color .15s ease;flex-shrink:0}.ai-provider-form__header-remove[_ngcontent-%COMP%]:hover{color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent);border-color:var(--red)}.ai-provider-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.ai-provider-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.ai-provider-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.ai-provider-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.ai-provider-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.ai-provider-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}"]})};export{se as AiProviderFormComponent};
@@ -0,0 +1 @@
1
+ import {R}from'./chunk-Js79q0Hk.js';import {c}from'./chunk-DATqkmXk.js';import {g,ao as V$1,G,w as we,H as Hi,m as mT,Q as By,a7 as ha,S as pa,b as U,A as Aw,v as vs,l as Ag,k as dl,af as Dg,T as TC,r as Tg,n as eC,ac as mC,t as tC,a9 as dC,aa as If,ab as wf,ag as fT}from'./main-CERDHS7N.js';import {W as Wn,D as De}from'./chunk-Dh70Sw4n.js';import'./chunk-Dv3y4cq8.js';import'./chunk-D615HDbJ.js';function V(i,e){if(i&1){let t=dC();vs(0,"agentos-scheduled-prompt-item",4),Ag("enableRequested",function(n){If(t);let s=mC(2);return wf(s.enablePrompt(n))})("disableRequested",function(n){If(t);let s=mC(2);return wf(s.disablePrompt(n))})("deleteRequested",function(n){If(t);let s=mC(2);return wf(s.deletePrompt(n))}),dl();}if(i&2){let t=mC().$implicit,o=mC();Tg("definition",e)("namespaceId",o.namespaceId)("readOnly",o.isPlatformPrompt(t.id));}}function k(i,e){if(i&1&&eC(0,V,1,3,"agentos-scheduled-prompt-item",3),i&2){let t,o=e.$implicit,n=mC();tC((t=n.resolvePrompt(o.id))?0:-1,t);}}var O="platform",B="namespace",M=class i{route=g(V$1);router=g(G);destroyRef=g(we);state=g(c);namespaceId=this.route.snapshot.params.namespaceId;platformPrompts=Hi([]);namespacePrompts=Hi([]);promptItems=mT(()=>[...this.platformPrompts().map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:O,groupLabel:"Platform (read-only)",badges:[{label:e.enabled?"Enabled":"Disabled",variant:e.enabled?"success":"warning"}]})),...this.namespacePrompts().map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:B,groupLabel:"Namespace",badges:[{label:e.enabled?"Enabled":"Disabled",variant:e.enabled?"success":"warning"}]}))]);constructor(){By({platform:this.state.listPlatform().pipe(ha(()=>pa([]))),namespace:this.state.listByNamespace(this.namespaceId)}).pipe(U(this.destroyRef)).subscribe(({platform:e,namespace:t})=>{this.platformPrompts.set(e),this.namespacePrompts.set(t);});}goBack(){this.router.navigate(["/agentos","namespaces"]);}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"scheduled-prompts","new"]);}enablePrompt(e){this.state.enable(e.id??"").pipe(U(this.destroyRef)).subscribe(t=>this.patchNamespacePrompt(t));}disablePrompt(e){this.state.disable(e.id??"").pipe(U(this.destroyRef)).subscribe(t=>this.patchNamespacePrompt(t));}deletePrompt(e){let t=e.id??"";this.state.delete(t).pipe(U(this.destroyRef)).subscribe(()=>this.namespacePrompts.update(o=>o.filter(n=>n.id!==t)));}resolvePrompt(e){return this.platformPrompts().find(t=>t.id===e)??this.namespacePrompts().find(t=>t.id===e)??null}isPlatformPrompt(e){return this.platformPrompts().some(t=>t.id===e)}patchNamespacePrompt(e){this.namespacePrompts.update(t=>t.map(o=>o.id===e.id?e:o));}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=Aw({type:i,selectors:[["agentos-scheduled-prompt-list"]],decls:4,vars:3,consts:[["scheduledPromptItemTpl",""],["title","Scheduled Prompts","emptyMessage","No scheduled prompts yet. Create one to get started.","cardMinWidth","420px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"definition","namespaceId","readOnly"],[3,"enableRequested","disableRequested","deleteRequested","definition","namespaceId","readOnly"]],template:function(t,o){if(t&1&&(vs(0,"ds-entity-list",1),Ag("createRequested",function(){return o.openCreateForm()}),vs(1,"ds-icon-button",2),Ag("action",function(){return o.goBack()}),dl()(),Dg(2,k,1,1,"ng-template",null,0,fT)),t&2){let n=TC(3);Tg("items",o.promptItems())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,R,De],encapsulation:2})};export{M as ScheduledPromptListComponent};
@@ -0,0 +1,474 @@
1
+ import {b as Qe}from'./chunk-Dv3y4cq8.js';import {D as D$1,i as y}from'./chunk-D615HDbJ.js';import {aK as Do,aL as Wn,aN as wt,g as g$1,az as Qt,br as wl,aO as G,aR as K,aV as w,al as yt,aW as D,bw as on,bx as am,aS as Ut,H as Hi,A as Aw,by as Oi,aC as wu,aZ as YT,bz as vC,v as vs,l as Ag,k as dl,o as bg,c8 as kf,cj as Ff,bA as DC,T as TC,r as Tg,X as XE,y as Hg,C as Cg,b4 as nT,bB as Ii,c7 as QT,b$ as Ng,b_ as FC,D as Fg,I as IC,E as wC}from'./main-CERDHS7N.js';var W=["input"],Y=["label"],ee=["*"],f={color:"accent",clickAction:"check-indeterminate",disabledInteractive:false},ce=new w("mat-checkbox-default-options",{providedIn:"root",factory:()=>f}),a=(function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t})(a||{}),g=class{source;checked},ne=(()=>{class t{_elementRef=g$1(Qt);_changeDetectorRef=g$1(wl);_ngZone=g$1(G);_animationsDisabled=K();_options=g$1(ce,{optional:true});focus(){this._inputElement.nativeElement.focus();}_createChangeEvent(e){let n=new g;return n.source=this,n.checked=e,n}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return `${this.id||this._uniqueId}-input`}required=false;labelPosition="after";name=null;change=new yt;indeterminateChange=new yt;value;disableRipple=false;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=a.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){g$1(D).load(on);let e=g$1(new am("tabindex"),{optional:true});this._options=this._options||f,this.color=this._options.color||f.color,this.tabIndex=e==null?0:parseInt(e)||0,this.id=this._uniqueId=g$1(Ut).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??false;}ngOnChanges(e){e.required&&this._validatorChangeFn();}ngAfterViewInit(){this._syncIndeterminate(this.indeterminate);}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck());}_checked=false;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck());}_disabled=false;get indeterminate(){return this._indeterminate()}set indeterminate(e){let n=e!=this._indeterminate();this._indeterminate.set(e),n&&(e?this._transitionCheckState(a.Indeterminate):this._transitionCheckState(this.checked?a.Checked:a.Unchecked),this.indeterminateChange.emit(e)),this._syncIndeterminate(e);}_indeterminate=Hi(false);_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges();}writeValue(e){this.checked=!!e;}registerOnChange(e){this._controlValueAccessorChangeFn=e;}registerOnTouched(e){this._onTouched=e;}setDisabledState(e){this.disabled=e;}validate(e){return this.required&&e.value!==true?{required:true}:null}registerOnValidatorChange(e){this._validatorChangeFn=e;}_transitionCheckState(e){let n=this._currentCheckState,c=this._getAnimationTargetElement();if(!(n===e||!c)&&(this._currentAnimationClass&&c.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(n,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){c.classList.add(this._currentAnimationClass);let o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{c.classList.remove(o);},1e3);});}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked);}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked);}_handleInputClick(){let e=this._options?.clickAction;!this.disabled&&e!=="noop"?(this.indeterminate&&e!=="check"&&Promise.resolve().then(()=>{this._indeterminate.set(false),this.indeterminateChange.emit(false);}),this._checked=!this._checked,this._transitionCheckState(this._checked?a.Checked:a.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&e==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate);}_onInteractionEvent(e){e.stopPropagation();}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck();});}_getAnimationClassForCheckStateTransition(e,n){if(this._animationsDisabled)return "";switch(e){case a.Init:if(n===a.Checked)return this._animationClasses.uncheckedToChecked;if(n==a.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case a.Unchecked:return n===a.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case a.Checked:return n===a.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case a.Indeterminate:return n===a.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return ""}_syncIndeterminate(e){let n=this._inputElement;n&&(n.nativeElement.indeterminate=e);}_onInputClick(){this._handleInputClick();}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus();}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation();}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=Aw({type:t,selectors:[["mat-checkbox"]],viewQuery:function(n,c){if(n&1&&Fg(W,5)(Y,5),n&2){let o;IC(o=wC())&&(c._inputElement=o.first),IC(o=wC())&&(c._labelElement=o.first);}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(n,c){n&2&&(Ng("id",c.id),Cg("tabindex",null)("aria-label",null)("aria-labelledby",null),FC(c.color?"mat-"+c.color:"mat-accent"),Hg("_mat-animation-noopable",c._animationsDisabled)("mdc-checkbox--disabled",c.disabled)("mat-mdc-checkbox-disabled",c.disabled)("mat-mdc-checkbox-checked",c.checked)("mat-mdc-checkbox-disabled-interactive",c.disabledInteractive));},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",YT],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",YT],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",YT],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?void 0:QT(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",YT],checked:[2,"checked","checked",YT],disabled:[2,"disabled","disabled",YT],indeterminate:[2,"indeterminate","indeterminate",YT]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[nT([{provide:D$1,useExisting:Ii(()=>t),multi:true},{provide:y,useExisting:t,multi:true}]),wu],ngContentSelectors:ee,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],["aria-hidden","true",1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],["aria-hidden","true",1,"mdc-checkbox__ripple"],["aria-hidden","true",1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","","aria-hidden","true",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(n,c){if(n&1&&(vC(),vs(0,"div",3),Ag("click",function(k){return c._preventBubblingFromLabel(k)}),vs(1,"div",4,0)(3,"div",5),Ag("click",function(){return c._onTouchTargetClick()}),dl(),vs(4,"input",6,1),Ag("blur",function(){return c._onBlur()})("click",function(){return c._onInputClick()})("change",function(k){return c._onInteractionEvent(k)}),dl(),bg(6,"div",7),vs(7,"div",8),kf(),vs(8,"svg",9),bg(9,"path",10),dl(),Ff(),bg(10,"div",11),dl(),bg(11,"div",12),dl(),vs(12,"label",13,2),DC(14),dl()()),n&2){let o=TC(2);Tg("labelPosition",c.labelPosition),XE(4),Hg("mdc-checkbox--selected",c.checked),Tg("checked",c.checked)("indeterminate",c.indeterminate)("disabled",c.disabled&&!c.disabledInteractive)("id",c.inputId)("required",c.required)("tabIndex",c.disabled&&!c.disabledInteractive?-1:c.tabIndex),Cg("aria-label",c.ariaLabel||null)("aria-labelledby",c.ariaLabelledby)("aria-describedby",c.ariaDescribedby)("aria-checked",c.indeterminate?"mixed":null)("aria-controls",c.ariaControls)("aria-disabled",c.disabled&&c.disabledInteractive?true:null)("aria-expanded",c.ariaExpanded)("aria-owns",c.ariaOwns)("name",c.name)("value",c.value),XE(7),Tg("matRippleTrigger",o)("matRippleDisabled",c.disableRipple||c.disabled)("matRippleCentered",true),XE(),Tg("for",c.inputId);}},dependencies:[Oi,Qe],styles:[`.mdc-checkbox {
2
+ display: inline-block;
3
+ position: relative;
4
+ flex: 0 0 18px;
5
+ box-sizing: content-box;
6
+ width: 18px;
7
+ height: 18px;
8
+ line-height: 0;
9
+ white-space: nowrap;
10
+ cursor: pointer;
11
+ vertical-align: bottom;
12
+ padding: calc((var(--mat-checkbox-state-layer-size, 40px) - 18px) / 2);
13
+ margin: calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px)) / 2);
14
+ }
15
+ .mdc-checkbox:hover > .mdc-checkbox__ripple {
16
+ opacity: var(--mat-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));
17
+ background-color: var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface));
18
+ }
19
+ .mdc-checkbox:hover > .mat-mdc-checkbox-ripple > .mat-ripple-element {
20
+ background-color: var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface));
21
+ }
22
+ .mdc-checkbox .mdc-checkbox__native-control:focus + .mdc-checkbox__ripple {
23
+ opacity: var(--mat-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));
24
+ background-color: var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface));
25
+ }
26
+ .mdc-checkbox .mdc-checkbox__native-control:focus ~ .mat-mdc-checkbox-ripple .mat-ripple-element {
27
+ background-color: var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface));
28
+ }
29
+ .mdc-checkbox:active > .mdc-checkbox__native-control + .mdc-checkbox__ripple {
30
+ opacity: var(--mat-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));
31
+ background-color: var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary));
32
+ }
33
+ .mdc-checkbox:active > .mdc-checkbox__native-control ~ .mat-mdc-checkbox-ripple .mat-ripple-element {
34
+ background-color: var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary));
35
+ }
36
+ .mdc-checkbox:hover > .mdc-checkbox__native-control:checked + .mdc-checkbox__ripple {
37
+ opacity: var(--mat-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));
38
+ background-color: var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary));
39
+ }
40
+ .mdc-checkbox:hover > .mdc-checkbox__native-control:checked ~ .mat-mdc-checkbox-ripple .mat-ripple-element {
41
+ background-color: var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary));
42
+ }
43
+ .mdc-checkbox .mdc-checkbox__native-control:focus:checked + .mdc-checkbox__ripple {
44
+ opacity: var(--mat-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));
45
+ background-color: var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary));
46
+ }
47
+ .mdc-checkbox .mdc-checkbox__native-control:focus:checked ~ .mat-mdc-checkbox-ripple .mat-ripple-element {
48
+ background-color: var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary));
49
+ }
50
+ .mdc-checkbox:active > .mdc-checkbox__native-control:checked + .mdc-checkbox__ripple {
51
+ opacity: var(--mat-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));
52
+ background-color: var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface));
53
+ }
54
+ .mdc-checkbox:active > .mdc-checkbox__native-control:checked ~ .mat-mdc-checkbox-ripple .mat-ripple-element {
55
+ background-color: var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface));
56
+ }
57
+ .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control ~ .mat-mdc-checkbox-ripple .mat-ripple-element,
58
+ .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control + .mdc-checkbox__ripple {
59
+ background-color: var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface));
60
+ }
61
+ .mdc-checkbox .mdc-checkbox__native-control {
62
+ position: absolute;
63
+ margin: 0;
64
+ padding: 0;
65
+ opacity: 0;
66
+ cursor: inherit;
67
+ z-index: 1;
68
+ width: var(--mat-checkbox-state-layer-size, 40px);
69
+ height: var(--mat-checkbox-state-layer-size, 40px);
70
+ top: calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px)) / 2);
71
+ right: calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px)) / 2);
72
+ left: calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px)) / 2);
73
+ }
74
+
75
+ .mdc-checkbox--disabled {
76
+ cursor: default;
77
+ pointer-events: none;
78
+ }
79
+
80
+ .mdc-checkbox__background {
81
+ display: inline-flex;
82
+ position: absolute;
83
+ align-items: center;
84
+ justify-content: center;
85
+ box-sizing: border-box;
86
+ width: 18px;
87
+ height: 18px;
88
+ border: 2px solid currentColor;
89
+ border-radius: 2px;
90
+ background-color: transparent;
91
+ pointer-events: none;
92
+ will-change: background-color, border-color;
93
+ transition: background-color 90ms cubic-bezier(0.4, 0, 0.6, 1), border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);
94
+ -webkit-print-color-adjust: exact;
95
+ color-adjust: exact;
96
+ border-color: var(--mat-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));
97
+ top: calc((var(--mat-checkbox-state-layer-size, 40px) - 18px) / 2);
98
+ left: calc((var(--mat-checkbox-state-layer-size, 40px) - 18px) / 2);
99
+ }
100
+
101
+ .mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,
102
+ .mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background {
103
+ border-color: var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary));
104
+ background-color: var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary));
105
+ }
106
+
107
+ .mdc-checkbox--disabled .mdc-checkbox__background {
108
+ border-color: var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));
109
+ }
110
+ @media (forced-colors: active) {
111
+ .mdc-checkbox--disabled .mdc-checkbox__background {
112
+ border-color: GrayText;
113
+ }
114
+ }
115
+
116
+ .mdc-checkbox__native-control:disabled:checked ~ .mdc-checkbox__background,
117
+ .mdc-checkbox__native-control:disabled:indeterminate ~ .mdc-checkbox__background {
118
+ background-color: var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));
119
+ border-color: transparent;
120
+ }
121
+ @media (forced-colors: active) {
122
+ .mdc-checkbox__native-control:disabled:checked ~ .mdc-checkbox__background,
123
+ .mdc-checkbox__native-control:disabled:indeterminate ~ .mdc-checkbox__background {
124
+ border-color: GrayText;
125
+ }
126
+ }
127
+
128
+ .mdc-checkbox:hover > .mdc-checkbox__native-control:not(:checked) ~ .mdc-checkbox__background,
129
+ .mdc-checkbox:hover > .mdc-checkbox__native-control:not(:indeterminate) ~ .mdc-checkbox__background {
130
+ border-color: var(--mat-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));
131
+ background-color: transparent;
132
+ }
133
+
134
+ .mdc-checkbox:hover > .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,
135
+ .mdc-checkbox:hover > .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {
136
+ border-color: var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary));
137
+ background-color: var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary));
138
+ }
139
+
140
+ .mdc-checkbox__native-control:focus:focus:not(:checked) ~ .mdc-checkbox__background,
141
+ .mdc-checkbox__native-control:focus:focus:not(:indeterminate) ~ .mdc-checkbox__background {
142
+ border-color: var(--mat-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface));
143
+ }
144
+
145
+ .mdc-checkbox__native-control:focus:focus:checked ~ .mdc-checkbox__background,
146
+ .mdc-checkbox__native-control:focus:focus:indeterminate ~ .mdc-checkbox__background {
147
+ border-color: var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary));
148
+ background-color: var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary));
149
+ }
150
+
151
+ .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover > .mdc-checkbox__native-control ~ .mdc-checkbox__background,
152
+ .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus ~ .mdc-checkbox__background,
153
+ .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background {
154
+ border-color: var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));
155
+ }
156
+ @media (forced-colors: active) {
157
+ .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover > .mdc-checkbox__native-control ~ .mdc-checkbox__background,
158
+ .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus ~ .mdc-checkbox__background,
159
+ .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background {
160
+ border-color: GrayText;
161
+ }
162
+ }
163
+ .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,
164
+ .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {
165
+ background-color: var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));
166
+ border-color: transparent;
167
+ }
168
+
169
+ .mdc-checkbox__checkmark {
170
+ position: absolute;
171
+ top: 0;
172
+ right: 0;
173
+ bottom: 0;
174
+ left: 0;
175
+ width: 100%;
176
+ opacity: 0;
177
+ transition: opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);
178
+ color: var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary));
179
+ }
180
+ @media (forced-colors: active) {
181
+ .mdc-checkbox__checkmark {
182
+ color: CanvasText;
183
+ }
184
+ }
185
+
186
+ .mdc-checkbox--disabled .mdc-checkbox__checkmark, .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark {
187
+ color: var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface));
188
+ }
189
+ @media (forced-colors: active) {
190
+ .mdc-checkbox--disabled .mdc-checkbox__checkmark, .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark {
191
+ color: GrayText;
192
+ }
193
+ }
194
+
195
+ .mdc-checkbox__checkmark-path {
196
+ transition: stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);
197
+ stroke: currentColor;
198
+ stroke-width: 3.12px;
199
+ stroke-dashoffset: 29.7833385;
200
+ stroke-dasharray: 29.7833385;
201
+ }
202
+
203
+ .mdc-checkbox__mixedmark {
204
+ width: 100%;
205
+ height: 0;
206
+ transform: scaleX(0) rotate(0deg);
207
+ border-width: 1px;
208
+ border-style: solid;
209
+ opacity: 0;
210
+ transition: opacity 90ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms cubic-bezier(0.4, 0, 0.6, 1);
211
+ border-color: var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary));
212
+ }
213
+ @media (forced-colors: active) {
214
+ .mdc-checkbox__mixedmark {
215
+ margin: 0 1px;
216
+ }
217
+ }
218
+
219
+ .mdc-checkbox--disabled .mdc-checkbox__mixedmark, .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark {
220
+ border-color: var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface));
221
+ }
222
+ @media (forced-colors: active) {
223
+ .mdc-checkbox--disabled .mdc-checkbox__mixedmark, .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark {
224
+ border-color: GrayText;
225
+ }
226
+ }
227
+
228
+ .mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,
229
+ .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,
230
+ .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,
231
+ .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background {
232
+ animation-duration: 180ms;
233
+ animation-timing-function: linear;
234
+ }
235
+
236
+ .mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path {
237
+ animation: mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;
238
+ transition: none;
239
+ }
240
+
241
+ .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark {
242
+ animation: mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;
243
+ transition: none;
244
+ }
245
+
246
+ .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path {
247
+ animation: mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;
248
+ transition: none;
249
+ }
250
+
251
+ .mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark {
252
+ animation: mdc-checkbox-checked-indeterminate-checkmark 90ms linear;
253
+ transition: none;
254
+ }
255
+ .mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark {
256
+ animation: mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;
257
+ transition: none;
258
+ }
259
+
260
+ .mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark {
261
+ animation: mdc-checkbox-indeterminate-checked-checkmark 500ms linear;
262
+ transition: none;
263
+ }
264
+ .mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark {
265
+ animation: mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;
266
+ transition: none;
267
+ }
268
+
269
+ .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark {
270
+ animation: mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;
271
+ transition: none;
272
+ }
273
+
274
+ .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,
275
+ .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {
276
+ transition: border-color 90ms cubic-bezier(0, 0, 0.2, 1), background-color 90ms cubic-bezier(0, 0, 0.2, 1);
277
+ }
278
+ .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background > .mdc-checkbox__checkmark > .mdc-checkbox__checkmark-path,
279
+ .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background > .mdc-checkbox__checkmark > .mdc-checkbox__checkmark-path {
280
+ stroke-dashoffset: 0;
281
+ }
282
+
283
+ .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background > .mdc-checkbox__checkmark {
284
+ transition: opacity 180ms cubic-bezier(0, 0, 0.2, 1), transform 180ms cubic-bezier(0, 0, 0.2, 1);
285
+ opacity: 1;
286
+ }
287
+ .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background > .mdc-checkbox__mixedmark {
288
+ transform: scaleX(1) rotate(-45deg);
289
+ }
290
+
291
+ .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background > .mdc-checkbox__checkmark {
292
+ transform: rotate(45deg);
293
+ opacity: 0;
294
+ transition: opacity 90ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms cubic-bezier(0.4, 0, 0.6, 1);
295
+ }
296
+ .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background > .mdc-checkbox__mixedmark {
297
+ transform: scaleX(1) rotate(0deg);
298
+ opacity: 1;
299
+ }
300
+
301
+ @keyframes mdc-checkbox-unchecked-checked-checkmark-path {
302
+ 0%, 50% {
303
+ stroke-dashoffset: 29.7833385;
304
+ }
305
+ 50% {
306
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
307
+ }
308
+ 100% {
309
+ stroke-dashoffset: 0;
310
+ }
311
+ }
312
+ @keyframes mdc-checkbox-unchecked-indeterminate-mixedmark {
313
+ 0%, 68.2% {
314
+ transform: scaleX(0);
315
+ }
316
+ 68.2% {
317
+ animation-timing-function: cubic-bezier(0, 0, 0, 1);
318
+ }
319
+ 100% {
320
+ transform: scaleX(1);
321
+ }
322
+ }
323
+ @keyframes mdc-checkbox-checked-unchecked-checkmark-path {
324
+ from {
325
+ animation-timing-function: cubic-bezier(0.4, 0, 1, 1);
326
+ opacity: 1;
327
+ stroke-dashoffset: 0;
328
+ }
329
+ to {
330
+ opacity: 0;
331
+ stroke-dashoffset: -29.7833385;
332
+ }
333
+ }
334
+ @keyframes mdc-checkbox-checked-indeterminate-checkmark {
335
+ from {
336
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
337
+ transform: rotate(0deg);
338
+ opacity: 1;
339
+ }
340
+ to {
341
+ transform: rotate(45deg);
342
+ opacity: 0;
343
+ }
344
+ }
345
+ @keyframes mdc-checkbox-indeterminate-checked-checkmark {
346
+ from {
347
+ animation-timing-function: cubic-bezier(0.14, 0, 0, 1);
348
+ transform: rotate(45deg);
349
+ opacity: 0;
350
+ }
351
+ to {
352
+ transform: rotate(360deg);
353
+ opacity: 1;
354
+ }
355
+ }
356
+ @keyframes mdc-checkbox-checked-indeterminate-mixedmark {
357
+ from {
358
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
359
+ transform: rotate(-45deg);
360
+ opacity: 0;
361
+ }
362
+ to {
363
+ transform: rotate(0deg);
364
+ opacity: 1;
365
+ }
366
+ }
367
+ @keyframes mdc-checkbox-indeterminate-checked-mixedmark {
368
+ from {
369
+ animation-timing-function: cubic-bezier(0.14, 0, 0, 1);
370
+ transform: rotate(0deg);
371
+ opacity: 1;
372
+ }
373
+ to {
374
+ transform: rotate(315deg);
375
+ opacity: 0;
376
+ }
377
+ }
378
+ @keyframes mdc-checkbox-indeterminate-unchecked-mixedmark {
379
+ 0% {
380
+ animation-timing-function: linear;
381
+ transform: scaleX(1);
382
+ opacity: 1;
383
+ }
384
+ 32.8%, 100% {
385
+ transform: scaleX(0);
386
+ opacity: 0;
387
+ }
388
+ }
389
+ .mat-mdc-checkbox {
390
+ display: inline-block;
391
+ position: relative;
392
+ -webkit-tap-highlight-color: transparent;
393
+ }
394
+ .mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mat-mdc-checkbox-touch-target,
395
+ .mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mdc-checkbox__native-control,
396
+ .mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mdc-checkbox__ripple,
397
+ .mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mat-mdc-checkbox-ripple::before,
398
+ .mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mdc-checkbox__background,
399
+ .mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mdc-checkbox__background > .mdc-checkbox__checkmark,
400
+ .mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mdc-checkbox__background > .mdc-checkbox__checkmark > .mdc-checkbox__checkmark-path,
401
+ .mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mdc-checkbox__background > .mdc-checkbox__mixedmark {
402
+ transition: none !important;
403
+ animation: none !important;
404
+ }
405
+ .mat-mdc-checkbox label {
406
+ cursor: pointer;
407
+ }
408
+ .mat-mdc-checkbox .mat-internal-form-field {
409
+ color: var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));
410
+ font-family: var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));
411
+ line-height: var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));
412
+ font-size: var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));
413
+ letter-spacing: var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));
414
+ font-weight: var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight));
415
+ }
416
+ .mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive {
417
+ pointer-events: auto;
418
+ }
419
+ .mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input {
420
+ cursor: default;
421
+ }
422
+ .mat-mdc-checkbox.mat-mdc-checkbox-disabled label {
423
+ cursor: default;
424
+ color: var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));
425
+ }
426
+ @media (forced-colors: active) {
427
+ .mat-mdc-checkbox.mat-mdc-checkbox-disabled label {
428
+ color: GrayText;
429
+ }
430
+ }
431
+ .mat-mdc-checkbox label:empty {
432
+ display: none;
433
+ }
434
+ .mat-mdc-checkbox .mdc-checkbox__ripple {
435
+ opacity: 0;
436
+ }
437
+
438
+ .mat-mdc-checkbox .mat-mdc-checkbox-ripple,
439
+ .mdc-checkbox__ripple {
440
+ top: 0;
441
+ left: 0;
442
+ right: 0;
443
+ bottom: 0;
444
+ position: absolute;
445
+ border-radius: 50%;
446
+ pointer-events: none;
447
+ }
448
+ .mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),
449
+ .mdc-checkbox__ripple:not(:empty) {
450
+ transform: translateZ(0);
451
+ }
452
+
453
+ .mat-mdc-checkbox-ripple .mat-ripple-element {
454
+ opacity: 0.1;
455
+ }
456
+
457
+ .mat-mdc-checkbox-touch-target {
458
+ position: absolute;
459
+ top: 50%;
460
+ left: 50%;
461
+ height: var(--mat-checkbox-touch-target-size, 48px);
462
+ width: var(--mat-checkbox-touch-target-size, 48px);
463
+ transform: translate(-50%, -50%);
464
+ display: var(--mat-checkbox-touch-target-display, block);
465
+ }
466
+
467
+ .mat-mdc-checkbox .mat-mdc-checkbox-ripple::before {
468
+ border-radius: 50%;
469
+ }
470
+
471
+ .mdc-checkbox__native-control:focus-visible ~ .mat-focus-indicator::before {
472
+ content: "";
473
+ }
474
+ `],encapsulation:2})}return t})(),ve=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=Do({type:t});static \u0275inj=Wn({imports:[ne,wt]})}return t})();export{ne as n,ve as v};
@@ -0,0 +1 @@
1
+ import {m}from'./chunk-CoVKXwLW.js';import {g,ao as V,G,w as we,d8 as M,H as Hi,b as U,a7 as ha,S as pa,z as z$1,a as P,A as Aw,v as vs,l as Ag,W as WC,k as dl,n as eC,X as XE,a5 as ml,a8 as Zg,t as tC,a9 as dC,o as bg,a3 as HI,q as oC,bn as nC,ac as mC,r as Tg,y as Hg,a6 as $I,x as iC,aa as If,ab as wf}from'./main-CERDHS7N.js';import {o as z,z as ze,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,A as At,Z as Zn,l as Xn,C as Cn,E as En,p as An,q as Ct,V as Vt}from'./chunk-D615HDbJ.js';import'./chunk-rdNDu_G5.js';import'./chunk-Dh70Sw4n.js';import'./chunk-Dv3y4cq8.js';var ne=(i,t)=>t.id;function ie(i,t){i&1&&(vs(0,"p",5),WC(1,"Loading\u2026"),dl());}function ae(i,t){i&1&&(vs(0,"span",12),WC(1,"Name is required."),dl());}function le(i,t){if(i&1&&(vs(0,"p",32),WC(1),dl(),vs(2,"span",26),WC(3,"Agent Config cannot be changed after creation."),dl()),i&2){let e=mC(3);XE(),Zg(e.resolveAgentConfigName(e.agentConfigIdControl.value));}}function me(i,t){if(i&1&&(vs(0,"option",34),WC(1),dl()),i&2){let e=t.$implicit;Tg("ngValue",e.id),XE(),Zg(e.name);}}function pe(i,t){if(i&1&&(vs(0,"select",33)(1,"option",34),WC(2,"\u2014 None \u2014"),dl(),oC(3,me,2,2,"option",34,ne),dl(),HI(),vs(5,"span",26),WC(6,"Optional. Links this prompt to an agent as a starter. Immutable after creation."),dl()),i&2){let e=mC(3);Tg("formControl",e.agentConfigIdControl),$I(),XE(),Tg("ngValue",null),XE(2),iC(e.availableAgentConfigs());}}function de(i,t){if(i&1&&(vs(0,"div",8)(1,"label",31),WC(2,"Agent Config"),dl(),eC(3,le,4,1)(4,pe,7,2),dl()),i&2){let e=mC(2);XE(3),tC(e.isEditMode()&&e.agentConfigIdControl.value?3:e.isEditMode()?-1:4);}}function ce(i,t){i&1&&(vs(0,"p",19),WC(1,"No parameters defined."),dl());}function se(i,t){i&1&&(vs(0,"span",12),WC(1,"Parameter name is required."),dl());}function _e(i,t){if(i&1){let e=dC();vs(0,"div",20)(1,"div",35)(2,"div",36)(3,"label",37),WC(4,"Name "),vs(5,"span",10),WC(6,"*"),dl()(),bg(7,"input",38),HI(),eC(8,se,2,0,"span",12),dl(),vs(9,"div",36)(10,"label",37),WC(11,"Description"),dl(),bg(12,"input",39),HI(),dl(),vs(13,"div",36)(14,"label",37),WC(15,"Default value"),dl(),bg(16,"input",40),HI(),dl()(),vs(17,"button",41),Ag("click",function(){let m=If(e).$index,d=mC(2);return wf(d.removeParameter(m))}),WC(18," \xD7 "),dl()();}if(i&2){let e=t.$implicit,l=t.$index;Tg("formGroupName",l),XE(3),Tg("for","param-name-"+l),XE(4),Hg("prompt-form__input--invalid",e.controls.name.invalid&&e.controls.name.touched),Tg("id","param-name-"+l),$I(),XE(),tC(e.controls.name.invalid&&e.controls.name.touched?8:-1),XE(2),Tg("for","param-desc-"+l),XE(2),Tg("id","param-desc-"+l),$I(),XE(2),Tg("for","param-default-"+l),XE(2),Tg("id","param-default-"+l),$I();}}function fe(i,t){i&1&&(vs(0,"span",12),WC(1,"Content entry must not be blank."),dl());}function ue(i,t){if(i&1){let e=dC();vs(0,"div",22)(1,"span",42),WC(2),dl(),vs(3,"div",43),bg(4,"textarea",44),HI(),eC(5,fe,2,0,"span",12),dl(),vs(6,"button",45),Ag("click",function(){let m=If(e).$index,d=mC(2);return wf(d.removeContentEntry(m))}),WC(7," \xD7 "),dl()();}if(i&2){let e=t.$implicit,l=t.$index,m=mC(2);XE(2),Zg(l+1),XE(2),Hg("prompt-form__textarea--invalid",e.invalid&&e.touched),Tg("formControlName",l),$I(),XE(),tC(e.invalid&&e.touched?5:-1),XE(),Tg("disabled",m.contentArray.length===1);}}function ge(i,t){if(i&1&&(vs(0,"p",23),WC(1),dl()),i&2){let e=mC(2);XE(),Zg(e.errorMessage());}}function Ce(i,t){i&1&&(vs(0,"span",12),WC(1,"Invalid JSON."),dl());}function xe(i,t){if(i&1){let e=dC();vs(0,"button",46),Ag("click",function(){If(e);let m=mC(2);return wf(m.exportYaml())}),WC(1),dl();}if(i&2){let e=mC(2);Tg("disabled",e.isExporting()),XE(),ml(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function ve(i,t){if(i&1){let e=dC();vs(0,"form",7),Ag("ngSubmit",function(){If(e);let m=mC();return wf(m.submit())}),vs(1,"div",8)(2,"label",9),WC(3,"Name "),vs(4,"span",10),WC(5,"*"),dl()(),bg(6,"input",11),HI(),eC(7,ae,2,0,"span",12),dl(),vs(8,"div",8)(9,"label",13),WC(10,"Description"),dl(),bg(11,"input",14),HI(),dl(),eC(12,de,5,1,"div",8),vs(13,"fieldset",15)(14,"legend",16),WC(15," Parameters "),vs(16,"span",17),WC(17,"Named placeholders used in content"),dl()(),vs(18,"p",18),WC(19," Each parameter must have a name and a default value. Use "),vs(20,"code"),WC(21),dl(),WC(22," in content entries to reference them. "),dl(),eC(23,ce,2,0,"p",19),oC(24,_e,19,10,"div",20,nC),vs(26,"button",21),Ag("click",function(){If(e);let m=mC();return wf(m.addParameter())}),WC(27,"+ Add parameter"),dl()(),vs(28,"fieldset",15)(29,"legend",16),WC(30," Content "),vs(31,"span",10),WC(32,"*"),dl(),vs(33,"span",17),WC(34,"Ordered list of text commands"),dl()(),vs(35,"p",18),WC(36," Each content entry is a command. Use "),vs(37,"code"),WC(38,"@AgentName"),dl(),WC(39," to target an agent, "),vs(40,"code"),WC(41,"/promptName param1 param2"),dl(),WC(42," to call another prompt, and "),vs(43,"code"),WC(44),dl(),WC(45," for parameter placeholders. "),dl(),oC(46,ue,8,6,"div",22,nC),vs(48,"button",21),Ag("click",function(){If(e);let m=mC();return wf(m.addContentEntry())}),WC(49,"+ Add content entry"),dl()(),eC(50,ge,2,1,"p",23),vs(51,"div",8)(52,"label",24),WC(53,"External Metadata"),dl(),bg(54,"textarea",25),HI(),eC(55,Ce,2,0,"span",12),vs(56,"span",26),WC(57,"Optional. Opaque JSON object stored as-is. Leave empty to clear."),dl()(),vs(58,"div",27)(59,"button",28),WC(60),dl(),eC(61,xe,2,2,"button",29),vs(62,"button",30),Ag("click",function(){If(e);let m=mC();return wf(m.cancel())}),WC(63,"Cancel"),dl()()();}if(i&2){let e=mC();Tg("formGroup",e.form),XE(6),Hg("prompt-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),Tg("formControl",e.nameControl),$I(),XE(),tC(e.nameControl.invalid&&e.nameControl.touched?7:-1),XE(4),Tg("formControl",e.descriptionControl),$I(),XE(),tC(e.availableAgentConfigs().length>0?12:-1),XE(),Tg("formArrayName","parameters"),XE(8),Zg(e.paramPlaceholderSyntax),XE(2),tC(e.parametersArray.length===0?23:-1),XE(),iC(e.parametersArray.controls),XE(4),Tg("formArrayName","content"),XE(16),Zg(e.paramPlaceholderSyntax),XE(2),iC(e.contentArray.controls),XE(4),tC(e.errorMessage()?50:-1),XE(4),Tg("formControl",e.externalMetadataJsonControl),$I(),XE(),tC(e.externalMetadataJsonControl.invalid&&e.externalMetadataJsonControl.touched?55:-1),XE(4),Tg("disabled",e.form.invalid||e.isSubmitting()),XE(),ml(" ",e.isEditMode()?"Save changes":"Create"," "),XE(),tC(e.isEditMode()?61:-1);}}var re=class i{route=g(V);router=g(G);destroyRef=g(we);promptState=g(m);agentConfigController=g(M);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new z({name:new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(null),agentConfigId:new _t(null),externalMetadataJson:new _t("",{nonNullable:true,validators:[be]}),content:new ze([this.createContentControl()],{validators:[_e$1.required]}),parameters:new ze([])});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get agentConfigIdControl(){return this.form.controls.agentConfigId}get externalMetadataJsonControl(){return this.form.controls.externalMetadataJson}get contentArray(){return this.form.controls.content}get parametersArray(){return this.form.controls.parameters}isEditMode=Hi(false);isSubmitting=Hi(false);isLoading=Hi(false);isExporting=Hi(false);errorMessage=Hi(null);paramPlaceholderSyntax="{{paramName}}";agentConfigs=Hi([]);availableAgentConfigs=this.agentConfigs.asReadonly();existingPrompt=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("promptId");t&&(this.isEditMode.set(true),this.loadPrompt(t)),this.isPlatformMode?this.loadPlatformAgentConfigs():this.namespaceId&&this.loadAgentConfigs(this.namespaceId);}loadPrompt(t){this.isLoading.set(true),this.promptState.getById(t).pipe(U(this.destroyRef)).subscribe({next:e=>{this.existingPrompt=e,this.hydrateForm(e),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadAgentConfigs(t){this.agentConfigController.listByParentAgentConfig(t).pipe(U(this.destroyRef),ha(()=>pa([]))).subscribe(e=>this.agentConfigs.set(e));}loadPlatformAgentConfigs(){this.agentConfigController.listPlatformAgentsAgentConfig().pipe(U(this.destroyRef),ha(()=>pa([]))).subscribe(t=>this.agentConfigs.set(t));}hydrateForm(t){this.nameControl.setValue(t.name),this.descriptionControl.setValue(t.description??null),this.agentConfigIdControl.setValue(t.agentConfigId??null),this.contentArray.clear(),(t.content.length>0?t.content:[""]).forEach(l=>this.contentArray.push(this.createContentControl(l))),this.parametersArray.clear(),(t.parameters??[]).forEach(l=>this.parametersArray.push(this.createParameterGroup(l))),this.externalMetadataJsonControl.setValue(t.externalMetadata?JSON.stringify(t.externalMetadata,null,2):"");}resolveAgentConfigName(t){return this.agentConfigs().find(e=>e.id===t)?.name??t}createContentControl(t=""){return new _t(t,{nonNullable:true,validators:[_e$1.required,_e$1.pattern(/\S/)]})}addContentEntry(){this.contentArray.push(this.createContentControl());}removeContentEntry(t){this.contentArray.length>1&&this.contentArray.removeAt(t);}createParameterGroup(t){return new z({name:new _t(t?.name??"",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(t?.description??null),defaultValue:new _t(t?.defaultValue??"",{nonNullable:true,validators:[_e$1.required]})})}addParameter(){this.parametersArray.push(this.createParameterGroup());}removeParameter(t){this.parametersArray.removeAt(t);}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(true);let t=this.isEditMode()&&!!this.existingPrompt?.id,e=z$1(P({},this.existingPrompt??{}),{namespaceId:this.namespaceId,name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,content:this.contentArray.controls.map(d=>d.value.trim()),parameters:this.parametersArray.controls.map(d=>({name:d.controls.name.value.trim(),description:d.controls.description.value?.trim()||void 0,defaultValue:d.controls.defaultValue.value.trim()}))});t||(e.agentConfigId=this.agentConfigIdControl.value||null);let l=this.externalMetadataJsonControl.value.trim();e.externalMetadata=l?JSON.parse(l):null;let m=t?this.promptState.update(this.existingPrompt.id,e):this.promptState.create(e);this.errorMessage.set(null),m.pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:d=>{this.isSubmitting.set(false),d.status===409?this.errorMessage.set(`A prompt named "${e.name}" already exists in this scope.`):d.status===400?this.errorMessage.set(d.error?.message??"Invalid prompt data."):this.errorMessage.set("An unexpected error occurred. Please try again.");}});}exportYaml(){let t=this.existingPrompt?.id;!t||this.isExporting()||(this.isExporting.set(true),this.promptState.exportAsYaml(t).pipe(U(this.destroyRef)).subscribe({next:e=>{let l=new Blob([e],{type:"application/yaml"}),m=URL.createObjectURL(l),d=document.createElement("a");d.href=m,d.download=`${this.existingPrompt?.name??"prompt"}.yaml`,d.click(),URL.revokeObjectURL(m),this.isExporting.set(false);},error:()=>this.isExporting.set(false)}));}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","prompts"]):this.router.navigate(["/agentos",this.namespaceId,"prompts"]);}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=Aw({type:i,selectors:[["agentos-prompt-form"]],decls:10,vars:3,consts:[[1,"prompt-form"],[1,"prompt-form__header"],["type","button","title","Back to prompts",1,"prompt-form__back",3,"click"],[1,"prompt-form__back-icon"],[1,"prompt-form__title"],[1,"prompt-form__loading"],[1,"prompt-form__form",3,"formGroup"],[1,"prompt-form__form",3,"ngSubmit","formGroup"],[1,"prompt-form__field"],["for","prompt-name",1,"prompt-form__label"],["aria-hidden","true"],["id","prompt-name","type","text","placeholder","e.g. Summarise meeting notes","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__field-error"],["for","prompt-description",1,"prompt-form__label"],["id","prompt-description","type","text","placeholder","Optional \u2014 short description of this prompt","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__section",3,"formArrayName"],[1,"prompt-form__label"],[1,"prompt-form__label-hint"],[1,"prompt-form__section-hint"],[1,"prompt-form__empty-hint"],[1,"prompt-form__param-row",3,"formGroupName"],["type","button",1,"prompt-form__add-btn",3,"click"],[1,"prompt-form__content-row"],[1,"prompt-form__error"],["for","prompt-external-metadata",1,"prompt-form__label"],["id","prompt-external-metadata","rows","6","placeholder",'{ "key": "value" }',"spellcheck","false","autocomplete","off",1,"prompt-form__textarea","prompt-form__textarea--code",3,"formControl"],[1,"prompt-form__field-hint"],[1,"prompt-form__actions"],["type","submit",1,"prompt-form__btn","prompt-form__btn--primary",3,"disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"disabled"],["type","button",1,"prompt-form__btn",3,"click"],["for","prompt-agent-config",1,"prompt-form__label"],[1,"prompt-form__readonly-value"],["id","prompt-agent-config",1,"prompt-form__select",3,"formControl"],[3,"ngValue"],[1,"prompt-form__param-fields"],[1,"prompt-form__field","prompt-form__field--inline"],[1,"prompt-form__label",3,"for"],["type","text","placeholder","e.g. language","formControlName","name","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","Optional","formControlName","description","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","e.g. English","formControlName","defaultValue","autocomplete","off",1,"prompt-form__input",3,"id"],["type","button","title","Remove this parameter",1,"prompt-form__remove-btn",3,"click"],[1,"prompt-form__content-index"],[1,"prompt-form__content-field"],["rows","4","placeholder","Enter a command\u2026",1,"prompt-form__textarea",3,"formControlName"],["type","button","title","Remove this entry",1,"prompt-form__remove-btn",3,"click","disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"click","disabled"]],template:function(e,l){e&1&&(vs(0,"div",0)(1,"header",1)(2,"button",2),Ag("click",function(){return l.cancel()}),vs(3,"span",3),WC(4,"\u2190"),dl(),WC(5),dl(),vs(6,"h1",4),WC(7),dl()(),eC(8,ie,2,0,"p",5)(9,ve,64,18,"form",6),dl()),e&2&&(XE(5),ml(" ",l.isPlatformMode?"Platform prompts":"Prompts"," "),XE(2),Zg(l.isEditMode()?"Edit prompt":"New prompt"),XE(),tC(l.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,At,Zn,Xn,Cn,En,An,Ct,Vt],styles:[".prompt-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.prompt-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.prompt-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.prompt-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.prompt-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.prompt-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.prompt-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.prompt-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.prompt-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.prompt-form__field--inline[_ngcontent-%COMP%]{flex:1}.prompt-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.prompt-form__label-hint[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary);margin-left:.375rem}.prompt-form__select[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;cursor:pointer;appearance:auto;transition:border-color .15s ease}.prompt-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__field-hint[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__readonly-value[_ngcontent-%COMP%]{margin:0;padding:.5rem .875rem;border-radius:0;background:var(--color-bg-hover);border:1px solid var(--color-divider);color:var(--color-text);font-size:.9375rem}.prompt-form__input[_ngcontent-%COMP%], .prompt-form__textarea[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.prompt-form__input[_ngcontent-%COMP%]:focus, .prompt-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__input[_ngcontent-%COMP%]::placeholder, .prompt-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.prompt-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:100px;line-height:1.5}.prompt-form__textarea--code[_ngcontent-%COMP%]{font-family:monospace;font-size:.85rem;resize:vertical}.prompt-form__section[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.prompt-form__section-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__empty-hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.prompt-form__content-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-start}.prompt-form__content-field[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.25rem}.prompt-form__content-index[_ngcontent-%COMP%]{flex-shrink:0;width:1.5rem;padding-top:.6rem;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-align:right;-webkit-user-select:none;user-select:none}.prompt-form__param-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-end;padding:.75rem;border-radius:0;background:var(--color-bg-hover)}.prompt-form__param-fields[_ngcontent-%COMP%]{flex:1;display:flex;gap:.75rem;flex-wrap:wrap}.prompt-form__add-btn[_ngcontent-%COMP%]{align-self:flex-start;padding:.4rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-accent);font-size:.875rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__add-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-accent)}.prompt-form__remove-btn[_ngcontent-%COMP%]{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;border-radius:0;border:1px solid transparent;background:transparent;color:var(--color-neutral-500);font-size:1rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.prompt-form__remove-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);border-color:var(--red)}.prompt-form__remove-btn[_ngcontent-%COMP%]:disabled{opacity:.3;cursor:not-allowed}.prompt-form__error[_ngcontent-%COMP%]{margin:0;padding:.625rem .875rem;border-radius:0;background:color-mix(in srgb,var(--red) 10%,transparent);border:1px solid var(--red);color:var(--red);font-size:.875rem;line-height:1.4}.prompt-form__field-error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--red);line-height:1.3}.prompt-form__input--invalid[_ngcontent-%COMP%], .prompt-form__textarea--invalid[_ngcontent-%COMP%]{border-color:var(--red)}.prompt-form__input--invalid[_ngcontent-%COMP%]:focus, .prompt-form__textarea--invalid[_ngcontent-%COMP%]:focus{border-color:var(--red)}.prompt-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.prompt-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.prompt-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.prompt-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.prompt-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}.prompt-form__btn--export[_ngcontent-%COMP%]{border-color:var(--color-divider);color:var(--color-text-secondary)}.prompt-form__btn--export[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}"]})};function be(i){let t=i.value?.trim();if(!t)return null;try{return JSON.parse(t),null}catch(e){return {invalidJson:true}}}export{re as PromptFormComponent};
@@ -0,0 +1 @@
1
+ import {O}from'./chunk-DWXHIgAs.js';import {g,ao as V$1,G as G$1,w as we,d8 as M,aI as Tr,bR as ga,Q as By,a7 as ha,S as pa,u as ue,b as U$1,A as Aw,aJ as Nb,v as vs,be as aT,l as Ag,W as WC,k as dl,af as Dg,T as TC,r as Tg,bf as uT,ah as rT,n as eC,ac as mC,t as tC,a9 as dC,aa as If,ab as wf,ag as fT}from'./main-CERDHS7N.js';import {W as Wn}from'./chunk-Dh70Sw4n.js';import'./chunk-Dv3y4cq8.js';import'./chunk-D615HDbJ.js';var F=()=>[];function U(o,t){if(o&1){let n=dC();vs(0,"agentos-agent-config-item",4),Ag("deleteRequested",function(i){If(n);let D=mC(2);return wf(D.deleteConfig(i))}),dl();}if(o&2){let n=mC().$implicit,e=mC();Tg("config",t)("namespaceId",e.namespaceId)("readOnly",e.isPlatformConfig(n.id));}}function V(o,t){if(o&1&&eC(0,U,1,3,"agentos-agent-config-item",3),o&2){let n,e=t.$implicit,i=mC();tC((n=i.resolveConfig(e.id))?0:-1,n);}}var j="namespace",G="platform",q=class o{route=g(V$1);router=g(G$1);destroyRef=g(we);agentConfigController=g(M);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new Tr(void 0);allConfigs$=this.refresh$.pipe(ga(()=>By({namespace:this.agentConfigController.listByParentAgentConfig(this.namespaceId),platform:this.agentConfigController.listPlatformAgentsAgentConfig().pipe(ha(()=>pa([])))})));configItems$=this.allConfigs$.pipe(ue(({namespace:t,platform:n})=>[...n.map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:G,groupLabel:"Platform (read-only)"})),...t.map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:j,groupLabel:"Namespace"}))]));namespaceConfigsById=new Map;platformConfigsById=new Map;constructor(){this.allConfigs$.pipe(U$1(this.destroyRef)).subscribe(({namespace:t,platform:n})=>{this.namespaceConfigsById=new Map(t.map(e=>[e.id??"",e])),this.platformConfigsById=new Map(n.map(e=>[e.id??"",e]));});}goBack(){this.router.navigate(["/agentos","namespaces"]);}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"agent-configs","new"]);}deleteConfig(t){this.agentConfigController.deleteAgentConfig(t.id??"").pipe(U$1(this.destroyRef)).subscribe(()=>this.refresh$.next());}resolveConfig(t){return this.namespaceConfigsById.get(t)??this.platformConfigsById.get(t)??null}isPlatformConfig(t){return this.platformConfigsById.has(t)}static \u0275fac=function(n){return new(n||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-namespace-agent-configs"]],decls:6,vars:6,consts:[["agentConfigItemTpl",""],["title","Agent Configs","emptyMessage","No agent configs defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","type","button",1,"namespace-agent-configs__back",3,"click"],[3,"config","namespaceId","readOnly"],[3,"deleteRequested","config","namespaceId","readOnly"]],template:function(n,e){if(n&1&&(vs(0,"ds-entity-list",1),aT(1,"async"),Ag("createRequested",function(){return e.openCreateForm()}),vs(2,"button",2),Ag("click",function(){return e.goBack()}),WC(3," \u2190 Namespaces "),dl()(),Dg(4,V,1,1,"ng-template",null,0,fT)),n&2){let i=TC(5);Tg("items",uT(1,3,e.configItems$)??rT(5,F))("showCreate",true)("itemTemplate",i);}},dependencies:[Wn,O,Nb],styles:[".namespace-agent-configs__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.namespace-agent-configs__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"]})};export{q as NamespaceAgentConfigsComponent};
@@ -0,0 +1 @@
1
+ import {p}from'./chunk-CoVKXwLW.js';import {g,ao as V,J as dy,d3 as y,A as Aw,aw as fl,W as WC,ax as pl,X as XE,a8 as Zg}from'./main-CERDHS7N.js';import'./chunk-rdNDu_G5.js';import'./chunk-Dh70Sw4n.js';import'./chunk-Dv3y4cq8.js';import'./chunk-D615HDbJ.js';var A=class r{route=g(V);http=g(dy);config=g(y);message="Authentication in progress\u2026";ngOnInit(){let e=this.route.snapshot.queryParamMap.get("code"),t=this.route.snapshot.queryParamMap.get("state"),o=this.route.snapshot.queryParamMap.get("error"),i=this.route.snapshot.queryParamMap.get("error_description");if(o){console.warn("[AgentOS OAuth Callback] OAuth error:",o,i),this.notifyParentAndClose({success:false,error:i||o});return}if(!e){console.error("[AgentOS OAuth Callback] Missing authorization code"),this.message="OAuth callback error: missing authorization code.",this.notifyParentAndClose({success:false,error:"Missing authorization code"});return}this.http.post(`${this.config.basePath}/api/oauth/callback`,{code:e,state:t}).subscribe({next:()=>{console.log("[AgentOS OAuth Callback] Backend callback resolved"),this.notifyParentAndClose({success:true});},error:a=>{console.error("[AgentOS OAuth Callback] Backend callback failed:",a),this.notifyParentAndClose({success:false,error:a?.error?.message||a?.message||"Token exchange failed"});}});}notifyParentAndClose(e){if(this.message=e.success?"Authentication complete. You can close this window.":`Authentication failed: ${e.error??"unknown error"}. You can close this window.`,window.opener)try{window.opener.postMessage(e,window.location.origin);}catch(t){console.error("[AgentOS OAuth Callback] postMessage failed:",t),localStorage.setItem(p,JSON.stringify(e));}else console.warn("[AgentOS OAuth Callback] No window.opener \u2014 localStorage fallback"),localStorage.setItem(p,JSON.stringify(e));setTimeout(()=>window.close(),1e3);}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=Aw({type:r,selectors:[["agentos-oauth-callback"]],decls:2,vars:1,consts:[[2,"font-family","sans-serif","padding","2rem","text-align","center"]],template:function(t,o){t&1&&(fl(0,"p",0),WC(1),pl()),t&2&&(XE(),Zg(o.message));},encapsulation:2,changeDetection:1})};export{A as OAuthCallbackComponent};