@whoz-oss/coday-client 3.17.0 → 3.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/browser/chunk-2H_m7V_L.js +1 -0
  2. package/browser/{chunk-BXkvjekT.js → chunk-3m_nS8Y5.js} +2 -2
  3. package/browser/chunk-4tOVGgPj.js +1 -0
  4. package/browser/{chunk-BPfJALqU.js → chunk-82BMsVX3.js} +1 -1
  5. package/browser/{chunk-CxUcyBb9.js → chunk-B3NyUUXq.js} +1 -1
  6. package/browser/chunk-B55TXBfo.js +1 -0
  7. package/browser/{chunk-CI760KmO.js → chunk-B9NYLAhC.js} +1 -1
  8. package/browser/chunk-BEaYQhbI.js +508 -0
  9. package/browser/chunk-BI4kHPfc.js +1 -0
  10. package/browser/chunk-BID9NaLj.js +1 -0
  11. package/browser/{chunk-Ci9l-k84.js → chunk-BOpm3F5F.js} +1 -1
  12. package/browser/{chunk-CpZK7G-Q.js → chunk-BWLCegs8.js} +2 -2
  13. package/browser/{chunk-DjoW6kqa.js → chunk-BWZcAdUl.js} +5 -5
  14. package/browser/{chunk-DqC8XT4v.js → chunk-BXsNw_60.js} +1 -1
  15. package/browser/chunk-BZ-rNYX5.js +1 -0
  16. package/browser/{chunk-BHvLB-pV.js → chunk-B_5qWQZJ.js} +1 -1
  17. package/browser/{chunk-DMtXGu5h.js → chunk-BcHHkjC4.js} +1 -1
  18. package/browser/{chunk-CI7wYBKk.js → chunk-BhD8uvAV.js} +1 -1
  19. package/browser/{chunk-DpHEu7EG.js → chunk-Bha8h69K.js} +1 -1
  20. package/browser/chunk-BhdMedPO.js +37 -0
  21. package/browser/chunk-BiwhEkuA.js +1 -0
  22. package/browser/{chunk-ClSDInQq.js → chunk-Bkwb10Tz.js} +1 -1
  23. package/browser/chunk-BlO8XEX7.js +1 -0
  24. package/browser/{chunk-b6g-uBR5.js → chunk-BmiWFhjp.js} +1 -1
  25. package/browser/{chunk-BVAD9f9s.js → chunk-BnDz6aYG.js} +1 -1
  26. package/browser/chunk-BqH7Wffn.js +5 -0
  27. package/browser/{chunk-LVItL87L.js → chunk-BrZnGAfk.js} +1 -1
  28. package/browser/{chunk-D202v_ff.js → chunk-Bu2KbiEO.js} +1 -1
  29. package/browser/{chunk-B6BZBDSv.js → chunk-C3kED08r.js} +5 -5
  30. package/browser/{chunk-Bu5Xq3QT.js → chunk-C4bnTLvT.js} +1 -1
  31. package/browser/{chunk-EBW8PloQ.js → chunk-C5I2MlRU.js} +1 -1
  32. package/browser/{chunk-ClEmA_ih.js → chunk-C9j9HPDY.js} +1 -1
  33. package/browser/{chunk-B626-rya.js → chunk-CEeAV-bb.js} +1 -1
  34. package/browser/{chunk-Brx_KbnM.js → chunk-CNQEET68.js} +1 -1
  35. package/browser/chunk-CNfTQeDy.js +1 -0
  36. package/browser/{chunk-DFQuWS_F.js → chunk-CR2xcumM.js} +1 -1
  37. package/browser/{chunk-BkN5jb4J.js → chunk-CUeRU4T-.js} +1 -1
  38. package/browser/chunk-Cno6SC-J.js +2 -0
  39. package/browser/{chunk-bfpuueWC.js → chunk-CorOD5-V.js} +3 -3
  40. package/browser/{chunk-B1OTuTxt.js → chunk-CvEqqOCm.js} +1 -1
  41. package/browser/{chunk-DQtoh8wv.js → chunk-Cwpn9dPE.js} +1 -1
  42. package/browser/{chunk-B7kKWG4P.js → chunk-Cx3RQESQ.js} +1 -1
  43. package/browser/{chunk-DO3lSvop.js → chunk-CxKynLjd.js} +1 -1
  44. package/browser/chunk-D8Bz7q-C.js +675 -0
  45. package/browser/{chunk-DCwEaE_b.js → chunk-DAyHNJOx.js} +1 -1
  46. package/browser/chunk-DBfSV0o-.js +2 -0
  47. package/browser/chunk-DEAo8Gsm.js +190 -0
  48. package/browser/{chunk-DKllQ3Ve.js → chunk-DHF4GvxN.js} +1 -1
  49. package/browser/chunk-DIhIuMRR.js +9 -0
  50. package/browser/chunk-DK7la0Zv.js +1 -0
  51. package/browser/{chunk-Bgd8Jkga.js → chunk-DKUyWR_o.js} +1 -1
  52. package/browser/chunk-DP1Oiy0T.js +1 -0
  53. package/browser/chunk-DSgmn8Nl.js +276 -0
  54. package/browser/{chunk-CUz5MHdA.js → chunk-DVVwrDwV.js} +1 -1
  55. package/browser/chunk-DWlwteaE.js +55 -0
  56. package/browser/{chunk-DxrynR3o.js → chunk-DXAodgYO.js} +1 -1
  57. package/browser/chunk-Ddy7zzYX.js +1 -0
  58. package/browser/{chunk-C5WD0UQE.js → chunk-DrITgtaw.js} +3 -3
  59. package/browser/{chunk-mrKeqPKc.js → chunk-Drt7fOvo.js} +1 -1
  60. package/browser/chunk-Dw8nvU1v.js +2 -0
  61. package/browser/{chunk-C2VdQfMJ.js → chunk-HERnQhug.js} +1 -1
  62. package/browser/{chunk-CKhGzoqa.js → chunk-RlCcRMQy.js} +1 -1
  63. package/browser/chunk-iwYQP1W9.js +1 -0
  64. package/browser/chunk-kXODoW4J.js +1 -0
  65. package/browser/{chunk-CXTwGKdl.js → chunk-nbZfjdVD.js} +1 -1
  66. package/browser/{chunk-DHb3-uKf.js → chunk-t5r49PeM.js} +1 -1
  67. package/browser/{chunk-B3-4EW3s.js → chunk-vG5Um99w.js} +1 -1
  68. package/browser/{chunk-BtEXE3Xz.js → chunk-vse5stCO.js} +1 -1
  69. package/browser/chunk-wricEDWB.js +1 -0
  70. package/browser/index.html +1 -1
  71. package/browser/main-K6RKSHKK.js +1811 -0
  72. package/package.json +1 -1
  73. package/browser/chunk-0njD_aMa.js +0 -2
  74. package/browser/chunk-6WIaUDav.js +0 -1
  75. package/browser/chunk-B7yga-a4.js +0 -1
  76. package/browser/chunk-BAWubWk8.js +0 -1
  77. package/browser/chunk-BDaTUrH4.js +0 -1
  78. package/browser/chunk-BJ5G7Y-a.js +0 -276
  79. package/browser/chunk-BTX631I3.js +0 -5
  80. package/browser/chunk-BYyTBqh4.js +0 -37
  81. package/browser/chunk-B_49KV6W.js +0 -1
  82. package/browser/chunk-BaO2vi_O.js +0 -675
  83. package/browser/chunk-BcT0wYqu.js +0 -2
  84. package/browser/chunk-BdJzYh5V.js +0 -190
  85. package/browser/chunk-BwDJA6_r.js +0 -55
  86. package/browser/chunk-C49BBPGm.js +0 -1
  87. package/browser/chunk-CNAj5Eon.js +0 -1
  88. package/browser/chunk-D-jBfPIO.js +0 -1
  89. package/browser/chunk-DMRb150M.js +0 -2
  90. package/browser/chunk-DjMtxVWg.js +0 -508
  91. package/browser/chunk-DqioJb1X.js +0 -1
  92. package/browser/chunk-DrzvCb86.js +0 -1
  93. package/browser/chunk-DwFGK2iu.js +0 -1
  94. package/browser/chunk-DxvmpOv5.js +0 -1
  95. package/browser/chunk-P8B5rz7L.js +0 -1
  96. package/browser/chunk-R-GmZrHu.js +0 -9
  97. package/browser/main-LBRSRTYI.js +0 -1811
