@whoz-oss/coday-client 0.249.19 → 0.250.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/{chunk-DhogzxpT.js → chunk-212nDK6z.js} +1 -1
- package/browser/{chunk-D0WPRxvI.js → chunk-7kd6aqZW.js} +1 -1
- package/browser/{chunk-BS_qtnJa.js → chunk-8IHCDq-n.js} +1 -1
- package/browser/{chunk-gEgtSVjj.js → chunk-B34o5MS9.js} +1 -1
- package/browser/{chunk-Craeqqq-.js → chunk-BJyJHRsR.js} +1 -1
- package/browser/{chunk-DZANBioo.js → chunk-BL6rHQIq.js} +1 -1
- package/browser/{chunk-J9jbGr5V.js → chunk-BUf2kRN-.js} +1 -1
- package/browser/{chunk-DGF8f8rP.js → chunk-BVNvILGY.js} +1 -1
- package/browser/{chunk-DxV9RsfD.js → chunk-Bb2Uw0l_.js} +1 -1
- package/browser/{chunk-L8gDvVhI.js → chunk-BcxVkBP4.js} +1 -1
- package/browser/{chunk-Dg-7WJin.js → chunk-BgmqAU5d.js} +1 -1
- package/browser/{chunk-wQH6b0eH.js → chunk-BjQ9uSuO.js} +1 -1
- package/browser/{chunk-C-Omuw0k.js → chunk-BjqB6X-Q.js} +1 -1
- package/browser/{chunk-BuUqIQZe.js → chunk-Bl0uHQRb.js} +1 -1
- package/browser/{chunk-BkZgPVhu.js → chunk-BlFW31Ix.js} +1 -1
- package/browser/{chunk-PZm2mGLF.js → chunk-Bn1NCLza.js} +1 -1
- package/browser/{chunk-DOwIRP9H.js → chunk-C-CVHVM1.js} +1 -1
- package/browser/{chunk-Bc7OrHjR.js → chunk-C3ey7Pw_.js} +1 -1
- package/browser/{chunk-YTDAsLsc.js → chunk-C7xfrwcc.js} +1 -1
- package/browser/{chunk-w8cyoPom.js → chunk-CB7LTHF8.js} +1 -1
- package/browser/{chunk-BQ15qZFz.js → chunk-CHa38l1f.js} +1 -1
- package/browser/{chunk-B5wj-AWl.js → chunk-CI6bYQJX.js} +1 -1
- package/browser/{chunk-Zmd4R9cO.js → chunk-CK9a3YUX.js} +1 -1
- package/browser/{chunk-BT8nWWPc.js → chunk-CLy2A9w4.js} +1 -1
- package/browser/{chunk-fMW6C3Ap.js → chunk-CQCsURqU.js} +1 -1
- package/browser/{chunk-BqyfQo5r.js → chunk-CQr0Ukce.js} +1 -1
- package/browser/{chunk-CfZSDspr.js → chunk-CdsGi_mS.js} +1 -1
- package/browser/{chunk-CePUnppu.js → chunk-CfEz7rC8.js} +1 -1
- package/browser/{chunk-DdIe-Q8z.js → chunk-CftdVrmg.js} +2 -2
- package/browser/{chunk-Cpwt3qJr.js → chunk-Chnj24zR.js} +1 -1
- package/browser/{chunk-Dx3RUcFR.js → chunk-Cl_XNEMO.js} +1 -1
- package/browser/{chunk-rEBsHfWZ.js → chunk-CwngLrvR.js} +1 -1
- package/browser/{chunk-BWdAFY49.js → chunk-D3ROau4a.js} +1 -1
- package/browser/{chunk-aJ44yjwO.js → chunk-D5Xx-2-l.js} +1 -1
- package/browser/{chunk-1C8FfjAR.js → chunk-DFDBew5l.js} +1 -1
- package/browser/{chunk-y7hKHMfT.js → chunk-DO0F1psU.js} +1 -1
- package/browser/{chunk-DDLM6Cth.js → chunk-DTpDxM3C.js} +1 -1
- package/browser/{chunk-CGaNqBLr.js → chunk-DTt6xZUf.js} +1 -1
- package/browser/{chunk-CweOwCOY.js → chunk-DUaZzCof.js} +1 -1
- package/browser/{chunk-YvUhHp6t.js → chunk-DfrtT4j1.js} +1 -1
- package/browser/{chunk-C6N4Xim3.js → chunk-DhddaIXw.js} +1 -1
- package/browser/{chunk-MYEQTQOG.js → chunk-Di_UVewm.js} +1 -1
- package/browser/{chunk-BU7wmUzy.js → chunk-DpEf8Zts.js} +1 -1
- package/browser/{chunk-D6im9idH.js → chunk-DuF2Q-co.js} +1 -1
- package/browser/{chunk-Ca08FpV3.js → chunk-DubbZ7YZ.js} +1 -1
- package/browser/{chunk-Byflz_yZ.js → chunk-DvYZV_Sj.js} +1 -1
- package/browser/{chunk-2Go-OM7t.js → chunk-G_McLr8n.js} +1 -1
- package/browser/{chunk-DyOpupcY.js → chunk-GiycE6w1.js} +1 -1
- package/browser/{chunk-Bx6U7hp8.js → chunk-LsHXFX7Q.js} +1 -1
- package/browser/{chunk-D-Y7a6aq.js → chunk-Tugz7Zc1.js} +1 -1
- package/browser/{chunk-CRxfSRf8.js → chunk-U19GRP6M.js} +1 -1
- package/browser/{chunk-DXAivyZi.js → chunk-WsTOSgGl.js} +1 -1
- package/browser/{chunk-DlHlRrm5.js → chunk-Y8kz1BfL.js} +1 -1
- package/browser/{chunk-BO_Hh7E9.js → chunk-_aC1kWKJ.js} +1 -1
- package/browser/{chunk-D-9o3uam.js → chunk-_lPQN-hI.js} +1 -1
- package/browser/{chunk-CFAzj-K1.js → chunk-aNzkJAYY.js} +1 -1
- package/browser/{chunk-BNJpFR5J.js → chunk-c_CSTHjw.js} +1 -1
- package/browser/chunk-dzAKgnVd.js +1 -0
- package/browser/{chunk-CBKxLIx3.js → chunk-f7b-aSc8.js} +1 -1
- package/browser/{chunk-CDiCP0cs.js → chunk-i073leod.js} +2 -2
- package/browser/{chunk-DhHp86i1.js → chunk-j2_05fKo.js} +1 -1
- package/browser/{chunk-Cr9SQ4Nl.js → chunk-l97HkbSv.js} +1 -1
- package/browser/{chunk-lbDJ4ttg.js → chunk-oTlqtu-P.js} +1 -1
- package/browser/{chunk-7SmTiVF_.js → chunk-oUuZcQuC.js} +1 -1
- package/browser/{chunk-CL89mvBt.js → chunk-t2P6wi7m.js} +1 -1
- package/browser/{chunk-OfW8ypwW.js → chunk-t9ouniJm.js} +1 -1
- package/browser/index.html +1 -1
- package/browser/{main-FZBZNLDT.js → main-RWNNXKZO.js} +1 -1
- package/package.json +1 -1
- package/browser/chunk-DXKXt8mt.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import {I}from'./chunk-
|
|
1
|
+
import {I}from'./chunk-DO0F1psU.js';import {g,ao as V$1,G as G$1,w as we,de as B,dd as $,aI as Tr,bR as ma,Q as By,a7 as ga,S as ha,u as ue,b as U$1,A as Aw,aJ as Nb,v as vs,be as aT,l as Ag,k as fl,af as Dg,T as TC,r as Tg,bf as uT,ah as rT,n as eC,ac as mC,t as tC,a9 as dC,aa as If,ab as wf,ag as fT}from'./main-RWNNXKZO.js';import {W as Wn,S as Se}from'./chunk-CftdVrmg.js';import'./chunk-C3ey7Pw_.js';import'./chunk-Di_UVewm.js';var V=()=>[];function K(n,t){if(n&1){let i=dC();vs(0,"agentos-ai-model-item",4),Ag("deleteRequested",function(a){If(i);let e=mC(2);return wf(e.deleteModel(a))})("editRequested",function(a){If(i);let e=mC(2);return wf(e.editModel(a))}),fl();}if(n&2){let i=mC().$implicit,o=mC();Tg("model",t)("namespaceId",o.namespaceId)("readOnly",o.isPlatformModel(i.id));}}function U(n,t){if(n&1&&eC(0,K,1,3,"agentos-ai-model-item",3),n&2){let i,o=t.$implicit,a=mC();tC((i=a.resolveModel(o.id))?0:-1,i);}}var j="__platform__",G="Platform (read-only)",F=class n{route=g(V$1);router=g(G$1);destroyRef=g(we);aiModelController=g(B);aiProviderController=g($);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new Tr(void 0);data$=this.refresh$.pipe(ma(()=>By({namespace:this.aiModelController.listByNamespaceIdAiModel(this.namespaceId),platform:this.aiModelController.listPlatformLevelAiModel().pipe(ga(()=>ha([]))),providers:this.aiProviderController.listAiProvider(this.namespaceId)})));modelItems$=this.data$.pipe(ue(({namespace:t,platform:i,providers:o})=>{let a=new Map(o.map(e=>[e.id??"",e.name]));return [...i.map(e=>({id:e.id??"",name:e.alias??e.apiModelName,description:e.apiModelName,groupKey:j,groupLabel:G})),...t.map(e=>({id:e.id??"",name:e.alias??e.apiModelName,description:e.apiModelName,groupKey:e.aiProviderId,groupLabel:a.get(e.aiProviderId)??e.aiProviderId}))]}));namespaceModelsById=new Map;platformModelsById=new Map;constructor(){this.data$.pipe(U$1(this.destroyRef)).subscribe(({namespace:t,platform:i})=>{this.namespaceModelsById=new Map(t.map(o=>[o.id??"",o])),this.platformModelsById=new Map(i.map(o=>[o.id??"",o]));});}goBack(){this.router.navigate(["/agentos","namespaces"]);}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"ai-models","new"]);}editModel(t){this.router.navigate(["/agentos",this.namespaceId,"ai-models",t.id,"edit"]);}deleteModel(t){this.aiModelController.deleteAiModel(t.id??"").pipe(U$1(this.destroyRef)).subscribe(()=>this.refresh$.next());}resolveModel(t){return this.namespaceModelsById.get(t)??this.platformModelsById.get(t)??null}isPlatformModel(t){return this.platformModelsById.has(t)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=Aw({type:n,selectors:[["agentos-namespace-ai-models"]],decls:5,vars:6,consts:[["aiModelItemTpl",""],["title","AI models","emptyMessage","No AI models configured yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"model","namespaceId","readOnly"],[3,"deleteRequested","editRequested","model","namespaceId","readOnly"]],template:function(i,o){if(i&1&&(vs(0,"ds-entity-list",1),aT(1,"async"),Ag("createRequested",function(){return o.openCreateForm()}),vs(2,"ds-icon-button",2),Ag("action",function(){return o.goBack()}),fl()(),Dg(3,U,1,1,"ng-template",null,0,fT)),i&2){let a=TC(4);Tg("items",uT(1,3,o.modelItems$)??rT(5,V))("showCreate",true)("itemTemplate",a);}},dependencies:[Wn,I,Se,Nb],encapsulation:2})};export{F as NamespaceAiModelsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {m}from'./chunk-CDiCP0cs.js';import {g,ao as V,G,w as we,d8 as M,H as Hi,b as U,a7 as ga,S as ha,z as z$1,a as P,A as Aw,v as vs,l as Ag,W as WC,k as fl,n as eC,X as XE,a5 as yl,a8 as Zg,t as tC,a9 as dC,o as bg,a3 as HI,q as oC,bn as nC,ac as mC,r as Tg,y as Hg,a6 as $I,x as iC,aa as If,ab as wf}from'./main-FZBZNLDT.js';import {o as z,z as ze,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,A as At,Z as Zn,l as Xn,C as Cn,E as En,p as An,q as Ct,V as Vt}from'./chunk-MYEQTQOG.js';import'./chunk-CFAzj-K1.js';import'./chunk-DdIe-Q8z.js';import'./chunk-Bc7OrHjR.js';var ne=(i,t)=>t.id;function ie(i,t){i&1&&(vs(0,"p",5),WC(1,"Loading\u2026"),fl());}function ae(i,t){i&1&&(vs(0,"span",12),WC(1,"Name is required."),fl());}function le(i,t){if(i&1&&(vs(0,"p",32),WC(1),fl(),vs(2,"span",26),WC(3,"Agent Config cannot be changed after creation."),fl()),i&2){let e=mC(3);XE(),Zg(e.resolveAgentConfigName(e.agentConfigIdControl.value));}}function me(i,t){if(i&1&&(vs(0,"option",34),WC(1),fl()),i&2){let e=t.$implicit;Tg("ngValue",e.id),XE(),Zg(e.name);}}function pe(i,t){if(i&1&&(vs(0,"select",33)(1,"option",34),WC(2,"\u2014 None \u2014"),fl(),oC(3,me,2,2,"option",34,ne),fl(),HI(),vs(5,"span",26),WC(6,"Optional. Links this prompt to an agent as a starter. Immutable after creation."),fl()),i&2){let e=mC(3);Tg("formControl",e.agentConfigIdControl),$I(),XE(),Tg("ngValue",null),XE(2),iC(e.availableAgentConfigs());}}function de(i,t){if(i&1&&(vs(0,"div",8)(1,"label",31),WC(2,"Agent Config"),fl(),eC(3,le,4,1)(4,pe,7,2),fl()),i&2){let e=mC(2);XE(3),tC(e.isEditMode()&&e.agentConfigIdControl.value?3:e.isEditMode()?-1:4);}}function ce(i,t){i&1&&(vs(0,"p",19),WC(1,"No parameters defined."),fl());}function se(i,t){i&1&&(vs(0,"span",12),WC(1,"Parameter name is required."),fl());}function _e(i,t){if(i&1){let e=dC();vs(0,"div",20)(1,"div",35)(2,"div",36)(3,"label",37),WC(4,"Name "),vs(5,"span",10),WC(6,"*"),fl()(),bg(7,"input",38),HI(),eC(8,se,2,0,"span",12),fl(),vs(9,"div",36)(10,"label",37),WC(11,"Description"),fl(),bg(12,"input",39),HI(),fl(),vs(13,"div",36)(14,"label",37),WC(15,"Default value"),fl(),bg(16,"input",40),HI(),fl()(),vs(17,"button",41),Ag("click",function(){let m=If(e).$index,d=mC(2);return wf(d.removeParameter(m))}),WC(18," \xD7 "),fl()();}if(i&2){let e=t.$implicit,l=t.$index;Tg("formGroupName",l),XE(3),Tg("for","param-name-"+l),XE(4),Hg("prompt-form__input--invalid",e.controls.name.invalid&&e.controls.name.touched),Tg("id","param-name-"+l),$I(),XE(),tC(e.controls.name.invalid&&e.controls.name.touched?8:-1),XE(2),Tg("for","param-desc-"+l),XE(2),Tg("id","param-desc-"+l),$I(),XE(2),Tg("for","param-default-"+l),XE(2),Tg("id","param-default-"+l),$I();}}function fe(i,t){i&1&&(vs(0,"span",12),WC(1,"Content entry must not be blank."),fl());}function ue(i,t){if(i&1){let e=dC();vs(0,"div",22)(1,"span",42),WC(2),fl(),vs(3,"div",43),bg(4,"textarea",44),HI(),eC(5,fe,2,0,"span",12),fl(),vs(6,"button",45),Ag("click",function(){let m=If(e).$index,d=mC(2);return wf(d.removeContentEntry(m))}),WC(7," \xD7 "),fl()();}if(i&2){let e=t.$implicit,l=t.$index,m=mC(2);XE(2),Zg(l+1),XE(2),Hg("prompt-form__textarea--invalid",e.invalid&&e.touched),Tg("formControlName",l),$I(),XE(),tC(e.invalid&&e.touched?5:-1),XE(),Tg("disabled",m.contentArray.length===1);}}function ge(i,t){if(i&1&&(vs(0,"p",23),WC(1),fl()),i&2){let e=mC(2);XE(),Zg(e.errorMessage());}}function Ce(i,t){i&1&&(vs(0,"span",12),WC(1,"Invalid JSON."),fl());}function xe(i,t){if(i&1){let e=dC();vs(0,"button",46),Ag("click",function(){If(e);let m=mC(2);return wf(m.exportYaml())}),WC(1),fl();}if(i&2){let e=mC(2);Tg("disabled",e.isExporting()),XE(),yl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function ve(i,t){if(i&1){let e=dC();vs(0,"form",7),Ag("ngSubmit",function(){If(e);let m=mC();return wf(m.submit())}),vs(1,"div",8)(2,"label",9),WC(3,"Name "),vs(4,"span",10),WC(5,"*"),fl()(),bg(6,"input",11),HI(),eC(7,ae,2,0,"span",12),fl(),vs(8,"div",8)(9,"label",13),WC(10,"Description"),fl(),bg(11,"input",14),HI(),fl(),eC(12,de,5,1,"div",8),vs(13,"fieldset",15)(14,"legend",16),WC(15," Parameters "),vs(16,"span",17),WC(17,"Named placeholders used in content"),fl()(),vs(18,"p",18),WC(19," Each parameter must have a name and a default value. Use "),vs(20,"code"),WC(21),fl(),WC(22," in content entries to reference them. "),fl(),eC(23,ce,2,0,"p",19),oC(24,_e,19,10,"div",20,nC),vs(26,"button",21),Ag("click",function(){If(e);let m=mC();return wf(m.addParameter())}),WC(27,"+ Add parameter"),fl()(),vs(28,"fieldset",15)(29,"legend",16),WC(30," Content "),vs(31,"span",10),WC(32,"*"),fl(),vs(33,"span",17),WC(34,"Ordered list of text commands"),fl()(),vs(35,"p",18),WC(36," Each content entry is a command. Use "),vs(37,"code"),WC(38,"@AgentName"),fl(),WC(39," to target an agent, "),vs(40,"code"),WC(41,"/promptName param1 param2"),fl(),WC(42," to call another prompt, and "),vs(43,"code"),WC(44),fl(),WC(45," for parameter placeholders. "),fl(),oC(46,ue,8,6,"div",22,nC),vs(48,"button",21),Ag("click",function(){If(e);let m=mC();return wf(m.addContentEntry())}),WC(49,"+ Add content entry"),fl()(),eC(50,ge,2,1,"p",23),vs(51,"div",8)(52,"label",24),WC(53,"External Metadata"),fl(),bg(54,"textarea",25),HI(),eC(55,Ce,2,0,"span",12),vs(56,"span",26),WC(57,"Optional. Opaque JSON object stored as-is. Leave empty to clear."),fl()(),vs(58,"div",27)(59,"button",28),WC(60),fl(),eC(61,xe,2,2,"button",29),vs(62,"button",30),Ag("click",function(){If(e);let m=mC();return wf(m.cancel())}),WC(63,"Cancel"),fl()()();}if(i&2){let e=mC();Tg("formGroup",e.form),XE(6),Hg("prompt-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),Tg("formControl",e.nameControl),$I(),XE(),tC(e.nameControl.invalid&&e.nameControl.touched?7:-1),XE(4),Tg("formControl",e.descriptionControl),$I(),XE(),tC(e.availableAgentConfigs().length>0?12:-1),XE(),Tg("formArrayName","parameters"),XE(8),Zg(e.paramPlaceholderSyntax),XE(2),tC(e.parametersArray.length===0?23:-1),XE(),iC(e.parametersArray.controls),XE(4),Tg("formArrayName","content"),XE(16),Zg(e.paramPlaceholderSyntax),XE(2),iC(e.contentArray.controls),XE(4),tC(e.errorMessage()?50:-1),XE(4),Tg("formControl",e.externalMetadataJsonControl),$I(),XE(),tC(e.externalMetadataJsonControl.invalid&&e.externalMetadataJsonControl.touched?55:-1),XE(4),Tg("disabled",e.form.invalid||e.isSubmitting()),XE(),yl(" ",e.isEditMode()?"Save changes":"Create"," "),XE(),tC(e.isEditMode()?61:-1);}}var re=class i{route=g(V);router=g(G);destroyRef=g(we);promptState=g(m);agentConfigController=g(M);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new z({name:new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(null),agentConfigId:new _t(null),externalMetadataJson:new _t("",{nonNullable:true,validators:[be]}),content:new ze([this.createContentControl()],{validators:[_e$1.required]}),parameters:new ze([])});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get agentConfigIdControl(){return this.form.controls.agentConfigId}get externalMetadataJsonControl(){return this.form.controls.externalMetadataJson}get contentArray(){return this.form.controls.content}get parametersArray(){return this.form.controls.parameters}isEditMode=Hi(false);isSubmitting=Hi(false);isLoading=Hi(false);isExporting=Hi(false);errorMessage=Hi(null);paramPlaceholderSyntax="{{paramName}}";agentConfigs=Hi([]);availableAgentConfigs=this.agentConfigs.asReadonly();existingPrompt=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("promptId");t&&(this.isEditMode.set(true),this.loadPrompt(t)),this.isPlatformMode?this.loadPlatformAgentConfigs():this.namespaceId&&this.loadAgentConfigs(this.namespaceId);}loadPrompt(t){this.isLoading.set(true),this.promptState.getById(t).pipe(U(this.destroyRef)).subscribe({next:e=>{this.existingPrompt=e,this.hydrateForm(e),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadAgentConfigs(t){this.agentConfigController.listByParentAgentConfig(t).pipe(U(this.destroyRef),ga(()=>ha([]))).subscribe(e=>this.agentConfigs.set(e));}loadPlatformAgentConfigs(){this.agentConfigController.listPlatformAgentsAgentConfig().pipe(U(this.destroyRef),ga(()=>ha([]))).subscribe(t=>this.agentConfigs.set(t));}hydrateForm(t){this.nameControl.setValue(t.name),this.descriptionControl.setValue(t.description??null),this.agentConfigIdControl.setValue(t.agentConfigId??null),this.contentArray.clear(),(t.content.length>0?t.content:[""]).forEach(l=>this.contentArray.push(this.createContentControl(l))),this.parametersArray.clear(),(t.parameters??[]).forEach(l=>this.parametersArray.push(this.createParameterGroup(l))),this.externalMetadataJsonControl.setValue(t.externalMetadata?JSON.stringify(t.externalMetadata,null,2):"");}resolveAgentConfigName(t){return this.agentConfigs().find(e=>e.id===t)?.name??t}createContentControl(t=""){return new _t(t,{nonNullable:true,validators:[_e$1.required,_e$1.pattern(/\S/)]})}addContentEntry(){this.contentArray.push(this.createContentControl());}removeContentEntry(t){this.contentArray.length>1&&this.contentArray.removeAt(t);}createParameterGroup(t){return new z({name:new _t(t?.name??"",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(t?.description??null),defaultValue:new _t(t?.defaultValue??"",{nonNullable:true,validators:[_e$1.required]})})}addParameter(){this.parametersArray.push(this.createParameterGroup());}removeParameter(t){this.parametersArray.removeAt(t);}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(true);let t=this.isEditMode()&&!!this.existingPrompt?.id,e=z$1(P({},this.existingPrompt??{}),{namespaceId:this.namespaceId,sourceLanguage:this.existingPrompt?.sourceLanguage??"en",name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,content:this.contentArray.controls.map(d=>d.value.trim()),parameters:this.parametersArray.controls.map(d=>({name:d.controls.name.value.trim(),description:d.controls.description.value?.trim()||void 0,defaultValue:d.controls.defaultValue.value.trim()}))});t||(e.agentConfigId=this.agentConfigIdControl.value||null);let l=this.externalMetadataJsonControl.value.trim();e.externalMetadata=l?JSON.parse(l):null;let m=t?this.promptState.update(this.existingPrompt.id,e):this.promptState.create(e);this.errorMessage.set(null),m.pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:d=>{this.isSubmitting.set(false),d.status===409?this.errorMessage.set(`A prompt named "${e.name}" already exists in this scope.`):d.status===400?this.errorMessage.set(d.error?.message??"Invalid prompt data."):this.errorMessage.set("An unexpected error occurred. Please try again.");}});}exportYaml(){let t=this.existingPrompt?.id;!t||this.isExporting()||(this.isExporting.set(true),this.promptState.exportAsYaml(t).pipe(U(this.destroyRef)).subscribe({next:e=>{let l=new Blob([e],{type:"application/yaml"}),m=URL.createObjectURL(l),d=document.createElement("a");d.href=m,d.download=`${this.existingPrompt?.name??"prompt"}.yaml`,d.click(),URL.revokeObjectURL(m),this.isExporting.set(false);},error:()=>this.isExporting.set(false)}));}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","prompts"]):this.router.navigate(["/agentos",this.namespaceId,"prompts"]);}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=Aw({type:i,selectors:[["agentos-prompt-form"]],decls:10,vars:3,consts:[[1,"prompt-form"],[1,"prompt-form__header"],["type","button","title","Back to prompts",1,"prompt-form__back",3,"click"],[1,"prompt-form__back-icon"],[1,"prompt-form__title"],[1,"prompt-form__loading"],[1,"prompt-form__form",3,"formGroup"],[1,"prompt-form__form",3,"ngSubmit","formGroup"],[1,"prompt-form__field"],["for","prompt-name",1,"prompt-form__label"],["aria-hidden","true"],["id","prompt-name","type","text","placeholder","e.g. Summarise meeting notes","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__field-error"],["for","prompt-description",1,"prompt-form__label"],["id","prompt-description","type","text","placeholder","Optional \u2014 short description of this prompt","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__section",3,"formArrayName"],[1,"prompt-form__label"],[1,"prompt-form__label-hint"],[1,"prompt-form__section-hint"],[1,"prompt-form__empty-hint"],[1,"prompt-form__param-row",3,"formGroupName"],["type","button",1,"prompt-form__add-btn",3,"click"],[1,"prompt-form__content-row"],[1,"prompt-form__error"],["for","prompt-external-metadata",1,"prompt-form__label"],["id","prompt-external-metadata","rows","6","placeholder",'{ "key": "value" }',"spellcheck","false","autocomplete","off",1,"prompt-form__textarea","prompt-form__textarea--code",3,"formControl"],[1,"prompt-form__field-hint"],[1,"prompt-form__actions"],["type","submit",1,"prompt-form__btn","prompt-form__btn--primary",3,"disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"disabled"],["type","button",1,"prompt-form__btn",3,"click"],["for","prompt-agent-config",1,"prompt-form__label"],[1,"prompt-form__readonly-value"],["id","prompt-agent-config",1,"prompt-form__select",3,"formControl"],[3,"ngValue"],[1,"prompt-form__param-fields"],[1,"prompt-form__field","prompt-form__field--inline"],[1,"prompt-form__label",3,"for"],["type","text","placeholder","e.g. language","formControlName","name","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","Optional","formControlName","description","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","e.g. English","formControlName","defaultValue","autocomplete","off",1,"prompt-form__input",3,"id"],["type","button","title","Remove this parameter",1,"prompt-form__remove-btn",3,"click"],[1,"prompt-form__content-index"],[1,"prompt-form__content-field"],["rows","4","placeholder","Enter a command\u2026",1,"prompt-form__textarea",3,"formControlName"],["type","button","title","Remove this entry",1,"prompt-form__remove-btn",3,"click","disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"click","disabled"]],template:function(e,l){e&1&&(vs(0,"div",0)(1,"header",1)(2,"button",2),Ag("click",function(){return l.cancel()}),vs(3,"span",3),WC(4,"\u2190"),fl(),WC(5),fl(),vs(6,"h1",4),WC(7),fl()(),eC(8,ie,2,0,"p",5)(9,ve,64,18,"form",6),fl()),e&2&&(XE(5),yl(" ",l.isPlatformMode?"Platform prompts":"Prompts"," "),XE(2),Zg(l.isEditMode()?"Edit prompt":"New prompt"),XE(),tC(l.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,At,Zn,Xn,Cn,En,An,Ct,Vt],styles:[".prompt-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.prompt-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.prompt-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.prompt-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.prompt-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.prompt-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.prompt-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.prompt-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.prompt-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.prompt-form__field--inline[_ngcontent-%COMP%]{flex:1}.prompt-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.prompt-form__label-hint[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary);margin-left:.375rem}.prompt-form__select[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;cursor:pointer;appearance:auto;transition:border-color .15s ease}.prompt-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__field-hint[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__readonly-value[_ngcontent-%COMP%]{margin:0;padding:.5rem .875rem;border-radius:0;background:var(--color-bg-hover);border:1px solid var(--color-divider);color:var(--color-text);font-size:.9375rem}.prompt-form__input[_ngcontent-%COMP%], .prompt-form__textarea[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.prompt-form__input[_ngcontent-%COMP%]:focus, .prompt-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__input[_ngcontent-%COMP%]::placeholder, .prompt-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.prompt-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:100px;line-height:1.5}.prompt-form__textarea--code[_ngcontent-%COMP%]{font-family:monospace;font-size:.85rem;resize:vertical}.prompt-form__section[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.prompt-form__section-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__empty-hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.prompt-form__content-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-start}.prompt-form__content-field[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.25rem}.prompt-form__content-index[_ngcontent-%COMP%]{flex-shrink:0;width:1.5rem;padding-top:.6rem;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-align:right;-webkit-user-select:none;user-select:none}.prompt-form__param-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-end;padding:.75rem;border-radius:0;background:var(--color-bg-hover)}.prompt-form__param-fields[_ngcontent-%COMP%]{flex:1;display:flex;gap:.75rem;flex-wrap:wrap}.prompt-form__add-btn[_ngcontent-%COMP%]{align-self:flex-start;padding:.4rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-accent);font-size:.875rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__add-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-accent)}.prompt-form__remove-btn[_ngcontent-%COMP%]{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;border-radius:0;border:1px solid transparent;background:transparent;color:var(--color-neutral-500);font-size:1rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.prompt-form__remove-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);border-color:var(--red)}.prompt-form__remove-btn[_ngcontent-%COMP%]:disabled{opacity:.3;cursor:not-allowed}.prompt-form__error[_ngcontent-%COMP%]{margin:0;padding:.625rem .875rem;border-radius:0;background:color-mix(in srgb,var(--red) 10%,transparent);border:1px solid var(--red);color:var(--red);font-size:.875rem;line-height:1.4}.prompt-form__field-error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--red);line-height:1.3}.prompt-form__input--invalid[_ngcontent-%COMP%], .prompt-form__textarea--invalid[_ngcontent-%COMP%]{border-color:var(--red)}.prompt-form__input--invalid[_ngcontent-%COMP%]:focus, .prompt-form__textarea--invalid[_ngcontent-%COMP%]:focus{border-color:var(--red)}.prompt-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.prompt-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.prompt-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.prompt-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.prompt-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}.prompt-form__btn--export[_ngcontent-%COMP%]{border-color:var(--color-divider);color:var(--color-text-secondary)}.prompt-form__btn--export[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}"]})};function be(i){let t=i.value?.trim();if(!t)return null;try{return JSON.parse(t),null}catch(e){return {invalidJson:true}}}export{re as PromptFormComponent};
|
|
1
|
+
import {m}from'./chunk-i073leod.js';import {g,ao as V,G,w as we,d8 as M,H as Hi,b as U,a7 as ga,S as ha,z as z$1,a as P,A as Aw,v as vs,l as Ag,W as WC,k as fl,n as eC,X as XE,a5 as yl,a8 as Zg,t as tC,a9 as dC,o as bg,a3 as HI,q as oC,bn as nC,ac as mC,r as Tg,y as Hg,a6 as $I,x as iC,aa as If,ab as wf}from'./main-RWNNXKZO.js';import {o as z,z as ze,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,A as At,Z as Zn,l as Xn,C as Cn,E as En,p as An,q as Ct,V as Vt}from'./chunk-Di_UVewm.js';import'./chunk-aNzkJAYY.js';import'./chunk-CftdVrmg.js';import'./chunk-C3ey7Pw_.js';var ne=(i,t)=>t.id;function ie(i,t){i&1&&(vs(0,"p",5),WC(1,"Loading\u2026"),fl());}function ae(i,t){i&1&&(vs(0,"span",12),WC(1,"Name is required."),fl());}function le(i,t){if(i&1&&(vs(0,"p",32),WC(1),fl(),vs(2,"span",26),WC(3,"Agent Config cannot be changed after creation."),fl()),i&2){let e=mC(3);XE(),Zg(e.resolveAgentConfigName(e.agentConfigIdControl.value));}}function me(i,t){if(i&1&&(vs(0,"option",34),WC(1),fl()),i&2){let e=t.$implicit;Tg("ngValue",e.id),XE(),Zg(e.name);}}function pe(i,t){if(i&1&&(vs(0,"select",33)(1,"option",34),WC(2,"\u2014 None \u2014"),fl(),oC(3,me,2,2,"option",34,ne),fl(),HI(),vs(5,"span",26),WC(6,"Optional. Links this prompt to an agent as a starter. Immutable after creation."),fl()),i&2){let e=mC(3);Tg("formControl",e.agentConfigIdControl),$I(),XE(),Tg("ngValue",null),XE(2),iC(e.availableAgentConfigs());}}function de(i,t){if(i&1&&(vs(0,"div",8)(1,"label",31),WC(2,"Agent Config"),fl(),eC(3,le,4,1)(4,pe,7,2),fl()),i&2){let e=mC(2);XE(3),tC(e.isEditMode()&&e.agentConfigIdControl.value?3:e.isEditMode()?-1:4);}}function ce(i,t){i&1&&(vs(0,"p",19),WC(1,"No parameters defined."),fl());}function se(i,t){i&1&&(vs(0,"span",12),WC(1,"Parameter name is required."),fl());}function _e(i,t){if(i&1){let e=dC();vs(0,"div",20)(1,"div",35)(2,"div",36)(3,"label",37),WC(4,"Name "),vs(5,"span",10),WC(6,"*"),fl()(),bg(7,"input",38),HI(),eC(8,se,2,0,"span",12),fl(),vs(9,"div",36)(10,"label",37),WC(11,"Description"),fl(),bg(12,"input",39),HI(),fl(),vs(13,"div",36)(14,"label",37),WC(15,"Default value"),fl(),bg(16,"input",40),HI(),fl()(),vs(17,"button",41),Ag("click",function(){let m=If(e).$index,d=mC(2);return wf(d.removeParameter(m))}),WC(18," \xD7 "),fl()();}if(i&2){let e=t.$implicit,l=t.$index;Tg("formGroupName",l),XE(3),Tg("for","param-name-"+l),XE(4),Hg("prompt-form__input--invalid",e.controls.name.invalid&&e.controls.name.touched),Tg("id","param-name-"+l),$I(),XE(),tC(e.controls.name.invalid&&e.controls.name.touched?8:-1),XE(2),Tg("for","param-desc-"+l),XE(2),Tg("id","param-desc-"+l),$I(),XE(2),Tg("for","param-default-"+l),XE(2),Tg("id","param-default-"+l),$I();}}function fe(i,t){i&1&&(vs(0,"span",12),WC(1,"Content entry must not be blank."),fl());}function ue(i,t){if(i&1){let e=dC();vs(0,"div",22)(1,"span",42),WC(2),fl(),vs(3,"div",43),bg(4,"textarea",44),HI(),eC(5,fe,2,0,"span",12),fl(),vs(6,"button",45),Ag("click",function(){let m=If(e).$index,d=mC(2);return wf(d.removeContentEntry(m))}),WC(7," \xD7 "),fl()();}if(i&2){let e=t.$implicit,l=t.$index,m=mC(2);XE(2),Zg(l+1),XE(2),Hg("prompt-form__textarea--invalid",e.invalid&&e.touched),Tg("formControlName",l),$I(),XE(),tC(e.invalid&&e.touched?5:-1),XE(),Tg("disabled",m.contentArray.length===1);}}function ge(i,t){if(i&1&&(vs(0,"p",23),WC(1),fl()),i&2){let e=mC(2);XE(),Zg(e.errorMessage());}}function Ce(i,t){i&1&&(vs(0,"span",12),WC(1,"Invalid JSON."),fl());}function xe(i,t){if(i&1){let e=dC();vs(0,"button",46),Ag("click",function(){If(e);let m=mC(2);return wf(m.exportYaml())}),WC(1),fl();}if(i&2){let e=mC(2);Tg("disabled",e.isExporting()),XE(),yl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function ve(i,t){if(i&1){let e=dC();vs(0,"form",7),Ag("ngSubmit",function(){If(e);let m=mC();return wf(m.submit())}),vs(1,"div",8)(2,"label",9),WC(3,"Name "),vs(4,"span",10),WC(5,"*"),fl()(),bg(6,"input",11),HI(),eC(7,ae,2,0,"span",12),fl(),vs(8,"div",8)(9,"label",13),WC(10,"Description"),fl(),bg(11,"input",14),HI(),fl(),eC(12,de,5,1,"div",8),vs(13,"fieldset",15)(14,"legend",16),WC(15," Parameters "),vs(16,"span",17),WC(17,"Named placeholders used in content"),fl()(),vs(18,"p",18),WC(19," Each parameter must have a name and a default value. Use "),vs(20,"code"),WC(21),fl(),WC(22," in content entries to reference them. "),fl(),eC(23,ce,2,0,"p",19),oC(24,_e,19,10,"div",20,nC),vs(26,"button",21),Ag("click",function(){If(e);let m=mC();return wf(m.addParameter())}),WC(27,"+ Add parameter"),fl()(),vs(28,"fieldset",15)(29,"legend",16),WC(30," Content "),vs(31,"span",10),WC(32,"*"),fl(),vs(33,"span",17),WC(34,"Ordered list of text commands"),fl()(),vs(35,"p",18),WC(36," Each content entry is a command. Use "),vs(37,"code"),WC(38,"@AgentName"),fl(),WC(39," to target an agent, "),vs(40,"code"),WC(41,"/promptName param1 param2"),fl(),WC(42," to call another prompt, and "),vs(43,"code"),WC(44),fl(),WC(45," for parameter placeholders. "),fl(),oC(46,ue,8,6,"div",22,nC),vs(48,"button",21),Ag("click",function(){If(e);let m=mC();return wf(m.addContentEntry())}),WC(49,"+ Add content entry"),fl()(),eC(50,ge,2,1,"p",23),vs(51,"div",8)(52,"label",24),WC(53,"External Metadata"),fl(),bg(54,"textarea",25),HI(),eC(55,Ce,2,0,"span",12),vs(56,"span",26),WC(57,"Optional. Opaque JSON object stored as-is. Leave empty to clear."),fl()(),vs(58,"div",27)(59,"button",28),WC(60),fl(),eC(61,xe,2,2,"button",29),vs(62,"button",30),Ag("click",function(){If(e);let m=mC();return wf(m.cancel())}),WC(63,"Cancel"),fl()()();}if(i&2){let e=mC();Tg("formGroup",e.form),XE(6),Hg("prompt-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),Tg("formControl",e.nameControl),$I(),XE(),tC(e.nameControl.invalid&&e.nameControl.touched?7:-1),XE(4),Tg("formControl",e.descriptionControl),$I(),XE(),tC(e.availableAgentConfigs().length>0?12:-1),XE(),Tg("formArrayName","parameters"),XE(8),Zg(e.paramPlaceholderSyntax),XE(2),tC(e.parametersArray.length===0?23:-1),XE(),iC(e.parametersArray.controls),XE(4),Tg("formArrayName","content"),XE(16),Zg(e.paramPlaceholderSyntax),XE(2),iC(e.contentArray.controls),XE(4),tC(e.errorMessage()?50:-1),XE(4),Tg("formControl",e.externalMetadataJsonControl),$I(),XE(),tC(e.externalMetadataJsonControl.invalid&&e.externalMetadataJsonControl.touched?55:-1),XE(4),Tg("disabled",e.form.invalid||e.isSubmitting()),XE(),yl(" ",e.isEditMode()?"Save changes":"Create"," "),XE(),tC(e.isEditMode()?61:-1);}}var re=class i{route=g(V);router=g(G);destroyRef=g(we);promptState=g(m);agentConfigController=g(M);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new z({name:new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(null),agentConfigId:new _t(null),externalMetadataJson:new _t("",{nonNullable:true,validators:[be]}),content:new ze([this.createContentControl()],{validators:[_e$1.required]}),parameters:new ze([])});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get agentConfigIdControl(){return this.form.controls.agentConfigId}get externalMetadataJsonControl(){return this.form.controls.externalMetadataJson}get contentArray(){return this.form.controls.content}get parametersArray(){return this.form.controls.parameters}isEditMode=Hi(false);isSubmitting=Hi(false);isLoading=Hi(false);isExporting=Hi(false);errorMessage=Hi(null);paramPlaceholderSyntax="{{paramName}}";agentConfigs=Hi([]);availableAgentConfigs=this.agentConfigs.asReadonly();existingPrompt=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("promptId");t&&(this.isEditMode.set(true),this.loadPrompt(t)),this.isPlatformMode?this.loadPlatformAgentConfigs():this.namespaceId&&this.loadAgentConfigs(this.namespaceId);}loadPrompt(t){this.isLoading.set(true),this.promptState.getById(t).pipe(U(this.destroyRef)).subscribe({next:e=>{this.existingPrompt=e,this.hydrateForm(e),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadAgentConfigs(t){this.agentConfigController.listByParentAgentConfig(t).pipe(U(this.destroyRef),ga(()=>ha([]))).subscribe(e=>this.agentConfigs.set(e));}loadPlatformAgentConfigs(){this.agentConfigController.listPlatformAgentsAgentConfig().pipe(U(this.destroyRef),ga(()=>ha([]))).subscribe(t=>this.agentConfigs.set(t));}hydrateForm(t){this.nameControl.setValue(t.name),this.descriptionControl.setValue(t.description??null),this.agentConfigIdControl.setValue(t.agentConfigId??null),this.contentArray.clear(),(t.content.length>0?t.content:[""]).forEach(l=>this.contentArray.push(this.createContentControl(l))),this.parametersArray.clear(),(t.parameters??[]).forEach(l=>this.parametersArray.push(this.createParameterGroup(l))),this.externalMetadataJsonControl.setValue(t.externalMetadata?JSON.stringify(t.externalMetadata,null,2):"");}resolveAgentConfigName(t){return this.agentConfigs().find(e=>e.id===t)?.name??t}createContentControl(t=""){return new _t(t,{nonNullable:true,validators:[_e$1.required,_e$1.pattern(/\S/)]})}addContentEntry(){this.contentArray.push(this.createContentControl());}removeContentEntry(t){this.contentArray.length>1&&this.contentArray.removeAt(t);}createParameterGroup(t){return new z({name:new _t(t?.name??"",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(t?.description??null),defaultValue:new _t(t?.defaultValue??"",{nonNullable:true,validators:[_e$1.required]})})}addParameter(){this.parametersArray.push(this.createParameterGroup());}removeParameter(t){this.parametersArray.removeAt(t);}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(true);let t=this.isEditMode()&&!!this.existingPrompt?.id,e=z$1(P({},this.existingPrompt??{}),{namespaceId:this.namespaceId,sourceLanguage:this.existingPrompt?.sourceLanguage??"en",name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,content:this.contentArray.controls.map(d=>d.value.trim()),parameters:this.parametersArray.controls.map(d=>({name:d.controls.name.value.trim(),description:d.controls.description.value?.trim()||void 0,defaultValue:d.controls.defaultValue.value.trim()}))});t||(e.agentConfigId=this.agentConfigIdControl.value||null);let l=this.externalMetadataJsonControl.value.trim();e.externalMetadata=l?JSON.parse(l):null;let m=t?this.promptState.update(this.existingPrompt.id,e):this.promptState.create(e);this.errorMessage.set(null),m.pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:d=>{this.isSubmitting.set(false),d.status===409?this.errorMessage.set(`A prompt named "${e.name}" already exists in this scope.`):d.status===400?this.errorMessage.set(d.error?.message??"Invalid prompt data."):this.errorMessage.set("An unexpected error occurred. Please try again.");}});}exportYaml(){let t=this.existingPrompt?.id;!t||this.isExporting()||(this.isExporting.set(true),this.promptState.exportAsYaml(t).pipe(U(this.destroyRef)).subscribe({next:e=>{let l=new Blob([e],{type:"application/yaml"}),m=URL.createObjectURL(l),d=document.createElement("a");d.href=m,d.download=`${this.existingPrompt?.name??"prompt"}.yaml`,d.click(),URL.revokeObjectURL(m),this.isExporting.set(false);},error:()=>this.isExporting.set(false)}));}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","prompts"]):this.router.navigate(["/agentos",this.namespaceId,"prompts"]);}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=Aw({type:i,selectors:[["agentos-prompt-form"]],decls:10,vars:3,consts:[[1,"prompt-form"],[1,"prompt-form__header"],["type","button","title","Back to prompts",1,"prompt-form__back",3,"click"],[1,"prompt-form__back-icon"],[1,"prompt-form__title"],[1,"prompt-form__loading"],[1,"prompt-form__form",3,"formGroup"],[1,"prompt-form__form",3,"ngSubmit","formGroup"],[1,"prompt-form__field"],["for","prompt-name",1,"prompt-form__label"],["aria-hidden","true"],["id","prompt-name","type","text","placeholder","e.g. Summarise meeting notes","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__field-error"],["for","prompt-description",1,"prompt-form__label"],["id","prompt-description","type","text","placeholder","Optional \u2014 short description of this prompt","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__section",3,"formArrayName"],[1,"prompt-form__label"],[1,"prompt-form__label-hint"],[1,"prompt-form__section-hint"],[1,"prompt-form__empty-hint"],[1,"prompt-form__param-row",3,"formGroupName"],["type","button",1,"prompt-form__add-btn",3,"click"],[1,"prompt-form__content-row"],[1,"prompt-form__error"],["for","prompt-external-metadata",1,"prompt-form__label"],["id","prompt-external-metadata","rows","6","placeholder",'{ "key": "value" }',"spellcheck","false","autocomplete","off",1,"prompt-form__textarea","prompt-form__textarea--code",3,"formControl"],[1,"prompt-form__field-hint"],[1,"prompt-form__actions"],["type","submit",1,"prompt-form__btn","prompt-form__btn--primary",3,"disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"disabled"],["type","button",1,"prompt-form__btn",3,"click"],["for","prompt-agent-config",1,"prompt-form__label"],[1,"prompt-form__readonly-value"],["id","prompt-agent-config",1,"prompt-form__select",3,"formControl"],[3,"ngValue"],[1,"prompt-form__param-fields"],[1,"prompt-form__field","prompt-form__field--inline"],[1,"prompt-form__label",3,"for"],["type","text","placeholder","e.g. language","formControlName","name","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","Optional","formControlName","description","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","e.g. English","formControlName","defaultValue","autocomplete","off",1,"prompt-form__input",3,"id"],["type","button","title","Remove this parameter",1,"prompt-form__remove-btn",3,"click"],[1,"prompt-form__content-index"],[1,"prompt-form__content-field"],["rows","4","placeholder","Enter a command\u2026",1,"prompt-form__textarea",3,"formControlName"],["type","button","title","Remove this entry",1,"prompt-form__remove-btn",3,"click","disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"click","disabled"]],template:function(e,l){e&1&&(vs(0,"div",0)(1,"header",1)(2,"button",2),Ag("click",function(){return l.cancel()}),vs(3,"span",3),WC(4,"\u2190"),fl(),WC(5),fl(),vs(6,"h1",4),WC(7),fl()(),eC(8,ie,2,0,"p",5)(9,ve,64,18,"form",6),fl()),e&2&&(XE(5),yl(" ",l.isPlatformMode?"Platform prompts":"Prompts"," "),XE(2),Zg(l.isEditMode()?"Edit prompt":"New prompt"),XE(),tC(l.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,At,Zn,Xn,Cn,En,An,Ct,Vt],styles:[".prompt-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.prompt-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.prompt-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.prompt-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.prompt-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.prompt-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.prompt-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.prompt-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.prompt-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.prompt-form__field--inline[_ngcontent-%COMP%]{flex:1}.prompt-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.prompt-form__label-hint[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary);margin-left:.375rem}.prompt-form__select[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;cursor:pointer;appearance:auto;transition:border-color .15s ease}.prompt-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__field-hint[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__readonly-value[_ngcontent-%COMP%]{margin:0;padding:.5rem .875rem;border-radius:0;background:var(--color-bg-hover);border:1px solid var(--color-divider);color:var(--color-text);font-size:.9375rem}.prompt-form__input[_ngcontent-%COMP%], .prompt-form__textarea[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.prompt-form__input[_ngcontent-%COMP%]:focus, .prompt-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__input[_ngcontent-%COMP%]::placeholder, .prompt-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.prompt-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:100px;line-height:1.5}.prompt-form__textarea--code[_ngcontent-%COMP%]{font-family:monospace;font-size:.85rem;resize:vertical}.prompt-form__section[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.prompt-form__section-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__empty-hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.prompt-form__content-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-start}.prompt-form__content-field[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.25rem}.prompt-form__content-index[_ngcontent-%COMP%]{flex-shrink:0;width:1.5rem;padding-top:.6rem;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-align:right;-webkit-user-select:none;user-select:none}.prompt-form__param-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-end;padding:.75rem;border-radius:0;background:var(--color-bg-hover)}.prompt-form__param-fields[_ngcontent-%COMP%]{flex:1;display:flex;gap:.75rem;flex-wrap:wrap}.prompt-form__add-btn[_ngcontent-%COMP%]{align-self:flex-start;padding:.4rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-accent);font-size:.875rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__add-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-accent)}.prompt-form__remove-btn[_ngcontent-%COMP%]{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;border-radius:0;border:1px solid transparent;background:transparent;color:var(--color-neutral-500);font-size:1rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.prompt-form__remove-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);border-color:var(--red)}.prompt-form__remove-btn[_ngcontent-%COMP%]:disabled{opacity:.3;cursor:not-allowed}.prompt-form__error[_ngcontent-%COMP%]{margin:0;padding:.625rem .875rem;border-radius:0;background:color-mix(in srgb,var(--red) 10%,transparent);border:1px solid var(--red);color:var(--red);font-size:.875rem;line-height:1.4}.prompt-form__field-error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--red);line-height:1.3}.prompt-form__input--invalid[_ngcontent-%COMP%], .prompt-form__textarea--invalid[_ngcontent-%COMP%]{border-color:var(--red)}.prompt-form__input--invalid[_ngcontent-%COMP%]:focus, .prompt-form__textarea--invalid[_ngcontent-%COMP%]:focus{border-color:var(--red)}.prompt-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.prompt-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.prompt-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.prompt-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.prompt-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}.prompt-form__btn--export[_ngcontent-%COMP%]{border-color:var(--color-divider);color:var(--color-text-secondary)}.prompt-form__btn--export[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}"]})};function be(i){let t=i.value?.trim();if(!t)return null;try{return JSON.parse(t),null}catch(e){return {invalidJson:true}}}export{re as PromptFormComponent};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {N as Ne,u as ui$1,a as me,f as fi$1,Y as Yt,V as Ve$1,n as ne}from'./chunk-Bc7OrHjR.js';import {g,az as Qt,aQ as As,aY as ks,al as yt,A as Aw,o as bg,v as vs,q as oC,k as fl,T as TC,r as Tg,X as XE,x as iC,D as Fg,I as IC,E as wC,j as Gn$1,l as Ag,W as WC,b_ as FC,C as Cg,a8 as Zg,O as Ot,w as we,cJ as yB,ca as mB,H as Hi$1,m as mT,b as U,bz as vC,bA as DC,ad as Vg,y as Hg,aw as pl,b5 as Sg,ax as hl,n as eC,t as tC,cb as gB,cq as vB,cc as Hf,cu as Lg,cv as CC,cd as Sb,af as Dg,an as ce,cK as Id,cL as Nd,bR as ma,S as ha,cI as Rg,b$ as Ng,cM as Rn$1,aK as Do$1,aL as qn$1,bq as sn,bC as ge,aN as wt$1,bD as vt,br as Cl,bK as pe,aR as K,cN as is,a as P,aS as Ut,cO as Bt,bQ as bd,bO as Yy,bt as Ve,c1 as ME,z as z$1,aZ as YT,bH as Eg,b4 as nT,aV as w,bu as kg,aU as U$1,bv as St,aW as D,bw as on,by as Oi$1,bE as X,cP as q,cQ as X$1,ac as mC,a9 as dC,aa as If,ab as wf,a5 as yl,cR as Yt$1,cS as Gp,bL as mr,aO as G,ae as Ot$1,aA as sn$1,bV as Y,cT as pi,cU as yg,aC as Cu,bx as am,cA as on$1,c7 as QT,ah as rT,a4 as rC,c8 as kf,bs as Qn$2,ap as Vy,bW as Pt,bY as X$2,bZ as xt,cV as YI,cC as Ce,a3 as HI,a6 as $I,bn as nC,c2 as kt,bI as dr,a_ as XC,b3 as oT,a$ as Yg,cg as Mg,cW as yr,cX as tt$1,aX as ft$1,cy as Xr,ag as fT}from'./main-FZBZNLDT.js';import {w as wt,j as Yn$1,k as _t$1,n as ni,l as Xn$1,E as En$1,z as ze,Q as Qn$1,e as ei,Y as Ye,f as fn,a as wt$2,A as At,Z as Zn$1,C as Cn}from'./chunk-MYEQTQOG.js';var ii=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],oi=["mat-icon, [matMenuItemIcon]","*"];function ai(n,i){n&1&&(kf(),vs(0,"svg",2),bg(1,"polygon",3),fl());}var ri=["*"];function si(n,i){if(n&1){let e=dC();pl(0,"div",0),Rg("click",function(){If(e);let o=mC();return wf(o.closed.emit("click"))})("animationstart",function(o){If(e);let a=mC();return wf(a._onAnimationStart(o.animationName))})("animationend",function(o){If(e);let a=mC();return wf(a._onAnimationDone(o.animationName))})("animationcancel",function(o){If(e);let a=mC();return wf(a._onAnimationDone(o.animationName))}),pl(1,"div",1),DC(2),hl()();}if(n&2){let e=mC();FC(e._classList),Hg("mat-menu-panel-animations-disabled",e._animationsDisabled)("mat-menu-panel-exit-animation",e._panelAnimationState==="void")("mat-menu-panel-animating",e._isAnimating()),Ng("id",e.panelId),Cg("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null);}}var mt=new w("MAT_MENU_PANEL"),Be=(()=>{class n{_elementRef=g(Qt);_document=g(U$1);_focusMonitor=g(St);_parentMenu=g(mt,{optional:true});_changeDetectorRef=g(Cl);role="menuitem";disabled=false;disableRipple=false;_hovered=new ce;_focused=new ce;_highlighted=false;_triggersSubmenu=false;constructor(){g(D).load(on),this._parentMenu?.addItem?.(this);}focus(e,t){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,t):this._getHostElement().focus(t),this._focused.next(this);}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,false);}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete();}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation());}_handleMouseEnter(){this._hovered.next(this);}getLabel(){let e=this._elementRef.nativeElement.cloneNode(true),t=e.querySelectorAll("mat-icon, .material-icons");for(let o=0;o<t.length;o++)t[o].remove();return e.textContent?.trim()||""}_setHighlighted(e){this._highlighted=e,this._changeDetectorRef.markForCheck();}_setTriggersSubmenu(e){this._triggersSubmenu=e,this._changeDetectorRef.markForCheck();}_hasFocus(){return this._document&&this._document.activeElement===this._getHostElement()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=Aw({type:n,selectors:[["","mat-menu-item",""]],hostAttrs:[1,"mat-mdc-menu-item","mat-focus-indicator"],hostVars:8,hostBindings:function(t,o){t&1&&Ag("click",function(m){return o._checkDisabled(m)})("mouseenter",function(){return o._handleMouseEnter()}),t&2&&(Cg("role",o.role)("tabindex",o._getTabIndex())("aria-disabled",o.disabled)("disabled",o.disabled||null),Hg("mat-mdc-menu-item-highlighted",o._highlighted)("mat-mdc-menu-item-submenu-trigger",o._triggersSubmenu));},inputs:{role:"role",disabled:[2,"disabled","disabled",YT],disableRipple:[2,"disableRipple","disableRipple",YT]},exportAs:["matMenuItem"],ngContentSelectors:oi,decls:5,vars:3,consts:[[1,"mat-mdc-menu-item-text"],["matRipple","",1,"mat-mdc-menu-ripple",3,"matRippleDisabled","matRippleTrigger"],["viewBox","0 0 5 10","focusable","false","aria-hidden","true",1,"mat-mdc-menu-submenu-icon"],["points","0,0 5,5 0,10"]],template:function(t,o){t&1&&(vC(ii),DC(0),vs(1,"span",0),DC(2,1),fl(),bg(3,"div",1),eC(4,ai,2,0,":svg:svg",2)),t&2&&(XE(3),Tg("matRippleDisabled",o.disableRipple||o.disabled)("matRippleTrigger",o._getHostElement()),XE(),tC(o._triggersSubmenu?4:-1));},dependencies:[Oi$1],encapsulation:2})}return n})();var Sn=new w("MatMenuContent"),_a=(()=>{class n{_template=g(dr);_appRef=g(yr);_injector=g(pe);_viewContainerRef=g(mr);_document=g(U$1);_changeDetectorRef=g(Cl);_portal;_outlet;_attached=new ce;attach(e={}){this._portal||(this._portal=new Y(this._template,this._viewContainerRef)),this.detach(),this._outlet||(this._outlet=new tt$1(this._document.createElement("div"),this._appRef,this._injector));let t=this._template.elementRef.nativeElement;t.parentNode.insertBefore(this._outlet.outletElement,t),this._changeDetectorRef.markForCheck(),this._portal.attach(this._outlet,e),this._attached.next();}detach(){this._portal?.isAttached&&this._portal.detach();}ngOnDestroy(){this.detach(),this._outlet?.dispose();}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ks({type:n,selectors:[["ng-template","matMenuContent",""]],features:[nT([{provide:Sn,useExisting:n}])]})}return n})(),li=new w("mat-menu-default-options",{providedIn:"root",factory:()=>({overlapTrigger:false,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"})}),dt="_mat-menu-enter",Ze="_mat-menu-exit",De=(()=>{class n{_elementRef=g(Qt);_changeDetectorRef=g(Cl);_injector=g(pe);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled=K();_allItems;_directDescendantItems=new is;_classList={};_panelAnimationState="void";_animationDone=new ce;_isAnimating=Hi$1(false);parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses();}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses();}templateRef;items;lazyContent;overlapTrigger=false;hasBackdrop;get panelClass(){return this._previousPanelClass}set panelClass(e){let t=this._previousPanelClass,o=P({},this._classList);t&&t.length&&t.split(" ").forEach(a=>{o[a]=false;}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(a=>{o[a]=true;}),this._elementRef.nativeElement.className=""),this._classList=o;}_previousPanelClass="";get classList(){return this.panelClass}set classList(e){this.panelClass=e;}closed=new yt;close=this.closed;panelId=g(Ut).getId("mat-menu-panel-");constructor(){let e=g(li);this.overlayPanelClass=e.overlayPanelClass||"",this._xPosition=e.xPosition,this._yPosition=e.yPosition,this.backdropClass=e.backdropClass,this.overlapTrigger=e.overlapTrigger,this.hasBackdrop=e.hasBackdrop;}ngOnInit(){this.setPositionClasses();}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new Bt(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(bd(this._directDescendantItems),ma(e=>Yy(...e.map(t=>t._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{let t=this._keyManager;if(this._panelAnimationState==="enter"&&t.activeItem?._hasFocus()){let o=e.toArray(),a=Math.max(0,Math.min(o.length-1,t.activeItemIndex||0));o[a]&&!o[a].disabled?t.setActiveItem(a):t.setNextItemActive();}});}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout);}_hovered(){return this._directDescendantItems.changes.pipe(bd(this._directDescendantItems),ma(t=>Yy(...t.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){let t=e.keyCode,o=this._keyManager;switch(t){case 27:Ve(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&this.direction==="ltr"&&this.closed.emit("keydown");break;case 39:this.parentMenu&&this.direction==="rtl"&&this.closed.emit("keydown");break;default:(t===38||t===40)&&o.setFocusOrigin("keyboard"),o.onKeydown(e);return}}focusFirstItem(e="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=ME(()=>{let t=this._resolvePanel();if(!t||!t.contains(document.activeElement)){let o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&t&&t.focus();}},{injector:this._injector});}resetActiveItem(){this._keyManager.setActiveItem(-1);}setElevation(e){}setPositionClasses(e=this.xPosition,t=this.yPosition){this._classList=z$1(P({},this._classList),{"mat-menu-before":e==="before","mat-menu-after":e==="after","mat-menu-above":t==="above","mat-menu-below":t==="below"}),this._changeDetectorRef.markForCheck();}_onAnimationDone(e){let t=e===Ze;(t||e===dt)&&(t&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(t?"void":"enter"),this._isAnimating.set(false));}_onAnimationStart(e){(e===dt||e===Ze)&&this._isAnimating.set(true);}_setIsOpen(e){if(this._panelAnimationState=e?"enter":"void",e){if(this._keyManager.activeItemIndex===0){let t=this._resolvePanel();t&&(t.scrollTop=0);}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(Ze),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(e?dt:Ze);}),this._changeDetectorRef.markForCheck();}_updateDirectDescendants(){this._allItems.changes.pipe(bd(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(t=>t._parentMenu===this)),this._directDescendantItems.notifyOnChanges();});}_resolvePanel(){let e=null;return this._directDescendantItems.length&&(e=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),e}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=Aw({type:n,selectors:[["mat-menu"]],contentQueries:function(t,o,a){if(t&1&&kg(a,Sn,5)(a,Be,5)(a,Be,4),t&2){let m;IC(m=wC())&&(o.lazyContent=m.first),IC(m=wC())&&(o._allItems=m),IC(m=wC())&&(o.items=m);}},viewQuery:function(t,o){if(t&1&&Fg(dr,5),t&2){let a;IC(a=wC())&&(o.templateRef=a.first);}},hostVars:3,hostBindings:function(t,o){t&2&&Cg("aria-label",null)("aria-labelledby",null)("aria-describedby",null);},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",YT],hasBackdrop:[2,"hasBackdrop","hasBackdrop",e=>e==null?null:YT(e)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[nT([{provide:mt,useExisting:n}])],ngContentSelectors:ri,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(t,o){t&1&&(vC(),Eg(0,si,3,12,"ng-template"));},styles:[`mat-menu {
|
|
1
|
+
import {N as Ne,u as ui$1,a as me,f as fi$1,Y as Yt,V as Ve$1,n as ne}from'./chunk-C3ey7Pw_.js';import {g,az as Qt,aQ as As,aY as ks,al as yt,A as Aw,o as bg,v as vs,q as oC,k as fl,T as TC,r as Tg,X as XE,x as iC,D as Fg,I as IC,E as wC,j as Gn$1,l as Ag,W as WC,b_ as FC,C as Cg,a8 as Zg,O as Ot,w as we,cJ as yB,ca as mB,H as Hi$1,m as mT,b as U,bz as vC,bA as DC,ad as Vg,y as Hg,aw as pl,b5 as Sg,ax as hl,n as eC,t as tC,cb as gB,cq as vB,cc as Hf,cu as Lg,cv as CC,cd as Sb,af as Dg,an as ce,cK as Id,cL as Nd,bR as ma,S as ha,cI as Rg,b$ as Ng,cM as Rn$1,aK as Do$1,aL as qn$1,bq as sn,bC as ge,aN as wt$1,bD as vt,br as Cl,bK as pe,aR as K,cN as is,a as P,aS as Ut,cO as Bt,bQ as bd,bO as Yy,bt as Ve,c1 as ME,z as z$1,aZ as YT,bH as Eg,b4 as nT,aV as w,bu as kg,aU as U$1,bv as St,aW as D,bw as on,by as Oi$1,bE as X,cP as q,cQ as X$1,ac as mC,a9 as dC,aa as If,ab as wf,a5 as yl,cR as Yt$1,cS as Gp,bL as mr,aO as G,ae as Ot$1,aA as sn$1,bV as Y,cT as pi,cU as yg,aC as Cu,bx as am,cA as on$1,c7 as QT,ah as rT,a4 as rC,c8 as kf,bs as Qn$2,ap as Vy,bW as Pt,bY as X$2,bZ as xt,cV as YI,cC as Ce,a3 as HI,a6 as $I,bn as nC,c2 as kt,bI as dr,a_ as XC,b3 as oT,a$ as Yg,cg as Mg,cW as yr,cX as tt$1,aX as ft$1,cy as Xr,ag as fT}from'./main-RWNNXKZO.js';import {w as wt,j as Yn$1,k as _t$1,n as ni,l as Xn$1,E as En$1,z as ze,Q as Qn$1,e as ei,Y as Ye,f as fn,a as wt$2,A as At,Z as Zn$1,C as Cn}from'./chunk-Di_UVewm.js';var ii=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],oi=["mat-icon, [matMenuItemIcon]","*"];function ai(n,i){n&1&&(kf(),vs(0,"svg",2),bg(1,"polygon",3),fl());}var ri=["*"];function si(n,i){if(n&1){let e=dC();pl(0,"div",0),Rg("click",function(){If(e);let o=mC();return wf(o.closed.emit("click"))})("animationstart",function(o){If(e);let a=mC();return wf(a._onAnimationStart(o.animationName))})("animationend",function(o){If(e);let a=mC();return wf(a._onAnimationDone(o.animationName))})("animationcancel",function(o){If(e);let a=mC();return wf(a._onAnimationDone(o.animationName))}),pl(1,"div",1),DC(2),hl()();}if(n&2){let e=mC();FC(e._classList),Hg("mat-menu-panel-animations-disabled",e._animationsDisabled)("mat-menu-panel-exit-animation",e._panelAnimationState==="void")("mat-menu-panel-animating",e._isAnimating()),Ng("id",e.panelId),Cg("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null);}}var mt=new w("MAT_MENU_PANEL"),Be=(()=>{class n{_elementRef=g(Qt);_document=g(U$1);_focusMonitor=g(St);_parentMenu=g(mt,{optional:true});_changeDetectorRef=g(Cl);role="menuitem";disabled=false;disableRipple=false;_hovered=new ce;_focused=new ce;_highlighted=false;_triggersSubmenu=false;constructor(){g(D).load(on),this._parentMenu?.addItem?.(this);}focus(e,t){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,t):this._getHostElement().focus(t),this._focused.next(this);}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,false);}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete();}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation());}_handleMouseEnter(){this._hovered.next(this);}getLabel(){let e=this._elementRef.nativeElement.cloneNode(true),t=e.querySelectorAll("mat-icon, .material-icons");for(let o=0;o<t.length;o++)t[o].remove();return e.textContent?.trim()||""}_setHighlighted(e){this._highlighted=e,this._changeDetectorRef.markForCheck();}_setTriggersSubmenu(e){this._triggersSubmenu=e,this._changeDetectorRef.markForCheck();}_hasFocus(){return this._document&&this._document.activeElement===this._getHostElement()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=Aw({type:n,selectors:[["","mat-menu-item",""]],hostAttrs:[1,"mat-mdc-menu-item","mat-focus-indicator"],hostVars:8,hostBindings:function(t,o){t&1&&Ag("click",function(m){return o._checkDisabled(m)})("mouseenter",function(){return o._handleMouseEnter()}),t&2&&(Cg("role",o.role)("tabindex",o._getTabIndex())("aria-disabled",o.disabled)("disabled",o.disabled||null),Hg("mat-mdc-menu-item-highlighted",o._highlighted)("mat-mdc-menu-item-submenu-trigger",o._triggersSubmenu));},inputs:{role:"role",disabled:[2,"disabled","disabled",YT],disableRipple:[2,"disableRipple","disableRipple",YT]},exportAs:["matMenuItem"],ngContentSelectors:oi,decls:5,vars:3,consts:[[1,"mat-mdc-menu-item-text"],["matRipple","",1,"mat-mdc-menu-ripple",3,"matRippleDisabled","matRippleTrigger"],["viewBox","0 0 5 10","focusable","false","aria-hidden","true",1,"mat-mdc-menu-submenu-icon"],["points","0,0 5,5 0,10"]],template:function(t,o){t&1&&(vC(ii),DC(0),vs(1,"span",0),DC(2,1),fl(),bg(3,"div",1),eC(4,ai,2,0,":svg:svg",2)),t&2&&(XE(3),Tg("matRippleDisabled",o.disableRipple||o.disabled)("matRippleTrigger",o._getHostElement()),XE(),tC(o._triggersSubmenu?4:-1));},dependencies:[Oi$1],encapsulation:2})}return n})();var Sn=new w("MatMenuContent"),_a=(()=>{class n{_template=g(dr);_appRef=g(yr);_injector=g(pe);_viewContainerRef=g(mr);_document=g(U$1);_changeDetectorRef=g(Cl);_portal;_outlet;_attached=new ce;attach(e={}){this._portal||(this._portal=new Y(this._template,this._viewContainerRef)),this.detach(),this._outlet||(this._outlet=new tt$1(this._document.createElement("div"),this._appRef,this._injector));let t=this._template.elementRef.nativeElement;t.parentNode.insertBefore(this._outlet.outletElement,t),this._changeDetectorRef.markForCheck(),this._portal.attach(this._outlet,e),this._attached.next();}detach(){this._portal?.isAttached&&this._portal.detach();}ngOnDestroy(){this.detach(),this._outlet?.dispose();}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ks({type:n,selectors:[["ng-template","matMenuContent",""]],features:[nT([{provide:Sn,useExisting:n}])]})}return n})(),li=new w("mat-menu-default-options",{providedIn:"root",factory:()=>({overlapTrigger:false,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"})}),dt="_mat-menu-enter",Ze="_mat-menu-exit",De=(()=>{class n{_elementRef=g(Qt);_changeDetectorRef=g(Cl);_injector=g(pe);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled=K();_allItems;_directDescendantItems=new is;_classList={};_panelAnimationState="void";_animationDone=new ce;_isAnimating=Hi$1(false);parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses();}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses();}templateRef;items;lazyContent;overlapTrigger=false;hasBackdrop;get panelClass(){return this._previousPanelClass}set panelClass(e){let t=this._previousPanelClass,o=P({},this._classList);t&&t.length&&t.split(" ").forEach(a=>{o[a]=false;}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(a=>{o[a]=true;}),this._elementRef.nativeElement.className=""),this._classList=o;}_previousPanelClass="";get classList(){return this.panelClass}set classList(e){this.panelClass=e;}closed=new yt;close=this.closed;panelId=g(Ut).getId("mat-menu-panel-");constructor(){let e=g(li);this.overlayPanelClass=e.overlayPanelClass||"",this._xPosition=e.xPosition,this._yPosition=e.yPosition,this.backdropClass=e.backdropClass,this.overlapTrigger=e.overlapTrigger,this.hasBackdrop=e.hasBackdrop;}ngOnInit(){this.setPositionClasses();}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new Bt(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(bd(this._directDescendantItems),ma(e=>Yy(...e.map(t=>t._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{let t=this._keyManager;if(this._panelAnimationState==="enter"&&t.activeItem?._hasFocus()){let o=e.toArray(),a=Math.max(0,Math.min(o.length-1,t.activeItemIndex||0));o[a]&&!o[a].disabled?t.setActiveItem(a):t.setNextItemActive();}});}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout);}_hovered(){return this._directDescendantItems.changes.pipe(bd(this._directDescendantItems),ma(t=>Yy(...t.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){let t=e.keyCode,o=this._keyManager;switch(t){case 27:Ve(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&this.direction==="ltr"&&this.closed.emit("keydown");break;case 39:this.parentMenu&&this.direction==="rtl"&&this.closed.emit("keydown");break;default:(t===38||t===40)&&o.setFocusOrigin("keyboard"),o.onKeydown(e);return}}focusFirstItem(e="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=ME(()=>{let t=this._resolvePanel();if(!t||!t.contains(document.activeElement)){let o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&t&&t.focus();}},{injector:this._injector});}resetActiveItem(){this._keyManager.setActiveItem(-1);}setElevation(e){}setPositionClasses(e=this.xPosition,t=this.yPosition){this._classList=z$1(P({},this._classList),{"mat-menu-before":e==="before","mat-menu-after":e==="after","mat-menu-above":t==="above","mat-menu-below":t==="below"}),this._changeDetectorRef.markForCheck();}_onAnimationDone(e){let t=e===Ze;(t||e===dt)&&(t&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(t?"void":"enter"),this._isAnimating.set(false));}_onAnimationStart(e){(e===dt||e===Ze)&&this._isAnimating.set(true);}_setIsOpen(e){if(this._panelAnimationState=e?"enter":"void",e){if(this._keyManager.activeItemIndex===0){let t=this._resolvePanel();t&&(t.scrollTop=0);}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(Ze),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(e?dt:Ze);}),this._changeDetectorRef.markForCheck();}_updateDirectDescendants(){this._allItems.changes.pipe(bd(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(t=>t._parentMenu===this)),this._directDescendantItems.notifyOnChanges();});}_resolvePanel(){let e=null;return this._directDescendantItems.length&&(e=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),e}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=Aw({type:n,selectors:[["mat-menu"]],contentQueries:function(t,o,a){if(t&1&&kg(a,Sn,5)(a,Be,5)(a,Be,4),t&2){let m;IC(m=wC())&&(o.lazyContent=m.first),IC(m=wC())&&(o._allItems=m),IC(m=wC())&&(o.items=m);}},viewQuery:function(t,o){if(t&1&&Fg(dr,5),t&2){let a;IC(a=wC())&&(o.templateRef=a.first);}},hostVars:3,hostBindings:function(t,o){t&2&&Cg("aria-label",null)("aria-labelledby",null)("aria-describedby",null);},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",YT],hasBackdrop:[2,"hasBackdrop","hasBackdrop",e=>e==null?null:YT(e)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[nT([{provide:mt,useExisting:n}])],ngContentSelectors:ri,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(t,o){t&1&&(vC(),Eg(0,si,3,12,"ng-template"));},styles:[`mat-menu {
|
|
2
2
|
display: none;
|
|
3
3
|
}
|
|
4
4
|
|
|
@@ -190,7 +190,7 @@ import {N as Ne,u as ui$1,a as me,f as fi$1,Y as Yt,V as Ve$1,n as ne}from'./chu
|
|
|
190
190
|
position: absolute;
|
|
191
191
|
pointer-events: none;
|
|
192
192
|
}
|
|
193
|
-
`],encapsulation:2})}return n})(),ci=new w("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{let n=g(pe);return ()=>kt(n)}});var ke=new WeakMap,di=(()=>{class n{_canHaveBackdrop;_element=g(Qt);_viewContainerRef=g(mr);_menuItemInstance=g(Be,{optional:true,self:true});_dir=g(Qn$2,{optional:true});_focusMonitor=g(St);_ngZone=g(G);_injector=g(pe);_scrollStrategy=g(ci);_changeDetectorRef=g(Cl);_animationsDisabled=K();_portal;_overlayRef=null;_menuOpen=false;_closingActionsSubscription=X.EMPTY;_menuCloseSubscription=X.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_openedBy=void 0;get _menu(){return this._menuInternal}set _menu(e){e!==this._menuInternal&&(this._menuInternal=e,this._menuCloseSubscription.unsubscribe(),e?(this._parentMaterialMenu,this._menuCloseSubscription=e.close.subscribe(t=>{this._destroyMenu(t),(t==="click"||t==="tab")&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(t);})):this._destroyMenu(),this._menuItemInstance?._setTriggersSubmenu(this._triggersSubmenu()));}_menuInternal=null;constructor(e){this._canHaveBackdrop=e;let t=g(mt,{optional:true});this._parentMaterialMenu=t instanceof De?t:void 0;}ngOnDestroy(){this._menu&&this._ownsMenu(this._menu)&&ke.delete(this._menu),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null);}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_triggersSubmenu(){return !!(this._menuItemInstance&&this._parentMaterialMenu&&this._menu)}_closeMenu(){this._menu?.close.emit();}_openMenu(e){if(this._triggerIsAriaDisabled())return;let t=this._menu;if(this._menuOpen||!t)return;this._pendingRemoval?.unsubscribe();let o=ke.get(t);ke.set(t,this),o&&o!==this&&o._closeMenu();let a=this._createOverlay(t),m=a.getConfig(),ee=m.positionStrategy;this._setPosition(t,ee),this._canHaveBackdrop?m.hasBackdrop=t.hasBackdrop==null?!this._triggersSubmenu():t.hasBackdrop:m.hasBackdrop=t.hasBackdrop??false,a.hasAttached()||(a.attach(this._getPortal(t)),t.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this._closeMenu()),t.parentMenu=this._triggersSubmenu()?this._parentMaterialMenu:void 0,t.direction=this.dir,e&&t.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(true),t instanceof De&&(t._setIsOpen(true),t._directDescendantItems.changes.pipe(Vy(t.close)).subscribe(()=>{ee.withLockedPosition(false).reapplyLastPosition(),ee.withLockedPosition(true);}));}focus(e,t){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,t):this._element.nativeElement.focus(t);}_destroyMenu(e){let t=this._overlayRef,o=this._menu;!t||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),o instanceof De&&this._ownsMenu(o)?(this._pendingRemoval=o._animationDone.pipe(sn$1(1)).subscribe(()=>{t.detach(),ke.has(o)||o.lazyContent?.detach();}),o._setIsOpen(false)):(t.detach(),o?.lazyContent?.detach()),o&&this._ownsMenu(o)&&ke.delete(o),this.restoreFocus&&(e==="keydown"||!this._openedBy||!this._triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(false));}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this._triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck());}_createOverlay(e){if(!this._overlayRef){let t=this._getOverlayConfig(e);this._subscribeToPositions(e,t.positionStrategy),this._overlayRef=Pt(this._injector,t),this._overlayRef.keydownEvents().subscribe(o=>{this._menu instanceof De&&this._menu._handleKeydown(o);});}return this._overlayRef}_getOverlayConfig(e){return new X$2({positionStrategy:xt(this._injector,this._getOverlayOrigin()).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir||"ltr",disableAnimations:this._animationsDisabled})}_subscribeToPositions(e,t){e.setPositionClasses&&t.positionChanges.subscribe(o=>{this._ngZone.run(()=>{let a=o.connectionPair.overlayX==="start"?"after":"before",m=o.connectionPair.overlayY==="top"?"below":"above";e.setPositionClasses(a,m);});});}_setPosition(e,t){let[o,a]=e.xPosition==="before"?["end","start"]:["start","end"],[m,ee]=e.yPosition==="above"?["bottom","top"]:["top","bottom"],[ot,at]=[m,ee],[rt,st]=[o,a],Ee=0;if(this._triggersSubmenu()){if(st=o=e.xPosition==="before"?"start":"end",a=rt=o==="end"?"start":"end",this._parentMaterialMenu){if(this._parentInnerPadding==null){let yt=this._parentMaterialMenu.items.first;this._parentInnerPadding=yt?yt._getHostElement().offsetTop:0;}Ee=m==="bottom"?this._parentInnerPadding:-this._parentInnerPadding;}}else e.overlapTrigger||(ot=m==="top"?"bottom":"top",at=ee==="top"?"bottom":"top");t.withPositions([{originX:o,originY:ot,overlayX:rt,overlayY:m,offsetY:Ee},{originX:a,originY:ot,overlayX:st,overlayY:m,offsetY:Ee},{originX:o,originY:at,overlayX:rt,overlayY:ee,offsetY:-Ee},{originX:a,originY:at,overlayX:st,overlayY:ee,offsetY:-Ee}]);}_menuClosingActions(){let e=this._getOutsideClickStream(this._overlayRef),t=this._overlayRef.detachments(),o=this._parentMaterialMenu?this._parentMaterialMenu.closed:ha(),a=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Ot$1(m=>this._menuOpen&&m!==this._menuItemInstance)):ha();return Yy(e,o,a,t)}_getPortal(e){return (!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new Y(e.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(e){return ke.get(e)===this}_triggerIsAriaDisabled(){return YT(this._element.nativeElement.getAttribute("aria-disabled"))}static \u0275fac=function(t){YI();};static \u0275dir=ks({type:n})}return n})(),En=(()=>{class n extends di{_cleanupTouchstart;_hoverSubscription=X.EMPTY;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e;}get menu(){return this._menu}set menu(e){this._menu=e;}menuData;restoreFocus=true;menuOpened=new yt;onMenuOpen=this.menuOpened;menuClosed=new yt;onMenuClose=this.menuClosed;constructor(){super(true);let e=g(As);this._cleanupTouchstart=e.listen(this._element.nativeElement,"touchstart",t=>{q(t)||(this._openedBy="touch");},{passive:true});}triggersSubmenu(){return super._triggersSubmenu()}toggleMenu(){return this.menuOpen?this.closeMenu():this.openMenu()}openMenu(){this._openMenu(true);}closeMenu(){this._closeMenu();}updatePosition(){this._overlayRef?.updatePosition();}ngAfterContentInit(){this._handleHover();}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTouchstart(),this._hoverSubscription.unsubscribe();}_getOverlayOrigin(){return this._element}_getOutsideClickStream(e){return e.backdropClick()}_handleMousedown(e){X$1(e)||(this._openedBy=e.button===0?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault());}_handleKeydown(e){let t=e.keyCode;(t===13||t===32)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(t===39&&this.dir==="ltr"||t===37&&this.dir==="rtl")&&(this._openedBy="keyboard",this.openMenu());}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu();}_handleHover(){this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().subscribe(e=>{e===this._menuItemInstance&&!e.disabled&&this._parentMaterialMenu?._panelAnimationState!=="void"&&(this._openedBy="mouse",this._openMenu(false));}));}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ks({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(t,o){t&1&&Ag("click",function(m){return o._handleClick(m)})("mousedown",function(m){return o._handleMousedown(m)})("keydown",function(m){return o._handleKeydown(m)}),t&2&&Cg("aria-haspopup",o.menu?"menu":null)("aria-expanded",o.menuOpen)("aria-controls",o.menuOpen?o.menu?.panelId:null);},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],features:[yg]})}return n})();var In=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275mod=Do$1({type:n});static \u0275inj=qn$1({imports:[sn,ge,wt$1,vt]})}return n})();var Se=class n{icon;title="";disabled=false;variant="default";action=new yt;onClick(){this.disabled||this.action.emit();}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Aw({type:n,selectors:[["ds-icon-button"]],inputs:{icon:"icon",title:"title",disabled:"disabled",variant:"variant"},outputs:{action:"action"},decls:3,vars:6,consts:[["mat-icon-button","","type","button",3,"click","disabled","title"]],template:function(e,t){e&1&&(vs(0,"button",0),Ag("click",function(){return t.onClick()}),vs(1,"mat-icon"),WC(2),fl()()),e&2&&(FC("icon-button variant-"+t.variant),Tg("disabled",t.disabled)("title",t.title),Cg("aria-label",t.title||null),XE(2),Zg(t.icon));},dependencies:[Gn$1,wt],styles:['@charset "UTF-8";.icon-button[_ngcontent-%COMP%]{transition:color .2s ease,background .2s ease,transform .12s ease,opacity .2s ease}.icon-button[_ngcontent-%COMP%]:hover:not(:disabled){transform:scale(1.1)}.icon-button[_ngcontent-%COMP%]:active:not(:disabled){transform:scale(1.15)}.icon-button[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.icon-button.variant-default[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73)}.icon-button.variant-default[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-primary, #007aff)}.icon-button.variant-primary[_ngcontent-%COMP%]:hover:not(:disabled), .icon-button.variant-danger[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-text-inverse, #ffffff);box-shadow:0 4px 14px var(--icon-button-shadow-color);background:var(--icon-button-accent-color)}.icon-button.variant-primary[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-primary, #007aff);--icon-button-shadow-color: rgba(0, 122, 255, .3);color:var(--color-primary, #007aff)}.icon-button.variant-danger[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-error, #ff3b30);--icon-button-shadow-color: rgba(255, 59, 48, .3);color:var(--color-error, #ff3b30)}'],changeDetection:1})};var On=(n,i)=>i.uid;function ui(n,i){n&1&&(vs(0,"span",2),WC(1,"*"),fl());}function hi(n,i){if(n&1&&(vs(0,"p",3),WC(1),fl()),n&2){let e=mC();XE(),Zg(e.description);}}function fi(n,i){if(n&1&&(bg(0,"input",4),HI()),n&2){let e=mC();Tg("type",e.htmlInputType)("id",e.inputId)("formControl",e.control()),Cg("required",e.required()||null),$I();}}function gi(n,i){if(n&1&&(bg(0,"input",5),HI()),n&2){let e=mC();Tg("id",e.inputId)("formControl",e.control()),Cg("required",e.required()||null),$I();}}function _i(n,i){if(n&1&&(vs(0,"div",6),bg(1,"input",12),HI(),vs(2,"span",13),WC(3),fl()()),n&2){let e=mC();XE(),Tg("id",e.inputId)("formControl",e.control()),$I(),XE(2),Zg(e.label);}}function bi(n,i){n&1&&(vs(0,"option",14),WC(1,"\u2014 none \u2014"),fl());}function yi(n,i){if(n&1&&(vs(0,"option",15),WC(1),fl()),n&2){let e=i.$implicit;Tg("value",e),XE(),Zg(e);}}function xi(n,i){if(n&1&&(vs(0,"select",7),eC(1,bi,2,0,"option",14),oC(2,yi,2,2,"option",15,rC),fl(),HI()),n&2){let e=mC();Tg("id",e.inputId)("formControl",e.control()),Cg("required",e.required()||null),$I(),XE(),tC(e.required()?-1:1),XE(),iC(e.enumOptions);}}function vi(n,i){if(n&1){let e=dC();vs(0,"div",16),bg(1,"input",18),HI(),vs(2,"button",19),Ag("click",function(){let o=If(e).$index,a=mC(2);return wf(a.removeScalarItem(o))}),WC(3," \xD7 "),fl()();}if(n&2){let e=i.$index,t=mC(2);XE(),Tg("type",t.itemInputType)("formControl",t.getScalarItemControl(e)),Cg("aria-label",t.label+" item "+(e+1)),$I(),XE(),Cg("aria-label","Remove "+t.label+" item "+(e+1));}}function Ci(n,i){if(n&1){let e=dC();vs(0,"div",8),oC(1,vi,4,4,"div",16,nC),vs(3,"button",17),Ag("click",function(){If(e);let o=mC();return wf(o.addScalarItem())}),WC(4),fl()();}if(n&2){let e=mC();XE(),iC(e.itemArray.controls),XE(3),yl("+ Add ",e.label);}}function Mi(n,i){if(n&1){let e=dC();vs(0,"div",20)(1,"div",21)(2,"span",22),WC(3),fl(),vs(4,"button",19),Ag("click",function(){let o=If(e).$implicit,a=mC(2);return wf(a.removeObjectItem(o.uid))}),WC(5," \xD7 "),fl()(),vs(6,"ds-json-schema-form",23),Ag("valueChange",function(o){let a=If(e).$implicit,m=mC(2);return wf(m.onObjectItemChange(a.uid,o))}),fl()();}if(n&2){let e=i.$implicit,t=i.$index,o=mC(2);XE(3),Yg("",o.itemObjectSchema?.title??o.label," ",t+1),XE(),Cg("aria-label","Remove "+o.label+" item "+(t+1)),XE(2),Tg("schema",o.itemObjectSchema)("value",e.seed);}}function wi(n,i){if(n&1){let e=dC();vs(0,"div",8),oC(1,Mi,7,5,"div",20,On),vs(3,"button",17),Ag("click",function(){If(e);let o=mC();return wf(o.addObjectItem())}),WC(4),fl()();}if(n&2){let e=mC();XE(),iC(e.objectItems()),XE(3),yl("+ Add ",e.label);}}function ki(n,i){if(n&1){let e=dC();vs(0,"div",24)(1,"input",25),Ag("input",function(o){let a=If(e).$implicit,m=mC(2);return wf(m.onMapKeyChange(a.uid,o))}),fl(),vs(2,"input",26),Ag("input",function(o){let a=If(e).$implicit,m=mC(2);return wf(m.onMapValueChange(a.uid,o))}),fl(),vs(3,"button",19),Ag("click",function(){let o=If(e).$implicit,a=mC(2);return wf(a.removeMapEntry(o.uid))}),WC(4," \xD7 "),fl()();}if(n&2){let e=i.$implicit,t=i.$index,o=mC(2);XE(),Tg("value",e.key),Cg("aria-label",o.label+" key "+(t+1)),XE(),Tg("value",e.value),Cg("aria-label",o.label+" value "+(t+1)),XE(),Cg("aria-label","Remove "+o.label+" entry "+(t+1));}}function Di(n,i){if(n&1){let e=dC();vs(0,"div",9),oC(1,ki,5,5,"div",24,On),vs(3,"button",17),Ag("click",function(){If(e);let o=mC();return wf(o.addMapEntry())}),WC(4,"+ Add entry"),fl()();}if(n&2){let e=mC();XE(),iC(e.mapEntries());}}function Si(n,i){if(n&1){let e=dC();vs(0,"div",10)(1,"ds-json-schema-form",23),Ag("valueChange",function(o){If(e);let a=mC();return wf(a.onNestedValueChange(o))}),fl()();}if(n&2){let e=mC();XE(),Tg("schema",e.fieldSchema())("value",e.nestedInitialValue());}}function Ei(n,i){if(n&1&&(bg(0,"textarea",11),HI()),n&2){let e=mC();Tg("id",e.inputId)("formControl",e.control()),Cg("required",e.required()||null),$I();}}var pt=0;function Tn(n){return {uid:pt++,seed:n,value:n}}var et=class n{fieldKey=mB.required();fieldSchema=mB.required();control=mB.required();required=mB(false);itemArray=new ze([]);mapEntries=Hi$1([]);objectItems=Hi$1([]);nestedInitialValue=Hi$1(null);ngOnInit(){if(this.fieldType==="array-scalar")this.initScalarArray();else if(this.fieldType==="array-object")this.initObjectArray();else if(this.fieldType==="map")this.initMapEntries();else if(this.fieldType==="nested-object"){let i=this.control().value;this.nestedInitialValue.set(i&&typeof i=="object"&&!Array.isArray(i)?i:null);}}initMapEntries(){let i=this.control().value,e=i&&typeof i=="object"&&!Array.isArray(i)?Object.entries(i).map(([t,o])=>({uid:pt++,key:t,value:String(o??"")})):[];this.mapEntries.set(e);}addMapEntry(){this.mapEntries.update(i=>[...i,{uid:pt++,key:"",value:""}]);}removeMapEntry(i){this.mapEntries.update(e=>e.filter(t=>t.uid!==i)),this.syncMapToControl();}onMapKeyChange(i,e){let t=e.target.value;this.mapEntries.update(o=>o.map(a=>a.uid===i?z$1(P({},a),{key:t}):a)),this.syncMapToControl();}onMapValueChange(i,e){let t=e.target.value;this.mapEntries.update(o=>o.map(a=>a.uid===i?z$1(P({},a),{value:t}):a)),this.syncMapToControl();}syncMapToControl(){let i={};for(let e of this.mapEntries())e.key!==""&&(i[e.key]=e.value);this.control().setValue(i,{emitEvent:true});}initScalarArray(){let i=this.control().value;(Array.isArray(i)?i:[]).forEach(t=>this.itemArray.push(new _t$1(t))),this.itemArray.valueChanges.subscribe(t=>{this.control().setValue(t,{emitEvent:true});});}addScalarItem(){this.itemArray.push(new _t$1(null));}removeScalarItem(i){this.itemArray.removeAt(i);}getScalarItemControl(i){return this.itemArray.at(i)}get itemInputType(){let i=this.fieldSchema().items;if(!i)return "text";let e=Array.isArray(i.type)?i.type[0]:i.type;return e==="number"||e==="integer"?"number":"text"}initObjectArray(){let i=this.control().value,e=Array.isArray(i)?i:[];this.objectItems.set(e.map(t=>Tn(P({},t))));}addObjectItem(){this.objectItems.update(i=>[...i,Tn(null)]),this.syncObjectArrayToControl();}removeObjectItem(i){this.objectItems.update(e=>e.filter(t=>t.uid!==i)),this.syncObjectArrayToControl();}onObjectItemChange(i,e){this.objectItems.update(t=>t.map(o=>o.uid===i?z$1(P({},o),{value:e}):o)),this.syncObjectArrayToControl();}get itemObjectSchema(){return this.fieldSchema().items??null}syncObjectArrayToControl(){this.control().setValue(this.objectItems().map(i=>i.value),{emitEvent:true});}get label(){return this.fieldSchema().title??this.fieldKey()}get description(){return this.fieldSchema().description}get fieldType(){let i=this.fieldSchema();if(i.enum?.length)return "enum";switch(Array.isArray(i.type)?i.type[0]:i.type){case "number":case "integer":return "number";case "boolean":return "boolean";case "array":{let t=i.items;return (t?Array.isArray(t.type)?t.type[0]:t.type:void 0)==="object"&&t?.properties?"array-object":"array-scalar"}case "object":return i.properties?"nested-object":i.additionalProperties&&i.additionalProperties!==false?"map":"textarea";default:return "text"}}get htmlInputType(){switch(this.fieldSchema().format){case "password":return "password";case "email":return "email";case "uri":case "url":return "url";case "date":return "date";case "date-time":return "datetime-local";default:return "text"}}get enumOptions(){return this.fieldSchema().enum??[]}get inputId(){return `ds-field-${this.fieldKey()}`}onNestedValueChange(i){let e=this.control().value;JSON.stringify(e)!==JSON.stringify(i)&&this.control().setValue(i,{emitEvent:true});}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Aw({type:n,selectors:[["ds-json-schema-field"]],inputs:{fieldKey:[1,"fieldKey"],fieldSchema:[1,"fieldSchema"],control:[1,"control"],required:[1,"required"]},decls:14,vars:5,consts:[[1,"ds-field"],[1,"ds-field__label",3,"for"],["aria-hidden","true",1,"ds-field__required"],[1,"ds-field__description"],[1,"ds-field__input",3,"type","id","formControl"],["type","number",1,"ds-field__input",3,"id","formControl"],[1,"ds-field__checkbox-row"],[1,"ds-field__select",3,"id","formControl"],[1,"ds-field__array"],[1,"ds-field__map"],[1,"ds-field__nested"],["rows","4","placeholder","JSON",1,"ds-field__textarea",3,"id","formControl"],["type","checkbox",1,"ds-field__checkbox",3,"id","formControl"],[1,"ds-field__checkbox-label"],["value",""],[3,"value"],[1,"ds-field__array-row"],["type","button",1,"ds-field__array-add",3,"click"],[1,"ds-field__input","ds-field__input--array-item",3,"type","formControl"],["type","button",1,"ds-field__array-remove",3,"click"],[1,"ds-field__array-object-card"],[1,"ds-field__array-object-header"],[1,"ds-field__array-object-title"],[3,"valueChange","schema","value"],[1,"ds-field__map-row"],["type","text","placeholder","key",1,"ds-field__input","ds-field__map-key",3,"input","value"],["type","text","placeholder","value",1,"ds-field__input","ds-field__map-value",3,"input","value"]],template:function(e,t){if(e&1&&(vs(0,"div",0)(1,"label",1),WC(2),eC(3,ui,2,0,"span",2),fl(),eC(4,hi,2,1,"p",3),eC(5,fi,1,4,"input",4)(6,gi,1,3,"input",5)(7,_i,4,3,"div",6)(8,xi,4,4,"select",7)(9,Ci,5,1,"div",8)(10,wi,5,1,"div",8)(11,Di,5,0,"div",9)(12,Si,2,2,"div",10)(13,Ei,1,3,"textarea",11),fl()),e&2){let o;XE(),Tg("for",t.inputId),XE(),yl(" ",t.label," "),XE(),tC(t.required()?3:-1),XE(),tC(t.description?4:-1),XE(),tC((o=t.fieldType)==="text"?5:o==="number"?6:o==="boolean"?7:o==="enum"?8:o==="array-scalar"?9:o==="array-object"?10:o==="map"?11:o==="nested-object"?12:o==="textarea"?13:-1);}},dependencies:()=>[ni,Qn$1,ei,Ye,fn,wt$2,At,Zn$1,Cn,tt],styles:[".ds-field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.ds-field__label[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text, #1d1d1f)}.ds-field__required[_ngcontent-%COMP%]{color:var(--color-error, #d32f2f);margin-left:2px}.ds-field__description[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);margin:0}.ds-field__input[_ngcontent-%COMP%], .ds-field__select[_ngcontent-%COMP%], .ds-field__textarea[_ngcontent-%COMP%]{width:100%;padding:6px 10px;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:var(--color-bg-secondary, #f5f5f7);color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;box-sizing:border-box;transition:border-color .15s ease}.ds-field__input[_ngcontent-%COMP%]:focus, .ds-field__select[_ngcontent-%COMP%]:focus, .ds-field__textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}.ds-field__textarea[_ngcontent-%COMP%]{font-family:Menlo,Monaco,Courier New,monospace;font-size:.8125rem;resize:vertical;background:var(--color-code-bg, #f5f5f7)}.ds-field__checkbox-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.ds-field__checkbox[_ngcontent-%COMP%]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary, #007aff);flex-shrink:0}.ds-field__checkbox-label[_ngcontent-%COMP%]{font-size:.875rem;color:var(--color-text, #1d1d1f)}.ds-field__array[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.ds-field__array-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px}.ds-field__input--array-item[_ngcontent-%COMP%]{flex:1}.ds-field__array-remove[_ngcontent-%COMP%]{flex-shrink:0;width:28px;height:28px;padding:0;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease}.ds-field__array-remove[_ngcontent-%COMP%]:hover{border-color:var(--color-error, #d32f2f);color:var(--color-error, #d32f2f)}.ds-field__array-object-card[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7);display:flex;flex-direction:column;gap:10px}.ds-field__array-object-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.ds-field__array-object-title[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6e6e73)}.ds-field__array-add[_ngcontent-%COMP%]{align-self:flex-start;padding:4px 10px;border:1px dashed var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-primary, #007aff);font-size:.8125rem;font-family:inherit;cursor:pointer;transition:border-color .15s ease}.ds-field__array-add[_ngcontent-%COMP%]:hover{border-color:var(--color-primary, #007aff)}.ds-field__map[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.ds-field__map-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px}.ds-field__map-key[_ngcontent-%COMP%]{flex:0 0 40%;min-width:0}.ds-field__map-value[_ngcontent-%COMP%]{flex:1;min-width:0}.ds-field__nested[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7)}"]})};function Ii(n,i){if(n&1&&bg(0,"ds-json-schema-field",1),n&2){let e=i.$implicit,t=mC(2);Tg("fieldKey",e)("fieldSchema",t.getFieldSchema(e))("control",t.getControl(e))("required",t.isRequired(e));}}function Ti(n,i){if(n&1&&(vs(0,"div",0),oC(1,Ii,1,4,"ds-json-schema-field",1,rC),fl()),n&2){let e=mC();Tg("formGroup",e.formGroup),XE(),iC(e.fieldKeys());}}var tt=class n{destroyRef=g(we);schema=mB(null);value=mB(null);valueChange=gB();formGroup=new Yn$1({});fieldKeys=mT(()=>{let i=this.schema();return i?.properties?Object.keys(i.properties):[]});hasFields=mT(()=>this.fieldKeys().length>0);constructor(){Hf(()=>{let i=this.schema(),e=Rn$1(()=>this.value());this.rebuildForm(i,e);});}rebuildForm(i,e){if(Object.keys(this.formGroup.controls).forEach(t=>{this.formGroup.removeControl(t);}),!i?.properties){this.valueChange.emit(null);return}for(let[t,o]of Object.entries(i.properties)){let a=e?.[t]??o.default??null;this.formGroup.addControl(t,new _t$1(a));}this.formGroup.valueChanges.pipe(U(this.destroyRef)).subscribe(()=>this.emitValue()),this.emitValue();}emitValue(){if(!this.schema()?.properties){this.valueChange.emit(null);return}this.valueChange.emit(this.formGroup.value);}getFieldSchema(i){return this.schema()?.properties?.[i]??{}}isRequired(i){return this.schema()?.required?.includes(i)??false}getControl(i){return this.formGroup.get(i)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Aw({type:n,selectors:[["ds-json-schema-form"]],inputs:{schema:[1,"schema"],value:[1,"value"]},outputs:{valueChange:"valueChange"},decls:1,vars:1,consts:[[1,"ds-json-schema-form",3,"formGroup"],[3,"fieldKey","fieldSchema","control","required"]],template:function(e,t){e&1&&eC(0,Ti,3,1,"div",0),e&2&&tC(t.hasFields()?0:-1);},dependencies:[ni,Xn$1,En$1,et],styles:[".ds-json-schema-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}"],changeDetection:1})};var Oi=(n,i)=>i.id;function Pi(n,i){if(n&1&&(pl(0,"span",6),WC(1),hl()),n&2){let e=mC().$implicit;XE(),Zg(e.description);}}function Ai(n,i){if(n&1){let e=dC();pl(0,"div",4),Rg("mousedown",function(){let o=If(e).$implicit,a=mC(2);return wf(a.selectItem(o))})("touchstart",function(){let o=If(e).$implicit,a=mC(2);return wf(a.selectItem(o))}),pl(1,"span",5),WC(2),hl(),eC(3,Pi,2,1,"span",6),hl();}if(n&2){let e=i.$implicit,t=i.$index,o=mC(2);Hg("selected",t===o.selectedIndex),XE(2),Zg(e.name),XE(),tC(e.description?3:-1);}}function Fi(n,i){if(n&1&&(pl(0,"div",2),oC(1,Ai,4,4,"div",3,Oi),hl()),n&2){let e=mC();XE(),iC(e.items);}}var Pn=class n{dataSource;placeholder="";disabled=false;itemSelected=new yt;elementRef=g(Qt);destroyRef=g(we);query$=new ce;query="";items=[];showDropdown=false;selectedIndex=-1;ngOnInit(){this.query$.pipe(Id(200),Nd(),ma(i=>{let e=i.trim();return e?this.dataSource.search(e):ha([])}),U(this.destroyRef)).subscribe(i=>{this.items=i,this.selectedIndex=-1,this.showDropdown=i.length>0;});}onInput(i){this.query=i.target.value,this.query$.next(this.query);}onFocus(){this.items.length>0&&(this.showDropdown=true);}onBlur(){setTimeout(()=>this.closeDropdown(),150);}onKeydown(i){if(this.showDropdown)switch(i.key){case "ArrowDown":i.preventDefault(),this.selectedIndex=Math.min(this.selectedIndex+1,this.items.length-1),this.scrollSelectedIntoView();break;case "ArrowUp":i.preventDefault(),this.selectedIndex=Math.max(this.selectedIndex-1,0),this.scrollSelectedIntoView();break;case "Tab":i.preventDefault(),i.shiftKey?this.selectedIndex<=0?this.closeDropdown():(this.selectedIndex--,this.scrollSelectedIntoView()):this.selectedIndex>=this.items.length-1?this.closeDropdown():(this.selectedIndex++,this.scrollSelectedIntoView());break;case "Enter":i.preventDefault(),this.selectedIndex>=0&&this.selectedIndex<this.items.length&&this.selectItem(this.items[this.selectedIndex]);break;case "Escape":i.preventDefault(),this.closeDropdown();break}}selectItem(i){this.itemSelected.emit(i),this.query="",this.closeDropdown();}closeDropdown(){this.showDropdown=false,this.selectedIndex=-1,this.items=[];}scrollSelectedIntoView(){setTimeout(()=>{this.elementRef.nativeElement.querySelector(".autocomplete-dropdown")?.querySelector(".autocomplete-option.selected")?.scrollIntoView({block:"nearest"});});}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Aw({type:n,selectors:[["ds-autocomplete-input"]],inputs:{dataSource:"dataSource",placeholder:"placeholder",disabled:"disabled"},outputs:{itemSelected:"itemSelected"},decls:3,vars:4,consts:[[1,"autocomplete-container"],["type","text",3,"input","keydown","focus","blur","placeholder","disabled","value"],[1,"autocomplete-dropdown"],[1,"autocomplete-option",3,"selected"],[1,"autocomplete-option",3,"mousedown","touchstart"],[1,"option-name"],[1,"option-description"]],template:function(e,t){e&1&&(pl(0,"div",0)(1,"input",1),Rg("input",function(a){return t.onInput(a)})("keydown",function(a){return t.onKeydown(a)})("focus",function(){return t.onFocus()})("blur",function(){return t.onBlur()}),hl(),eC(2,Fi,3,0,"div",2),hl()),e&2&&(XE(),Ng("placeholder",t.placeholder)("disabled",t.disabled)("value",t.query),XE(),tC(t.showDropdown&&t.items.length>0?2:-1));},styles:['@charset "UTF-8";.autocomplete-container[_ngcontent-%COMP%]{position:relative;display:block;width:100%}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;font-size:14px;line-height:1.5;color:var(--color-text, #1d1d1f);background:var(--glass-bg);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff);box-shadow:0 0 0 3px #007aff26}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.autocomplete-dropdown[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:var(--glass-bg);border:1px solid var(--color-border, #e0e0e0);border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;max-height:240px;overflow-y:auto;overflow-x:hidden}.autocomplete-option[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;padding:10px 12px;cursor:pointer;transition:background .1s ease}.autocomplete-option[_ngcontent-%COMP%]:first-child{border-radius:8px 8px 0 0}.autocomplete-option[_ngcontent-%COMP%]:last-child{border-radius:0 0 8px 8px}.autocomplete-option[_ngcontent-%COMP%]:only-child{border-radius:8px}.autocomplete-option[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, #f5f5f5)}.autocomplete-option.selected[_ngcontent-%COMP%]{background:var(--color-bg-hover, #f5f5f5);outline:2px solid var(--color-primary, #007aff);outline-offset:-2px}.autocomplete-option[_ngcontent-%COMP%] .option-name[_ngcontent-%COMP%]{font-size:14px;font-weight:400;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-option[_ngcontent-%COMP%] .option-description[_ngcontent-%COMP%]{font-size:12px;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}'],changeDetection:1})};var nt=class n{static \u0275fac=function(e){return new(e||n)};static \u0275dir=ks({type:n,selectors:[["","dsCardActions",""]]})};var An=(()=>{class n{_animationsDisabled=K();state="unchecked";disabled=false;appearance="full";static \u0275fac=function(t){return new(t||n)};static \u0275cmp=Aw({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(t,o){t&2&&Hg("mat-pseudo-checkbox-indeterminate",o.state==="indeterminate")("mat-pseudo-checkbox-checked",o.state==="checked")("mat-pseudo-checkbox-disabled",o.disabled)("mat-pseudo-checkbox-minimal",o.appearance==="minimal")("mat-pseudo-checkbox-full",o.appearance==="full")("_mat-animation-noopable",o._animationsDisabled);},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(t,o){},styles:[`.mat-pseudo-checkbox {
|
|
193
|
+
`],encapsulation:2})}return n})(),ci=new w("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{let n=g(pe);return ()=>kt(n)}});var ke=new WeakMap,di=(()=>{class n{_canHaveBackdrop;_element=g(Qt);_viewContainerRef=g(mr);_menuItemInstance=g(Be,{optional:true,self:true});_dir=g(Qn$2,{optional:true});_focusMonitor=g(St);_ngZone=g(G);_injector=g(pe);_scrollStrategy=g(ci);_changeDetectorRef=g(Cl);_animationsDisabled=K();_portal;_overlayRef=null;_menuOpen=false;_closingActionsSubscription=X.EMPTY;_menuCloseSubscription=X.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_openedBy=void 0;get _menu(){return this._menuInternal}set _menu(e){e!==this._menuInternal&&(this._menuInternal=e,this._menuCloseSubscription.unsubscribe(),e?(this._parentMaterialMenu,this._menuCloseSubscription=e.close.subscribe(t=>{this._destroyMenu(t),(t==="click"||t==="tab")&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(t);})):this._destroyMenu(),this._menuItemInstance?._setTriggersSubmenu(this._triggersSubmenu()));}_menuInternal=null;constructor(e){this._canHaveBackdrop=e;let t=g(mt,{optional:true});this._parentMaterialMenu=t instanceof De?t:void 0;}ngOnDestroy(){this._menu&&this._ownsMenu(this._menu)&&ke.delete(this._menu),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null);}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_triggersSubmenu(){return !!(this._menuItemInstance&&this._parentMaterialMenu&&this._menu)}_closeMenu(){this._menu?.close.emit();}_openMenu(e){if(this._triggerIsAriaDisabled())return;let t=this._menu;if(this._menuOpen||!t)return;this._pendingRemoval?.unsubscribe();let o=ke.get(t);ke.set(t,this),o&&o!==this&&o._closeMenu();let a=this._createOverlay(t),m=a.getConfig(),ee=m.positionStrategy;this._setPosition(t,ee),this._canHaveBackdrop?m.hasBackdrop=t.hasBackdrop==null?!this._triggersSubmenu():t.hasBackdrop:m.hasBackdrop=t.hasBackdrop??false,a.hasAttached()||(a.attach(this._getPortal(t)),t.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this._closeMenu()),t.parentMenu=this._triggersSubmenu()?this._parentMaterialMenu:void 0,t.direction=this.dir,e&&t.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(true),t instanceof De&&(t._setIsOpen(true),t._directDescendantItems.changes.pipe(Vy(t.close)).subscribe(()=>{ee.withLockedPosition(false).reapplyLastPosition(),ee.withLockedPosition(true);}));}focus(e,t){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,t):this._element.nativeElement.focus(t);}_destroyMenu(e){let t=this._overlayRef,o=this._menu;!t||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),o instanceof De&&this._ownsMenu(o)?(this._pendingRemoval=o._animationDone.pipe(sn$1(1)).subscribe(()=>{t.detach(),ke.has(o)||o.lazyContent?.detach();}),o._setIsOpen(false)):(t.detach(),o?.lazyContent?.detach()),o&&this._ownsMenu(o)&&ke.delete(o),this.restoreFocus&&(e==="keydown"||!this._openedBy||!this._triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(false));}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this._triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck());}_createOverlay(e){if(!this._overlayRef){let t=this._getOverlayConfig(e);this._subscribeToPositions(e,t.positionStrategy),this._overlayRef=Pt(this._injector,t),this._overlayRef.keydownEvents().subscribe(o=>{this._menu instanceof De&&this._menu._handleKeydown(o);});}return this._overlayRef}_getOverlayConfig(e){return new X$2({positionStrategy:xt(this._injector,this._getOverlayOrigin()).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir||"ltr",disableAnimations:this._animationsDisabled})}_subscribeToPositions(e,t){e.setPositionClasses&&t.positionChanges.subscribe(o=>{this._ngZone.run(()=>{let a=o.connectionPair.overlayX==="start"?"after":"before",m=o.connectionPair.overlayY==="top"?"below":"above";e.setPositionClasses(a,m);});});}_setPosition(e,t){let[o,a]=e.xPosition==="before"?["end","start"]:["start","end"],[m,ee]=e.yPosition==="above"?["bottom","top"]:["top","bottom"],[ot,at]=[m,ee],[rt,st]=[o,a],Ee=0;if(this._triggersSubmenu()){if(st=o=e.xPosition==="before"?"start":"end",a=rt=o==="end"?"start":"end",this._parentMaterialMenu){if(this._parentInnerPadding==null){let yt=this._parentMaterialMenu.items.first;this._parentInnerPadding=yt?yt._getHostElement().offsetTop:0;}Ee=m==="bottom"?this._parentInnerPadding:-this._parentInnerPadding;}}else e.overlapTrigger||(ot=m==="top"?"bottom":"top",at=ee==="top"?"bottom":"top");t.withPositions([{originX:o,originY:ot,overlayX:rt,overlayY:m,offsetY:Ee},{originX:a,originY:ot,overlayX:st,overlayY:m,offsetY:Ee},{originX:o,originY:at,overlayX:rt,overlayY:ee,offsetY:-Ee},{originX:a,originY:at,overlayX:st,overlayY:ee,offsetY:-Ee}]);}_menuClosingActions(){let e=this._getOutsideClickStream(this._overlayRef),t=this._overlayRef.detachments(),o=this._parentMaterialMenu?this._parentMaterialMenu.closed:ha(),a=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Ot$1(m=>this._menuOpen&&m!==this._menuItemInstance)):ha();return Yy(e,o,a,t)}_getPortal(e){return (!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new Y(e.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(e){return ke.get(e)===this}_triggerIsAriaDisabled(){return YT(this._element.nativeElement.getAttribute("aria-disabled"))}static \u0275fac=function(t){YI();};static \u0275dir=ks({type:n})}return n})(),En=(()=>{class n extends di{_cleanupTouchstart;_hoverSubscription=X.EMPTY;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e;}get menu(){return this._menu}set menu(e){this._menu=e;}menuData;restoreFocus=true;menuOpened=new yt;onMenuOpen=this.menuOpened;menuClosed=new yt;onMenuClose=this.menuClosed;constructor(){super(true);let e=g(As);this._cleanupTouchstart=e.listen(this._element.nativeElement,"touchstart",t=>{q(t)||(this._openedBy="touch");},{passive:true});}triggersSubmenu(){return super._triggersSubmenu()}toggleMenu(){return this.menuOpen?this.closeMenu():this.openMenu()}openMenu(){this._openMenu(true);}closeMenu(){this._closeMenu();}updatePosition(){this._overlayRef?.updatePosition();}ngAfterContentInit(){this._handleHover();}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTouchstart(),this._hoverSubscription.unsubscribe();}_getOverlayOrigin(){return this._element}_getOutsideClickStream(e){return e.backdropClick()}_handleMousedown(e){X$1(e)||(this._openedBy=e.button===0?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault());}_handleKeydown(e){let t=e.keyCode;(t===13||t===32)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(t===39&&this.dir==="ltr"||t===37&&this.dir==="rtl")&&(this._openedBy="keyboard",this.openMenu());}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu();}_handleHover(){this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().subscribe(e=>{e===this._menuItemInstance&&!e.disabled&&this._parentMaterialMenu?._panelAnimationState!=="void"&&(this._openedBy="mouse",this._openMenu(false));}));}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ks({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(t,o){t&1&&Ag("click",function(m){return o._handleClick(m)})("mousedown",function(m){return o._handleMousedown(m)})("keydown",function(m){return o._handleKeydown(m)}),t&2&&Cg("aria-haspopup",o.menu?"menu":null)("aria-expanded",o.menuOpen)("aria-controls",o.menuOpen?o.menu?.panelId:null);},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],features:[yg]})}return n})();var In=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275mod=Do$1({type:n});static \u0275inj=qn$1({imports:[sn,ge,wt$1,vt]})}return n})();var Se=class n{icon;title="";disabled=false;variant="default";action=new yt;onClick(){this.disabled||this.action.emit();}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Aw({type:n,selectors:[["ds-icon-button"]],inputs:{icon:"icon",title:"title",disabled:"disabled",variant:"variant"},outputs:{action:"action"},decls:3,vars:6,consts:[["mat-icon-button","","type","button",3,"click","disabled","title"]],template:function(e,t){e&1&&(vs(0,"button",0),Ag("click",function(){return t.onClick()}),vs(1,"mat-icon"),WC(2),fl()()),e&2&&(FC("icon-button variant-"+t.variant),Tg("disabled",t.disabled)("title",t.title),Cg("aria-label",t.title||null),XE(2),Zg(t.icon));},dependencies:[Gn$1,wt],styles:['@charset "UTF-8";.icon-button[_ngcontent-%COMP%]{transition:color .2s ease,background .2s ease,transform .12s ease,opacity .2s ease}.icon-button[_ngcontent-%COMP%]:hover:not(:disabled){transform:scale(1.1)}.icon-button[_ngcontent-%COMP%]:active:not(:disabled){transform:scale(1.15)}.icon-button[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.icon-button.variant-default[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73)}.icon-button.variant-default[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-primary, #007aff)}.icon-button.variant-primary[_ngcontent-%COMP%]:hover:not(:disabled), .icon-button.variant-danger[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-text-inverse, #ffffff);box-shadow:0 4px 14px var(--icon-button-shadow-color);background:var(--icon-button-accent-color)}.icon-button.variant-primary[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-primary, #007aff);--icon-button-shadow-color: rgba(0, 122, 255, .3);color:var(--color-primary, #007aff)}.icon-button.variant-danger[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-error, #ff3b30);--icon-button-shadow-color: rgba(255, 59, 48, .3);color:var(--color-error, #ff3b30)}'],changeDetection:1})};var On=(n,i)=>i.uid;function ui(n,i){n&1&&(vs(0,"span",2),WC(1,"*"),fl());}function hi(n,i){if(n&1&&(vs(0,"p",3),WC(1),fl()),n&2){let e=mC();XE(),Zg(e.description);}}function fi(n,i){if(n&1&&(bg(0,"input",4),HI()),n&2){let e=mC();Tg("type",e.htmlInputType)("id",e.inputId)("formControl",e.control()),Cg("required",e.required()||null),$I();}}function gi(n,i){if(n&1&&(bg(0,"input",5),HI()),n&2){let e=mC();Tg("id",e.inputId)("formControl",e.control()),Cg("required",e.required()||null),$I();}}function _i(n,i){if(n&1&&(vs(0,"div",6),bg(1,"input",12),HI(),vs(2,"span",13),WC(3),fl()()),n&2){let e=mC();XE(),Tg("id",e.inputId)("formControl",e.control()),$I(),XE(2),Zg(e.label);}}function bi(n,i){n&1&&(vs(0,"option",14),WC(1,"\u2014 none \u2014"),fl());}function yi(n,i){if(n&1&&(vs(0,"option",15),WC(1),fl()),n&2){let e=i.$implicit;Tg("value",e),XE(),Zg(e);}}function xi(n,i){if(n&1&&(vs(0,"select",7),eC(1,bi,2,0,"option",14),oC(2,yi,2,2,"option",15,rC),fl(),HI()),n&2){let e=mC();Tg("id",e.inputId)("formControl",e.control()),Cg("required",e.required()||null),$I(),XE(),tC(e.required()?-1:1),XE(),iC(e.enumOptions);}}function vi(n,i){if(n&1){let e=dC();vs(0,"div",16),bg(1,"input",18),HI(),vs(2,"button",19),Ag("click",function(){let o=If(e).$index,a=mC(2);return wf(a.removeScalarItem(o))}),WC(3," \xD7 "),fl()();}if(n&2){let e=i.$index,t=mC(2);XE(),Tg("type",t.itemInputType)("formControl",t.getScalarItemControl(e)),Cg("aria-label",t.label+" item "+(e+1)),$I(),XE(),Cg("aria-label","Remove "+t.label+" item "+(e+1));}}function Ci(n,i){if(n&1){let e=dC();vs(0,"div",8),oC(1,vi,4,4,"div",16,nC),vs(3,"button",17),Ag("click",function(){If(e);let o=mC();return wf(o.addScalarItem())}),WC(4),fl()();}if(n&2){let e=mC();XE(),iC(e.itemArray.controls),XE(3),yl("+ Add ",e.label);}}function Mi(n,i){if(n&1){let e=dC();vs(0,"div",20)(1,"div",21)(2,"span",22),WC(3),fl(),vs(4,"button",19),Ag("click",function(){let o=If(e).$implicit,a=mC(2);return wf(a.removeObjectItem(o.uid))}),WC(5," \xD7 "),fl()(),vs(6,"ds-json-schema-form",23),Ag("valueChange",function(o){let a=If(e).$implicit,m=mC(2);return wf(m.onObjectItemChange(a.uid,o))}),fl()();}if(n&2){let e=i.$implicit,t=i.$index,o=mC(2);XE(3),Yg("",o.itemObjectSchema?.title??o.label," ",t+1),XE(),Cg("aria-label","Remove "+o.label+" item "+(t+1)),XE(2),Tg("schema",o.itemObjectSchema)("value",e.seed);}}function wi(n,i){if(n&1){let e=dC();vs(0,"div",8),oC(1,Mi,7,5,"div",20,On),vs(3,"button",17),Ag("click",function(){If(e);let o=mC();return wf(o.addObjectItem())}),WC(4),fl()();}if(n&2){let e=mC();XE(),iC(e.objectItems()),XE(3),yl("+ Add ",e.label);}}function ki(n,i){if(n&1){let e=dC();vs(0,"div",24)(1,"input",25),Ag("input",function(o){let a=If(e).$implicit,m=mC(2);return wf(m.onMapKeyChange(a.uid,o))}),fl(),vs(2,"input",26),Ag("input",function(o){let a=If(e).$implicit,m=mC(2);return wf(m.onMapValueChange(a.uid,o))}),fl(),vs(3,"button",19),Ag("click",function(){let o=If(e).$implicit,a=mC(2);return wf(a.removeMapEntry(o.uid))}),WC(4," \xD7 "),fl()();}if(n&2){let e=i.$implicit,t=i.$index,o=mC(2);XE(),Tg("value",e.key),Cg("aria-label",o.label+" key "+(t+1)),XE(),Tg("value",e.value),Cg("aria-label",o.label+" value "+(t+1)),XE(),Cg("aria-label","Remove "+o.label+" entry "+(t+1));}}function Di(n,i){if(n&1){let e=dC();vs(0,"div",9),oC(1,ki,5,5,"div",24,On),vs(3,"button",17),Ag("click",function(){If(e);let o=mC();return wf(o.addMapEntry())}),WC(4,"+ Add entry"),fl()();}if(n&2){let e=mC();XE(),iC(e.mapEntries());}}function Si(n,i){if(n&1){let e=dC();vs(0,"div",10)(1,"ds-json-schema-form",23),Ag("valueChange",function(o){If(e);let a=mC();return wf(a.onNestedValueChange(o))}),fl()();}if(n&2){let e=mC();XE(),Tg("schema",e.fieldSchema())("value",e.nestedInitialValue());}}function Ei(n,i){if(n&1&&(bg(0,"textarea",11),HI()),n&2){let e=mC();Tg("id",e.inputId)("formControl",e.control()),Cg("required",e.required()||null)("placeholder",e.fieldSchema()["x-ui-widget"]==="textarea"?null:"JSON"),$I();}}var pt=0;function Tn(n){return {uid:pt++,seed:n,value:n}}var et=class n{fieldKey=mB.required();fieldSchema=mB.required();control=mB.required();required=mB(false);itemArray=new ze([]);mapEntries=Hi$1([]);objectItems=Hi$1([]);nestedInitialValue=Hi$1(null);ngOnInit(){if(this.fieldType==="array-scalar")this.initScalarArray();else if(this.fieldType==="array-object")this.initObjectArray();else if(this.fieldType==="map")this.initMapEntries();else if(this.fieldType==="nested-object"){let i=this.control().value;this.nestedInitialValue.set(i&&typeof i=="object"&&!Array.isArray(i)?i:null);}}initMapEntries(){let i=this.control().value,e=i&&typeof i=="object"&&!Array.isArray(i)?Object.entries(i).map(([t,o])=>({uid:pt++,key:t,value:String(o??"")})):[];this.mapEntries.set(e);}addMapEntry(){this.mapEntries.update(i=>[...i,{uid:pt++,key:"",value:""}]);}removeMapEntry(i){this.mapEntries.update(e=>e.filter(t=>t.uid!==i)),this.syncMapToControl();}onMapKeyChange(i,e){let t=e.target.value;this.mapEntries.update(o=>o.map(a=>a.uid===i?z$1(P({},a),{key:t}):a)),this.syncMapToControl();}onMapValueChange(i,e){let t=e.target.value;this.mapEntries.update(o=>o.map(a=>a.uid===i?z$1(P({},a),{value:t}):a)),this.syncMapToControl();}syncMapToControl(){let i={};for(let e of this.mapEntries())e.key!==""&&(i[e.key]=e.value);this.control().setValue(i,{emitEvent:true});}initScalarArray(){let i=this.control().value;(Array.isArray(i)?i:[]).forEach(t=>this.itemArray.push(new _t$1(t))),this.itemArray.valueChanges.subscribe(t=>{this.control().setValue(t,{emitEvent:true});});}addScalarItem(){this.itemArray.push(new _t$1(null));}removeScalarItem(i){this.itemArray.removeAt(i);}getScalarItemControl(i){return this.itemArray.at(i)}get itemInputType(){let i=this.fieldSchema().items;if(!i)return "text";let e=Array.isArray(i.type)?i.type[0]:i.type;return e==="number"||e==="integer"?"number":"text"}initObjectArray(){let i=this.control().value,e=Array.isArray(i)?i:[];this.objectItems.set(e.map(t=>Tn(P({},t))));}addObjectItem(){this.objectItems.update(i=>[...i,Tn(null)]),this.syncObjectArrayToControl();}removeObjectItem(i){this.objectItems.update(e=>e.filter(t=>t.uid!==i)),this.syncObjectArrayToControl();}onObjectItemChange(i,e){this.objectItems.update(t=>t.map(o=>o.uid===i?z$1(P({},o),{value:e}):o)),this.syncObjectArrayToControl();}get itemObjectSchema(){return this.fieldSchema().items??null}syncObjectArrayToControl(){this.control().setValue(this.objectItems().map(i=>i.value),{emitEvent:true});}get label(){return this.fieldSchema().title??this.fieldKey()}get description(){return this.fieldSchema().description}get fieldType(){let i=this.fieldSchema();if(i.enum?.length)return "enum";if(i["x-ui-widget"]==="textarea")return "textarea";switch(Array.isArray(i.type)?i.type[0]:i.type){case "number":case "integer":return "number";case "boolean":return "boolean";case "array":{let t=i.items;return (t?Array.isArray(t.type)?t.type[0]:t.type:void 0)==="object"&&t?.properties?"array-object":"array-scalar"}case "object":return i.properties?"nested-object":i.additionalProperties&&i.additionalProperties!==false?"map":"textarea";default:return "text"}}get htmlInputType(){switch(this.fieldSchema().format){case "password":return "password";case "email":return "email";case "uri":case "url":return "url";case "date":return "date";case "date-time":return "datetime-local";default:return "text"}}get enumOptions(){return this.fieldSchema().enum??[]}get inputId(){return `ds-field-${this.fieldKey()}`}onNestedValueChange(i){let e=this.control().value;JSON.stringify(e)!==JSON.stringify(i)&&this.control().setValue(i,{emitEvent:true});}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Aw({type:n,selectors:[["ds-json-schema-field"]],inputs:{fieldKey:[1,"fieldKey"],fieldSchema:[1,"fieldSchema"],control:[1,"control"],required:[1,"required"]},decls:14,vars:5,consts:[[1,"ds-field"],[1,"ds-field__label",3,"for"],["aria-hidden","true",1,"ds-field__required"],[1,"ds-field__description"],[1,"ds-field__input",3,"type","id","formControl"],["type","number",1,"ds-field__input",3,"id","formControl"],[1,"ds-field__checkbox-row"],[1,"ds-field__select",3,"id","formControl"],[1,"ds-field__array"],[1,"ds-field__map"],[1,"ds-field__nested"],["rows","4",1,"ds-field__textarea",3,"id","formControl"],["type","checkbox",1,"ds-field__checkbox",3,"id","formControl"],[1,"ds-field__checkbox-label"],["value",""],[3,"value"],[1,"ds-field__array-row"],["type","button",1,"ds-field__array-add",3,"click"],[1,"ds-field__input","ds-field__input--array-item",3,"type","formControl"],["type","button",1,"ds-field__array-remove",3,"click"],[1,"ds-field__array-object-card"],[1,"ds-field__array-object-header"],[1,"ds-field__array-object-title"],[3,"valueChange","schema","value"],[1,"ds-field__map-row"],["type","text","placeholder","key",1,"ds-field__input","ds-field__map-key",3,"input","value"],["type","text","placeholder","value",1,"ds-field__input","ds-field__map-value",3,"input","value"]],template:function(e,t){if(e&1&&(vs(0,"div",0)(1,"label",1),WC(2),eC(3,ui,2,0,"span",2),fl(),eC(4,hi,2,1,"p",3),eC(5,fi,1,4,"input",4)(6,gi,1,3,"input",5)(7,_i,4,3,"div",6)(8,xi,4,4,"select",7)(9,Ci,5,1,"div",8)(10,wi,5,1,"div",8)(11,Di,5,0,"div",9)(12,Si,2,2,"div",10)(13,Ei,1,4,"textarea",11),fl()),e&2){let o;XE(),Tg("for",t.inputId),XE(),yl(" ",t.label," "),XE(),tC(t.required()?3:-1),XE(),tC(t.description?4:-1),XE(),tC((o=t.fieldType)==="text"?5:o==="number"?6:o==="boolean"?7:o==="enum"?8:o==="array-scalar"?9:o==="array-object"?10:o==="map"?11:o==="nested-object"?12:o==="textarea"?13:-1);}},dependencies:()=>[ni,Qn$1,ei,Ye,fn,wt$2,At,Zn$1,Cn,tt],styles:[".ds-field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.ds-field__label[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text, #1d1d1f)}.ds-field__required[_ngcontent-%COMP%]{color:var(--color-error, #d32f2f);margin-left:2px}.ds-field__description[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);margin:0}.ds-field__input[_ngcontent-%COMP%], .ds-field__select[_ngcontent-%COMP%], .ds-field__textarea[_ngcontent-%COMP%]{width:100%;padding:6px 10px;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:var(--color-bg-secondary, #f5f5f7);color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;box-sizing:border-box;transition:border-color .15s ease}.ds-field__input[_ngcontent-%COMP%]:focus, .ds-field__select[_ngcontent-%COMP%]:focus, .ds-field__textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}.ds-field__textarea[_ngcontent-%COMP%]{font-family:Menlo,Monaco,Courier New,monospace;font-size:.8125rem;resize:vertical;background:var(--color-code-bg, #f5f5f7)}.ds-field__checkbox-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.ds-field__checkbox[_ngcontent-%COMP%]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary, #007aff);flex-shrink:0}.ds-field__checkbox-label[_ngcontent-%COMP%]{font-size:.875rem;color:var(--color-text, #1d1d1f)}.ds-field__array[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.ds-field__array-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px}.ds-field__input--array-item[_ngcontent-%COMP%]{flex:1}.ds-field__array-remove[_ngcontent-%COMP%]{flex-shrink:0;width:28px;height:28px;padding:0;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease}.ds-field__array-remove[_ngcontent-%COMP%]:hover{border-color:var(--color-error, #d32f2f);color:var(--color-error, #d32f2f)}.ds-field__array-object-card[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7);display:flex;flex-direction:column;gap:10px}.ds-field__array-object-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.ds-field__array-object-title[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6e6e73)}.ds-field__array-add[_ngcontent-%COMP%]{align-self:flex-start;padding:4px 10px;border:1px dashed var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-primary, #007aff);font-size:.8125rem;font-family:inherit;cursor:pointer;transition:border-color .15s ease}.ds-field__array-add[_ngcontent-%COMP%]:hover{border-color:var(--color-primary, #007aff)}.ds-field__map[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.ds-field__map-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px}.ds-field__map-key[_ngcontent-%COMP%]{flex:0 0 40%;min-width:0}.ds-field__map-value[_ngcontent-%COMP%]{flex:1;min-width:0}.ds-field__nested[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7)}"]})};function Ii(n,i){if(n&1&&bg(0,"ds-json-schema-field",1),n&2){let e=i.$implicit,t=mC(2);Tg("fieldKey",e)("fieldSchema",t.getFieldSchema(e))("control",t.getControl(e))("required",t.isRequired(e));}}function Ti(n,i){if(n&1&&(vs(0,"div",0),oC(1,Ii,1,4,"ds-json-schema-field",1,rC),fl()),n&2){let e=mC();Tg("formGroup",e.formGroup),XE(),iC(e.fieldKeys());}}var tt=class n{destroyRef=g(we);schema=mB(null);value=mB(null);valueChange=gB();formGroup=new Yn$1({});fieldKeys=mT(()=>{let i=this.schema();return i?.properties?Object.keys(i.properties):[]});hasFields=mT(()=>this.fieldKeys().length>0);constructor(){Hf(()=>{let i=this.schema(),e=Rn$1(()=>this.value());this.rebuildForm(i,e);});}rebuildForm(i,e){if(Object.keys(this.formGroup.controls).forEach(t=>{this.formGroup.removeControl(t);}),!i?.properties){this.valueChange.emit(null);return}for(let[t,o]of Object.entries(i.properties)){let a=e?.[t]??o.default??null;this.formGroup.addControl(t,new _t$1(a));}this.formGroup.valueChanges.pipe(U(this.destroyRef)).subscribe(()=>this.emitValue()),this.emitValue();}emitValue(){if(!this.schema()?.properties){this.valueChange.emit(null);return}this.valueChange.emit(this.formGroup.value);}getFieldSchema(i){return this.schema()?.properties?.[i]??{}}isRequired(i){return this.schema()?.required?.includes(i)??false}getControl(i){return this.formGroup.get(i)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Aw({type:n,selectors:[["ds-json-schema-form"]],inputs:{schema:[1,"schema"],value:[1,"value"]},outputs:{valueChange:"valueChange"},decls:1,vars:1,consts:[[1,"ds-json-schema-form",3,"formGroup"],[3,"fieldKey","fieldSchema","control","required"]],template:function(e,t){e&1&&eC(0,Ti,3,1,"div",0),e&2&&tC(t.hasFields()?0:-1);},dependencies:[ni,Xn$1,En$1,et],styles:[".ds-json-schema-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}"],changeDetection:1})};var Oi=(n,i)=>i.id;function Pi(n,i){if(n&1&&(pl(0,"span",6),WC(1),hl()),n&2){let e=mC().$implicit;XE(),Zg(e.description);}}function Ai(n,i){if(n&1){let e=dC();pl(0,"div",4),Rg("mousedown",function(){let o=If(e).$implicit,a=mC(2);return wf(a.selectItem(o))})("touchstart",function(){let o=If(e).$implicit,a=mC(2);return wf(a.selectItem(o))}),pl(1,"span",5),WC(2),hl(),eC(3,Pi,2,1,"span",6),hl();}if(n&2){let e=i.$implicit,t=i.$index,o=mC(2);Hg("selected",t===o.selectedIndex),XE(2),Zg(e.name),XE(),tC(e.description?3:-1);}}function Fi(n,i){if(n&1&&(pl(0,"div",2),oC(1,Ai,4,4,"div",3,Oi),hl()),n&2){let e=mC();XE(),iC(e.items);}}var Pn=class n{dataSource;placeholder="";disabled=false;itemSelected=new yt;elementRef=g(Qt);destroyRef=g(we);query$=new ce;query="";items=[];showDropdown=false;selectedIndex=-1;ngOnInit(){this.query$.pipe(Id(200),Nd(),ma(i=>{let e=i.trim();return e?this.dataSource.search(e):ha([])}),U(this.destroyRef)).subscribe(i=>{this.items=i,this.selectedIndex=-1,this.showDropdown=i.length>0;});}onInput(i){this.query=i.target.value,this.query$.next(this.query);}onFocus(){this.items.length>0&&(this.showDropdown=true);}onBlur(){setTimeout(()=>this.closeDropdown(),150);}onKeydown(i){if(this.showDropdown)switch(i.key){case "ArrowDown":i.preventDefault(),this.selectedIndex=Math.min(this.selectedIndex+1,this.items.length-1),this.scrollSelectedIntoView();break;case "ArrowUp":i.preventDefault(),this.selectedIndex=Math.max(this.selectedIndex-1,0),this.scrollSelectedIntoView();break;case "Tab":i.preventDefault(),i.shiftKey?this.selectedIndex<=0?this.closeDropdown():(this.selectedIndex--,this.scrollSelectedIntoView()):this.selectedIndex>=this.items.length-1?this.closeDropdown():(this.selectedIndex++,this.scrollSelectedIntoView());break;case "Enter":i.preventDefault(),this.selectedIndex>=0&&this.selectedIndex<this.items.length&&this.selectItem(this.items[this.selectedIndex]);break;case "Escape":i.preventDefault(),this.closeDropdown();break}}selectItem(i){this.itemSelected.emit(i),this.query="",this.closeDropdown();}closeDropdown(){this.showDropdown=false,this.selectedIndex=-1,this.items=[];}scrollSelectedIntoView(){setTimeout(()=>{this.elementRef.nativeElement.querySelector(".autocomplete-dropdown")?.querySelector(".autocomplete-option.selected")?.scrollIntoView({block:"nearest"});});}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Aw({type:n,selectors:[["ds-autocomplete-input"]],inputs:{dataSource:"dataSource",placeholder:"placeholder",disabled:"disabled"},outputs:{itemSelected:"itemSelected"},decls:3,vars:4,consts:[[1,"autocomplete-container"],["type","text",3,"input","keydown","focus","blur","placeholder","disabled","value"],[1,"autocomplete-dropdown"],[1,"autocomplete-option",3,"selected"],[1,"autocomplete-option",3,"mousedown","touchstart"],[1,"option-name"],[1,"option-description"]],template:function(e,t){e&1&&(pl(0,"div",0)(1,"input",1),Rg("input",function(a){return t.onInput(a)})("keydown",function(a){return t.onKeydown(a)})("focus",function(){return t.onFocus()})("blur",function(){return t.onBlur()}),hl(),eC(2,Fi,3,0,"div",2),hl()),e&2&&(XE(),Ng("placeholder",t.placeholder)("disabled",t.disabled)("value",t.query),XE(),tC(t.showDropdown&&t.items.length>0?2:-1));},styles:['@charset "UTF-8";.autocomplete-container[_ngcontent-%COMP%]{position:relative;display:block;width:100%}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;font-size:14px;line-height:1.5;color:var(--color-text, #1d1d1f);background:var(--glass-bg);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff);box-shadow:0 0 0 3px #007aff26}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.autocomplete-dropdown[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:var(--glass-bg);border:1px solid var(--color-border, #e0e0e0);border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;max-height:240px;overflow-y:auto;overflow-x:hidden}.autocomplete-option[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;padding:10px 12px;cursor:pointer;transition:background .1s ease}.autocomplete-option[_ngcontent-%COMP%]:first-child{border-radius:8px 8px 0 0}.autocomplete-option[_ngcontent-%COMP%]:last-child{border-radius:0 0 8px 8px}.autocomplete-option[_ngcontent-%COMP%]:only-child{border-radius:8px}.autocomplete-option[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, #f5f5f5)}.autocomplete-option.selected[_ngcontent-%COMP%]{background:var(--color-bg-hover, #f5f5f5);outline:2px solid var(--color-primary, #007aff);outline-offset:-2px}.autocomplete-option[_ngcontent-%COMP%] .option-name[_ngcontent-%COMP%]{font-size:14px;font-weight:400;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-option[_ngcontent-%COMP%] .option-description[_ngcontent-%COMP%]{font-size:12px;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}'],changeDetection:1})};var nt=class n{static \u0275fac=function(e){return new(e||n)};static \u0275dir=ks({type:n,selectors:[["","dsCardActions",""]]})};var An=(()=>{class n{_animationsDisabled=K();state="unchecked";disabled=false;appearance="full";static \u0275fac=function(t){return new(t||n)};static \u0275cmp=Aw({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(t,o){t&2&&Hg("mat-pseudo-checkbox-indeterminate",o.state==="indeterminate")("mat-pseudo-checkbox-checked",o.state==="checked")("mat-pseudo-checkbox-disabled",o.disabled)("mat-pseudo-checkbox-minimal",o.appearance==="minimal")("mat-pseudo-checkbox-full",o.appearance==="full")("_mat-animation-noopable",o._animationsDisabled);},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(t,o){},styles:[`.mat-pseudo-checkbox {
|
|
194
194
|
border-radius: 2px;
|
|
195
195
|
cursor: pointer;
|
|
196
196
|
display: inline-block;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {n}from'./chunk-CfgXrte_.js';import {O}from'./chunk-
|
|
1
|
+
import {n}from'./chunk-CfgXrte_.js';import {O}from'./chunk-CI6bYQJX.js';import {S}from'./chunk-CHa38l1f.js';import {v}from'./chunk-BlFW31Ix.js';import {g,ao as V,G,w as we,H as Hi,u as ue,b as U$1,bR as ma,S as ha,A as Aw,aJ as Nb,v as vs,be as aT,l as Ag,k as fl,af as Dg,T as TC,r as Tg,bf as uT,ah as rT,n as eC,ac as mC,t as tC,W as WC,X as XE,a8 as Zg,a9 as dC,aa as If,ab as wf,ag as fT}from'./main-RWNNXKZO.js';import'./chunk-i073leod.js';import {W as Wn,S as Se}from'./chunk-CftdVrmg.js';import'./chunk-C3ey7Pw_.js';import'./chunk-Di_UVewm.js';import'./chunk-dzAKgnVd.js';import'./chunk-aNzkJAYY.js';var z=()=>[];function W(r,e){if(r&1&&(vs(0,"p",3),WC(1),fl()),r&2){let t=mC().$implicit;XE(),Zg(t.name);}}function U(r,e){if(r&1){let t=dC();vs(0,"agentos-ai-provider-item",5),Ag("editRequested",function(){let o=If(t),a=mC(2);return wf(a.onEdit(o))})("deleteRequested",function(){let o=If(t),a=mC(2);return wf(a.onDelete(o))})("duplicateRequested",function(){let o=If(t),a=mC(2);return wf(a.onDuplicate(o))}),fl();}if(r&2){let t=e,i=mC(2);Tg("config",t.config)("scope",t.scope)("readOnly",t.scope==="platform"||t.scope==="namespace"&&!i.isAdmin());}}function X(r,e){if(r&1&&eC(0,W,2,1,"p",3)(1,U,1,3,"agentos-ai-provider-item",4),r&2){let t,i=e.$implicit,o=mC();tC(o.isEmptyPlaceholder(i.id)?0:(t=o.resolve(i.id))?1:-1,t);}}var k=Object.freeze({platform:"Platform (read-only)",namespace:"AI Providers du namespace",userOnNs:"Mes overrides sur ce namespace",userGlobal:"Mes overrides globaux"}),F="__empty__",j=class r{route=g(V);router=g(G);destroyRef=g(we);state=g(O);namespaceRole=g(v);namespaceId=this.route.snapshot.params.namespaceId;isAdmin=Hi(false);listItems$=this.state.vm$.pipe(ue(e=>this.toListItems(e)));resolved=new Map;ngOnInit(){this.route.paramMap.pipe(U$1(this.destroyRef)).subscribe(e=>{let t=e.get("namespaceId")??"";t&&t!==this.namespaceId&&(this.namespaceId=t),this.state.setNamespace(t);}),this.route.paramMap.pipe(ue(e=>e.get("namespaceId")??""),ma(e=>e?this.namespaceRole.isAdminOfNamespace$(e):ha(false)),U$1(this.destroyRef)).subscribe(e=>this.isAdmin.set(e)),this.state.vm$.pipe(U$1(this.destroyRef)).subscribe(e=>{let t=new Map;e.platform.forEach(i=>{i.id&&t.set(this.itemKey("platform",i.id),{config:i,scope:"platform"});}),e.namespace.forEach(i=>{i.id&&t.set(this.itemKey("namespace",i.id),{config:i,scope:"namespace"});}),e.userOnNs.forEach(i=>{i.id&&t.set(this.itemKey("userOnNs",i.id),{config:i,scope:"userOnNs"});}),e.userGlobal.forEach(i=>{i.id&&t.set(this.itemKey("userGlobal",i.id),{config:i,scope:"userGlobal"});}),this.resolved=t;});}isEmptyPlaceholder(e){return e.startsWith(F)}resolve(e){return this.resolved.get(e)??null}itemKey(e,t){return `${e}:${t}`}goBack(){this.router.navigate(["/agentos","namespaces"]);}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"ai-providers","new"],{queryParams:{scope:n(this.isAdmin())}});}onEdit(e){let t=e.config.id;t&&this.router.navigate(["/agentos",this.namespaceId,"ai-providers",t,"edit"],{queryParams:{scope:e.scope}});}onDelete(e){let t=e.config.id;t&&this.state.delete(t,e.scope).pipe(U$1(this.destroyRef)).subscribe({error:i=>{console.error(`[AiProvidersAllScopes] Delete failed for ${e.scope}:${t}:`,i);}});}onDuplicate(e){if(!e.config.id)return;let t=e.scope==="namespace"&&!this.isAdmin()?"userOnNs":e.scope;this.router.navigate(["/agentos",this.namespaceId,"ai-providers","new"],{queryParams:{scope:t,template:e.config.id,templateScope:e.scope}});}toListItems(e){let t=[];return t.push(...this.sectionItems("platform",e.platform)),t.push(...this.sectionItems("namespace",e.namespace)),t.push(...this.sectionItems("userOnNs",e.userOnNs)),t.push(...this.sectionItems("userGlobal",e.userGlobal)),t}sectionItems(e,t){return t.length===0?[{id:`${F}${e}`,name:"Aucun AI Provider",groupKey:e,groupLabel:k[e]}]:t.filter(i=>!!i.id).map(i=>({id:this.itemKey(e,i.id),name:i.name,description:i.apiType,groupKey:e,groupLabel:k[e]}))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=Aw({type:r,selectors:[["agentos-ai-providers-all-scopes"]],decls:5,vars:6,consts:[["aiProviderItemTpl",""],["title","AI Providers","emptyMessage","No AI providers available.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[1,"ai-providers-all-scopes__empty"],[3,"config","scope","readOnly"],[3,"editRequested","deleteRequested","duplicateRequested","config","scope","readOnly"]],template:function(t,i){if(t&1&&(vs(0,"ds-entity-list",1),aT(1,"async"),Ag("createRequested",function(){return i.openCreateForm()}),vs(2,"ds-icon-button",2),Ag("action",function(){return i.goBack()}),fl()(),Dg(3,X,2,1,"ng-template",null,0,fT)),t&2){let o=TC(4);Tg("items",uT(1,3,i.listItems$)??rT(5,z))("showCreate",true)("itemTemplate",o);}},dependencies:[Wn,S,Se,Nb],styles:[".ai-providers-all-scopes__empty[_ngcontent-%COMP%]{font-size:.85rem;color:var(--color-text-secondary);padding:.5rem .25rem;margin:0;font-style:italic}"]})};export{j as AiProvidersAllScopesComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {g,di as te,Y as x}from'./main-
|
|
1
|
+
import {g,di as te,Y as x}from'./main-RWNNXKZO.js';var c=class r{api=g(te);getById(e){return this.api.getByIdScheduledPrompt(e)}listPlatform(){return this.api.searchScheduledPrompt({namespaceId:null,userId:null})}listByNamespace(e){return this.api.searchScheduledPrompt({namespaceId:e,userId:null})}search(e){return this.api.searchScheduledPrompt(e)}listEffective(e){return this.api.resolveEffectiveScheduledPrompt(e)}create(e){return this.api.createScheduledPrompt(e)}update(e,t){return this.api.updateScheduledPrompt(e,t)}enable(e){return this.api.enableScheduledPrompt(e)}disable(e){return this.api.disableScheduledPrompt(e)}delete(e){return this.api.deleteScheduledPrompt(e)}static \u0275fac=function(t){return new(t||r)};static \u0275prov=x({token:r,factory:r.\u0275fac,providedIn:"root"})};export{c};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {n as ne}from'./chunk-
|
|
1
|
+
import {n as ne}from'./chunk-BL6rHQIq.js';import {g,Z as z$1,_ as Ue,A as Aw,$ as zt,a0 as jt,a1 as Vt,a2 as Nt,i as hr,p as pr,v as vs,W as WC,k as fl,n as eC,l as Ag,X as XE,y as Hg,a5 as yl,a8 as Zg,t as tC,r as Tg,a9 as dC,ai as Jg,aa as If,ac as mC,aj as KC,ab as wf,a3 as HI,ak as Xg,a6 as $I}from'./main-RWNNXKZO.js';import {y as yt,w as wt,t as ti,Z as Zn,c as cn}from'./chunk-Di_UVewm.js';function G(c,p){if(c&1){let t=dC();vs(0,"mat-checkbox",5),Jg("ngModelChange",function(l){If(t);let f=mC();return KC(f.checkboxChecked,l)||(f.checkboxChecked=l),wf(l)}),WC(1),fl(),HI();}if(c&2){let t=mC();Xg("ngModel",t.checkboxChecked),$I(),XE(),Zg(t.data.checkboxLabel);}}var z=class c{dialogRef=g(z$1);data=g(Ue);checkboxChecked=false;confirm(){this.dialogRef.close({confirmed:true,checkboxChecked:this.checkboxChecked});}cancel(){this.dialogRef.close({confirmed:false});}static \u0275fac=function(t){return new(t||c)};static \u0275cmp=Aw({type:c,selectors:[["app-confirm-dialog"]],decls:13,vars:8,consts:[["mat-dialog-title",""],[3,"ngModel"],["align","end"],["mat-button","",3,"click"],["mat-flat-button","",3,"click","color"],[3,"ngModelChange","ngModel"]],template:function(t,e){t&1&&(vs(0,"h2",0)(1,"mat-icon"),WC(2,"warning"),fl(),WC(3),fl(),vs(4,"mat-dialog-content")(5,"p"),WC(6),fl(),eC(7,G,2,2,"mat-checkbox",1),fl(),vs(8,"mat-dialog-actions",2)(9,"button",3),Ag("click",function(){return e.cancel()}),WC(10),fl(),vs(11,"button",4),Ag("click",function(){return e.confirm()}),WC(12),fl()()),t&2&&(XE(),Hg("destructive",!!e.data.isDestructive),XE(2),yl(" ",e.data.title,`
|
|
2
2
|
`),XE(3),Zg(e.data.message),XE(),tC(e.data.checkboxLabel?7:-1),XE(3),Zg(e.data.cancelLabel??"Cancel"),XE(),Tg("color",e.data.isDestructive?"warn":"primary"),XE(),yl(" ",e.data.confirmLabel??"Confirm"," "));},dependencies:[zt,jt,Vt,Nt,hr,pr,yt,wt,ne,ti,Zn,cn],styles:["h2[mat-dialog-title][_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}h2[mat-dialog-title][_ngcontent-%COMP%] mat-icon.destructive[_ngcontent-%COMP%]{color:var(--color-error, #f44336)}mat-dialog-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--color-text-secondary);line-height:1.5}mat-dialog-content[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{display:block;margin-top:8px;font-size:.875rem}"]})};export{z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {n}from'./chunk-CfgXrte_.js';import {O}from'./chunk-
|
|
1
|
+
import {n}from'./chunk-CfgXrte_.js';import {O}from'./chunk-Bb2Uw0l_.js';import {v}from'./chunk-BgmqAU5d.js';import {v as v$1}from'./chunk-BlFW31Ix.js';import {g,ao as V,G,w as we,H as Hi,u as ue,b as U$1,bR as ma,S as ha,A as Aw,aJ as Nb,v as vs,be as aT,l as Ag,k as fl,af as Dg,T as TC,r as Tg,bf as uT,ah as rT,n as eC,ac as mC,t as tC,W as WC,X as XE,a8 as Zg,a9 as dC,aa as If,ab as wf,ag as fT}from'./main-RWNNXKZO.js';import'./chunk-i073leod.js';import {W as Wn,S as Se}from'./chunk-CftdVrmg.js';import'./chunk-C3ey7Pw_.js';import'./chunk-Di_UVewm.js';import'./chunk-dzAKgnVd.js';import'./chunk-aNzkJAYY.js';var W=()=>[];function z(s,e){if(s&1&&(vs(0,"p",3),WC(1),fl()),s&2){let t=mC().$implicit;XE(),Zg(t.name);}}function U(s,e){if(s&1){let t=dC();vs(0,"agentos-auth-setting-item",5),Ag("editRequested",function(){let i=If(t),r=mC(2);return wf(r.onEdit(i))})("deleteRequested",function(){let i=If(t),r=mC(2);return wf(r.onDelete(i))})("duplicateRequested",function(){let i=If(t),r=mC(2);return wf(r.onDuplicate(i))}),fl();}if(s&2){let t=e,n=mC(2);Tg("config",t.config)("scope",t.scope)("readOnly",t.scope==="platform"||t.scope==="namespace"&&!n.isAdmin());}}function X(s,e){if(s&1&&eC(0,z,2,1,"p",3)(1,U,1,3,"agentos-auth-setting-item",4),s&2){let t,n=e.$implicit,i=mC();tC(i.isEmptyPlaceholder(n.id)?0:(t=i.resolve(n.id))?1:-1,t);}}var k=Object.freeze({platform:"Platform (read-only)",namespace:"Auth Settings du namespace",userOnNs:"Mes overrides sur ce namespace",userGlobal:"Mes overrides globaux"}),F="__empty__",j=class s{route=g(V);router=g(G);destroyRef=g(we);state=g(v);namespaceRole=g(v$1);namespaceId=this.route.snapshot.params.namespaceId;isAdmin=Hi(false);listItems$=this.state.vm$.pipe(ue(e=>this.toListItems(e)));resolved=new Map;ngOnInit(){this.route.paramMap.pipe(U$1(this.destroyRef)).subscribe(e=>{let t=e.get("namespaceId")??"";t&&t!==this.namespaceId&&(this.namespaceId=t),this.state.setNamespace(t);}),this.route.paramMap.pipe(ue(e=>e.get("namespaceId")??""),ma(e=>e?this.namespaceRole.isAdminOfNamespace$(e):ha(false)),U$1(this.destroyRef)).subscribe(e=>this.isAdmin.set(e)),this.state.vm$.pipe(U$1(this.destroyRef)).subscribe(e=>{let t=new Map;e.platform.forEach(n=>{n.id&&t.set(this.itemKey("platform",n.id),{config:n,scope:"platform"});}),e.namespace.forEach(n=>{n.id&&t.set(this.itemKey("namespace",n.id),{config:n,scope:"namespace"});}),e.userOnNs.forEach(n=>{n.id&&t.set(this.itemKey("userOnNs",n.id),{config:n,scope:"userOnNs"});}),e.userGlobal.forEach(n=>{n.id&&t.set(this.itemKey("userGlobal",n.id),{config:n,scope:"userGlobal"});}),this.resolved=t;});}isEmptyPlaceholder(e){return e.startsWith(F)}resolve(e){return this.resolved.get(e)??null}itemKey(e,t){return `${e}:${t}`}goBack(){this.router.navigate(["/agentos","namespaces"]);}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"auth-settings","new"],{queryParams:{scope:n(this.isAdmin())}});}onEdit(e){let t=e.config.id;t&&this.router.navigate(["/agentos",this.namespaceId,"auth-settings",t,"edit"],{queryParams:{scope:e.scope}});}onDelete(e){let t=e.config.id;t&&this.state.delete(t,e.scope).pipe(U$1(this.destroyRef)).subscribe({error:n=>{console.error(`[AuthSettingsAllScopes] Delete failed for ${e.scope}:${t}:`,n);}});}onDuplicate(e){if(!e.config.id)return;let t=e.scope==="platform"||e.scope==="namespace"&&!this.isAdmin()?"userOnNs":e.scope;this.router.navigate(["/agentos",this.namespaceId,"auth-settings","new"],{queryParams:{scope:t,template:e.config.id,templateScope:e.scope}});}toListItems(e){let t=[];return t.push(...this.sectionItems("platform",e.platform)),t.push(...this.sectionItems("namespace",e.namespace)),t.push(...this.sectionItems("userOnNs",e.userOnNs)),t.push(...this.sectionItems("userGlobal",e.userGlobal)),t}sectionItems(e,t){return t.length===0?[{id:`${F}${e}`,name:"Aucun Auth Setting",groupKey:e,groupLabel:k[e]}]:t.filter(n=>!!n.id).map(n=>({id:this.itemKey(e,n.id),name:n.name,description:n.authType,groupKey:e,groupLabel:k[e]}))}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=Aw({type:s,selectors:[["agentos-auth-settings-all-scopes"]],decls:5,vars:6,consts:[["authSettingItemTpl",""],["title","Auth Settings","emptyMessage","No auth settings available.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[1,"auth-settings-all-scopes__empty"],[3,"config","scope","readOnly"],[3,"editRequested","deleteRequested","duplicateRequested","config","scope","readOnly"]],template:function(t,n){if(t&1&&(vs(0,"ds-entity-list",1),aT(1,"async"),Ag("createRequested",function(){return n.openCreateForm()}),vs(2,"ds-icon-button",2),Ag("action",function(){return n.goBack()}),fl()(),Dg(3,X,2,1,"ng-template",null,0,fT)),t&2){let i=TC(4);Tg("items",uT(1,3,n.listItems$)??rT(5,W))("showCreate",true)("itemTemplate",i);}},dependencies:[Wn,O,Se,Nb],encapsulation:2})};export{j as AuthSettingsAllScopesComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {I}from'./chunk-
|
|
1
|
+
import {I}from'./chunk-Tugz7Zc1.js';import {m}from'./chunk-i073leod.js';import {g,ao as V$1,G as G$1,w as we,aI as Tr,bR as ma,Q as By,a7 as ga,S as ha,u as ue,b as U$1,A as Aw,aJ as Nb,v as vs,be as aT,l as Ag,W as WC,k as fl,af as Dg,T as TC,r as Tg,bf as uT,ah as rT,n as eC,ac as mC,t as tC,a9 as dC,aa as If,ab as wf,ag as fT}from'./main-RWNNXKZO.js';import {W as Wn}from'./chunk-CftdVrmg.js';import'./chunk-C3ey7Pw_.js';import'./chunk-Di_UVewm.js';import'./chunk-aNzkJAYY.js';var F=()=>[];function U(r,t){if(r&1){let o=dC();vs(0,"agentos-prompt-item",4),Ag("deleteRequested",function(n){If(o);let D=mC(2);return wf(D.deletePrompt(n))}),fl();}if(r&2){let o=mC().$implicit,e=mC();Tg("prompt",t)("namespaceId",e.namespaceId)("readOnly",e.isPlatformPrompt(o.id));}}function V(r,t){if(r&1&&eC(0,U,1,3,"agentos-prompt-item",3),r&2){let o,e=t.$implicit,n=mC();tC((o=n.resolvePrompt(e.id))?0:-1,o);}}var j="platform",G="namespace",A=class r{route=g(V$1);router=g(G$1);destroyRef=g(we);promptState=g(m);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new Tr(void 0);allPrompts$=this.refresh$.pipe(ma(()=>By({platform:this.promptState.listPlatform().pipe(ga(()=>ha([]))),namespace:this.promptState.listByNamespace(this.namespaceId)})));promptItems$=this.allPrompts$.pipe(ue(({platform:t,namespace:o})=>[...t.map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:j,groupLabel:"Platform (read-only)"})),...o.map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:G,groupLabel:"Namespace"}))]));namespacePromptsById=new Map;platformPromptsById=new Map;constructor(){this.allPrompts$.pipe(U$1(this.destroyRef)).subscribe(({platform:t,namespace:o})=>{this.platformPromptsById=new Map(t.map(e=>[e.id??"",e])),this.namespacePromptsById=new Map(o.map(e=>[e.id??"",e]));});}goBack(){this.router.navigate(["/agentos","namespaces"]);}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"prompts","new"]);}deletePrompt(t){this.promptState.delete(t.id??"").pipe(U$1(this.destroyRef)).subscribe(()=>this.refresh$.next());}resolvePrompt(t){return this.platformPromptsById.get(t)??this.namespacePromptsById.get(t)??null}isPlatformPrompt(t){return this.platformPromptsById.has(t)}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=Aw({type:r,selectors:[["agentos-namespace-prompts"]],decls:6,vars:6,consts:[["promptItemTpl",""],["title","Prompts","emptyMessage","No prompts defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","type","button",1,"namespace-prompts__back",3,"click"],[3,"prompt","namespaceId","readOnly"],[3,"deleteRequested","prompt","namespaceId","readOnly"]],template:function(o,e){if(o&1&&(vs(0,"ds-entity-list",1),aT(1,"async"),Ag("createRequested",function(){return e.openCreateForm()}),vs(2,"button",2),Ag("click",function(){return e.goBack()}),WC(3,"\u2190 Namespaces"),fl()(),Dg(4,V,1,1,"ng-template",null,0,fT)),o&2){let n=TC(5);Tg("items",uT(1,3,e.promptItems$)??rT(5,F))("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,I,Nb],styles:[".namespace-prompts__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.namespace-prompts__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"]})};export{A as NamespacePromptsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {R}from'./chunk-
|
|
1
|
+
import {R}from'./chunk-BUf2kRN-.js';import {c}from'./chunk-Cl_XNEMO.js';import {g,ao as V$1,G,w as we,H as Hi,m as mT,Q as By,a7 as ga,S as ha,b as U,A as Aw,v as vs,l as Ag,k as fl,af as Dg,T as TC,r as Tg,n as eC,ac as mC,t as tC,a9 as dC,aa as If,ab as wf,ag as fT}from'./main-RWNNXKZO.js';import {W as Wn,S as Se}from'./chunk-CftdVrmg.js';import'./chunk-C3ey7Pw_.js';import'./chunk-Di_UVewm.js';function V(i,e){if(i&1){let t=dC();vs(0,"agentos-scheduled-prompt-item",4),Ag("enableRequested",function(n){If(t);let s=mC(2);return wf(s.enablePrompt(n))})("disableRequested",function(n){If(t);let s=mC(2);return wf(s.disablePrompt(n))})("deleteRequested",function(n){If(t);let s=mC(2);return wf(s.deletePrompt(n))}),fl();}if(i&2){let t=mC().$implicit,o=mC();Tg("definition",e)("namespaceId",o.namespaceId)("readOnly",o.isPlatformPrompt(t.id));}}function k(i,e){if(i&1&&eC(0,V,1,3,"agentos-scheduled-prompt-item",3),i&2){let t,o=e.$implicit,n=mC();tC((t=n.resolvePrompt(o.id))?0:-1,t);}}var O="platform",B="namespace",M=class i{route=g(V$1);router=g(G);destroyRef=g(we);state=g(c);namespaceId=this.route.snapshot.params.namespaceId;platformPrompts=Hi([]);namespacePrompts=Hi([]);promptItems=mT(()=>[...this.platformPrompts().map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:O,groupLabel:"Platform (read-only)",badges:[{label:e.enabled?"Enabled":"Disabled",variant:e.enabled?"success":"warning"}]})),...this.namespacePrompts().map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:B,groupLabel:"Namespace",badges:[{label:e.enabled?"Enabled":"Disabled",variant:e.enabled?"success":"warning"}]}))]);constructor(){By({platform:this.state.listPlatform().pipe(ga(()=>ha([]))),namespace:this.state.listByNamespace(this.namespaceId)}).pipe(U(this.destroyRef)).subscribe(({platform:e,namespace:t})=>{this.platformPrompts.set(e),this.namespacePrompts.set(t);});}goBack(){this.router.navigate(["/agentos","namespaces"]);}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"scheduled-prompts","new"]);}enablePrompt(e){this.state.enable(e.id??"").pipe(U(this.destroyRef)).subscribe(t=>this.patchNamespacePrompt(t));}disablePrompt(e){this.state.disable(e.id??"").pipe(U(this.destroyRef)).subscribe(t=>this.patchNamespacePrompt(t));}deletePrompt(e){let t=e.id??"";this.state.delete(t).pipe(U(this.destroyRef)).subscribe(()=>this.namespacePrompts.update(o=>o.filter(n=>n.id!==t)));}resolvePrompt(e){return this.platformPrompts().find(t=>t.id===e)??this.namespacePrompts().find(t=>t.id===e)??null}isPlatformPrompt(e){return this.platformPrompts().some(t=>t.id===e)}patchNamespacePrompt(e){this.namespacePrompts.update(t=>t.map(o=>o.id===e.id?e:o));}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=Aw({type:i,selectors:[["agentos-scheduled-prompt-list"]],decls:4,vars:3,consts:[["scheduledPromptItemTpl",""],["title","Scheduled Prompts","emptyMessage","No scheduled prompts yet. Create one to get started.","cardMinWidth","420px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"definition","namespaceId","readOnly"],[3,"enableRequested","disableRequested","deleteRequested","definition","namespaceId","readOnly"]],template:function(t,o){if(t&1&&(vs(0,"ds-entity-list",1),Ag("createRequested",function(){return o.openCreateForm()}),vs(1,"ds-icon-button",2),Ag("action",function(){return o.goBack()}),fl()(),Dg(2,k,1,1,"ng-template",null,0,fT)),t&2){let n=TC(3);Tg("items",o.promptItems())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,R,Se],encapsulation:2})};export{M as ScheduledPromptListComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {K as Kn,Z as Zn,S as Se}from'./chunk-
|
|
1
|
+
import {K as Kn,Z as Zn,S as Se}from'./chunk-CftdVrmg.js';import {ca as mB,cb as gB,H as Hi,A as Aw,v as vs,W as WC,k as fl,n as eC,X as XE,a8 as Zg,a5 as yl,t as tC,a9 as dC,l as Ag,ac as mC,r as Tg,aa as If,ab as wf}from'./main-RWNNXKZO.js';function A(o,a){if(o&1){let e=dC();vs(0,"span",7),WC(1,"Delete?"),fl(),vs(2,"ds-icon-button",8),Ag("action",function(){If(e);let l=mC();return wf(l.onDeleteConfirmed())}),fl(),vs(3,"ds-icon-button",9),Ag("action",function(){If(e);let l=mC();return wf(l.onDeleteCancelled())}),fl();}}function P(o,a){if(o&1){let e=dC();vs(0,"ds-kebab-menu",10),Ag("itemSelected",function(l){If(e);let O=mC();return wf(O.onMenuAction(l))}),fl();}if(o&2){let e=mC();Tg("items",e.menuItems);}}var I=class o{model=mB.required();namespaceId=mB(void 0);readOnly=mB(false);deleteRequested=gB();editRequested=gB();pendingDelete=Hi(false);menuItems=[{key:"edit",label:"Edit model",icon:"edit"},{key:"delete",label:"Delete model",icon:"delete",variant:"danger"}];get displayTitle(){return this.model().alias??this.model().apiModelName}onMenuAction(a){switch(a){case "edit":this.editRequested.emit(this.model());break;case "delete":this.pendingDelete.set(true);break}}onDeleteConfirmed(){this.pendingDelete.set(false),this.deleteRequested.emit(this.model());}onDeleteCancelled(){this.pendingDelete.set(false);}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-ai-model-item"]],inputs:{model:[1,"model"],namespaceId:[1,"namespaceId"],readOnly:[1,"readOnly"]},outputs:{deleteRequested:"deleteRequested",editRequested:"editRequested"},decls:12,vars:4,consts:[["role","listitem","dsBlueprint","",1,"ai-model-item"],[1,"ai-model-item__body"],[1,"ai-model-item__name"],[1,"ai-model-item__api-name"],[1,"ai-model-item__params"],[1,"ai-model-item__actions"],[3,"items"],[1,"ai-model-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],[3,"itemSelected","items"]],template:function(e,i){e&1&&(vs(0,"div",0)(1,"div",1)(2,"span",2),WC(3),fl(),vs(4,"span",3),WC(5),fl(),vs(6,"span",4)(7,"span"),WC(8),fl()()(),vs(9,"div",5),eC(10,A,4,0)(11,P,1,1,"ds-kebab-menu",6),fl()()),e&2&&(XE(3),Zg(i.displayTitle),XE(2),Zg(i.model().apiModelName),XE(3),yl("priority: ",i.model().priority),XE(2),tC(i.pendingDelete()?10:i.readOnly()?-1:11));},dependencies:[Kn,Zn,Se],styles:[".ai-model-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:14px 16px;position:relative;border-radius:0;border:1px solid var(--color-divider);background:var(--color-bg);box-shadow:var(--shadow-sm);overflow:visible;transition:border-color .15s ease}.ai-model-item[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}.ai-model-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.ai-model-item__name[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-item__api-name[_ngcontent-%COMP%]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-item__params[_ngcontent-%COMP%]{display:flex;gap:.75rem;font-size:13px;color:var(--color-text-secondary)}.ai-model-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.ai-model-item[_ngcontent-%COMP%]:hover .ai-model-item__actions[_ngcontent-%COMP%], .ai-model-item[_ngcontent-%COMP%]:focus-within .ai-model-item__actions[_ngcontent-%COMP%]{opacity:1}.ai-model-item__confirm-label[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);margin-right:.25rem;white-space:nowrap}"]})};export{I};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {an as ce,g,L,ch as ge,ap as Vy,av as dt$1,A as Aw,v as vs,W as WC,k as fl,ai as Jg,aj as KC,l as Ag,a3 as HI,o as bg,n as eC,q as oC,X as XE,ak as Xg,a6 as $I,r as Tg,t as tC,x as iC,a5 as yl,aK as Do,aL as qn,aN as wt$1,az as Qt,aV as w,ci as Pn,cd as Sb,c7 as QT,af as Dg,ag as fT,c8 as kf,cj as Ff,cg as Mg,T as TC,C as Cg,ad as Vg,b_ as FC,y as Hg,D as Fg,I as IC,E as wC,aI as Tr,aF as me,ck as fe,h as he,c as ce$1,bT as Od,b8 as T,b7 as B,bd as A,b6 as u,bc as h,cl as M,e as O,b9 as v,ba as m,d as b,cm as F,f,V,bb as R,cn as H,co as _,c9 as We,Y as x,Z as z,_ as Ue,am as Gm,j as Gn,p as pr,a0 as jt,a2 as Nt,a1 as Vt,a$ as Yg,ac as mC}from'./main-
|
|
1
|
+
import {an as ce,g,L,ch as ge,ap as Vy,av as dt$1,A as Aw,v as vs,W as WC,k as fl,ai as Jg,aj as KC,l as Ag,a3 as HI,o as bg,n as eC,q as oC,X as XE,ak as Xg,a6 as $I,r as Tg,t as tC,x as iC,a5 as yl,aK as Do,aL as qn,aN as wt$1,az as Qt,aV as w,ci as Pn,cd as Sb,c7 as QT,af as Dg,ag as fT,c8 as kf,cj as Ff,cg as Mg,T as TC,C as Cg,ad as Vg,b_ as FC,y as Hg,D as Fg,I as IC,E as wC,aI as Tr,aF as me,ck as fe,h as he,c as ce$1,bT as Od,b8 as T,b7 as B,bd as A,b6 as u,bc as h,cl as M,e as O,b9 as v,ba as m,d as b,cm as F,f,V,bb as R,cn as H,co as _,c9 as We,Y as x,Z as z,_ as Ue,am as Gm,j as Gn,p as pr,a0 as jt,a2 as Nt,a1 as Vt,a$ as Yg,ac as mC}from'./main-RWNNXKZO.js';import {s as se}from'./chunk-LsHXFX7Q.js';import {t as ti,Q as Qn,e as ei,Y as Ye$1,h as _n,A as At,m as mn,Z as Zn,c as cn,w as wt}from'./chunk-Di_UVewm.js';var Ze=["determinateSpinner"];function Xe(c,e){if(c&1&&(kf(),vs(0,"svg",11),bg(1,"circle",12),fl()),c&2){let t=mC();Cg("viewBox",t._viewBox()),XE(),Vg("stroke-dasharray",t._strokeCircumference(),"px")("stroke-dashoffset",t._strokeCircumference()/2,"px")("stroke-width",t._circleStrokeWidth(),"%"),Cg("r",t._circleRadius());}}var et=new w("mat-progress-spinner-default-options",{providedIn:"root",factory:()=>({diameter:qe})}),qe=100,tt=10,yt=(()=>{class c{_elementRef=g(Qt);_noopAnimations;get color(){return this._color||this._defaultColor}set color(t){this._color=t;}_color;_defaultColor="primary";_determinateCircle;constructor(){let t=g(et),n=Pn(),i=this._elementRef.nativeElement;this._noopAnimations=n==="di-disabled"&&!!t&&!t._forceAnimations,this.mode=i.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",!this._noopAnimations&&n==="reduced-motion"&&i.classList.add("mat-progress-spinner-reduced-motion"),t&&(t.color&&(this.color=this._defaultColor=t.color),t.diameter&&(this.diameter=t.diameter),t.strokeWidth&&(this.strokeWidth=t.strokeWidth));}mode;get value(){return this.mode==="determinate"?this._value:0}set value(t){this._value=Math.max(0,Math.min(100,t||0));}_value=0;get diameter(){return this._diameter}set diameter(t){this._diameter=t||0;}_diameter=qe;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(t){this._strokeWidth=t||0;}_strokeWidth;_circleRadius(){return (this.diameter-tt)/2}_viewBox(){let t=this._circleRadius()*2+this.strokeWidth;return `0 0 ${t} ${t}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(n){return new(n||c)};static \u0275cmp=Aw({type:c,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(n,i){if(n&1&&Fg(Ze,5),n&2){let o;IC(o=wC())&&(i._determinateCircle=o.first);}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(n,i){n&2&&(Cg("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",i.mode==="determinate"?i.value:null)("mode",i.mode),FC("mat-"+i.color),Vg("width",i.diameter,"px")("height",i.diameter,"px")("--mat-progress-spinner-size",i.diameter+"px")("--mat-progress-spinner-active-indicator-width",i.diameter+"px"),Hg("_mat-animation-noopable",i._noopAnimations)("mdc-circular-progress--indeterminate",i.mode==="indeterminate"));},inputs:{color:"color",mode:"mode",value:[2,"value","value",QT],diameter:[2,"diameter","diameter",QT],strokeWidth:[2,"strokeWidth","strokeWidth",QT]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(n,i){if(n&1&&(Dg(0,Xe,2,8,"ng-template",null,0,fT),vs(2,"div",2,1),kf(),vs(4,"svg",3),bg(5,"circle",4),fl()(),Ff(),vs(6,"div",5)(7,"div",6)(8,"div",7),Mg(9,8),fl(),vs(10,"div",9),Mg(11,8),fl(),vs(12,"div",10),Mg(13,8),fl()()()),n&2){let o=TC(1);XE(4),Cg("viewBox",i._viewBox()),XE(),Vg("stroke-dasharray",i._strokeCircumference(),"px")("stroke-dashoffset",i._strokeDashOffset(),"px")("stroke-width",i._circleStrokeWidth(),"%"),Cg("r",i._circleRadius()),XE(4),Tg("ngTemplateOutlet",o),XE(2),Tg("ngTemplateOutlet",o),XE(2),Tg("ngTemplateOutlet",o);}},dependencies:[Sb],styles:[`.mat-mdc-progress-spinner {
|
|
2
2
|
--mat-progress-spinner-animation-multiplier: 1;
|
|
3
3
|
display: block;
|
|
4
4
|
overflow: hidden;
|