@@ -0,0 +1 @@
1
+ import {N}from'./chunk-vG5Um99w.js';import {g,ao as V,G,C as Ce$1,da as M,dn as D,d8 as F,W as Wi,$ as $y,I as br,b as U,r as re,a7 as va,z as z$1,a as P,j as jw,s as si,k as Cs,n as kg,J as JC,m as hl,o as aC,t as sI,a8 as Kg,u as cC,ac as CC,_ as _g,a9 as vC,M as Mg,a3 as ZI,a6 as QI,a5 as Dl,q as dC,v as fC,bo as uC,aa as Cf,ab as Tf,S as Sg}from'./main-K6RKSHKK.js';import'./chunk-DIhIuMRR.js';import {o as z,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,a as wt,Z as Zn,l as Xn,C as Cn,E as En}from'./chunk-BhdMedPO.js';import'./chunk-B55TXBfo.js';import'./chunk-Bkwb10Tz.js';import'./chunk-D8Bz7q-C.js';import'./chunk-BEaYQhbI.js';var le=(r,t)=>t.config.id,ce=(r,t)=>t.type;function ge(r,t){if(r&1&&(Cs(0,"a",5),JC(1,"View resolved definition \u2192"),hl()),r&2){let e=CC();_g("routerLink",e.inspectRoute());}}function se(r,t){r&1&&(Cs(0,"span",6),JC(1,"Platform level"),hl());}function de(r,t){r&1&&(Cs(0,"p",7),JC(1,"Loading\u2026"),hl());}function me(r,t){if(r&1&&(Cs(0,"span",41),JC(1),hl()),r&2){let e=CC().$implicit;sI(),Kg(e.config.integrationType);}}function fe(r,t){if(r&1&&(Mg(0,"input",42),ZI()),r&2){let e=CC().$implicit;_g("formControl",e.toolsControl),QI();}}function pe(r,t){if(r&1){let e=vC();Cs(0,"div",37)(1,"label",38)(2,"input",39),kg("change",function(){let l=Cf(e).$implicit,g=CC(3);return Tf(g.toggleIntegration(l))}),hl(),Cs(3,"span",40),JC(4),hl(),aC(5,me,2,1,"span",41),hl(),aC(6,fe,1,1,"input",42),hl();}if(r&2){let e=t.$implicit;sI(2),_g("checked",e.enabled()),sI(2),Kg(e.config.name),sI(),cC(e.config.integrationType?5:-1),sI(),cC(e.enabled()?6:-1);}}function _e(r,t){if(r&1&&(Cs(0,"p",48),JC(1),hl()),r&2){let e=CC().$implicit;sI(),Dl(" Restricted to: ",e.restrictedTools.join(", ")," (set outside this form, preserved on save) ");}}function ue(r,t){if(r&1){let e=vC();Cs(0,"div",37)(1,"label",38)(2,"span",40),JC(3),hl(),Cs(4,"span",41),JC(5,"built-in"),hl()(),Cs(6,"select",44),kg("change",function(l){let g=Cf(e).$implicit,m=CC(4);return Tf(m.setBuiltInState(g,l.target.value))}),Cs(7,"option",45),JC(8),hl(),Cs(9,"option",46),JC(10,"Enabled"),hl(),Cs(11,"option",47),JC(12,"Disabled"),hl()(),aC(13,_e,2,1,"p",48),Cs(14,"p",49),JC(15),hl()();}if(r&2){let e=t.$implicit,o=CC(4);sI(),Sg("for","built-in-"+e.type),sI(2),Kg(e.displayName),sI(3),_g("id","built-in-"+e.type)("value",e.state()),sI(2),Kg(o.builtInDefaultLabel(e)),sI(5),cC(e.state()==="on"&&e.restrictedTools?13:-1),sI(2),Kg(e.description);}}function be(r,t){if(r&1&&(Cs(0,"p",43),JC(1,"Built-in integrations"),hl(),dC(2,ue,16,7,"div",37,ce)),r&2){let e=CC(3);sI(2),fC(e.builtInRows());}}function Ce(r,t){if(r&1&&(Cs(0,"fieldset",20)(1,"legend",25),JC(2,"Integrations"),hl(),Cs(3,"p",36),JC(4," Select which integrations this agent can use. Leave tool names empty to allow all tools from an integration. "),hl(),dC(5,pe,7,4,"div",37,le),aC(7,be,4,0),hl()),r&2){let e=CC(2);sI(5),fC(e.integrationRows()),sI(2),cC(e.builtInRows().length>0?7:-1);}}function xe(r,t){if(r&1){let e=vC();Cs(0,"li",50),Mg(1,"input",51),ZI(),Cs(2,"button",52),kg("click",function(){let l=Cf(e).$implicit,g=CC(3);return Tf(g.removeSubAgent(l))}),JC(3," \u{1F5D1} "),hl()();}if(r&2){let e=t.$implicit;sI(),_g("formControl",e.control),QI();}}function ye(r,t){if(r&1&&(Cs(0,"ul",28),dC(1,xe,4,1,"li",50,uC),hl()),r&2){let e=CC(2);sI(),fC(e.subAgentRows());}}function he(r,t){if(r&1){let e=vC();Cs(0,"button",53),kg("click",function(){Cf(e);let l=CC(2);return Tf(l.exportYaml())}),JC(1),hl();}if(r&2){let e=CC(2);_g("disabled",e.isExporting()),sI(),Dl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function ve(r,t){if(r&1){let e=vC();Cs(0,"form",9),kg("ngSubmit",function(){Cf(e);let l=CC();return Tf(l.submit())}),Cs(1,"div",10)(2,"label",11),JC(3,"Name "),Cs(4,"span",12),JC(5,"*"),hl()(),Mg(6,"input",13),ZI(),hl(),Cs(7,"div",10)(8,"label",14),JC(9,"Description"),hl(),Mg(10,"input",15),ZI(),hl(),Cs(11,"div",10)(12,"label",16),JC(13,"Model name"),hl(),Mg(14,"input",17),ZI(),hl(),Cs(15,"div",10)(16,"label",18),JC(17,"Instructions"),hl(),Mg(18,"textarea",19),ZI(),hl(),aC(19,Ce,8,1,"fieldset",20),Cs(20,"div",10)(21,"label",21),Mg(22,"input",22),ZI(),Cs(23,"span",23),JC(24,"Advanced mode"),hl()(),Cs(25,"p",24),JC(26," When enabled, this agent uses a multi-step reasoning loop instead of a single LLM call. "),hl()(),Cs(27,"div",10)(28,"label",21),Mg(29,"input",22),ZI(),Cs(30,"span",23),JC(31,"Enabled"),hl()(),Cs(32,"p",24),JC(33,"Disabled agents are excluded from namespace resolution."),hl()(),Cs(34,"div",10)(35,"span",25),JC(36,"Sub-agents"),hl(),Cs(37,"p",26),JC(38," Glob patterns for agents this agent may delegate to. "),Cs(39,"code",27),JC(40,"*"),hl(),JC(41," matches any sequence of characters (e.g.\xA0"),Cs(42,"code",27),JC(43,"*Fixer"),hl(),JC(44,", "),Cs(45,"code",27),JC(46,"*"),hl(),JC(47," for all). Leave empty to disable delegation. "),hl(),aC(48,ye,3,0,"ul",28),Cs(49,"div",29)(50,"input",30),kg("keydown.enter",function(){Cf(e);let l=CC();return Tf(l.addSubAgent())}),hl(),ZI(),Cs(51,"button",31),kg("click",function(){Cf(e);let l=CC();return Tf(l.addSubAgent())}),JC(52," + "),hl()()(),Cs(53,"div",32)(54,"button",33),JC(55),hl(),aC(56,he,2,2,"button",34),Cs(57,"button",35),kg("click",function(){Cf(e);let l=CC();return Tf(l.cancel())}),JC(58,"Cancel"),hl()()();}if(r&2){let e=CC();_g("formGroup",e.form),sI(6),_g("formControl",e.nameControl),QI(),sI(4),_g("formControl",e.descriptionControl),QI(),sI(4),_g("formControl",e.modelNameControl),QI(),sI(4),_g("formControl",e.instructionsControl),QI(),sI(),cC(e.integrationRows().length>0||e.builtInRows().length>0?19:-1),sI(3),_g("formControl",e.advancedExecutionControl),QI(),sI(7),_g("formControl",e.enabledControl),QI(),sI(19),cC(e.subAgentRows().length>0?48:-1),sI(2),_g("formControl",e.newSubAgentControl),QI(),sI(),_g("disabled",!e.newSubAgentControl.value.trim()),sI(3),_g("disabled",e.form.invalid||e.isSubmitting()),sI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," "),sI(),cC(e.isEditMode()?56:-1);}}var ae=class r{route=g(V);router=g(G);destroyRef=g(Ce$1);agentConfigController=g(M);exportService=g(D);integrationConfigState=g(N);integrationTypeController=g(F);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),modelName:new _t(null),instructions:new _t(null),advancedExecution:new _t(false,{nonNullable:true}),enabled:new _t(false,{nonNullable:true})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get modelNameControl(){return this.form.controls.modelName}get instructionsControl(){return this.form.controls.instructions}get advancedExecutionControl(){return this.form.controls.advancedExecution}get enabledControl(){return this.form.controls.enabled}subAgentRows=Wi([]);newSubAgentControl=new _t("",{nonNullable:true});isEditMode=Wi(false);isSubmitting=Wi(false);isLoading=Wi(false);isExporting=Wi(false);builtInRows=Wi([]);inspectRoute(){let t=this.route.snapshot.paramMap.get("agentConfigId")??"";return this.isPlatformMode?["/agentos","admin","agent-configs",t,"inspect"]:["/agentos",this.namespaceId,"agent-configs",t,"inspect"]}integrationRows=Wi([]);existingConfig=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("agentConfigId");t?(this.isEditMode.set(true),this.loadConfigAndIntegrations(t)):this.loadIntegrations(void 0);}loadConfigAndIntegrations(t){this.isLoading.set(true),$y({config:this.agentConfigController.getByIdAgentConfig(t),namespaceIntegrations:this.namespaceId?this.integrationConfigState.loadNamespaceConfigs(this.namespaceId):br([]),platformIntegrations:this.integrationConfigState.loadPlatformConfigs(),builtInTypes:this.loadBuiltInTypes()}).pipe(U(this.destroyRef)).subscribe({next:({config:e,namespaceIntegrations:o,platformIntegrations:l,builtInTypes:g})=>{this.existingConfig=e,this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??null),this.modelNameControl.setValue(e.modelName??null),this.instructionsControl.setValue(e.instructions??null),this.advancedExecutionControl.setValue(e.advancedExecution??false),this.enabledControl.setValue(e.enabled??true);let m=[...l,...o];this.integrationRows.set(this.buildIntegrationRows(m,e.integrations??void 0)),this.builtInRows.set(this.buildBuiltInRows(g,e.integrations??void 0)),this.subAgentRows.set((e.subAgents??[]).map(P=>({control:new _t(P,{nonNullable:true})}))),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadIntegrations(t){$y({namespaceIntegrations:this.namespaceId?this.integrationConfigState.loadNamespaceConfigs(this.namespaceId):br([]),platformIntegrations:this.integrationConfigState.loadPlatformConfigs(),builtInTypes:this.loadBuiltInTypes()}).pipe(U(this.destroyRef)).subscribe({next:({namespaceIntegrations:e,platformIntegrations:o,builtInTypes:l})=>{let g=[...o,...e];this.integrationRows.set(this.buildIntegrationRows(g,t??void 0)),this.builtInRows.set(this.buildBuiltInRows(l,t??void 0));}});}loadBuiltInTypes(){return this.integrationTypeController.listTypesIntegrationType().pipe(re(t=>t.filter(e=>!e.configSchema)),va(t=>(console.error("[agent-config-form] failed to load integration types",t),br([]))))}buildIntegrationRows(t,e){return t.map(o=>{let l=o.name??"",g=e?.[l],m=e!=null&&l in e,P=Array.isArray(g)?g.join(", "):"";return {config:o,enabled:Wi(m),toolsControl:new _t(P,{nonNullable:true})}})}buildBuiltInRows(t,e){return t.map(o=>{let l=e!=null&&o.type in e,g=e?.[o.type],m=l?Array.isArray(g)&&g.length===0?"off":"on":"default";return {type:o.type,displayName:o.displayName,description:o.description,enabledByDefault:o.enabledByDefault===true,state:Wi(m),restrictedTools:Array.isArray(g)&&g.length>0?g:null}})}toggleIntegration(t){t.enabled.update(e=>!e);}setBuiltInState(t,e){t.state.set(e);}builtInDefaultLabel(t){return t.enabledByDefault?"Platform default (enabled)":"Platform default (disabled)"}addSubAgent(){let t=this.newSubAgentControl.value.trim();t&&(this.subAgentRows.update(e=>[...e,{control:new _t(t,{nonNullable:true})}]),this.newSubAgentControl.reset(""));}removeSubAgent(t){this.subAgentRows.update(e=>e.filter(o=>o!==t));}buildSubAgentsPayload(){let t=this.subAgentRows().map(e=>e.control.value.trim()).filter(e=>e.length>0);return t.length>0?t:void 0}buildIntegrationsPayload(){let t={};for(let o of this.integrationRows().filter(l=>l.enabled())){let l=o.config.name??"",g=o.toolsControl.value.trim();t[l]=g===""?null:g.split(",").map(m=>m.trim()).filter(m=>m.length>0);}for(let o of this.builtInRows()){let l=o.state();l==="on"?t[o.type]=o.restrictedTools??null:l==="off"&&(t[o.type]=[]);}let e=new Set([...this.integrationRows().map(o=>o.config.name??""),...this.builtInRows().map(o=>o.type)]);for(let[o,l]of Object.entries(this.existingConfig?.integrations??{}))e.has(o)||(t[o]=l);return Object.keys(t).length>0?t:void 0}submit(){if(this.form.invalid||this.isSubmitting())return;this.addSubAgent(),this.isSubmitting.set(true);let t=z$1(P({},this.existingConfig??{}),{createdOn:this.existingConfig?.createdOn,updatedOn:this.existingConfig?.updatedOn,namespaceId:this.namespaceId,name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,modelName:this.modelNameControl.value?.trim()||void 0,instructions:this.instructionsControl.value?.trim()||void 0,integrations:this.buildIntegrationsPayload(),advancedExecution:this.advancedExecutionControl.value,enabled:this.enabledControl.value,subAgents:this.buildSubAgentsPayload()});(this.isEditMode()?this.agentConfigController.updateAgentConfig(this.existingConfig.id??"",t):this.agentConfigController.createAgentConfig(t)).pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(false)});}exportYaml(){let t=this.existingConfig?.id;!t||this.isExporting()||(this.isExporting.set(true),this.exportService.exportAsYaml(t).pipe(U(this.destroyRef)).subscribe({next:e=>{let o=new Blob([e],{type:"application/yaml"}),l=URL.createObjectURL(o),g=document.createElement("a");g.href=l,g.download=`${this.existingConfig?.name??"agent"}.yaml`,g.click(),URL.revokeObjectURL(l),this.isExporting.set(false);},error:()=>this.isExporting.set(false)}));}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","agent-configs"]):this.router.navigate(["/agentos",this.namespaceId,"agent-configs"]);}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=jw({type:r,selectors:[["agentos-agent-config-form"]],decls:12,vars:4,consts:[[1,"agent-config-form"],[1,"agent-config-form__header"],["type","button","title","Back to agent configs",1,"agent-config-form__back",3,"click"],[1,"agent-config-form__back-icon"],[1,"agent-config-form__title"],[1,"agent-config-form__sibling-link",3,"routerLink"],[1,"agent-config-form__platform-badge"],[1,"agent-config-form__loading"],[1,"agent-config-form__form",3,"formGroup"],[1,"agent-config-form__form",3,"ngSubmit","formGroup"],[1,"agent-config-form__field"],["for","agent-config-name",1,"agent-config-form__label"],["aria-hidden","true"],["id","agent-config-name","type","text","placeholder","e.g. Support agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-description",1,"agent-config-form__label"],["id","agent-config-description","type","text","placeholder","Optional \u2014 short description of this agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-model-name",1,"agent-config-form__label"],["id","agent-config-model-name","type","text","placeholder","Optional \u2014 model alias or name to use","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-instructions",1,"agent-config-form__label"],["id","agent-config-instructions","rows","6","placeholder","Optional \u2014 system instructions for this agent",1,"agent-config-form__textarea",3,"formControl"],[1,"agent-config-form__integrations"],[1,"agent-config-form__toggle-label"],["type","checkbox",1,"agent-config-form__toggle-checkbox",3,"formControl"],[1,"agent-config-form__toggle-text"],[1,"agent-config-form__toggle-hint"],[1,"agent-config-form__label"],[1,"agent-config-form__field-hint"],[1,"agent-config-form__code"],[1,"agent-config-form__sub-agent-list"],[1,"agent-config-form__sub-agent-add"],["type","text","placeholder","e.g. *Fixer or *","autocomplete","off",1,"agent-config-form__input","agent-config-form__sub-agent-input",3,"keydown.enter","formControl"],["type","button","title","Add pattern",1,"agent-config-form__sub-agent-btn","agent-config-form__sub-agent-btn--add",3,"click","disabled"],[1,"agent-config-form__actions"],["type","submit",1,"agent-config-form__btn","agent-config-form__btn--primary",3,"disabled"],["type","button",1,"agent-config-form__btn","agent-config-form__btn--export",3,"disabled"],["type","button",1,"agent-config-form__btn",3,"click"],[1,"agent-config-form__integrations-hint"],[1,"agent-config-form__integration-row"],[1,"agent-config-form__integration-toggle"],["type","checkbox",1,"agent-config-form__integration-checkbox",3,"change","checked"],[1,"agent-config-form__integration-name"],[1,"agent-config-form__integration-type"],["type","text","placeholder","Tool names, comma-separated (empty = all tools)","autocomplete","off",1,"agent-config-form__input","agent-config-form__integration-tools",3,"formControl"],[1,"agent-config-form__integrations-separator"],[1,"agent-config-form__integration-state",3,"change","id","value"],["value","default"],["value","on"],["value","off"],[1,"agent-config-form__integration-restriction"],[1,"agent-config-form__integration-builtin-desc"],[1,"agent-config-form__sub-agent-row"],["type","text","autocomplete","off",1,"agent-config-form__input","agent-config-form__sub-agent-input",3,"formControl"],["type","button","title","Remove",1,"agent-config-form__sub-agent-btn","agent-config-form__sub-agent-btn--danger",3,"click"],["type","button",1,"agent-config-form__btn","agent-config-form__btn--export",3,"click","disabled"]],template:function(e,o){e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),kg("click",function(){return o.cancel()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," Agent Configs "),hl(),Cs(6,"h1",4),JC(7),hl(),aC(8,ge,2,1,"a",5),aC(9,se,2,0,"span",6),hl(),aC(10,de,2,0,"p",7)(11,ve,59,14,"form",8),hl()),e&2&&(sI(7),Kg(o.isEditMode()?"Edit agent config":"New agent config"),sI(),cC(o.isEditMode()?8:-1),sI(),cC(o.isPlatformMode?9:-1),sI(),cC(o.isLoading()?10:11));},dependencies:[ni,Jn,Qn,ei,Ye,wt,Zn,Xn,Cn,En,si],styles:[".agent-config-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.agent-config-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.agent-config-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)}.agent-config-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.agent-config-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.agent-config-form__sibling-link[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-accent);text-decoration:none}.agent-config-form__sibling-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-form__platform-badge[_ngcontent-%COMP%]{display:inline-block;font-size:.75rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:0;padding:.125rem .5rem;letter-spacing:.02em;align-self:flex-start}.agent-config-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.agent-config-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.agent-config-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.agent-config-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.agent-config-form__input[_ngcontent-%COMP%], .agent-config-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}.agent-config-form__input[_ngcontent-%COMP%]:focus, .agent-config-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.agent-config-form__input[_ngcontent-%COMP%]::placeholder, .agent-config-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.agent-config-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:120px;line-height:1.5}.agent-config-form__integrations[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.agent-config-form__integrations-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__integration-row[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.agent-config-form__integration-toggle[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.agent-config-form__integration-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-accent);cursor:pointer}.agent-config-form__integration-name[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text)}.agent-config-form__integration-type[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);font-family:monospace}.agent-config-form__integration-tools[_ngcontent-%COMP%]{margin-left:1.5rem;font-size:.875rem}.agent-config-form__integrations-separator[_ngcontent-%COMP%]{margin:.25rem 0 0;padding-top:.5rem;border-top:1px solid var(--color-divider);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);font-family:var(--font-heading)}.agent-config-form__integration-state[_ngcontent-%COMP%]{margin-left:1.5rem;padding:.375rem .625rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;outline:none;transition:border-color .15s ease}.agent-config-form__integration-state[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.agent-config-form__integration-restriction[_ngcontent-%COMP%]{margin:0 0 0 1.5rem;font-size:.8rem;font-style:italic;color:var(--color-text-secondary, #6e6e73);line-height:1.4}.agent-config-form__integration-builtin-desc[_ngcontent-%COMP%]{margin:0 0 0 1.5rem;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__field-hint[_ngcontent-%COMP%]{margin:.25rem 0 0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__code[_ngcontent-%COMP%]{font-family:monospace;font-size:.85em;background:var(--color-surface-muted, rgba(0, 0, 0, .06));padding:.1em .3em;border-radius:0}.agent-config-form__sub-agent-list[_ngcontent-%COMP%]{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.375rem}.agent-config-form__sub-agent-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem}.agent-config-form__sub-agent-input[_ngcontent-%COMP%]{flex:1;min-width:0}.agent-config-form__sub-agent-add[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;margin-top:.5rem}.agent-config-form__sub-agent-btn[_ngcontent-%COMP%]{flex-shrink:0;width:2rem;height:2rem;padding:0;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text-secondary);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,color .15s ease}.agent-config-form__sub-agent-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500);color:var(--color-text)}.agent-config-form__sub-agent-btn[_ngcontent-%COMP%]:disabled{opacity:.35;cursor:not-allowed}.agent-config-form__sub-agent-btn--add[_ngcontent-%COMP%]{width:2rem;height:2rem;font-size:1.25rem;font-weight:300;border-color:var(--color-accent);color:var(--color-accent)}.agent-config-form__sub-agent-btn--add[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent);color:#fff}.agent-config-form__sub-agent-btn--danger[_ngcontent-%COMP%]{border:1px solid transparent;color:var(--color-neutral-500)}.agent-config-form__sub-agent-btn--danger[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--red);color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent)}.agent-config-form__toggle-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.agent-config-form__toggle-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-accent);cursor:pointer}.agent-config-form__toggle-text[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text)}.agent-config-form__toggle-hint[_ngcontent-%COMP%]{margin:.25rem 0 0 1.5rem;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.agent-config-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}.agent-config-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.agent-config-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.agent-config-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.agent-config-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}"]})};export{ae as AgentConfigFormComponent};
@@ -1 +1 @@
1
- import {R}from'./chunk-BtEXE3Xz.js';import {c}from'./chunk-ClEmA_ih.js';import {g,ao as V$1,G,w as we,a as Gi,E as ET,W as Vy,a7 as va,X as br,c as U,h as Fw,m as ws,o as Rg,n as hl,af as Eg,M as MC,v as bg,q as oC,ac as EC,x as iC,a9 as gC,aa as wf,ab as Cf,ag as mT}from'./main-LBRSRTYI.js';import {W as Wn,S as Se}from'./chunk-BaO2vi_O.js';import'./chunk-DjMtxVWg.js';import'./chunk-BYyTBqh4.js';function V(i,e){if(i&1){let t=gC();ws(0,"agentos-scheduled-prompt-item",4),Rg("enableRequested",function(n){wf(t);let s=EC(2);return Cf(s.enablePrompt(n))})("disableRequested",function(n){wf(t);let s=EC(2);return Cf(s.disablePrompt(n))})("deleteRequested",function(n){wf(t);let s=EC(2);return Cf(s.deletePrompt(n))}),hl();}if(i&2){let t=EC().$implicit,o=EC();bg("definition",e)("namespaceId",o.namespaceId)("readOnly",o.isPlatformPrompt(t.id));}}function k(i,e){if(i&1&&oC(0,V,1,3,"agentos-scheduled-prompt-item",3),i&2){let t,o=e.$implicit,n=EC();iC((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=Gi([]);namespacePrompts=Gi([]);isLoading=Gi(true);promptItems=ET(()=>[...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(){Vy({platform:this.state.listPlatform().pipe(va(()=>br([]))),namespace:this.state.listByNamespace(this.namespaceId)}).pipe(U(this.destroyRef)).subscribe({next:({platform:e,namespace:t})=>{this.platformPrompts.set(e),this.namespacePrompts.set(t),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}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=Fw({type:i,selectors:[["agentos-scheduled-prompt-list"]],decls:4,vars:4,consts:[["scheduledPromptItemTpl",""],["title","Scheduled Prompts","emptyMessage","No scheduled prompts yet. Create one to get started.","cardMinWidth","420px",3,"createRequested","items","loading","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&&(ws(0,"ds-entity-list",1),Rg("createRequested",function(){return o.openCreateForm()}),ws(1,"ds-icon-button",2),Rg("action",function(){return o.goBack()}),hl()(),Eg(2,k,1,1,"ng-template",null,0,mT)),t&2){let n=MC(3);bg("items",o.promptItems())("loading",o.isLoading())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,R,Se],encapsulation:2})};export{M as ScheduledPromptListComponent};
1
+ import {R}from'./chunk-vse5stCO.js';import {c}from'./chunk-C9j9HPDY.js';import {g,ao as V$1,G,C as Ce,W as Wi,T as TT,$ as $y,a7 as va,I as br,b as U,j as jw,k as Cs,n as kg,m as hl,af as wg,A as AC,_ as _g,o as aC,ac as CC,u as cC,a9 as vC,aa as Cf,ab as Tf,ag as ET}from'./main-K6RKSHKK.js';import {W as Wn,S as Se}from'./chunk-D8Bz7q-C.js';import'./chunk-BEaYQhbI.js';import'./chunk-BhdMedPO.js';function V(i,e){if(i&1){let t=vC();Cs(0,"agentos-scheduled-prompt-item",4),kg("enableRequested",function(n){Cf(t);let s=CC(2);return Tf(s.enablePrompt(n))})("disableRequested",function(n){Cf(t);let s=CC(2);return Tf(s.disablePrompt(n))})("deleteRequested",function(n){Cf(t);let s=CC(2);return Tf(s.deletePrompt(n))}),hl();}if(i&2){let t=CC().$implicit,o=CC();_g("definition",e)("namespaceId",o.namespaceId)("readOnly",o.isPlatformPrompt(t.id));}}function k(i,e){if(i&1&&aC(0,V,1,3,"agentos-scheduled-prompt-item",3),i&2){let t,o=e.$implicit,n=CC();cC((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(Ce);state=g(c);namespaceId=this.route.snapshot.params.namespaceId;platformPrompts=Wi([]);namespacePrompts=Wi([]);isLoading=Wi(true);promptItems=TT(()=>[...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(){$y({platform:this.state.listPlatform().pipe(va(()=>br([]))),namespace:this.state.listByNamespace(this.namespaceId)}).pipe(U(this.destroyRef)).subscribe({next:({platform:e,namespace:t})=>{this.platformPrompts.set(e),this.namespacePrompts.set(t),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}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=jw({type:i,selectors:[["agentos-scheduled-prompt-list"]],decls:4,vars:4,consts:[["scheduledPromptItemTpl",""],["title","Scheduled Prompts","emptyMessage","No scheduled prompts yet. Create one to get started.","cardMinWidth","420px",3,"createRequested","items","loading","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&&(Cs(0,"ds-entity-list",1),kg("createRequested",function(){return o.openCreateForm()}),Cs(1,"ds-icon-button",2),kg("action",function(){return o.goBack()}),hl()(),wg(2,k,1,1,"ng-template",null,0,ET)),t&2){let n=AC(3);_g("items",o.promptItems())("loading",o.isLoading())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,R,Se],encapsulation:2})};export{M as ScheduledPromptListComponent};
@@ -0,0 +1 @@
1
+ import {I}from'./chunk-BXsNw_60.js';import {m}from'./chunk-DIhIuMRR.js';import {g,G,C as Ce,aJ as Tr,W as Wi,bS as Da,r as re,b as U,j as jw,aK as Lb,k as Cs,bf as gT,n as kg,m as hl,af as wg,A as AC,_ as _g,bg as yT,ah as dT,o as aC,ac as CC,u as cC,a9 as vC,aa as Cf,ab as Tf,ag as ET}from'./main-K6RKSHKK.js';import {W as Wn,S as Se}from'./chunk-D8Bz7q-C.js';import'./chunk-BEaYQhbI.js';import'./chunk-BhdMedPO.js';import'./chunk-Bkwb10Tz.js';var F=()=>[];function N(o,e){if(o&1){let t=vC();Cs(0,"agentos-prompt-item",4),kg("deleteRequested",function(n){Cf(t);let E=CC(2);return Tf(E.deletePrompt(n))}),hl();}o&2&&_g("prompt",e)("platformMode",true);}function V(o,e){if(o&1&&aC(0,N,1,2,"agentos-prompt-item",3),o&2){let t,r=e.$implicit,n=CC();cC((t=n.resolvePrompt(r.id))?0:-1,t);}}var q=class o{router=g(G);destroyRef=g(Ce);promptState=g(m);refresh$=new Tr(void 0);isLoading=Wi(true);prompts$=this.refresh$.pipe(Da(()=>(this.isLoading.set(true),this.promptState.listPlatform())));promptItems$=this.prompts$.pipe(re(e=>e.map(t=>({id:t.id??"",name:t.name,description:t.description}))));promptsById=new Map;constructor(){this.prompts$.pipe(U(this.destroyRef)).subscribe({next:e=>{this.promptsById=new Map(e.map(t=>[t.id??"",t])),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}goBack(){this.router.navigate(["/agentos","admin"]);}openCreateForm(){this.router.navigate(["/agentos","admin","prompts","new"]);}deletePrompt(e){this.promptState.delete(e.id??"").pipe(U(this.destroyRef)).subscribe(()=>this.refresh$.next());}resolvePrompt(e){return this.promptsById.get(e)??null}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=jw({type:o,selectors:[["agentos-platform-prompts"]],decls:5,vars:7,consts:[["promptItemTpl",""],["title","Platform Prompts","emptyMessage","No platform prompts defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"prompt","platformMode"],[3,"deleteRequested","prompt","platformMode"]],template:function(t,r){if(t&1&&(Cs(0,"ds-entity-list",1),gT(1,"async"),kg("createRequested",function(){return r.openCreateForm()}),Cs(2,"ds-icon-button",2),kg("action",function(){return r.goBack()}),hl()(),wg(3,V,1,1,"ng-template",null,0,ET)),t&2){let n=AC(4);_g("items",yT(1,4,r.promptItems$)??dT(6,F))("loading",r.isLoading())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,I,Se,Lb],styles:[".platform-prompts__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.platform-prompts__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"]})};export{q as PlatformPromptsComponent};
@@ -0,0 +1,276 @@
1
+ import {x as xe}from'./chunk-DWlwteaE.js';import {P as Pt$1,L as Lt}from'./chunk-DEAo8Gsm.js';import {v as ve,n as ne}from'./chunk-3m_nS8Y5.js';import {d}from'./chunk-RlCcRMQy.js';import {W,k as ke,s as se}from'./chunk-BWLCegs8.js';import {T as Tn,S as Sn,n as nt,a as ae,l as le,c as ce}from'./chunk-CorOD5-V.js';import {W as Wn,o as ot,i as it,I as In,D as De,B as Be,y as ya,E as En,F as Fn,g as gt$1,A as An}from'./chunk-D8Bz7q-C.js';import'./chunk-BEaYQhbI.js';import {g,bm as xm,R as Re,W as Wi,T as TT,j as jw,h as hr,i as Gn,k as Cs,n as kg,J as JC,m as hl,a3 as ZI,o as aC,af as wg,ag as ET,A as AC,t as sI,_ as _g,a6 as QI,u as cC,X as z,Y as Ue,am as Ym,Z as zt$1,a0 as jt$1,a1 as Vt,a2 as Nt$1,e as pr,ai as rm,aj as iT,q as dC,a8 as Kg,ak as nm,v as fC,a5 as Dl,ac as CC,a9 as vC,aa as Cf,ab as Tf,bp as yl,bq as vl,ah as dT,b4 as fT,aL as wo,aM as Zn$1,br as sn,aO as wt$1,bs as bl,bt as Qn,aT as Ut$1,al as vt$1,aW as C,bu as Ve,aZ as Bs,a_ as rb,b5 as lT,S as Sg,w as zg,bv as Lg,y as MC,N as NC,az as Xt$1,bw as St,aS as K$1,aX as D$1,bx as on,by as dm,bz as Oi,bA as bC,bB as SC,M as Mg,x as jg,bC as _i,bo as uC}from'./main-K6RKSHKK.js';import {y as yt$1,w as wt,t as ti,Z as Zn,c as cn,Y as Ye,f as fn,g as gt,$ as $t$1,D}from'./chunk-BhdMedPO.js';var Pt=["button"],Ot=["*"];function Ft(l,a){if(l&1&&(Cs(0,"div",2),Mg(1,"mat-pseudo-checkbox",6),hl()),l&2){let e=CC();sI(),_g("disabled",e.disabled);}}var yt=new C("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:()=>({hideSingleSelectionIndicator:false,hideMultipleSelectionIndicator:false,disabledInteractive:false})}),vt=new C("MatButtonToggleGroup"),Dt={provide:D,useExisting:_i(()=>ie),multi:true},K=class{source;value;constructor(a,e){this.source=a,this.value=e;}},ie=(()=>{class l{_changeDetector=g(bl);_dir=g(Qn,{optional:true});_multiple=false;_disabled=false;_disabledInteractive=false;_selectionModel;_rawValue;_controlValueAccessorChangeFn=()=>{};_onTouched=()=>{};_buttonToggles;appearance;get name(){return this._name}set name(e){this._name=e,this._markButtonsForCheck();}_name=g(Ut$1).getId("mat-button-toggle-group-");vertical=false;get value(){let e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e.map(t=>t.value):e[0]?e[0].value:void 0}set value(e){this._setSelectionByValue(e),this.valueChange.emit(this.value);}valueChange=new vt$1;get selected(){let e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e:e[0]||null}get multiple(){return this._multiple}set multiple(e){this._multiple=e,this._markButtonsForCheck();}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._markButtonsForCheck();}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e,this._markButtonsForCheck();}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}change=new vt$1;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._markButtonsForCheck();}_hideSingleSelectionIndicator;get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(e){this._hideMultipleSelectionIndicator=e,this._markButtonsForCheck();}_hideMultipleSelectionIndicator;constructor(){let e=g(yt,{optional:true});this.appearance=e&&e.appearance?e.appearance:"standard",this._hideSingleSelectionIndicator=e?.hideSingleSelectionIndicator??false,this._hideMultipleSelectionIndicator=e?.hideMultipleSelectionIndicator??false;}ngOnInit(){this._selectionModel=new gt$1(this.multiple,void 0,false);}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(e=>e.checked)),this.multiple||this._initializeTabIndex();}writeValue(e){this.value=e,this._changeDetector.markForCheck();}registerOnChange(e){this._controlValueAccessorChangeFn=e;}registerOnTouched(e){this._onTouched=e;}setDisabledState(e){this.disabled=e;}_keydown(e){if(this.multiple||this.disabled||Ve(e))return;let n=e.target.id,o=this._buttonToggles.toArray().findIndex(I=>I.buttonId===n),u=null;switch(e.keyCode){case 32:case 13:u=this._buttonToggles.get(o)||null;break;case 38:u=this._getNextButton(o,-1);break;case 37:u=this._getNextButton(o,this.dir==="ltr"?-1:1);break;case 40:u=this._getNextButton(o,1);break;case 39:u=this._getNextButton(o,this.dir==="ltr"?1:-1);break;default:return}u&&(e.preventDefault(),u._onButtonClick(),u.focus());}_emitChangeEvent(e){let t=new K(e,this.value);this._rawValue=t.value,this._controlValueAccessorChangeFn(t.value),this.change.emit(t);}_syncButtonToggle(e,t,n=false,o=false){!this.multiple&&this.selected&&!e.checked&&(this.selected.checked=false),this._selectionModel?t?this._selectionModel.select(e):this._selectionModel.deselect(e):o=true,o?Promise.resolve().then(()=>this._updateModelValue(e,n)):this._updateModelValue(e,n);}_isSelected(e){return this._selectionModel&&this._selectionModel.isSelected(e)}_isPrechecked(e){return typeof this._rawValue>"u"?false:this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(t=>e.value!=null&&t===e.value):e.value===this._rawValue}_initializeTabIndex(){if(this._buttonToggles.forEach(e=>{e.tabIndex=-1;}),this.selected)this.selected.tabIndex=0;else for(let e=0;e<this._buttonToggles.length;e++){let t=this._buttonToggles.get(e);if(!t.disabled){t.tabIndex=0;break}}}_getNextButton(e,t){let n=this._buttonToggles;for(let o=1;o<=n.length;o++){let u=(e+t*o+n.length)%n.length,I=n.get(u);if(I&&!I.disabled)return I}return null}_setSelectionByValue(e){if(this._rawValue=e,!this._buttonToggles)return;let t=this._buttonToggles.toArray();if(this.multiple&&e?(this._clearSelection(),e.forEach(n=>this._selectValue(n,t))):(this._clearSelection(),this._selectValue(e,t)),!this.multiple&&t.every(n=>n.tabIndex===-1)){for(let n of t)if(!n.disabled){n.tabIndex=0;break}}}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(e=>{e.checked=false,this.multiple||(e.tabIndex=-1);});}_selectValue(e,t){for(let n of t)if(n.value===e){n.checked=true,this._selectionModel.select(n),this.multiple||(n.tabIndex=0);break}}_updateModelValue(e,t){t&&this._emitChangeEvent(e),this.valueChange.emit(this.value);}_markButtonsForCheck(){this._buttonToggles?.forEach(e=>e._markForCheck());}static \u0275fac=function(t){return new(t||l)};static \u0275dir=Bs({type:l,selectors:[["mat-button-toggle-group"]],contentQueries:function(t,n,o){if(t&1&&Lg(o,X,5),t&2){let u;MC(u=NC())&&(n._buttonToggles=u);}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(t,n){t&1&&kg("keydown",function(u){return n._keydown(u)}),t&2&&(Sg("role",n.multiple?"group":"radiogroup")("aria-disabled",n.disabled),zg("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard",n.appearance==="standard"));},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",rb],value:"value",multiple:[2,"multiple","multiple",rb],disabled:[2,"disabled","disabled",rb],disabledInteractive:[2,"disabledInteractive","disabledInteractive",rb],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",rb],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",rb]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[lT([Dt,{provide:vt,useExisting:l}])]})}return l})(),X=(()=>{class l{_changeDetectorRef=g(bl);_elementRef=g(Xt$1);_focusMonitor=g(St);_idGenerator=g(Ut$1);_animationDisabled=K$1();_checked=false;ariaLabel;ariaLabelledby=null;_buttonElement;buttonToggleGroup;get buttonId(){return `${this.id}-button`}id;name;value;get tabIndex(){return this._tabIndex()}set tabIndex(e){this._tabIndex.set(e);}_tabIndex;disableRipple=false;get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(e){this._appearance=e;}_appearance;get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(e){e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck());}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(e){this._disabled=e;}_disabled=false;get disabledInteractive(){return this._disabledInteractive||this.buttonToggleGroup!==null&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e;}_disabledInteractive;change=new vt$1;constructor(){g(D$1).load(on);let e=g(vt,{optional:true}),t=g(new dm("tabindex"),{optional:true})||"",n=g(yt,{optional:true});this._tabIndex=Wi(parseInt(t)||0),this.buttonToggleGroup=e,this._appearance=n&&n.appearance?n.appearance:"standard",this._disabledInteractive=n?.disabledInteractive??false;}ngOnInit(){let e=this.buttonToggleGroup;this.id=this.id||this._idGenerator.getId("mat-button-toggle-"),e&&(e._isPrechecked(this)?this.checked=true:e._isSelected(this)!==this._checked&&e._syncButtonToggle(this,this._checked));}ngAfterViewInit(){this._animationDisabled||this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"),this._focusMonitor.monitor(this._elementRef,true);}ngOnDestroy(){let e=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),e&&e._isSelected(this)&&e._syncButtonToggle(this,false,false,true);}focus(e){this._buttonElement.nativeElement.focus(e);}_onButtonClick(){if(this.disabled)return;let e=this.isSingleSelector()?true:!this._checked;if(e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,true),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){let t=this.buttonToggleGroup._buttonToggles.find(n=>n.tabIndex===0);t&&(t.tabIndex=-1),this.tabIndex=0;}this.change.emit(new K(this,this.value));}_markForCheck(){this._changeDetectorRef.markForCheck();}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static \u0275fac=function(t){return new(t||l)};static \u0275cmp=jw({type:l,selectors:[["mat-button-toggle"]],viewQuery:function(t,n){if(t&1&&jg(Pt,5),t&2){let o;MC(o=NC())&&(n._buttonElement=o.first);}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(t,n){t&1&&kg("focus",function(){return n.focus()}),t&2&&(Sg("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),zg("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-disabled-interactive",n.disabledInteractive)("mat-button-toggle-appearance-standard",n.appearance==="standard"));},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",rb],appearance:"appearance",checked:[2,"checked","checked",rb],disabled:[2,"disabled","disabled",rb],disabledInteractive:[2,"disabledInteractive","disabledInteractive",rb]},outputs:{change:"change"},exportAs:["matButtonToggle"],ngContentSelectors:Ot,decls:7,vars:13,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-checkbox-wrapper"],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"],["state","checked","aria-hidden","true","appearance","minimal",3,"disabled"]],template:function(t,n){if(t&1&&(bC(),Cs(0,"button",1,0),kg("click",function(){return n._onButtonClick()}),aC(2,Ft,2,1,"div",2),Cs(3,"span",3),SC(4),hl()(),Mg(5,"span",4)(6,"span",5)),t&2){let o=AC(1);_g("id",n.buttonId)("disabled",n.disabled&&!n.disabledInteractive||null),Sg("role",n.isSingleSelector()?"radio":"button")("tabindex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("aria-pressed",n.isSingleSelector()?null:n.checked)("aria-checked",n.isSingleSelector()?n.checked:null)("name",n._getButtonName())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),sI(2),cC(n.buttonToggleGroup&&(!n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideSingleSelectionIndicator||n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideMultipleSelectionIndicator)?2:-1),sI(4),_g("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled);}},dependencies:[Oi,An],styles:[`.mat-button-toggle-standalone,
2
+ .mat-button-toggle-group {
3
+ position: relative;
4
+ display: inline-flex;
5
+ flex-direction: row;
6
+ white-space: nowrap;
7
+ overflow: hidden;
8
+ -webkit-tap-highlight-color: transparent;
9
+ border-radius: var(--mat-button-toggle-legacy-shape);
10
+ transform: translateZ(0);
11
+ }
12
+ .mat-button-toggle-standalone:not([class*=mat-elevation-z]),
13
+ .mat-button-toggle-group:not([class*=mat-elevation-z]) {
14
+ box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
15
+ }
16
+ @media (forced-colors: active) {
17
+ .mat-button-toggle-standalone,
18
+ .mat-button-toggle-group {
19
+ outline: solid 1px;
20
+ }
21
+ }
22
+
23
+ .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
24
+ .mat-button-toggle-group-appearance-standard {
25
+ border-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
26
+ border: solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline));
27
+ }
28
+ .mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,
29
+ .mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox {
30
+ --mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));
31
+ }
32
+ .mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),
33
+ .mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]) {
34
+ box-shadow: none;
35
+ }
36
+ @media (forced-colors: active) {
37
+ .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
38
+ .mat-button-toggle-group-appearance-standard {
39
+ outline: 0;
40
+ }
41
+ }
42
+
43
+ .mat-button-toggle-vertical {
44
+ flex-direction: column;
45
+ }
46
+ .mat-button-toggle-vertical .mat-button-toggle-label-content {
47
+ display: block;
48
+ }
49
+
50
+ .mat-button-toggle {
51
+ white-space: nowrap;
52
+ position: relative;
53
+ color: var(--mat-button-toggle-legacy-text-color);
54
+ font-family: var(--mat-button-toggle-legacy-label-text-font);
55
+ font-size: var(--mat-button-toggle-legacy-label-text-size);
56
+ line-height: var(--mat-button-toggle-legacy-label-text-line-height);
57
+ font-weight: var(--mat-button-toggle-legacy-label-text-weight);
58
+ letter-spacing: var(--mat-button-toggle-legacy-label-text-tracking);
59
+ --mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-button-toggle-legacy-selected-state-text-color);
60
+ }
61
+ .mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay {
62
+ opacity: var(--mat-button-toggle-legacy-focus-state-layer-opacity);
63
+ }
64
+ .mat-button-toggle .mat-icon svg {
65
+ vertical-align: top;
66
+ }
67
+
68
+ .mat-button-toggle-checkbox-wrapper {
69
+ display: inline-block;
70
+ justify-content: flex-start;
71
+ align-items: center;
72
+ width: 0;
73
+ height: 18px;
74
+ line-height: 18px;
75
+ overflow: hidden;
76
+ box-sizing: border-box;
77
+ position: absolute;
78
+ top: 50%;
79
+ left: 16px;
80
+ transform: translate3d(0, -50%, 0);
81
+ }
82
+ [dir=rtl] .mat-button-toggle-checkbox-wrapper {
83
+ left: auto;
84
+ right: 16px;
85
+ }
86
+ .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper {
87
+ left: 12px;
88
+ }
89
+ [dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper {
90
+ left: auto;
91
+ right: 12px;
92
+ }
93
+ .mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper {
94
+ width: 18px;
95
+ }
96
+ .mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper {
97
+ transition: width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1);
98
+ }
99
+ .mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper {
100
+ transition: none;
101
+ }
102
+
103
+ .mat-button-toggle-checked {
104
+ color: var(--mat-button-toggle-legacy-selected-state-text-color);
105
+ background-color: var(--mat-button-toggle-legacy-selected-state-background-color);
106
+ }
107
+
108
+ .mat-button-toggle-disabled {
109
+ pointer-events: none;
110
+ color: var(--mat-button-toggle-legacy-disabled-state-text-color);
111
+ background-color: var(--mat-button-toggle-legacy-disabled-state-background-color);
112
+ --mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: var(--mat-button-toggle-legacy-disabled-state-text-color);
113
+ }
114
+ .mat-button-toggle-disabled.mat-button-toggle-checked {
115
+ background-color: var(--mat-button-toggle-legacy-disabled-selected-state-background-color);
116
+ }
117
+
118
+ .mat-button-toggle-disabled-interactive {
119
+ pointer-events: auto;
120
+ }
121
+
122
+ .mat-button-toggle-appearance-standard {
123
+ color: var(--mat-button-toggle-text-color, var(--mat-sys-on-surface));
124
+ background-color: var(--mat-button-toggle-background-color, transparent);
125
+ font-family: var(--mat-button-toggle-label-text-font, var(--mat-sys-label-large-font));
126
+ font-size: var(--mat-button-toggle-label-text-size, var(--mat-sys-label-large-size));
127
+ line-height: var(--mat-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));
128
+ font-weight: var(--mat-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));
129
+ letter-spacing: var(--mat-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking));
130
+ }
131
+ .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard + .mat-button-toggle-appearance-standard {
132
+ border-left: solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline));
133
+ }
134
+ [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard + .mat-button-toggle-appearance-standard {
135
+ border-left: none;
136
+ border-right: solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline));
137
+ }
138
+ .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard + .mat-button-toggle-appearance-standard {
139
+ border-left: none;
140
+ border-right: none;
141
+ border-top: solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline));
142
+ }
143
+ .mat-button-toggle-appearance-standard.mat-button-toggle-checked {
144
+ color: var(--mat-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));
145
+ background-color: var(--mat-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container));
146
+ }
147
+ .mat-button-toggle-appearance-standard.mat-button-toggle-disabled {
148
+ color: var(--mat-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));
149
+ background-color: var(--mat-button-toggle-disabled-state-background-color, transparent);
150
+ }
151
+ .mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox {
152
+ --mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: var(--mat-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));
153
+ }
154
+ .mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked {
155
+ color: var(--mat-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));
156
+ background-color: var(--mat-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent));
157
+ }
158
+ .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {
159
+ background-color: var(--mat-button-toggle-state-layer-color, var(--mat-sys-on-surface));
160
+ }
161
+ .mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay {
162
+ opacity: var(--mat-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));
163
+ }
164
+ .mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay {
165
+ opacity: var(--mat-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));
166
+ }
167
+ @media (hover: none) {
168
+ .mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay {
169
+ display: none;
170
+ }
171
+ }
172
+
173
+ .mat-button-toggle-label-content {
174
+ -webkit-user-select: none;
175
+ user-select: none;
176
+ display: inline-block;
177
+ padding: 0 16px;
178
+ line-height: var(--mat-button-toggle-legacy-height);
179
+ position: relative;
180
+ }
181
+ .mat-button-toggle-appearance-standard .mat-button-toggle-label-content {
182
+ padding: 0 12px;
183
+ line-height: var(--mat-button-toggle-height, 40px);
184
+ }
185
+
186
+ .mat-button-toggle-label-content > * {
187
+ vertical-align: middle;
188
+ }
189
+
190
+ .mat-button-toggle-focus-overlay {
191
+ top: 0;
192
+ left: 0;
193
+ right: 0;
194
+ bottom: 0;
195
+ position: absolute;
196
+ border-radius: inherit;
197
+ pointer-events: none;
198
+ opacity: 0;
199
+ background-color: var(--mat-button-toggle-legacy-state-layer-color);
200
+ }
201
+
202
+ @media (forced-colors: active) {
203
+ .mat-button-toggle-checked .mat-button-toggle-focus-overlay {
204
+ border-bottom: solid 500px;
205
+ opacity: 0.5;
206
+ height: 0;
207
+ }
208
+ .mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay {
209
+ opacity: 0.6;
210
+ }
211
+ .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {
212
+ border-bottom: solid 500px;
213
+ }
214
+ }
215
+ .mat-button-toggle .mat-button-toggle-ripple {
216
+ top: 0;
217
+ left: 0;
218
+ right: 0;
219
+ bottom: 0;
220
+ position: absolute;
221
+ pointer-events: none;
222
+ }
223
+
224
+ .mat-button-toggle-button {
225
+ border: 0;
226
+ background: none;
227
+ color: inherit;
228
+ padding: 0;
229
+ margin: 0;
230
+ font: inherit;
231
+ outline: none;
232
+ width: 100%;
233
+ cursor: pointer;
234
+ }
235
+ .mat-button-toggle-animations-enabled .mat-button-toggle-button {
236
+ transition: padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1);
237
+ }
238
+ .mat-button-toggle-vertical .mat-button-toggle-button {
239
+ transition: none;
240
+ }
241
+ .mat-button-toggle-disabled .mat-button-toggle-button {
242
+ cursor: default;
243
+ }
244
+ .mat-button-toggle-button::-moz-focus-inner {
245
+ border: 0;
246
+ }
247
+ .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper) {
248
+ padding-left: 30px;
249
+ }
250
+ [dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper) {
251
+ padding-left: 0;
252
+ padding-right: 30px;
253
+ }
254
+
255
+ .mat-button-toggle-standalone.mat-button-toggle-appearance-standard {
256
+ --mat-focus-indicator-border-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
257
+ }
258
+
259
+ .mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before {
260
+ border-top-right-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
261
+ border-bottom-right-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
262
+ }
263
+ .mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before {
264
+ border-top-left-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
265
+ border-bottom-left-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
266
+ }
267
+
268
+ .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before {
269
+ border-bottom-right-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
270
+ border-bottom-left-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
271
+ }
272
+ .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before {
273
+ border-top-right-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
274
+ border-top-left-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
275
+ }
276
+ `],encapsulation:2})}return l})(),Mt=(()=>{class l{static \u0275fac=function(t){return new(t||l)};static \u0275mod=wo({type:l});static \u0275inj=Zn$1({imports:[sn,X,wt$1]})}return l})();var Wt=(l,a)=>a.id,Nt=(l,a)=>a.value;function Gt(l,a){l&1&&(Cs(0,"mat-option",5),JC(1,"Loading prompts..."),hl());}function zt(l,a){if(l&1&&(Cs(0,"mat-option",6),JC(1),hl()),l&2){let e=a.$implicit;_g("value",e.id),sI(),Dl(" ",e.name," ");}}function Ut(l,a){if(l&1){let e=vC();Cs(0,"mat-checkbox",37),kg("change",function(){let n=Cf(e).$implicit,o=CC();return Tf(o.toggleDayOfWeek(n.value))}),JC(1),hl();}if(l&2){let e=a.$implicit,t=CC();_g("checked",t.isDaySelected(e.value)),sI(),Dl(" ",e.label," ");}}function qt(l,a){if(l&1){let e=vC();Cs(0,"mat-form-field",2)(1,"mat-label"),JC(2,"Number of Occurrences"),hl(),Cs(3,"input",11),rm("ngModelChange",function(n){Cf(e);let o=CC();return iT(o.endOccurrences,n)||(o.endOccurrences=n),Tf(n)}),hl(),ZI(),hl();}if(l&2){let e=CC();sI(3),nm("ngModel",e.endOccurrences),QI();}}function Ht(l,a){if(l&1){let e=vC();Cs(0,"mat-form-field",2)(1,"mat-label"),JC(2,"End Date"),hl(),Cs(3,"input",38),rm("ngModelChange",function(n){Cf(e);let o=CC();return iT(o.endTimestamp,n)||(o.endTimestamp=n),Tf(n)}),hl(),ZI(),hl();}if(l&2){let e=CC();sI(3),nm("ngModel",e.endTimestamp),QI();}}function jt(l,a){if(l&1){let e=vC();Cs(0,"div")(1,"mat-form-field",2)(2,"mat-label"),JC(3,"Parameter Value"),hl(),Cs(4,"input",39),rm("ngModelChange",function(n){Cf(e);let o=CC();return iT(o.simpleParameter,n)||(o.simpleParameter=n),Tf(n)}),hl(),ZI(),Cs(5,"mat-hint"),JC(6),hl()()();}if(l&2){let e=CC();sI(4),nm("ngModel",e.simpleParameter),QI(),sI(2),Dl("Simple value for ","{{PARAMETERS}}"," placeholder or appended to first command");}}function Qt(l,a){if(l&1){let e=vC();Cs(0,"div",42)(1,"mat-form-field",43)(2,"mat-label"),JC(3,"Key"),hl(),Cs(4,"input",44),rm("ngModelChange",function(n){let o=Cf(e).$implicit;return iT(o.key,n)||(o.key=n),Tf(n)}),hl(),ZI(),hl(),Cs(5,"mat-form-field",45)(6,"mat-label"),JC(7,"Value"),hl(),Cs(8,"input",46),rm("ngModelChange",function(n){let o=Cf(e).$implicit;return iT(o.value,n)||(o.value=n),Tf(n)}),hl(),ZI(),hl(),Cs(9,"button",47),kg("click",function(){let n=Cf(e).$index,o=CC(3);return Tf(o.removeParameter(n))}),Cs(10,"mat-icon"),JC(11,"delete"),hl()()();}if(l&2){let e=a.$implicit;sI(4),nm("ngModel",e.key),QI(),sI(4),nm("ngModel",e.value),QI();}}function $t(l,a){if(l&1&&(Cs(0,"div",41),dC(1,Qt,12,2,"div",42,uC),hl()),l&2){let e=CC(2);sI(),fC(e.parameters);}}function Kt(l,a){if(l&1){let e=vC();Cs(0,"div")(1,"div",28)(2,"button",40),kg("click",function(){Cf(e);let n=CC();return Tf(n.addParameter())}),Cs(3,"mat-icon"),JC(4,"add"),hl()()(),aC(5,$t,3,0,"div",41),Cs(6,"p",21),JC(7),hl()();}if(l&2){let e=CC();sI(5),cC(e.parameters.length>0?5:-1),sI(2),Dl("Key-value pairs for ","{{key}}"," placeholders in prompt commands");}}function Xt(l,a){if(l&1&&(Cs(0,"div",33)(1,"mat-icon"),JC(2,"error"),hl(),Cs(3,"span"),JC(4),hl()()),l&2){let e=CC();sI(4),Kg(e.errorMessage);}}var B=class l{schedulerApi=g(xe);promptApi=g(d);dialogRef=g(z);availablePrompts=[];isLoadingPrompts=false;name="";promptId="";enabled=true;startTimestamp="";intervalValue=1;intervalUnit="h";daysOfWeek=[];endConditionType="none";endOccurrences=10;endTimestamp="";parameterMode="simple";simpleParameter="";parameters=[];isSaving=false;errorMessage="";isEditMode=false;schedulerId="";data=g(Ue);daysOfWeekOptions=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:2,label:"Tuesday"},{value:3,label:"Wednesday"},{value:4,label:"Thursday"},{value:5,label:"Friday"},{value:6,label:"Saturday"}];constructor(){this.isEditMode=this.data.mode==="edit";}ngOnInit(){if(this.loadPrompts(),this.isEditMode||(this.startTimestamp=this.formatDateForInput(new Date)),this.isEditMode&&this.data.scheduler){if(this.schedulerId=this.data.scheduler.id,this.name=this.data.scheduler.name,this.promptId=this.data.scheduler.promptId??"",this.enabled=this.data.scheduler.enabled,this.data.scheduler.schedule.startTimestamp){let e=new Date(this.data.scheduler.schedule.startTimestamp);this.startTimestamp=this.formatDateForInput(e);}let a=this.data.scheduler.schedule.interval.match(/^(\d+)(min|h|d|M)$/);a&&a[1]&&a[2]&&(this.intervalValue=parseInt(a[1],10),this.intervalUnit=a[2]),this.daysOfWeek=this.data.scheduler.schedule.daysOfWeek||[],this.data.scheduler.schedule.endCondition&&(this.endConditionType=this.data.scheduler.schedule.endCondition.type,this.endConditionType==="occurrences"?this.endOccurrences=this.data.scheduler.schedule.endCondition.value:this.endConditionType==="endTimestamp"&&(this.endTimestamp=this.data.scheduler.schedule.endCondition.value)),this.data.scheduler.parameters&&(typeof this.data.scheduler.parameters=="object"&&Object.keys(this.data.scheduler.parameters).length===1&&"PARAMETERS"in this.data.scheduler.parameters?(this.parameterMode="simple",this.simpleParameter=String(this.data.scheduler.parameters.PARAMETERS)):(this.parameterMode="structured",this.parameters=Object.entries(this.data.scheduler.parameters).map(([e,t])=>({key:e,value:String(t)}))));}}loadPrompts(){this.isLoadingPrompts=true,this.promptApi.listPrompts().subscribe({next:a=>{this.availablePrompts=a,this.isLoadingPrompts=false;},error:a=>{console.error("Error loading prompts:",a),this.errorMessage="Failed to load prompts",this.isLoadingPrompts=false;}});}toggleDayOfWeek(a){let e=this.daysOfWeek.indexOf(a);e>-1?this.daysOfWeek.splice(e,1):this.daysOfWeek.push(a),this.daysOfWeek.sort();}isDaySelected(a){return this.daysOfWeek.includes(a)}addParameter(){this.parameters.push({key:"",value:""});}removeParameter(a){this.parameters.splice(a,1);}trackByIndex(a){return a}formatDateForInput(a){let e=a.getFullYear(),t=String(a.getMonth()+1).padStart(2,"0"),n=String(a.getDate()).padStart(2,"0"),o=String(a.getHours()).padStart(2,"0"),u=String(a.getMinutes()).padStart(2,"0");return `${e}-${t}-${n}T${o}:${u}`}validateForm(){if(!this.name.trim())return this.errorMessage="Name is required",false;if(!this.promptId)return this.errorMessage="Prompt is required",false;if(this.intervalValue<1)return this.errorMessage="Interval must be at least 1",false;switch(this.intervalUnit){case "min":if(this.intervalValue>59)return this.errorMessage="Minutes interval must be between 1 and 59 (use hours for longer)",false;break;case "h":if(this.intervalValue>24)return this.errorMessage="Hours interval must be between 1 and 24 (use days for longer)",false;break;case "d":if(this.intervalValue>31)return this.errorMessage="Days interval must be between 1 and 31 (use months for longer)",false;break;case "M":if(this.intervalValue>12)return this.errorMessage="Months interval must be between 1 and 12",false;break}return this.endConditionType==="occurrences"&&this.endOccurrences<1?(this.errorMessage="Occurrences must be at least 1",false):this.endConditionType==="endTimestamp"&&!this.endTimestamp?(this.errorMessage="End date is required",false):true}buildSchedule(){let e={startTimestamp:(this.startTimestamp?new Date(this.startTimestamp):new Date).toISOString(),interval:`${this.intervalValue}${this.intervalUnit}`};return this.daysOfWeek.length>0&&(e.daysOfWeek=[...this.daysOfWeek]),this.endConditionType==="occurrences"?e.endCondition={type:"occurrences",value:this.endOccurrences}:this.endConditionType==="endTimestamp"&&(e.endCondition={type:"endTimestamp",value:this.endTimestamp}),e}buildParameters(){if(this.parameterMode==="simple")return this.simpleParameter.trim()?{PARAMETERS:this.simpleParameter.trim()}:void 0;let a=this.parameters.filter(t=>t.key.trim());if(a.length===0)return;let e={};return a.forEach(t=>{e[t.key]=t.value;}),e}save(){if(this.errorMessage="",!this.validateForm())return;let a=this.buildSchedule(),e=this.buildParameters();this.isSaving=true,this.isEditMode&&this.schedulerId?this.schedulerApi.updateScheduler(this.schedulerId,{name:this.name.trim(),enabled:this.enabled,promptId:this.promptId,schedule:a,parameters:e}).subscribe({next:()=>{this.isSaving=false,this.dialogRef.close(true);},error:t=>{console.error("Error updating scheduler:",t),this.errorMessage=t?.error?.error||t?.message||"Failed to update scheduler",this.isSaving=false;}}):this.schedulerApi.createScheduler({name:this.name.trim(),promptId:this.promptId,schedule:a,parameters:e,enabled:this.enabled}).subscribe({next:()=>{this.isSaving=false,this.dialogRef.close(true);},error:t=>{console.error("Error creating scheduler:",t),this.errorMessage=t?.error?.error||t?.message||"Failed to create scheduler",this.isSaving=false;}});}cancel(){this.dialogRef.close(false);}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=jw({type:l,selectors:[["app-scheduler-form"]],decls:90,vars:20,consts:[["mat-dialog-title",""],[1,"form-container"],["appearance","outline",1,"full-width"],["matInput","","placeholder","My Scheduler","required","",3,"ngModelChange","ngModel"],["required","",3,"ngModelChange","ngModel","disabled"],["disabled",""],[3,"value"],["matInput","","type","datetime-local",3,"ngModelChange","ngModel"],[1,"interval-section"],[1,"interval-fields"],["appearance","outline",1,"interval-value"],["matInput","","type","number","min","1","required","",3,"ngModelChange","ngModel"],["appearance","outline",1,"interval-unit"],["required","",3,"ngModelChange","ngModel"],["value","min"],["value","h"],["value","d"],["value","M"],[1,"days-section"],[1,"days-checkboxes"],[3,"checked"],[1,"hint"],[1,"end-condition-section"],[3,"ngModelChange","ngModel"],["value","none"],["value","occurrences"],["value","endTimestamp"],[1,"parameters-section"],[1,"section-header"],[1,"mode-toggle",3,"ngModelChange","ngModel"],["value","simple"],["value","structured"],[1,"enabled-section"],[1,"error-message"],["align","end"],["mat-button","",3,"click","disabled"],["mat-raised-button","","color","primary",3,"click","disabled"],[3,"change","checked"],["matInput","","type","datetime-local","required","",3,"ngModelChange","ngModel"],["matInput","","placeholder","e.g., 1234 or staging",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Add parameter",3,"click"],[1,"parameters-list"],[1,"parameter-item"],["appearance","outline",1,"param-key"],["matInput","","placeholder","parameterName",3,"ngModelChange","ngModel"],["appearance","outline",1,"param-value"],["matInput","","placeholder","value",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Remove parameter",1,"remove-btn",3,"click"]],template:function(e,t){e&1&&(Cs(0,"h2",0),JC(1),hl(),Cs(2,"mat-dialog-content")(3,"div",1)(4,"mat-form-field",2)(5,"mat-label"),JC(6,"Name"),hl(),Cs(7,"input",3),rm("ngModelChange",function(o){return iT(t.name,o)||(t.name=o),o}),hl(),ZI(),Cs(8,"mat-hint"),JC(9,"A descriptive name for this scheduler"),hl()(),Cs(10,"mat-form-field",2)(11,"mat-label"),JC(12,"Prompt"),hl(),Cs(13,"mat-select",4),rm("ngModelChange",function(o){return iT(t.promptId,o)||(t.promptId=o),o}),aC(14,Gt,2,0,"mat-option",5),dC(15,zt,2,2,"mat-option",6,Wt),hl(),ZI(),Cs(17,"mat-hint"),JC(18),hl()(),Cs(19,"mat-form-field",2)(20,"mat-label"),JC(21,"Start Date & Time"),hl(),Cs(22,"input",7),rm("ngModelChange",function(o){return iT(t.startTimestamp,o)||(t.startTimestamp=o),o}),hl(),ZI(),Cs(23,"mat-hint"),JC(24,"When to start the scheduler (leave empty for now)"),hl()(),Cs(25,"div",8)(26,"h3"),JC(27,"Schedule Interval"),hl(),Cs(28,"div",9)(29,"mat-form-field",10)(30,"mat-label"),JC(31,"Every"),hl(),Cs(32,"input",11),rm("ngModelChange",function(o){return iT(t.intervalValue,o)||(t.intervalValue=o),o}),hl(),ZI(),hl(),Cs(33,"mat-form-field",12)(34,"mat-label"),JC(35,"Unit"),hl(),Cs(36,"mat-select",13),rm("ngModelChange",function(o){return iT(t.intervalUnit,o)||(t.intervalUnit=o),o}),Cs(37,"mat-option",14),JC(38,"Minutes (1-59)"),hl(),Cs(39,"mat-option",15),JC(40,"Hours (1-24)"),hl(),Cs(41,"mat-option",16),JC(42,"Days (1-31)"),hl(),Cs(43,"mat-option",17),JC(44,"Months (1-12)"),hl()(),ZI(),hl()()(),Cs(45,"div",18)(46,"h3"),JC(47,"Days of Week (Optional)"),hl(),Cs(48,"div",19),dC(49,Ut,2,2,"mat-checkbox",20,Nt),hl(),Cs(51,"p",21),JC(52,"Leave empty to run every day"),hl()(),Cs(53,"div",22)(54,"h3"),JC(55,"End Condition (Optional)"),hl(),Cs(56,"mat-form-field",2)(57,"mat-label"),JC(58,"End Type"),hl(),Cs(59,"mat-select",23),rm("ngModelChange",function(o){return iT(t.endConditionType,o)||(t.endConditionType=o),o}),Cs(60,"mat-option",24),JC(61,"Never (run indefinitely)"),hl(),Cs(62,"mat-option",25),JC(63,"After X occurrences"),hl(),Cs(64,"mat-option",26),JC(65,"Until specific date"),hl()(),ZI(),hl(),aC(66,qt,4,1,"mat-form-field",2),aC(67,Ht,4,1,"mat-form-field",2),hl(),Cs(68,"div",27)(69,"div",28)(70,"h3"),JC(71,"Parameters (Optional)"),hl(),Cs(72,"mat-button-toggle-group",29),rm("ngModelChange",function(o){return iT(t.parameterMode,o)||(t.parameterMode=o),o}),Cs(73,"mat-button-toggle",30),JC(74,"Simple"),hl(),Cs(75,"mat-button-toggle",31),JC(76,"Structured"),hl()(),ZI(),hl(),aC(77,jt,7,2,"div"),aC(78,Kt,8,2,"div"),hl(),Cs(79,"div",32)(80,"mat-checkbox",23),rm("ngModelChange",function(o){return iT(t.enabled,o)||(t.enabled=o),o}),JC(81,"Enabled"),hl(),ZI(),Cs(82,"p",21),JC(83,"Scheduler will only run if enabled"),hl()(),aC(84,Xt,5,1,"div",33),hl()(),Cs(85,"mat-dialog-actions",34)(86,"button",35),kg("click",function(){return t.cancel()}),JC(87,"Cancel"),hl(),Cs(88,"button",36),kg("click",function(){return t.save()}),JC(89),hl()()),e&2&&(sI(),Kg(t.isEditMode?"Edit Scheduler":"Create Scheduler"),sI(6),nm("ngModel",t.name),QI(),sI(6),nm("ngModel",t.promptId),_g("disabled",t.isLoadingPrompts),QI(),sI(),cC(t.isLoadingPrompts?14:-1),sI(),fC(t.availablePrompts),sI(3),Kg(t.isLoadingPrompts?"Loading available prompts...":"Select the prompt to execute"),sI(4),nm("ngModel",t.startTimestamp),QI(),sI(10),nm("ngModel",t.intervalValue),QI(),sI(4),nm("ngModel",t.intervalUnit),QI(),sI(13),fC(t.daysOfWeekOptions),sI(10),nm("ngModel",t.endConditionType),QI(),sI(7),cC(t.endConditionType==="occurrences"?66:-1),sI(),cC(t.endConditionType==="endTimestamp"?67:-1),sI(5),nm("ngModel",t.parameterMode),QI(),sI(5),cC(t.parameterMode==="simple"?77:-1),sI(),cC(t.parameterMode==="structured"?78:-1),sI(2),nm("ngModel",t.enabled),QI(),sI(4),cC(t.errorMessage?84:-1),sI(2),_g("disabled",t.isSaving),sI(2),_g("disabled",t.isSaving),sI(),Dl(" ",t.isSaving?"Saving...":"Save"," "));},dependencies:[Ym,ti,Ye,fn,Zn,gt,$t$1,cn,zt$1,jt$1,Vt,Nt$1,hr,pr,Gn,Tn,Sn,nt,ae,le,ce,yt$1,wt,Pt$1,Lt,Fn,ve,ne,Mt,ie,X],styles:[".form-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:0;min-width:600px}@media(max-width:768px){.form-container[_ngcontent-%COMP%]{min-width:auto}}.full-width[_ngcontent-%COMP%]{width:100%}.interval-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:1rem;font-weight:600}.interval-section[_ngcontent-%COMP%] .interval-fields[_ngcontent-%COMP%]{display:flex;gap:1rem}.interval-section[_ngcontent-%COMP%] .interval-fields[_ngcontent-%COMP%] .interval-value[_ngcontent-%COMP%], .interval-section[_ngcontent-%COMP%] .interval-fields[_ngcontent-%COMP%] .interval-unit[_ngcontent-%COMP%]{flex:1}.days-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:1rem;font-weight:600}.days-section[_ngcontent-%COMP%] .days-checkboxes[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.5rem}.days-section[_ngcontent-%COMP%] .days-checkboxes[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{min-width:120px}.days-section[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary)}.end-condition-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:1rem;font-weight:600}.parameters-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.parameters-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:600}.parameters-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] .mode-toggle[_ngcontent-%COMP%]{height:32px}.parameters-section[_ngcontent-%COMP%] .parameters-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.parameters-section[_ngcontent-%COMP%] .parameter-item[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem}.parameters-section[_ngcontent-%COMP%] .parameter-item[_ngcontent-%COMP%] .param-key[_ngcontent-%COMP%]{flex:1}.parameters-section[_ngcontent-%COMP%] .parameter-item[_ngcontent-%COMP%] .param-value[_ngcontent-%COMP%]{flex:2}.parameters-section[_ngcontent-%COMP%] .parameter-item[_ngcontent-%COMP%] .remove-btn[_ngcontent-%COMP%]{margin-top:8px}.parameters-section[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{margin:.5rem 0 0;font-size:.85rem;color:var(--color-text-secondary)}.enabled-section[_ngcontent-%COMP%]{padding:1rem;background:var(--color-surface);border-radius:8px;border:1px solid var(--color-border)}.enabled-section[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{display:block;margin-bottom:.5rem}.enabled-section[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary)}.error-message[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#f443361a;border:1px solid var(--color-error);border-radius:4px;color:var(--color-error)}.error-message[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}.error-message[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex:1}"],changeDetection:1})};var Yt=()=>[],Zt=l=>({id:l});function Jt(l,a){if(l&1&&(Cs(0,"div",6),JC(1),hl()),l&2){let e=CC();sI(),Kg(e.errorMessage());}}function en(l,a){if(l&1){let e=vC();Cs(0,"ds-entity-card",8),kg("selected",function(n){Cf(e);let o=CC();return Tf(o.onEdit(n))}),yl(1,9),Cs(2,"button",10),kg("click",function(n){return n.stopPropagation()}),Cs(3,"mat-icon"),JC(4,"more_vert"),hl()(),vl(),hl();}if(l&2){let e=a.$implicit;CC();let t=AC(11);_g("id",e.id)("name",e.name)("description",e.description)("badges",e.badges??dT(6,Yt)),sI(2),_g("matMenuTriggerFor",t)("matMenuTriggerData",fT(7,Zt,e.id));}}function tn(l,a){if(l&1){let e=vC();Cs(0,"button",11),kg("click",function(){let n=Cf(e).id,o=CC();return Tf(o.onEdit(n))}),Cs(1,"mat-icon"),JC(2,"edit"),hl(),JC(3," Edit "),hl(),Cs(4,"button",11),kg("click",function(){let n=Cf(e).id,o=CC();return Tf(o.onToggleEnabled(n))}),Cs(5,"mat-icon"),JC(6),hl(),JC(7),hl(),Cs(8,"button",11),kg("click",function(){let n=Cf(e).id,o=CC();return Tf(o.onRunNow(n))}),Cs(9,"mat-icon"),JC(10,"play_arrow"),hl(),JC(11," Run now "),hl(),Cs(12,"button",12),kg("click",function(){let n=Cf(e).id,o=CC();return Tf(o.onDelete(n))}),Cs(13,"mat-icon"),JC(14,"delete"),hl(),JC(15," Delete "),hl();}if(l&2){let e=a.id,t=CC();sI(6),Kg(t.isEnabled(e)?"pause_circle":"play_circle"),sI(),Dl(" ",t.isEnabled(e)?"Disable":"Enable"," ");}}var Ct=class l{schedulerApi=g(xe);promptApi=g(d);configApi=g(W);location=g(xm);dialog=g(Re);schedulers=Wi([]);prompts=Wi([]);isLoading=Wi(false);errorMessage=Wi(null);showOnlyMine=Wi(true);currentUsername=Wi("");schedulerItems=TT(()=>{let a=this.schedulers(),e=this.currentUsername(),n=this.showOnlyMine()&&e?a.filter(C=>this.isMyScheduler(C)):a,u=[...new Set(n.map(C=>C.createdBy))].sort((C,F)=>C===e&&F!==e?-1:F===e&&C!==e?1:C.localeCompare(F)),I=[];for(let C of u){let F=C===e?`${C} (you)`:C;for(let V of n.filter(St=>St.createdBy===C))I.push({id:V.id,name:V.name,description:this.buildDescription(V),badges:this.buildBadges(V),groupKey:C,groupLabel:F});}return I});ngOnInit(){this.configApi.getUserConfig().subscribe({next:a=>this.currentUsername.set(a.username??""),error:()=>{}}),this.loadPrompts(),this.loadSchedulers();}loadPrompts(){this.promptApi.listPrompts().subscribe({next:a=>this.prompts.set(a),error:()=>{}});}loadSchedulers(){this.isLoading.set(true),this.schedulerApi.listSchedulers().subscribe({next:a=>{this.schedulers.set(a),this.isLoading.set(false);},error:a=>{this.errorMessage.set(a?.error?.error??"Failed to load schedulers"),this.isLoading.set(false);}});}onBack(){this.location.back();}onCreate(){this.dialog.open(B,{width:"700px",maxHeight:"90vh",data:{mode:"create"}}).afterClosed().subscribe(e=>{e&&this.loadSchedulers();});}onEdit(a){this.schedulerApi.getScheduler(a).subscribe({next:e=>{this.dialog.open(B,{width:"700px",maxHeight:"90vh",data:{mode:"edit",scheduler:e}}).afterClosed().subscribe(n=>{n&&this.loadSchedulers();});},error:e=>this.errorMessage.set(e?.error?.error??"Failed to load scheduler")});}onToggleEnabled(a){let e=this.schedulers().find(n=>n.id===a);if(!e)return;(e.enabled?this.schedulerApi.disableScheduler(a):this.schedulerApi.enableScheduler(a)).subscribe({next:()=>this.loadSchedulers(),error:n=>this.errorMessage.set(n?.error?.error??"Failed to toggle scheduler")});}onRunNow(a){this.schedulerApi.runSchedulerNow(a).subscribe({next:e=>{alert(`Scheduler executed successfully! Thread ID: ${e.threadId}`),this.loadSchedulers();},error:e=>this.errorMessage.set(e?.error?.error??"Failed to run scheduler")});}onDelete(a){confirm("Are you sure you want to delete this scheduler?")&&this.schedulerApi.deleteScheduler(a).subscribe({next:()=>this.loadSchedulers(),error:e=>this.errorMessage.set(e?.error?.error??"Failed to delete scheduler")});}isEnabled(a){return this.schedulers().find(e=>e.id===a)?.enabled??false}buildDescription(a){let e;if(a.promptId)e=this.getPromptName(a.promptId);else if(a.agentName&&a.instruction){let o=a.instruction.length>40?a.instruction.slice(0,40)+"\u2026":a.instruction;e=`${a.agentName}: ${o}`;}else console.error(`Scheduler "${a.name}" (${a.id}) has neither promptId nor agentName+instruction`),e="Unknown source";let t=this.formatInterval(a.schedule.interval),n=a.nextRun?new Date(a.nextRun).toLocaleString():"Expired";return `${e} \xB7 ${t} \xB7 Next: ${n}`}buildBadges(a){return [a.enabled?{label:"enabled",variant:"success"}:{label:"disabled",variant:"warning"}]}getPromptName(a){let e=this.prompts().find(t=>t.id===a);return e?e.name:a}formatInterval(a){let e=/^(\d+)(min|h|d|M)$/.exec(a);if(!e)return a;let[,t,n]=e;if(!t||!n)return a;let u={min:"minute",h:"hour",d:"day",M:"month"}[n]??n;return `Every ${t} ${u}${parseInt(t,10)>1?"s":""}`}isMyScheduler(a){let e=t=>t.replace(/[.\s]+/g,"_").toLowerCase();return e(a.createdBy)===e(this.currentUsername())}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=jw({type:l,selectors:[["app-scheduler-list"]],decls:13,vars:6,consts:[["schedulerCard",""],["cardMenu","matMenu"],[1,"scheduler-list-page"],["title","Schedulers","cardMinWidth","384px","contentMaxWidth","1400px","searchPlaceholder","Filter schedulers\u2026","emptyMessage","No schedulers found.",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","mat-icon-button","","title","Back",3,"click"],["toolbar-extras","","color","primary",1,"scheduler-list__mine-toggle",3,"ngModelChange","ngModel"],[1,"scheduler-list__error"],["matMenuContent",""],[3,"selected","id","name","description","badges"],["dsCardActions",""],["mat-icon-button","",3,"click","matMenuTriggerFor","matMenuTriggerData"],["mat-menu-item","",3,"click"],["mat-menu-item","",1,"scheduler-list__delete-item",3,"click"]],template:function(e,t){if(e&1&&(Cs(0,"div",2)(1,"ds-entity-list",3),kg("createRequested",function(){return t.onCreate()}),Cs(2,"button",4),kg("click",function(){return t.onBack()}),Cs(3,"mat-icon"),JC(4,"chevron_left"),hl()(),Cs(5,"mat-slide-toggle",5),kg("ngModelChange",function(o){return t.showOnlyMine.set(o)}),JC(6," Mine "),hl(),ZI(),hl(),aC(7,Jt,2,1,"div",6),hl(),wg(8,en,5,9,"ng-template",null,0,ET),Cs(10,"mat-menu",null,1),wg(12,tn,16,2,"ng-template",7),hl()),e&2){let n=AC(9);sI(),_g("items",t.schedulerItems())("loading",t.isLoading())("showCreate",true)("itemTemplate",n),sI(4),_g("ngModel",t.showOnlyMine()),QI(),sI(2),cC(t.errorMessage()?7:-1);}},dependencies:[Wn,ot,it,hr,Gn,yt$1,wt,ke,se,In,De,Be,ya,En,ti,Zn,cn],styles:["[_nghost-%COMP%]{display:block;width:100%;min-height:100vh;background:var(--color-bg);overflow-y:auto}.scheduler-list__mine-toggle[_ngcontent-%COMP%]{flex-shrink:0;font-size:.875rem}.scheduler-list__delete-item[_ngcontent-%COMP%]{color:var(--color-error, #ff3b30)}.scheduler-list__delete-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:inherit}.scheduler-list__error[_ngcontent-%COMP%]{margin:1rem auto;max-width:900px;padding:.75rem 1rem;background:#dc262614;border:1px solid rgba(220,38,38,.25);border-radius:8px;color:var(--color-error, #ff3b30);font-size:.875rem}"],changeDetection:1})};export{Ct as SchedulerListComponent};
@@ -1 +1 @@
1
- import {i}from'./chunk-BDaTUrH4.js';import {l}from'./chunk-R-GmZrHu.js';import {g as g$1,dd as $,aJ as Tr,aD as jy,bS as Da,a7 as va,X as br,u as ue,cE as Od,bU as kd,b as P,Y as x}from'./main-LBRSRTYI.js';var g="none",N="me",O=class p{nsController=g$1($);userState=g$1(l);refresh$=new Tr(void 0);namespaceId$=new Tr(null);vm$=jy([this.namespaceId$,this.refresh$]).pipe(Da(([e])=>{let r=this.loadPlatformProviders().pipe(va(()=>br([])));return e?jy([r,this.loadNamespaceProviders(e).pipe(va(()=>br([]))),this.loadUserProviders(e).pipe(va(()=>br([]))),this.loadUserProviders("global").pipe(va(()=>br([])))]).pipe(ue(([i,n,s,t])=>({platform:i,namespace:n,userOnNs:s,userGlobal:t}))):jy([r,this.loadNamespaceProviders("").pipe(va(()=>br([]))),this.loadUserProviders("global").pipe(va(()=>br([])))]).pipe(ue(([i,n,s])=>({platform:i,namespace:n,userOnNs:[],userGlobal:s})))}),Od({bufferSize:1,refCount:true}));setNamespace(e){this.namespaceId$.value!==e&&this.namespaceId$.next(e);}refresh(){this.refresh$.next();}loadUserProviders(e){let r=e==="global"?g:e;return this.nsController.listAiProvider(r,N)}userGlobal$=i(this.refresh$,()=>this.loadUserProviders("global"),[]);loadPlatformProviders(){return this.nsController.listAiProvider(g)}loadNamespaceProviders(e){return e?this.nsController.listAiProvider(e):br([])}getById(e,r){return this.nsController.getByIdAiProvider(e)}create(e,r,i){let s=this.userState.currentUser()?.id;if((r==="userOnNs"||r==="userGlobal")&&!s)throw new Error(`Cannot create ${r} provider before UserStateService.loadMe() resolves \u2014 call loadMe() at app init`);if(r==="namespace"){if(i===void 0||i==="")throw new Error("Cannot create namespace-scoped provider without a namespaceId");let S={name:e.name,apiType:e.apiType,description:e.description,baseUrl:e.baseUrl,apiKey:e.apiKey,headers:e.headers??void 0,namespaceId:i??void 0};return this.nsController.createAiProvider(S).pipe(kd(()=>this.refresh()))}if(r==="userOnNs"&&!i)throw new Error("Cannot create userOnNs provider without a namespaceId");let t={name:e.name,apiType:e.apiType,description:e.description,baseUrl:e.baseUrl,apiKey:e.apiKey,headers:e.headers??void 0,userId:s,namespaceId:r==="userOnNs"?i:void 0};return this.nsController.createAiProvider(t).pipe(kd(()=>this.refresh()))}update(e,r,i,n){let s=r.apiKey===null?{}:{apiKey:r.apiKey},t=P({name:r.name,apiType:r.apiType,description:r.description,baseUrl:r.baseUrl,headers:r.headers??void 0,namespaceId:n.namespaceId,userId:n.userId},s);return this.nsController.updateAiProvider(e,t).pipe(kd(()=>this.refresh()))}delete(e,r){return this.nsController.deleteAiProvider(e).pipe(kd(()=>this.refresh()))}static \u0275fac=function(r){return new(r||p)};static \u0275prov=x({token:p,factory:p.\u0275fac,providedIn:"root"})};export{O};
1
+ import {i}from'./chunk-B55TXBfo.js';import {l}from'./chunk-DIhIuMRR.js';import {g as g$1,df as $,aJ as Tr,aD as Hy,bS as Da,a7 as va,I as br,r as re,cE as kd,bU as Fd,a as P,K as x}from'./main-K6RKSHKK.js';var g="none",N="me",O=class p{nsController=g$1($);userState=g$1(l);refresh$=new Tr(void 0);namespaceId$=new Tr(null);vm$=Hy([this.namespaceId$,this.refresh$]).pipe(Da(([e])=>{let r=this.loadPlatformProviders().pipe(va(()=>br([])));return e?Hy([r,this.loadNamespaceProviders(e).pipe(va(()=>br([]))),this.loadUserProviders(e).pipe(va(()=>br([]))),this.loadUserProviders("global").pipe(va(()=>br([])))]).pipe(re(([i,n,s,t])=>({platform:i,namespace:n,userOnNs:s,userGlobal:t}))):Hy([r,this.loadNamespaceProviders("").pipe(va(()=>br([]))),this.loadUserProviders("global").pipe(va(()=>br([])))]).pipe(re(([i,n,s])=>({platform:i,namespace:n,userOnNs:[],userGlobal:s})))}),kd({bufferSize:1,refCount:true}));setNamespace(e){this.namespaceId$.value!==e&&this.namespaceId$.next(e);}refresh(){this.refresh$.next();}loadUserProviders(e){let r=e==="global"?g:e;return this.nsController.listAiProvider(r,N)}userGlobal$=i(this.refresh$,()=>this.loadUserProviders("global"),[]);loadPlatformProviders(){return this.nsController.listAiProvider(g)}loadNamespaceProviders(e){return e?this.nsController.listAiProvider(e):br([])}getById(e,r){return this.nsController.getByIdAiProvider(e)}create(e,r,i){let s=this.userState.currentUser()?.id;if((r==="userOnNs"||r==="userGlobal")&&!s)throw new Error(`Cannot create ${r} provider before UserStateService.loadMe() resolves \u2014 call loadMe() at app init`);if(r==="namespace"){if(i===void 0||i==="")throw new Error("Cannot create namespace-scoped provider without a namespaceId");let S={name:e.name,apiType:e.apiType,description:e.description,baseUrl:e.baseUrl,apiKey:e.apiKey,headers:e.headers??void 0,namespaceId:i??void 0};return this.nsController.createAiProvider(S).pipe(Fd(()=>this.refresh()))}if(r==="userOnNs"&&!i)throw new Error("Cannot create userOnNs provider without a namespaceId");let t={name:e.name,apiType:e.apiType,description:e.description,baseUrl:e.baseUrl,apiKey:e.apiKey,headers:e.headers??void 0,userId:s,namespaceId:r==="userOnNs"?i:void 0};return this.nsController.createAiProvider(t).pipe(Fd(()=>this.refresh()))}update(e,r,i,n){let s=r.apiKey===null?{}:{apiKey:r.apiKey},t=P({name:r.name,apiType:r.apiType,description:r.description,baseUrl:r.baseUrl,headers:r.headers??void 0,namespaceId:n.namespaceId,userId:n.userId},s);return this.nsController.updateAiProvider(e,t).pipe(Fd(()=>this.refresh()))}delete(e,r){return this.nsController.deleteAiProvider(e).pipe(Fd(()=>this.refresh()))}static \u0275fac=function(r){return new(r||p)};static \u0275prov=x({token:p,factory:p.\u0275fac,providedIn:"root"})};export{O};
@@ -0,0 +1,55 @@
1
+ import {s as se}from'./chunk-CorOD5-V.js';import {a as Dr,z as zi,F as Fn,H as Hi,h as ht,b as gr,_ as _r}from'./chunk-D8Bz7q-C.js';import {g,B as gy,P,K as x,aL as wo,aM as Zn,bD as ge,bE as vt,aO as wt,bs as bl,az as Xt,aW as C,aS as K,bF as J,al as vt$1,aT as Ut,bG as p,bH as Pt,j as jw,a_ as rb,bA as bC,bI as Cg,b5 as lT,x as jg,bJ as dr,y as MC,N as NC,bv as Lg,bK as fe,bL as pe,bM as mr,aP as G,bt as Qn,bN as F,aR as Ps,an as ue,O as Ot,bO as mt,bP as Jy,ae as kt$1,I as br,r as re,bQ as Xy,bR as Sd,bS as Da,aF as R$1,bu as Ve$1,bT as pn,bU as Fd,bV as tv,aA as an,bW as Y,bX as Pt$1,bY as po,bZ as X,b_ as xt,aZ as Bs,aC as bu,n as kg,S as Sg,aw as gl,bB as SC,ax as ml,ac as CC,b$ as UC,w as zg,c0 as Rg,c1 as E,c2 as PE,c3 as kt$2,bC as _i}from'./main-K6RKSHKK.js';import {D}from'./chunk-BhdMedPO.js';var xe=class a{http=g(gy);projectState=g(P);getBaseUrl(){return `/api/projects/${this.projectState.getSelectedProjectIdOrThrow()}/schedulers`}listSchedulers(){return this.http.get(this.getBaseUrl())}getScheduler(o){return this.http.get(`${this.getBaseUrl()}/${o}`)}createScheduler(o){return this.http.post(this.getBaseUrl(),o)}listSchedulersForProject(o){return this.http.get(`/api/projects/${o}/schedulers`)}enableSchedulerForProject(o,e){return this.http.post(`/api/projects/${o}/schedulers/${e}/enable`,{})}disableSchedulerForProject(o,e){return this.http.post(`/api/projects/${o}/schedulers/${e}/disable`,{})}runSchedulerNowForProject(o,e){return this.http.post(`/api/projects/${o}/schedulers/${e}/run-now`,{})}deleteSchedulerForProject(o,e){return this.http.delete(`/api/projects/${o}/schedulers/${e}`)}updateSchedulerForProject(o,e,t){return this.http.put(`/api/projects/${o}/schedulers/${e}`,t)}createSchedulerForProject(o,e){return this.http.post(`/api/projects/${o}/schedulers`,e)}updateScheduler(o,e){return this.http.put(`${this.getBaseUrl()}/${o}`,e)}deleteScheduler(o){return this.http.delete(`${this.getBaseUrl()}/${o}`)}enableScheduler(o){return this.http.post(`${this.getBaseUrl()}/${o}/enable`,{})}disableScheduler(o){return this.http.post(`${this.getBaseUrl()}/${o}/disable`,{})}runSchedulerNow(o){return this.http.post(`${this.getBaseUrl()}/${o}/run-now`,{})}static \u0275fac=function(e){return new(e||a)};static \u0275prov=x({token:a,factory:a.\u0275fac,providedIn:"root"})};var Ke=["panel"],Ue=["*"];function qe(a,o){if(a&1&&(gl(0,"div",1,0),SC(2),ml()),a&2){let e=o.id,t=CC();UC(t._classList),zg("mat-mdc-autocomplete-visible",t.showPanel)("mat-mdc-autocomplete-hidden",!t.showPanel)("mat-autocomplete-panel-animations-enabled",!t._animationsDisabled)("mat-primary",t._color==="primary")("mat-accent",t._color==="accent")("mat-warn",t._color==="warn"),Rg("id",t.id),Sg("aria-label",t.ariaLabel||null)("aria-labelledby",t._getPanelAriaLabelledby(e));}}var R=class{source;option;constructor(o,e){this.source=o,this.option=e;}},Ve=new C("mat-autocomplete-default-options",{providedIn:"root",factory:()=>({autoActiveFirstOption:false,autoSelectActiveOption:false,hideSingleSelectionIndicator:false,requireSelection:false,hasBackdrop:false})}),Ct=(()=>{class a{_changeDetectorRef=g(bl);_elementRef=g(Xt);_defaults=g(Ve);_animationsDisabled=K();_activeOptionChanges=J.EMPTY;_keyManager;showPanel=false;get isOpen(){return this._isOpen&&this.showPanel}_isOpen=false;_latestOpeningTrigger;_setColor(e){this._color=e,this._changeDetectorRef.markForCheck();}_color;template;panel;options;optionGroups;ariaLabel;ariaLabelledby;displayWith=null;autoActiveFirstOption;autoSelectActiveOption;requireSelection;panelWidth;disableRipple=false;optionSelected=new vt$1;opened=new vt$1;closed=new vt$1;optionActivated=new vt$1;set classList(e){this._classList=e,this._elementRef.nativeElement.className="";}_classList;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties();}_hideSingleSelectionIndicator;_syncParentProperties(){if(this.options)for(let e of this.options)e._changeDetectorRef.markForCheck();}id=g(Ut).getId("mat-autocomplete-");inertGroups;constructor(){let e=g(p);this.inertGroups=e?.SAFARI||false,this.autoActiveFirstOption=!!this._defaults.autoActiveFirstOption,this.autoSelectActiveOption=!!this._defaults.autoSelectActiveOption,this.requireSelection=!!this._defaults.requireSelection,this._hideSingleSelectionIndicator=this._defaults.hideSingleSelectionIndicator??false;}ngAfterContentInit(){this._keyManager=new Pt(this.options).withWrap().skipPredicate(this._skipPredicate),this._activeOptionChanges=this._keyManager.change.subscribe(e=>{this.isOpen&&this.optionActivated.emit({source:this,option:this.options.toArray()[e]||null});}),this._setVisibility();}ngOnDestroy(){this._keyManager?.destroy(),this._activeOptionChanges.unsubscribe();}_setScrollTop(e){this.panel&&(this.panel.nativeElement.scrollTop=e);}_getScrollTop(){return this.panel?this.panel.nativeElement.scrollTop:0}_setVisibility(){this.showPanel=!!this.options?.length,this._changeDetectorRef.markForCheck();}_emitSelectEvent(e){let t=new R(this,e);this.optionSelected.emit(t);}_getPanelAriaLabelledby(e){if(this.ariaLabel)return null;let t=e?e+" ":"";return this.ariaLabelledby?t+this.ariaLabelledby:e}_skipPredicate(){return false}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=jw({type:a,selectors:[["mat-autocomplete"]],contentQueries:function(t,i,n){if(t&1&&Lg(n,Fn,5)(n,Hi,5),t&2){let s;MC(s=NC())&&(i.options=s),MC(s=NC())&&(i.optionGroups=s);}},viewQuery:function(t,i){if(t&1&&jg(dr,7)(Ke,5),t&2){let n;MC(n=NC())&&(i.template=n.first),MC(n=NC())&&(i.panel=n.first);}},hostAttrs:[1,"mat-mdc-autocomplete"],inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],displayWith:"displayWith",autoActiveFirstOption:[2,"autoActiveFirstOption","autoActiveFirstOption",rb],autoSelectActiveOption:[2,"autoSelectActiveOption","autoSelectActiveOption",rb],requireSelection:[2,"requireSelection","requireSelection",rb],panelWidth:"panelWidth",disableRipple:[2,"disableRipple","disableRipple",rb],classList:[0,"class","classList"],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",rb]},outputs:{optionSelected:"optionSelected",opened:"opened",closed:"closed",optionActivated:"optionActivated"},exportAs:["matAutocomplete"],features:[lT([{provide:zi,useExisting:a}])],ngContentSelectors:Ue,decls:1,vars:0,consts:[["panel",""],["role","listbox",1,"mat-mdc-autocomplete-panel","mdc-menu-surface","mdc-menu-surface--open",3,"id"]],template:function(t,i){t&1&&(bC(),Cg(0,qe,3,17,"ng-template"));},styles:[`div.mat-mdc-autocomplete-panel {
2
+ width: 100%;
3
+ max-height: 256px;
4
+ visibility: hidden;
5
+ transform-origin: center top;
6
+ overflow: auto;
7
+ padding: 8px 0;
8
+ box-sizing: border-box;
9
+ position: relative;
10
+ border-radius: var(--mat-autocomplete-container-shape, var(--mat-sys-corner-extra-small));
11
+ box-shadow: var(--mat-autocomplete-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));
12
+ background-color: var(--mat-autocomplete-background-color, var(--mat-sys-surface-container));
13
+ }
14
+ @media (forced-colors: active) {
15
+ div.mat-mdc-autocomplete-panel {
16
+ outline: solid 1px;
17
+ }
18
+ }
19
+ .cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel {
20
+ border-top-left-radius: 0;
21
+ border-top-right-radius: 0;
22
+ }
23
+ .mat-mdc-autocomplete-panel-above div.mat-mdc-autocomplete-panel {
24
+ border-bottom-left-radius: 0;
25
+ border-bottom-right-radius: 0;
26
+ transform-origin: center bottom;
27
+ }
28
+ div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-visible {
29
+ visibility: visible;
30
+ }
31
+
32
+ div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-hidden,
33
+ .cdk-overlay-pane:has(> .mat-mdc-autocomplete-hidden) {
34
+ visibility: hidden;
35
+ pointer-events: none;
36
+ }
37
+
38
+ @keyframes _mat-autocomplete-enter {
39
+ from {
40
+ opacity: 0;
41
+ transform: scaleY(0.8);
42
+ }
43
+ to {
44
+ opacity: 1;
45
+ transform: none;
46
+ }
47
+ }
48
+ .mat-autocomplete-panel-animations-enabled {
49
+ animation: _mat-autocomplete-enter 120ms cubic-bezier(0, 0, 0.2, 1);
50
+ }
51
+
52
+ mat-autocomplete {
53
+ display: none;
54
+ }
55
+ `],encapsulation:2})}return a})();var Ye={provide:D,useExisting:_i(()=>ze),multi:true};var Ge=new C("mat-autocomplete-scroll-strategy",{providedIn:"root",factory:()=>{let a=g(pe);return ()=>kt$2(a)}}),ze=(()=>{class a{_environmentInjector=g(fe);_element=g(Xt);_injector=g(pe);_viewContainerRef=g(mr);_zone=g(G);_changeDetectorRef=g(bl);_dir=g(Qn,{optional:true});_formField=g(se,{optional:true,host:true});_viewportRuler=g(F);_scrollStrategy=g(Ge);_renderer=g(Ps);_animationsDisabled=K();_defaults=g(Ve,{optional:true});_overlayRef=null;_portal;_componentDestroyed=false;_initialized=new ue;_keydownSubscription;_outsideClickSubscription;_cleanupWindowBlur;_previousValue=null;_valueOnAttach=null;_valueOnLastKeydown=null;_positionStrategy;_manuallyFloatingLabel=false;_closingActionsSubscription;_viewportSubscription=J.EMPTY;_breakpointObserver=g(Ot);_handsetLandscapeSubscription=J.EMPTY;_canOpenOnNextFocus=true;_valueBeforeAutoSelection;_pendingAutoselectedOption=null;_closeKeyEventStream=new ue;_overlayPanelClass=mt(this._defaults?.overlayPanelClass||[]);_windowBlurHandler=()=>{this._canOpenOnNextFocus=this.panelOpen||!this._hasFocus();};_onChange=()=>{};_onTouched=()=>{};autocomplete;position="auto";connectedTo;autocompleteAttribute="off";autocompleteDisabled=false;_aboveClass="mat-mdc-autocomplete-panel-above";ngAfterViewInit(){this._initialized.next(),this._initialized.complete(),this._cleanupWindowBlur=this._renderer.listen("window","blur",this._windowBlurHandler);}ngOnChanges(e){e.position&&this._positionStrategy&&(this._setStrategyPositions(this._positionStrategy),this.panelOpen&&this._overlayRef.updatePosition());}ngOnDestroy(){this._cleanupWindowBlur?.(),this._handsetLandscapeSubscription.unsubscribe(),this._viewportSubscription.unsubscribe(),this._componentDestroyed=true,this._destroyPanel(),this._closeKeyEventStream.complete();}get panelOpen(){return this._overlayAttached&&this.autocomplete.showPanel}_overlayAttached=false;openPanel(){this._openPanelInternal();}closePanel(){this._resetLabel(),this._overlayAttached&&(this.panelOpen&&this._zone.run(()=>{this.autocomplete.closed.emit();}),this.autocomplete._latestOpeningTrigger===this&&(this.autocomplete._isOpen=false,this.autocomplete._latestOpeningTrigger=null),this._overlayAttached=false,this._pendingAutoselectedOption=null,this._overlayRef&&this._overlayRef.hasAttached()&&(this._overlayRef.detach(),this._closingActionsSubscription.unsubscribe()),this._updatePanelState(),this._componentDestroyed||this._changeDetectorRef.detectChanges());}updatePosition(){this._overlayAttached&&this._overlayRef.updatePosition();}get panelClosingActions(){return Jy(this.optionSelections,this.autocomplete._keyManager.tabOut.pipe(kt$1(()=>this._overlayAttached)),this._closeKeyEventStream,this._getOutsideClickStream(),this._overlayRef?this._overlayRef.detachments().pipe(kt$1(()=>this._overlayAttached)):br()).pipe(re(e=>e instanceof ht?e:null))}optionSelections=Xy(()=>{let e=this.autocomplete?this.autocomplete.options:null;return e?e.changes.pipe(Sd(e),Da(()=>Jy(...e.map(t=>t.onSelectionChange)))):this._initialized.pipe(Da(()=>this.optionSelections))});get activeOption(){return this.autocomplete&&this.autocomplete._keyManager?this.autocomplete._keyManager.activeItem:null}_getOutsideClickStream(){return new R$1(e=>{let t=n=>{let s=E(n),l=this._formField?this._formField.getConnectedOverlayOrigin().nativeElement:null,E$1=this.connectedTo?this.connectedTo.elementRef.nativeElement:null;this._overlayAttached&&s!==this._element.nativeElement&&!this._hasFocus()&&(!l||!l.contains(s))&&(!E$1||!E$1.contains(s))&&this._overlayRef&&!this._overlayRef.overlayElement.contains(s)&&e.next(n);},i=[this._renderer.listen("document","click",t),this._renderer.listen("document","auxclick",t),this._renderer.listen("document","touchend",t)];return ()=>{i.forEach(n=>n());}})}writeValue(e){Promise.resolve(null).then(()=>this._assignOptionValue(e));}registerOnChange(e){this._onChange=e;}registerOnTouched(e){this._onTouched=e;}setDisabledState(e){this._element.nativeElement.disabled=e;}_handleKeydown(e){let t=e,i=t.keyCode,n=Ve$1(t);if(i===27&&!n&&t.preventDefault(),this._valueOnLastKeydown=this._element.nativeElement.value,this.activeOption&&i===13&&this.panelOpen&&!n)this.activeOption._selectViaInteraction(),this._resetActiveItem(),t.preventDefault();else if(this.autocomplete){let s=this.autocomplete._keyManager.activeItem,l=i===38||i===40;i===9||l&&!n&&this.panelOpen?this.autocomplete._keyManager.onKeydown(t):l&&this._canOpen()&&this._openPanelInternal(this._valueOnLastKeydown),(l||this.autocomplete._keyManager.activeItem!==s)&&(this._scrollToOption(this.autocomplete._keyManager.activeItemIndex||0),this.autocomplete.autoSelectActiveOption&&this.activeOption&&(this._pendingAutoselectedOption||(this._valueBeforeAutoSelection=this._valueOnLastKeydown),this._pendingAutoselectedOption=this.activeOption,this._assignOptionValue(this.activeOption.value)));}}_handleInput(e){let t=e.target,i=t.value;if(t.type==="number"&&(i=i==""?null:parseFloat(i)),this._previousValue!==i){if(this._previousValue=i,this._pendingAutoselectedOption=null,(!this.autocomplete||!this.autocomplete.requireSelection)&&this._onChange(i),!i)this._clearPreviousSelectedOption(null,false);else if(this.panelOpen&&!this.autocomplete.requireSelection){let n=this.autocomplete.options?.find(s=>s.selected);if(n){let s=this._getDisplayValue(n.value);i!==s&&n.deselect(false);}}if(this._canOpen()&&this._hasFocus()){let n=this._valueOnLastKeydown??this._element.nativeElement.value;this._valueOnLastKeydown=null,this._openPanelInternal(n);}}}_handleFocus(){this._canOpenOnNextFocus?this._canOpen()&&(this._previousValue=this._element.nativeElement.value,this._attachOverlay(this._previousValue),this._floatLabel(true)):this._canOpenOnNextFocus=true;}_handleClick(){this._canOpen()&&!this.panelOpen&&this._openPanelInternal();}_hasFocus(){return pn()===this._element.nativeElement}_floatLabel(e=false){this._formField&&this._formField.floatLabel==="auto"&&(e?this._formField._animateAndLockLabel():this._formField.floatLabel="always",this._manuallyFloatingLabel=true);}_resetLabel(){this._manuallyFloatingLabel&&(this._formField&&(this._formField.floatLabel="auto"),this._manuallyFloatingLabel=false);}_subscribeToClosingActions(){let e=new R$1(i=>{PE(()=>{i.next();},{injector:this._environmentInjector});}),t=this.autocomplete.options?.changes.pipe(Fd(()=>this._positionStrategy.reapplyLastPosition()),tv(0))??br();return Jy(e,t).pipe(Da(()=>this._zone.run(()=>{let i=this.panelOpen;return this._resetActiveItem(),this._updatePanelState(),this._changeDetectorRef.detectChanges(),this.panelOpen&&this._overlayRef.updatePosition(),i!==this.panelOpen&&(this.panelOpen?this._emitOpened():this.autocomplete.closed.emit()),this.panelClosingActions})),an(1)).subscribe(i=>this._setValueAndClose(i))}_emitOpened(){this.autocomplete.opened.emit();}_destroyPanel(){this._overlayRef&&(this.closePanel(),this._overlayRef.dispose(),this._overlayRef=null);}_getDisplayValue(e){let t=this.autocomplete;return t&&t.displayWith?t.displayWith(e):e}_assignOptionValue(e){let t=this._getDisplayValue(e);e==null&&this._clearPreviousSelectedOption(null,false),this._updateNativeInputValue(t??"");}_updateNativeInputValue(e){this._formField?this._formField._control.value=e:this._element.nativeElement.value=e,this._previousValue=e;}_setValueAndClose(e){let t=this.autocomplete,i=e?e.source:this._pendingAutoselectedOption;i?(this._clearPreviousSelectedOption(i),this._assignOptionValue(i.value),this._onChange(i.value),t._emitSelectEvent(i),this._element.nativeElement.focus()):t.requireSelection&&this._element.nativeElement.value!==this._valueOnAttach&&(this._clearPreviousSelectedOption(null),this._assignOptionValue(null),this._onChange(null)),this.closePanel();}_clearPreviousSelectedOption(e,t){this.autocomplete?.options?.forEach(i=>{i!==e&&i.selected&&i.deselect(t);});}_openPanelInternal(e=this._element.nativeElement.value){this._attachOverlay(e),this._floatLabel();}_attachOverlay(e){if(!this.autocomplete)return;let t=this._overlayRef;t?(this._positionStrategy.setOrigin(this._getConnectedElement()),t.updateSize({width:this._getPanelWidth()})):(this._portal=new Y(this.autocomplete.template,this._viewContainerRef,{id:this._formField?.getLabelId()}),t=Pt$1(this._injector,this._getOverlayConfig()),this._overlayRef=t,this._viewportSubscription=this._viewportRuler.change().subscribe(()=>{this.panelOpen&&t&&t.updateSize({width:this._getPanelWidth()});}),this._handsetLandscapeSubscription=this._breakpointObserver.observe(po.HandsetLandscape).subscribe(n=>{n.matches?this._positionStrategy.withFlexibleDimensions(true).withGrowAfterOpen(true).withViewportMargin(8):this._positionStrategy.withFlexibleDimensions(false).withGrowAfterOpen(false).withViewportMargin(0);})),t&&!t.hasAttached()&&(t.attach(this._portal),this._valueOnAttach=e,this._valueOnLastKeydown=null,this._closingActionsSubscription=this._subscribeToClosingActions());let i=this.panelOpen;this.autocomplete._isOpen=this._overlayAttached=true,this.autocomplete._latestOpeningTrigger=this,this.autocomplete._setColor(this._formField?.color),this._updatePanelState(),this.panelOpen&&i!==this.panelOpen&&this._emitOpened();}_handlePanelKeydown=e=>{(e.keyCode===27&&!Ve$1(e)||e.keyCode===38&&Ve$1(e,"altKey"))&&(this._pendingAutoselectedOption&&(this._updateNativeInputValue(this._valueBeforeAutoSelection??""),this._pendingAutoselectedOption=null),this._closeKeyEventStream.next(),this._resetActiveItem(),e.stopPropagation(),e.preventDefault());};_updatePanelState(){if(this.autocomplete._setVisibility(),this.panelOpen){let e=this._overlayRef;this._keydownSubscription||(this._keydownSubscription=e.keydownEvents().subscribe(this._handlePanelKeydown)),this._outsideClickSubscription||(this._outsideClickSubscription=e.outsidePointerEvents().subscribe());}else this._keydownSubscription?.unsubscribe(),this._outsideClickSubscription?.unsubscribe(),this._keydownSubscription=this._outsideClickSubscription=void 0;}_getOverlayConfig(){return new X({positionStrategy:this._getOverlayPosition(),scrollStrategy:this._scrollStrategy(),width:this._getPanelWidth(),direction:this._dir??void 0,hasBackdrop:this._defaults?.hasBackdrop,backdropClass:this._defaults?.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:this._overlayPanelClass,disableAnimations:this._animationsDisabled})}_getOverlayPosition(){let e=xt(this._injector,this._getConnectedElement()).withFlexibleDimensions(false).withPush(false).withPopoverLocation("inline");return this._setStrategyPositions(e),this._positionStrategy=e,e}_setStrategyPositions(e){let t=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],i=this._aboveClass,n=[{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:i},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:i}],s;this.position==="above"?s=n:this.position==="below"?s=t:s=[...t,...n],e.withPositions(s);}_getConnectedElement(){return this.connectedTo?this.connectedTo.elementRef:this._formField?this._formField.getConnectedOverlayOrigin():this._element}_getPanelWidth(){return this.autocomplete.panelWidth||this._getHostWidth()}_getHostWidth(){return this._getConnectedElement().nativeElement.getBoundingClientRect().width}_resetActiveItem(){let e=this.autocomplete;if(e.autoActiveFirstOption){let t=-1;for(let i=0;i<e.options.length;i++)if(!e.options.get(i).disabled){t=i;break}e._keyManager.setActiveItem(t);}else e._keyManager.setActiveItem(-1);}_canOpen(){let e=this._element.nativeElement;return !e.readOnly&&!e.disabled&&!this.autocompleteDisabled}_scrollToOption(e){let t=this.autocomplete,i=gr(e,t.options,t.optionGroups);if(e===0&&i===1)t._setScrollTop(0);else if(t.panel){let n=t.options.toArray()[e];if(n){let s=n._getHostElement(),l=_r(s.offsetTop,s.offsetHeight,t._getScrollTop(),t.panel.nativeElement.offsetHeight);t._setScrollTop(l);}}}static \u0275fac=function(t){return new(t||a)};static \u0275dir=Bs({type:a,selectors:[["input","matAutocomplete",""],["textarea","matAutocomplete",""]],hostAttrs:[1,"mat-mdc-autocomplete-trigger"],hostVars:7,hostBindings:function(t,i){t&1&&kg("focusin",function(){return i._handleFocus()})("blur",function(){return i._onTouched()})("input",function(s){return i._handleInput(s)})("keydown",function(s){return i._handleKeydown(s)})("click",function(){return i._handleClick()}),t&2&&Sg("autocomplete",i.autocompleteAttribute)("role",i.autocompleteDisabled?null:"combobox")("aria-autocomplete",i.autocompleteDisabled?null:"list")("aria-activedescendant",i.panelOpen&&i.activeOption?i.activeOption.id:null)("aria-expanded",i.autocompleteDisabled?null:i.panelOpen.toString())("aria-controls",i.autocompleteDisabled||!i.panelOpen?null:i.autocomplete?.id)("aria-haspopup",i.autocompleteDisabled?null:"listbox");},inputs:{autocomplete:[0,"matAutocomplete","autocomplete"],position:[0,"matAutocompletePosition","position"],connectedTo:[0,"matAutocompleteConnectedTo","connectedTo"],autocompleteAttribute:[0,"autocomplete","autocompleteAttribute"],autocompleteDisabled:[2,"matAutocompleteDisabled","autocompleteDisabled",rb]},exportAs:["matAutocompleteTrigger"],features:[lT([Ye]),bu]})}return a})(),kt=(()=>{class a{static \u0275fac=function(t){return new(t||a)};static \u0275mod=wo({type:a});static \u0275inj=Zn({imports:[ge,Dr,vt,Dr,wt]})}return a})();export{Ct as C,kt as k,xe as x,ze as z};