@whoz-oss/coday-client 0.128.0 → 0.130.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/browser/{chunk-D6WU5O4X.js → chunk-2TT2VS4Q.js} +1 -1
  2. package/browser/{chunk-GVX63TKQ.js → chunk-2YPR6RKN.js} +1 -1
  3. package/browser/{chunk-6LO3ANKL.js → chunk-3CAK3MY2.js} +1 -1
  4. package/browser/{chunk-ZAM3WGZM.js → chunk-3DDLKUVJ.js} +1 -1
  5. package/browser/{chunk-7XSGZTN3.js → chunk-4AYGP75X.js} +1 -1
  6. package/browser/chunk-4KNZ7PUG.js +1 -0
  7. package/browser/{chunk-KYPWHL43.js → chunk-4XDVIAH5.js} +1 -1
  8. package/browser/{chunk-HSNVFCBN.js → chunk-6DNANWSF.js} +1 -1
  9. package/browser/{chunk-AK6F2DC7.js → chunk-6JH2UGTU.js} +1 -1
  10. package/browser/chunk-6MVTL5VJ.js +1 -0
  11. package/browser/chunk-7GBHCDC2.js +1 -0
  12. package/browser/{chunk-7CFO7WWZ.js → chunk-AHABNNMX.js} +1 -1
  13. package/browser/{chunk-Z26H5ES2.js → chunk-AKD5MBRD.js} +1 -1
  14. package/browser/chunk-B6DPIDKI.js +1 -0
  15. package/browser/{chunk-EPA5P2I6.js → chunk-BEKG4CZE.js} +1 -1
  16. package/browser/{chunk-3TO5PQRD.js → chunk-BYSD3PVJ.js} +1 -1
  17. package/browser/{chunk-LLDKKRUC.js → chunk-BZJFZW26.js} +1 -1
  18. package/browser/{chunk-ADWJAQMQ.js → chunk-CL3F6CYH.js} +1 -1
  19. package/browser/{chunk-WNNKQ2DH.js → chunk-CND4W2V5.js} +1 -1
  20. package/browser/chunk-CX2W2KP4.js +1 -0
  21. package/browser/{chunk-DVO44NIX.js → chunk-CXN4NTRD.js} +1 -1
  22. package/browser/chunk-DIZZ6MCJ.js +1 -0
  23. package/browser/{chunk-XJUBZLY2.js → chunk-DLU3TQID.js} +1 -1
  24. package/browser/{chunk-7T6Q4MDL.js → chunk-DPFJ6LFY.js} +1 -1
  25. package/browser/{chunk-MWWLTJ77.js → chunk-FAAHG43E.js} +1 -1
  26. package/browser/{chunk-KTPX26DH.js → chunk-FDCPX2YT.js} +1 -1
  27. package/browser/{chunk-YCJZTFYJ.js → chunk-FJR6WCPX.js} +1 -1
  28. package/browser/{chunk-VNCIHM33.js → chunk-FQSDA7SM.js} +1 -1
  29. package/browser/{chunk-IFXDK4GQ.js → chunk-FTMDL4HX.js} +1 -1
  30. package/browser/{chunk-XIQ3L6H6.js → chunk-G4QDBE4F.js} +1 -1
  31. package/browser/chunk-GYZJRAEL.js +1 -0
  32. package/browser/chunk-HCMK67ST.js +1 -0
  33. package/browser/chunk-HUWAPEGQ.js +1 -0
  34. package/browser/{chunk-DRBOHCTP.js → chunk-HY7OYHZF.js} +1 -1
  35. package/browser/{chunk-RQLQ22PM.js → chunk-HYNHL5RY.js} +1 -1
  36. package/browser/{chunk-3U3QVZEU.js → chunk-I75FDNMK.js} +1 -1
  37. package/browser/{chunk-TSDYLM5L.js → chunk-J6NHAJP2.js} +1 -1
  38. package/browser/{chunk-GEUVTKHG.js → chunk-KNY6WJUH.js} +1 -1
  39. package/browser/{chunk-AJOXSD6I.js → chunk-LCBWJP6Z.js} +1 -1
  40. package/browser/{chunk-QWMDAFBN.js → chunk-LTFITYTW.js} +1 -1
  41. package/browser/{chunk-7A54VTP2.js → chunk-MLNEYB77.js} +1 -1
  42. package/browser/{chunk-VGRGY2U3.js → chunk-MO6H3TK3.js} +1 -1
  43. package/browser/{chunk-EU3J4G2Y.js → chunk-NEINI73V.js} +1 -1
  44. package/browser/{chunk-UORJVNGU.js → chunk-NLRFBAA2.js} +1 -1
  45. package/browser/chunk-NV3MNDVJ.js +1 -0
  46. package/browser/{chunk-NZDKKDRG.js → chunk-OBMXZUQM.js} +1 -1
  47. package/browser/{chunk-IJ2YZMNS.js → chunk-OHLGZXEO.js} +1 -1
  48. package/browser/chunk-OMENROC2.js +1 -0
  49. package/browser/{chunk-QSQYSFNQ.js → chunk-OSX2KHVN.js} +1 -1
  50. package/browser/{chunk-I5OT3IGD.js → chunk-Q74LPU7S.js} +1 -1
  51. package/browser/{chunk-YXFL2FTT.js → chunk-QDQW667Q.js} +1 -1
  52. package/browser/{chunk-WPC6XC7P.js → chunk-QFSZDRP2.js} +1 -1
  53. package/browser/chunk-R2OQMKB5.js +1 -0
  54. package/browser/{chunk-DE5MXWYR.js → chunk-R3DKNIV5.js} +1 -1
  55. package/browser/chunk-R5RVDZLX.js +1 -0
  56. package/browser/{chunk-JWEUUCFC.js → chunk-RAJZGLER.js} +1 -1
  57. package/browser/{chunk-3JGMGRXW.js → chunk-RNXBUYHW.js} +2 -2
  58. package/browser/{chunk-B2QA6UZX.js → chunk-SDLTQWY6.js} +1 -1
  59. package/browser/{chunk-FFMGEAGW.js → chunk-SHWW6WRB.js} +1 -1
  60. package/browser/{chunk-WQUBEVZN.js → chunk-SI36SMXC.js} +1 -1
  61. package/browser/{chunk-AQ3SEH2N.js → chunk-SKVQOMLG.js} +1 -1
  62. package/browser/{chunk-NAQEVUOV.js → chunk-SQWEKOLS.js} +1 -1
  63. package/browser/{chunk-SDNXWYG5.js → chunk-T2JHUF63.js} +1 -1
  64. package/browser/chunk-T2LG7TT2.js +1 -0
  65. package/browser/{chunk-U4662WTU.js → chunk-TY4VCUP2.js} +1 -1
  66. package/browser/{chunk-IXD43YQI.js → chunk-UQNMPA5Y.js} +1 -1
  67. package/browser/chunk-WBRWLEC2.js +1 -0
  68. package/browser/{chunk-MVATXMLV.js → chunk-WC5DQJKZ.js} +1 -1
  69. package/browser/{chunk-IZFHJAEI.js → chunk-YBAY4MP6.js} +1 -1
  70. package/browser/{chunk-RHFQ7GO2.js → chunk-ZQJGEWGV.js} +1 -1
  71. package/browser/index.html +1 -1
  72. package/browser/{main-YSLZYJ4P.js → main-XJQHXNY2.js} +1 -1
  73. package/package.json +1 -1
  74. package/browser/chunk-3D3KN52V.js +0 -1
  75. package/browser/chunk-3YSNMKXU.js +0 -1
  76. package/browser/chunk-5B6P72NR.js +0 -1
  77. package/browser/chunk-B2FFL2F7.js +0 -1
  78. package/browser/chunk-FPNKDL3E.js +0 -1
  79. package/browser/chunk-GAZJZBKP.js +0 -1
  80. package/browser/chunk-GG2XORTA.js +0 -1
  81. package/browser/chunk-H6Q42HHV.js +0 -1
  82. package/browser/chunk-I5EEQETN.js +0 -1
  83. package/browser/chunk-O3U2KGCT.js +0 -1
  84. package/browser/chunk-ONXSTLRN.js +0 -1
  85. package/browser/chunk-QU37OGFO.js +0 -1
  86. package/browser/chunk-QXZ6AR76.js +0 -1
@@ -1,3 +1,3 @@
1
- import{d as zt,e as Kt,f as Bt,g as Jt}from"./chunk-ZAM3WGZM.js";import{a as vt,c as Ct,d as wt,e as Mt,n as he}from"./chunk-RQLQ22PM.js";import{a as xt,b as yt,e as It,f as St,i as Et,j as Dt,m as qt,n as $t}from"./chunk-AK6F2DC7.js";import{a as G}from"./chunk-AJOXSD6I.js";import{f as ut,i as ft,j as ht}from"./chunk-IXD43YQI.js";import{a as Q,b as bt}from"./chunk-WPC6XC7P.js";import{C as Ht,D as fe,b as Ot,c as me,g as ue,h as Tt,j as kt,l as te,m as Pt,o as At,r as Ft,s as jt,u as Nt,v as Rt,w as Vt,x as Lt}from"./chunk-XJUBZLY2.js";import{E as mt,K as gt,M as Ee,N as _t,O as pe,P as De,h as st,i as dt,n as lt,t as ee,u as ct,w as pt}from"./chunk-B2QA6UZX.js";import{$a as we,$b as W,A as je,Ab as Me,B as U,Bb as S,Cb as Ye,Db as h,Eb as Ie,F as Ne,Fb as l,Fc as rt,G as Re,Gb as j,Hb as I,Ib as Z,J as Ve,Jb as se,Ka as a,Kb as N,Lb as R,Na as Je,Pa as We,Pb as X,Qb as V,R as Ce,Rb as E,S as Le,Sa as Qe,Sb as de,Tb as m,Ub as _,Vb as le,Wa as b,Wb as Ze,Xa as ae,Ya as F,_ as oe,_b as Xe,a as ne,aa as z,ab as J,ac as et,b as ve,bc as Se,ca as c,e as ie,ga as v,h as H,ha as C,hc as tt,ia as He,jb as x,jc as nt,k as Ae,kc as P,la as qe,lb as u,m as Fe,ma as K,mb as f,mc as it,nb as Ge,nc as ot,oa as g,ob as re,oc as L,pa as $e,pb as w,qb as M,rb as p,sb as r,sc as ce,ta as D,tb as s,tc as q,ua as ze,ub as O,uc as at,va as B,vb as T,wa as Ke,wb as k,xb as Ue,ya as Y,za as Be}from"./chunk-3JGMGRXW.js";var cn=[[["","dsDrawerSide",""]],[["","dsDrawerContent",""]]],pn=["[dsDrawerSide]","[dsDrawerContent]"],Wt=class t{breakpointObserver=c(lt);destroyRef=c(K);open=!0;drawerWidth="280px";mobileBreakpoint=768;openChange=new g;isMobile=D(!1);drawerMode=P(()=>this.isMobile()?"over":"side");ngOnInit(){this.breakpointObserver.observe([`(max-width: ${this.mobileBreakpoint-1}px)`]).pipe(G(this.destroyRef)).subscribe(i=>this.isMobile.set(i.matches))}onOpenedChange(i){this.openChange.emit(i)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["ds-drawer"]],inputs:{open:"open",drawerWidth:"drawerWidth",mobileBreakpoint:"mobileBreakpoint"},outputs:{openChange:"openChange"},ngContentSelectors:pn,decls:5,vars:6,consts:[[1,"ds-drawer",2,"height","100%"],[1,"ds-drawer__sidenav",3,"openedChange","opened","mode"],[1,"ds-drawer__content"]],template:function(e,n){e&1&&(j(cn),r(0,"mat-sidenav-container",0)(1,"mat-sidenav",1),h("openedChange",function(d){return n.onOpenedChange(d)}),I(2),s(),r(3,"mat-sidenav-content",2),I(4,1),s()()),e&2&&(a(),V("width",n.drawerWidth),E("ds-drawer__sidenav--overlay",n.isMobile()),p("opened",n.open)("mode",n.drawerMode()))},dependencies:[Jt,Kt,Bt,zt],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0}.ds-drawer[_ngcontent-%COMP%]{width:100%;flex:1;min-height:0;--mat-sidenav-container-background-color: transparent;--mat-sidenav-container-divider-color: var(--color-border, rgba(0, 0, 0, .1));--mat-sidenav-scrim-color: rgba(0, 0, 0, .2)}.ds-drawer.mat-drawer-container[_ngcontent-%COMP%]{flex:1;min-height:0}.ds-drawer__sidenav[_ngcontent-%COMP%]{background:var(--glass-bg, rgba(255, 255, 255, .92));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));border-right:1px solid var(--color-border, rgba(0, 0, 0, .1));box-shadow:none;--mat-sidenav-container-shape: 0;border-radius:0}.ds-drawer__sidenav--overlay[_ngcontent-%COMP%]{background:var(--color-bg, #ffffff);backdrop-filter:none;-webkit-backdrop-filter:none}.ds-drawer__content[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}"],changeDetection:0})};var ge=class t{icon;title="";disabled=!1;variant="default";action=new g;onClick(){this.disabled||this.action.emit()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["ds-icon-button"]],inputs:{icon:"icon",title:"title",disabled:"disabled",variant:"variant"},outputs:{action:"action"},decls:3,vars:5,consts:[["mat-icon-button","","type","button",3,"click","disabled","title"]],template:function(e,n){e&1&&(r(0,"button",0),h("click",function(){return n.onClick()}),r(1,"mat-icon"),m(2),s()()),e&2&&(de("icon-button variant-"+n.variant),p("disabled",n.disabled)("title",n.title),a(2),_(n.icon))},dependencies:[pe,Q],styles:['@charset "UTF-8";.icon-button[_ngcontent-%COMP%]{transition:color .2s ease,background .2s ease,transform .12s ease,opacity .2s ease}.icon-button[_ngcontent-%COMP%]:hover:not(:disabled){transform:scale(1.1)}.icon-button[_ngcontent-%COMP%]:active:not(:disabled){transform:scale(1.15)}.icon-button[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.icon-button.variant-default[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73)}.icon-button.variant-default[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-primary, #007aff)}.icon-button.variant-primary[_ngcontent-%COMP%]:hover:not(:disabled), .icon-button.variant-danger[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-text-inverse, #ffffff);box-shadow:0 4px 14px var(--icon-button-shadow-color);background:var(--icon-button-accent-color)}.icon-button.variant-primary[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-primary, #007aff);--icon-button-shadow-color: rgba(0, 122, 255, .3);color:var(--color-primary, #007aff)}.icon-button.variant-danger[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-error, #ff3b30);--icon-button-shadow-color: rgba(255, 59, 48, .3);color:var(--color-error, #ff3b30)}']})};var mn=(t,i)=>i.uid;function un(t,i){t&1&&(r(0,"span",2),m(1,"*"),s())}function fn(t,i){if(t&1&&(r(0,"p",3),m(1),s()),t&2){let e=l();a(),_(e.description)}}function hn(t,i){if(t&1&&O(0,"input",4),t&2){let e=l();p("type",e.htmlInputType)("id",e.inputId)("formControl",e.control()),x("required",e.required()||null)}}function gn(t,i){if(t&1&&O(0,"input",5),t&2){let e=l();p("id",e.inputId)("formControl",e.control()),x("required",e.required()||null)}}function _n(t,i){if(t&1&&(r(0,"div",6),O(1,"input",11),r(2,"span",12),m(3),s()()),t&2){let e=l();a(),p("id",e.inputId)("formControl",e.control()),a(2),_(e.label)}}function bn(t,i){t&1&&(r(0,"option",13),m(1,"\u2014 none \u2014"),s())}function xn(t,i){if(t&1&&(r(0,"option",14),m(1),s()),t&2){let e=i.$implicit;p("value",e),a(),_(e)}}function yn(t,i){if(t&1&&(r(0,"select",7),u(1,bn,2,0,"option",13),w(2,xn,2,2,"option",14,re),s()),t&2){let e=l();p("id",e.inputId)("formControl",e.control()),x("required",e.required()||null),a(),f(e.required()?-1:1),a(),M(e.enumOptions)}}function vn(t,i){if(t&1){let e=S();r(0,"div",15),O(1,"input",17),r(2,"button",18),h("click",function(){let o=v(e).$index,d=l(2);return C(d.removeScalarItem(o))}),m(3," \xD7 "),s()()}if(t&2){let e=i.$index,n=l(2);a(),p("type",n.itemInputType)("formControl",n.getScalarItemControl(e)),x("aria-label",n.label+" item "+(e+1)),a(),x("aria-label","Remove "+n.label+" item "+(e+1))}}function Cn(t,i){if(t&1){let e=S();r(0,"div",8),w(1,vn,4,4,"div",15,Ge),r(3,"button",16),h("click",function(){v(e);let o=l();return C(o.addScalarItem())}),m(4),s()()}if(t&2){let e=l();a(),M(e.itemArray.controls),a(3),le("+ Add ",e.label)}}function wn(t,i){if(t&1){let e=S();r(0,"div",19)(1,"div",20)(2,"span",21),m(3),s(),r(4,"button",18),h("click",function(){let o=v(e).$implicit,d=l(2);return C(d.removeObjectItem(o.uid))}),m(5," \xD7 "),s()(),r(6,"ds-json-schema-form",22),h("valueChange",function(o){let d=v(e).$implicit,y=l(2);return C(y.onObjectItemChange(d.uid,o))}),s()()}if(t&2){let e=i.$implicit,n=i.$index,o=l(2);a(3),Ze("",(o.itemObjectSchema==null?null:o.itemObjectSchema.title)??o.label," ",n+1),a(),x("aria-label","Remove "+o.label+" item "+(n+1)),a(2),p("schema",o.itemObjectSchema)("value",e.seed)}}function Mn(t,i){if(t&1){let e=S();r(0,"div",8),w(1,wn,7,5,"div",19,mn),r(3,"button",16),h("click",function(){v(e);let o=l();return C(o.addObjectItem())}),m(4),s()()}if(t&2){let e=l();a(),M(e.objectItems()),a(3),le("+ Add ",e.label)}}function In(t,i){if(t&1){let e=S();r(0,"div",9)(1,"ds-json-schema-form",22),h("valueChange",function(o){v(e);let d=l();return C(d.onNestedValueChange(o))}),s()()}if(t&2){let e=l();a(),p("schema",e.fieldSchema())("value",e.nestedInitialValue())}}function Sn(t,i){if(t&1&&O(0,"textarea",10),t&2){let e=l();p("id",e.inputId)("formControl",e.control()),x("required",e.required()||null)}}var En=0;function Qt(t){return{uid:En++,seed:t,value:t}}var _e=class t{fieldKey=L.required();fieldSchema=L.required();control=L.required();required=L(!1);itemArray=new Ft([]);objectItems=D([]);nestedInitialValue=D(null);ngOnInit(){if(this.fieldType==="array-scalar")this.initScalarArray();else if(this.fieldType==="array-object")this.initObjectArray();else if(this.fieldType==="nested-object"){let i=this.control().value;this.nestedInitialValue.set(i&&typeof i=="object"&&!Array.isArray(i)?i:null)}}initScalarArray(){let i=this.control().value;(Array.isArray(i)?i:[]).forEach(n=>this.itemArray.push(new te(n))),this.itemArray.valueChanges.subscribe(n=>{this.control().setValue(n,{emitEvent:!0})})}addScalarItem(){this.itemArray.push(new te(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(n=>Qt(ne({},n))))}addObjectItem(){this.objectItems.update(i=>[...i,Qt(null)]),this.syncObjectArrayToControl()}removeObjectItem(i){this.objectItems.update(e=>e.filter(n=>n.uid!==i)),this.syncObjectArrayToControl()}onObjectItemChange(i,e){this.objectItems.update(n=>n.map(o=>o.uid===i?ve(ne({},o),{value:e}):o)),this.syncObjectArrayToControl()}get itemObjectSchema(){return this.fieldSchema().items??null}syncObjectArrayToControl(){this.control().setValue(this.objectItems().map(i=>i.value),{emitEvent:!0})}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 n=i.items;return(n?Array.isArray(n.type)?n.type[0]:n.type:void 0)==="object"&&n?.properties?"array-object":"array-scalar"}case"object":return i.properties?"nested-object":"textarea";default:return"text"}}get htmlInputType(){switch(this.fieldSchema().format){case"password":return"password";case"email":return"email";case"uri":case"url":return"url";case"date":return"date";case"date-time":return"datetime-local";default:return"text"}}get enumOptions(){return this.fieldSchema().enum??[]}get inputId(){return`ds-field-${this.fieldKey()}`}onNestedValueChange(i){let e=this.control().value;JSON.stringify(e)!==JSON.stringify(i)&&this.control().setValue(i,{emitEvent:!0})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["ds-json-schema-field"]],inputs:{fieldKey:[1,"fieldKey"],fieldSchema:[1,"fieldSchema"],control:[1,"control"],required:[1,"required"]},decls:13,vars:5,consts:[[1,"ds-field"],[1,"ds-field__label",3,"for"],["aria-hidden","true",1,"ds-field__required"],[1,"ds-field__description"],[1,"ds-field__input",3,"type","id","formControl"],["type","number",1,"ds-field__input",3,"id","formControl"],[1,"ds-field__checkbox-row"],[1,"ds-field__select",3,"id","formControl"],[1,"ds-field__array"],[1,"ds-field__nested"],["rows","4","placeholder","JSON",1,"ds-field__textarea",3,"id","formControl"],["type","checkbox",1,"ds-field__checkbox",3,"id","formControl"],[1,"ds-field__checkbox-label"],["value",""],[3,"value"],[1,"ds-field__array-row"],["type","button",1,"ds-field__array-add",3,"click"],[1,"ds-field__input","ds-field__input--array-item",3,"type","formControl"],["type","button",1,"ds-field__array-remove",3,"click"],[1,"ds-field__array-object-card"],[1,"ds-field__array-object-header"],[1,"ds-field__array-object-title"],[3,"valueChange","schema","value"]],template:function(e,n){if(e&1&&(r(0,"div",0)(1,"label",1),m(2),u(3,un,2,0,"span",2),s(),u(4,fn,2,1,"p",3),u(5,hn,1,4,"input",4)(6,gn,1,3,"input",5)(7,_n,4,3,"div",6)(8,yn,4,4,"select",7)(9,Cn,5,1,"div",8)(10,Mn,5,1,"div",8)(11,In,2,2,"div",9)(12,Sn,1,3,"textarea",10),s()),e&2){let o;a(),p("for",n.inputId),a(),le(" ",n.label," "),a(),f(n.required()?3:-1),a(),f(n.description?4:-1),a(),f((o=n.fieldType)==="text"?5:o==="number"?6:o==="boolean"?7:o==="enum"?8:o==="array-scalar"?9:o==="array-object"?10:o==="nested-object"?11:o==="textarea"?12:-1)}},dependencies:()=>[fe,Vt,Lt,me,At,Ot,Rt,ue,jt,be],styles:[".ds-field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.ds-field__label[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text, #1d1d1f)}.ds-field__required[_ngcontent-%COMP%]{color:var(--color-error, #d32f2f);margin-left:2px}.ds-field__description[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);margin:0}.ds-field__input[_ngcontent-%COMP%], .ds-field__select[_ngcontent-%COMP%], .ds-field__textarea[_ngcontent-%COMP%]{width:100%;padding:6px 10px;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:var(--color-bg-secondary, #f5f5f7);color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;box-sizing:border-box;transition:border-color .15s ease}.ds-field__input[_ngcontent-%COMP%]:focus, .ds-field__select[_ngcontent-%COMP%]:focus, .ds-field__textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}.ds-field__textarea[_ngcontent-%COMP%]{font-family:Menlo,Monaco,Courier New,monospace;font-size:.8125rem;resize:vertical;background:var(--color-code-bg, #f5f5f7)}.ds-field__checkbox-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.ds-field__checkbox[_ngcontent-%COMP%]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary, #007aff);flex-shrink:0}.ds-field__checkbox-label[_ngcontent-%COMP%]{font-size:.875rem;color:var(--color-text, #1d1d1f)}.ds-field__array[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.ds-field__array-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px}.ds-field__input--array-item[_ngcontent-%COMP%]{flex:1}.ds-field__array-remove[_ngcontent-%COMP%]{flex-shrink:0;width:28px;height:28px;padding:0;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease}.ds-field__array-remove[_ngcontent-%COMP%]:hover{border-color:var(--color-error, #d32f2f);color:var(--color-error, #d32f2f)}.ds-field__array-object-card[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7);display:flex;flex-direction:column;gap:10px}.ds-field__array-object-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.ds-field__array-object-title[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6e6e73)}.ds-field__array-add[_ngcontent-%COMP%]{align-self:flex-start;padding:4px 10px;border:1px dashed var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-primary, #007aff);font-size:.8125rem;font-family:inherit;cursor:pointer;transition:border-color .15s ease}.ds-field__array-add[_ngcontent-%COMP%]:hover{border-color:var(--color-primary, #007aff)}.ds-field__nested[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7)}"],changeDetection:0})};function Dn(t,i){if(t&1&&O(0,"ds-json-schema-field",1),t&2){let e=i.$implicit,n=l(2);p("fieldKey",e)("fieldSchema",n.getFieldSchema(e))("control",n.getControl(e))("required",n.isRequired(e))}}function On(t,i){if(t&1&&(r(0,"div",0),w(1,Dn,1,4,"ds-json-schema-field",1,re),s()),t&2){let e=l();p("formGroup",e.formGroup),a(),M(e.fieldKeys())}}var be=class t{destroyRef=c(K);schema=L(null);value=L(null);valueChange=ot();formGroup=new kt({});fieldKeys=P(()=>{let i=this.schema();return i?.properties?Object.keys(i.properties):[]});hasFields=P(()=>this.fieldKeys().length>0);constructor(){ze(()=>{let i=this.schema(),e=nt(()=>this.value());this.rebuildForm(i,e)})}rebuildForm(i,e){if(Object.keys(this.formGroup.controls).forEach(n=>{this.formGroup.removeControl(n)}),!i?.properties){this.valueChange.emit(null);return}for(let[n,o]of Object.entries(i.properties)){let d=e?.[n]??o.default??null;this.formGroup.addControl(n,new te(d))}this.formGroup.valueChanges.pipe(G(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)??!1}getControl(i){return this.formGroup.get(i)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,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,n){e&1&&u(0,On,3,1,"div",0),e&2&&f(n.hasFields()?0:-1)},dependencies:[fe,Tt,Nt,_e],styles:[".ds-json-schema-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}"]})};var xe=class t{static \u0275fac=function(e){return new(e||t)};static \u0275dir=F({type:t,selectors:[["","dsCardActions",""]]})};var kn=[[["","dsCardActions",""]]],Pn=["[dsCardActions]"],An=(t,i)=>i.label;function Fn(t,i){if(t&1&&(r(0,"span"),m(1),s()),t&2){let e=i.$implicit;de(Xe("entity-card__badge badge-",e.variant)),a(),_(e.label)}}function jn(t,i){if(t&1&&(r(0,"div",3),w(1,Fn,2,4,"span",6,An),s()),t&2){let e=l();a(),M(e.badges)}}function Nn(t,i){if(t&1&&(r(0,"span",4),m(1),s()),t&2){let e=l();p("matTooltip",e.description),a(),_(e.description)}}function Rn(t,i){t&1&&(r(0,"div",5),I(1),s())}var ye=class t{id;name;description=void 0;badges=[];selected=new g;cardActions;get hasActions(){return this.cardActions!==void 0}onClick(){this.selected.emit(this.id)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["ds-entity-card"]],contentQueries:function(e,n,o){if(e&1&&Z(o,xe,5),e&2){let d;N(d=R())&&(n.cardActions=d.first)}},inputs:{id:"id",name:"name",description:"description",badges:"badges"},outputs:{selected:"selected"},ngContentSelectors:Pn,decls:7,vars:8,consts:[["matRipple","",1,"entity-card",3,"click","keydown.enter","keydown.space"],[1,"entity-card__body"],[1,"entity-card__name"],[1,"entity-card__badges"],["matTooltipShowDelay","600",1,"entity-card__description",3,"matTooltip"],[1,"entity-card__actions"],[3,"class"]],template:function(e,n){e&1&&(j(kn),r(0,"div",0),h("click",function(){return!n.hasActions&&n.onClick()})("keydown.enter",function(){return!n.hasActions&&n.onClick()})("keydown.space",function(){return!n.hasActions&&n.onClick()}),r(1,"div",1)(2,"span",2),m(3),s(),u(4,jn,3,0,"div",3),u(5,Nn,2,2,"span",4),s(),u(6,Rn,2,0,"div",5),s()),e&2&&(E("entity-card--clickable",!n.hasActions),x("role",n.hasActions?null:"button")("tabindex",n.hasActions?null:"0"),a(3),_(n.name),a(),f(n.badges.length>0?4:-1),a(),f(n.description?5:-1),a(),f(n.hasActions?6:-1))},dependencies:[De,Ee,yt,xt],styles:[".entity-card[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.25rem;background:var(--color-bg-secondary, rgba(255, 255, 255, .7));border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:12px;overflow:hidden;position:relative;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease}.entity-card--clickable[_ngcontent-%COMP%]{cursor:pointer}.entity-card--clickable[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff);box-shadow:0 2px 12px var(--color-shadow, rgba(0, 0, 0, .08));transform:translateY(-1px)}.entity-card--clickable[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:2px}.entity-card--clickable[_ngcontent-%COMP%]:active{transform:translateY(0)}.entity-card__body[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.375rem}.entity-card__name[_ngcontent-%COMP%]{font-size:.9375rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1.3}.entity-card__description[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-card__badges[_ngcontent-%COMP%]{display:flex;gap:.25rem;flex-wrap:wrap}.entity-card__badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.0625rem .3rem;border-radius:999px;font-size:.5625rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#fff}.entity-card__badge.badge-warning[_ngcontent-%COMP%]{background:var(--color-warning, #ff9500)}.entity-card__badge.badge-info[_ngcontent-%COMP%]{background:var(--color-info, #5ac8fa)}.entity-card__badge.badge-success[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.entity-card__badge.badge-error[_ngcontent-%COMP%]{background:var(--color-error, #ff3b30)}.entity-card__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}"],changeDetection:0})};var Oe=new z("CdkAccordion"),Ut=(()=>{class t{_stateChanges=new H;_openCloseAllActions=new H;id=c(ee).getId("cdk-accordion-");multi=!1;openAll(){this.multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(e){this._stateChanges.next(e)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}static \u0275fac=function(n){return new(n||t)};static \u0275dir=F({type:t,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:[2,"multi","multi",q]},exportAs:["cdkAccordion"],features:[W([{provide:Oe,useExisting:t}]),B]})}return t})(),Yt=(()=>{class t{accordion=c(Oe,{optional:!0,skipSelf:!0});_changeDetectorRef=c(ce);_expansionDispatcher=c(he);_openCloseAllSubscription=ie.EMPTY;closed=new g;opened=new g;destroyed=new g;expandedChange=new g;id=c(ee).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(e){if(this._expanded!==e){if(this._expanded=e,this.expandedChange.emit(e),e){this.opened.emit();let n=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,n)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;get disabled(){return this._disabled()}set disabled(e){this._disabled.set(e)}_disabled=D(!1);_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((e,n)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===n&&this.id!==e&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static \u0275fac=function(n){return new(n||t)};static \u0275dir=F({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",q],disabled:[2,"disabled","disabled",q]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[W([{provide:Oe,useValue:void 0}])]})}return t})(),Zt=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=ae({type:t});static \u0275inj=oe({})}return t})();var Hn=["body"],qn=["bodyWrapper"],$n=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],zn=["mat-expansion-panel-header","*","mat-action-row"];function Kn(t,i){}var Bn=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],Jn=["mat-panel-title","mat-panel-description","*"];function Wn(t,i){t&1&&(T(0,"span",1),He(),T(1,"svg",2),Ue(2,"path",3),k()())}var Te=new z("MAT_ACCORDION"),Xt=new z("MAT_EXPANSION_PANEL"),Qn=(()=>{class t{_template=c(Je);_expansionPanel=c(Xt,{optional:!0});constructor(){}static \u0275fac=function(n){return new(n||t)};static \u0275dir=F({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),en=new z("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),ke=(()=>{class t extends Yt{_viewContainerRef=c(Qe);_animationsDisabled=gt();_document=c(qe);_ngZone=c($e);_elementRef=c(Y);_renderer=c(We);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=e}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}_togglePosition;afterExpand=new g;afterCollapse=new g;_inputChanges=new H;accordion=c(Te,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=c(ee).getId("mat-expansion-panel-header-");constructor(){super();let e=c(en,{optional:!0});this._expansionDispatcher=c(he),e&&(this.hideToggle=e.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(Ce(null),U(()=>this.expanded&&!this._portal),Re(1)).subscribe(()=>{this._portal=new ut(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let e=this._document.activeElement,n=this._body.nativeElement;return e===n||n.contains(e)}return!1}_transitionEndListener=({target:e,propertyName:n})=>{e===this._bodyWrapper?.nativeElement&&n==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let e=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this._transitionEndListener),e.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=b({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(n,o,d){if(n&1&&Z(d,Qn,5),n&2){let y;N(y=R())&&(o._lazyContent=y.first)}},viewQuery:function(n,o){if(n&1&&se(Hn,5)(qn,5),n&2){let d;N(d=R())&&(o._body=d.first),N(d=R())&&(o._bodyWrapper=d.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(n,o){n&2&&E("mat-expanded",o.expanded)("mat-expansion-panel-spacing",o._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",q],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[W([{provide:Te,useValue:void 0},{provide:Xt,useExisting:t}]),we,B],ngContentSelectors:zn,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(n,o){n&1&&(j($n),I(0),r(1,"div",2,0)(3,"div",3,1)(5,"div",4),I(6,1),J(7,Kn,0,0,"ng-template",5),s(),I(8,2),s()()),n&2&&(a(),x("inert",o.expanded?null:""),a(2),p("id",o.id),x("aria-labelledby",o._headerId),a(4),p("cdkPortalOutlet",o._portal))},dependencies:[ft],styles:[`.mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel{position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:var(--mat-expansion-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}@media print{.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-content{font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}
1
+ import{d as zt,e as Kt,f as Bt,g as Jt}from"./chunk-3DDLKUVJ.js";import{a as vt,c as Ct,d as wt,e as Mt,n as he}from"./chunk-HYNHL5RY.js";import{a as xt,b as yt,e as It,f as St,i as Et,j as Dt,m as qt,n as $t}from"./chunk-6JH2UGTU.js";import{a as G}from"./chunk-LCBWJP6Z.js";import{f as ut,i as ft,j as ht}from"./chunk-UQNMPA5Y.js";import{a as Q,b as bt}from"./chunk-QFSZDRP2.js";import{C as Ht,D as fe,b as Ot,c as me,g as ue,h as Tt,j as kt,l as te,m as Pt,o as At,r as Ft,s as jt,u as Nt,v as Rt,w as Vt,x as Lt}from"./chunk-DLU3TQID.js";import{E as mt,K as gt,M as Ee,N as _t,O as pe,P as De,h as st,i as dt,n as lt,t as ee,u as ct,w as pt}from"./chunk-SDLTQWY6.js";import{$a as we,$b as W,A as je,Ab as Me,B as U,Bb as S,Cb as Ye,Db as h,Eb as Ie,F as Ne,Fb as l,Fc as rt,G as Re,Gb as j,Hb as I,Ib as Z,J as Ve,Jb as se,Ka as a,Kb as N,Lb as R,Na as Je,Pa as We,Pb as X,Qb as V,R as Ce,Rb as E,S as Le,Sa as Qe,Sb as de,Tb as m,Ub as _,Vb as le,Wa as b,Wb as Ze,Xa as ae,Ya as F,_ as oe,_b as Xe,a as ne,aa as z,ab as J,ac as et,b as ve,bc as Se,ca as c,e as ie,ga as v,h as H,ha as C,hc as tt,ia as He,jb as x,jc as nt,k as Ae,kc as P,la as qe,lb as u,m as Fe,ma as K,mb as f,mc as it,nb as Ge,nc as ot,oa as g,ob as re,oc as L,pa as $e,pb as w,qb as M,rb as p,sb as r,sc as ce,ta as D,tb as s,tc as q,ua as ze,ub as O,uc as at,va as B,vb as T,wa as Ke,wb as k,xb as Ue,ya as Y,za as Be}from"./chunk-RNXBUYHW.js";var cn=[[["","dsDrawerSide",""]],[["","dsDrawerContent",""]]],pn=["[dsDrawerSide]","[dsDrawerContent]"],Wt=class t{breakpointObserver=c(lt);destroyRef=c(K);open=!0;drawerWidth="280px";mobileBreakpoint=768;openChange=new g;isMobile=D(!1);drawerMode=P(()=>this.isMobile()?"over":"side");ngOnInit(){this.breakpointObserver.observe([`(max-width: ${this.mobileBreakpoint-1}px)`]).pipe(G(this.destroyRef)).subscribe(i=>this.isMobile.set(i.matches))}onOpenedChange(i){this.openChange.emit(i)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["ds-drawer"]],inputs:{open:"open",drawerWidth:"drawerWidth",mobileBreakpoint:"mobileBreakpoint"},outputs:{openChange:"openChange"},ngContentSelectors:pn,decls:5,vars:6,consts:[[1,"ds-drawer",2,"height","100%"],[1,"ds-drawer__sidenav",3,"openedChange","opened","mode"],[1,"ds-drawer__content"]],template:function(e,n){e&1&&(j(cn),r(0,"mat-sidenav-container",0)(1,"mat-sidenav",1),h("openedChange",function(d){return n.onOpenedChange(d)}),I(2),s(),r(3,"mat-sidenav-content",2),I(4,1),s()()),e&2&&(a(),V("width",n.drawerWidth),E("ds-drawer__sidenav--overlay",n.isMobile()),p("opened",n.open)("mode",n.drawerMode()))},dependencies:[Jt,Kt,Bt,zt],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0}.ds-drawer[_ngcontent-%COMP%]{width:100%;flex:1;min-height:0;--mat-sidenav-container-background-color: transparent;--mat-sidenav-container-divider-color: var(--color-border, rgba(0, 0, 0, .1));--mat-sidenav-scrim-color: rgba(0, 0, 0, .2)}.ds-drawer.mat-drawer-container[_ngcontent-%COMP%]{flex:1;min-height:0}.ds-drawer__sidenav[_ngcontent-%COMP%]{background:var(--glass-bg, rgba(255, 255, 255, .92));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));border-right:1px solid var(--color-border, rgba(0, 0, 0, .1));box-shadow:none;--mat-sidenav-container-shape: 0;border-radius:0}.ds-drawer__sidenav--overlay[_ngcontent-%COMP%]{background:var(--color-bg, #ffffff);backdrop-filter:none;-webkit-backdrop-filter:none}.ds-drawer__content[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}"],changeDetection:0})};var ge=class t{icon;title="";disabled=!1;variant="default";action=new g;onClick(){this.disabled||this.action.emit()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["ds-icon-button"]],inputs:{icon:"icon",title:"title",disabled:"disabled",variant:"variant"},outputs:{action:"action"},decls:3,vars:5,consts:[["mat-icon-button","","type","button",3,"click","disabled","title"]],template:function(e,n){e&1&&(r(0,"button",0),h("click",function(){return n.onClick()}),r(1,"mat-icon"),m(2),s()()),e&2&&(de("icon-button variant-"+n.variant),p("disabled",n.disabled)("title",n.title),a(2),_(n.icon))},dependencies:[pe,Q],styles:['@charset "UTF-8";.icon-button[_ngcontent-%COMP%]{transition:color .2s ease,background .2s ease,transform .12s ease,opacity .2s ease}.icon-button[_ngcontent-%COMP%]:hover:not(:disabled){transform:scale(1.1)}.icon-button[_ngcontent-%COMP%]:active:not(:disabled){transform:scale(1.15)}.icon-button[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.icon-button.variant-default[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73)}.icon-button.variant-default[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-primary, #007aff)}.icon-button.variant-primary[_ngcontent-%COMP%]:hover:not(:disabled), .icon-button.variant-danger[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-text-inverse, #ffffff);box-shadow:0 4px 14px var(--icon-button-shadow-color);background:var(--icon-button-accent-color)}.icon-button.variant-primary[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-primary, #007aff);--icon-button-shadow-color: rgba(0, 122, 255, .3);color:var(--color-primary, #007aff)}.icon-button.variant-danger[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-error, #ff3b30);--icon-button-shadow-color: rgba(255, 59, 48, .3);color:var(--color-error, #ff3b30)}']})};var mn=(t,i)=>i.uid;function un(t,i){t&1&&(r(0,"span",2),m(1,"*"),s())}function fn(t,i){if(t&1&&(r(0,"p",3),m(1),s()),t&2){let e=l();a(),_(e.description)}}function hn(t,i){if(t&1&&O(0,"input",4),t&2){let e=l();p("type",e.htmlInputType)("id",e.inputId)("formControl",e.control()),x("required",e.required()||null)}}function gn(t,i){if(t&1&&O(0,"input",5),t&2){let e=l();p("id",e.inputId)("formControl",e.control()),x("required",e.required()||null)}}function _n(t,i){if(t&1&&(r(0,"div",6),O(1,"input",11),r(2,"span",12),m(3),s()()),t&2){let e=l();a(),p("id",e.inputId)("formControl",e.control()),a(2),_(e.label)}}function bn(t,i){t&1&&(r(0,"option",13),m(1,"\u2014 none \u2014"),s())}function xn(t,i){if(t&1&&(r(0,"option",14),m(1),s()),t&2){let e=i.$implicit;p("value",e),a(),_(e)}}function yn(t,i){if(t&1&&(r(0,"select",7),u(1,bn,2,0,"option",13),w(2,xn,2,2,"option",14,re),s()),t&2){let e=l();p("id",e.inputId)("formControl",e.control()),x("required",e.required()||null),a(),f(e.required()?-1:1),a(),M(e.enumOptions)}}function vn(t,i){if(t&1){let e=S();r(0,"div",15),O(1,"input",17),r(2,"button",18),h("click",function(){let o=v(e).$index,d=l(2);return C(d.removeScalarItem(o))}),m(3," \xD7 "),s()()}if(t&2){let e=i.$index,n=l(2);a(),p("type",n.itemInputType)("formControl",n.getScalarItemControl(e)),x("aria-label",n.label+" item "+(e+1)),a(),x("aria-label","Remove "+n.label+" item "+(e+1))}}function Cn(t,i){if(t&1){let e=S();r(0,"div",8),w(1,vn,4,4,"div",15,Ge),r(3,"button",16),h("click",function(){v(e);let o=l();return C(o.addScalarItem())}),m(4),s()()}if(t&2){let e=l();a(),M(e.itemArray.controls),a(3),le("+ Add ",e.label)}}function wn(t,i){if(t&1){let e=S();r(0,"div",19)(1,"div",20)(2,"span",21),m(3),s(),r(4,"button",18),h("click",function(){let o=v(e).$implicit,d=l(2);return C(d.removeObjectItem(o.uid))}),m(5," \xD7 "),s()(),r(6,"ds-json-schema-form",22),h("valueChange",function(o){let d=v(e).$implicit,y=l(2);return C(y.onObjectItemChange(d.uid,o))}),s()()}if(t&2){let e=i.$implicit,n=i.$index,o=l(2);a(3),Ze("",(o.itemObjectSchema==null?null:o.itemObjectSchema.title)??o.label," ",n+1),a(),x("aria-label","Remove "+o.label+" item "+(n+1)),a(2),p("schema",o.itemObjectSchema)("value",e.seed)}}function Mn(t,i){if(t&1){let e=S();r(0,"div",8),w(1,wn,7,5,"div",19,mn),r(3,"button",16),h("click",function(){v(e);let o=l();return C(o.addObjectItem())}),m(4),s()()}if(t&2){let e=l();a(),M(e.objectItems()),a(3),le("+ Add ",e.label)}}function In(t,i){if(t&1){let e=S();r(0,"div",9)(1,"ds-json-schema-form",22),h("valueChange",function(o){v(e);let d=l();return C(d.onNestedValueChange(o))}),s()()}if(t&2){let e=l();a(),p("schema",e.fieldSchema())("value",e.nestedInitialValue())}}function Sn(t,i){if(t&1&&O(0,"textarea",10),t&2){let e=l();p("id",e.inputId)("formControl",e.control()),x("required",e.required()||null)}}var En=0;function Qt(t){return{uid:En++,seed:t,value:t}}var _e=class t{fieldKey=L.required();fieldSchema=L.required();control=L.required();required=L(!1);itemArray=new Ft([]);objectItems=D([]);nestedInitialValue=D(null);ngOnInit(){if(this.fieldType==="array-scalar")this.initScalarArray();else if(this.fieldType==="array-object")this.initObjectArray();else if(this.fieldType==="nested-object"){let i=this.control().value;this.nestedInitialValue.set(i&&typeof i=="object"&&!Array.isArray(i)?i:null)}}initScalarArray(){let i=this.control().value;(Array.isArray(i)?i:[]).forEach(n=>this.itemArray.push(new te(n))),this.itemArray.valueChanges.subscribe(n=>{this.control().setValue(n,{emitEvent:!0})})}addScalarItem(){this.itemArray.push(new te(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(n=>Qt(ne({},n))))}addObjectItem(){this.objectItems.update(i=>[...i,Qt(null)]),this.syncObjectArrayToControl()}removeObjectItem(i){this.objectItems.update(e=>e.filter(n=>n.uid!==i)),this.syncObjectArrayToControl()}onObjectItemChange(i,e){this.objectItems.update(n=>n.map(o=>o.uid===i?ve(ne({},o),{value:e}):o)),this.syncObjectArrayToControl()}get itemObjectSchema(){return this.fieldSchema().items??null}syncObjectArrayToControl(){this.control().setValue(this.objectItems().map(i=>i.value),{emitEvent:!0})}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 n=i.items;return(n?Array.isArray(n.type)?n.type[0]:n.type:void 0)==="object"&&n?.properties?"array-object":"array-scalar"}case"object":return i.properties?"nested-object":"textarea";default:return"text"}}get htmlInputType(){switch(this.fieldSchema().format){case"password":return"password";case"email":return"email";case"uri":case"url":return"url";case"date":return"date";case"date-time":return"datetime-local";default:return"text"}}get enumOptions(){return this.fieldSchema().enum??[]}get inputId(){return`ds-field-${this.fieldKey()}`}onNestedValueChange(i){let e=this.control().value;JSON.stringify(e)!==JSON.stringify(i)&&this.control().setValue(i,{emitEvent:!0})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["ds-json-schema-field"]],inputs:{fieldKey:[1,"fieldKey"],fieldSchema:[1,"fieldSchema"],control:[1,"control"],required:[1,"required"]},decls:13,vars:5,consts:[[1,"ds-field"],[1,"ds-field__label",3,"for"],["aria-hidden","true",1,"ds-field__required"],[1,"ds-field__description"],[1,"ds-field__input",3,"type","id","formControl"],["type","number",1,"ds-field__input",3,"id","formControl"],[1,"ds-field__checkbox-row"],[1,"ds-field__select",3,"id","formControl"],[1,"ds-field__array"],[1,"ds-field__nested"],["rows","4","placeholder","JSON",1,"ds-field__textarea",3,"id","formControl"],["type","checkbox",1,"ds-field__checkbox",3,"id","formControl"],[1,"ds-field__checkbox-label"],["value",""],[3,"value"],[1,"ds-field__array-row"],["type","button",1,"ds-field__array-add",3,"click"],[1,"ds-field__input","ds-field__input--array-item",3,"type","formControl"],["type","button",1,"ds-field__array-remove",3,"click"],[1,"ds-field__array-object-card"],[1,"ds-field__array-object-header"],[1,"ds-field__array-object-title"],[3,"valueChange","schema","value"]],template:function(e,n){if(e&1&&(r(0,"div",0)(1,"label",1),m(2),u(3,un,2,0,"span",2),s(),u(4,fn,2,1,"p",3),u(5,hn,1,4,"input",4)(6,gn,1,3,"input",5)(7,_n,4,3,"div",6)(8,yn,4,4,"select",7)(9,Cn,5,1,"div",8)(10,Mn,5,1,"div",8)(11,In,2,2,"div",9)(12,Sn,1,3,"textarea",10),s()),e&2){let o;a(),p("for",n.inputId),a(),le(" ",n.label," "),a(),f(n.required()?3:-1),a(),f(n.description?4:-1),a(),f((o=n.fieldType)==="text"?5:o==="number"?6:o==="boolean"?7:o==="enum"?8:o==="array-scalar"?9:o==="array-object"?10:o==="nested-object"?11:o==="textarea"?12:-1)}},dependencies:()=>[fe,Vt,Lt,me,At,Ot,Rt,ue,jt,be],styles:[".ds-field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.ds-field__label[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text, #1d1d1f)}.ds-field__required[_ngcontent-%COMP%]{color:var(--color-error, #d32f2f);margin-left:2px}.ds-field__description[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);margin:0}.ds-field__input[_ngcontent-%COMP%], .ds-field__select[_ngcontent-%COMP%], .ds-field__textarea[_ngcontent-%COMP%]{width:100%;padding:6px 10px;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:var(--color-bg-secondary, #f5f5f7);color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;box-sizing:border-box;transition:border-color .15s ease}.ds-field__input[_ngcontent-%COMP%]:focus, .ds-field__select[_ngcontent-%COMP%]:focus, .ds-field__textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}.ds-field__textarea[_ngcontent-%COMP%]{font-family:Menlo,Monaco,Courier New,monospace;font-size:.8125rem;resize:vertical;background:var(--color-code-bg, #f5f5f7)}.ds-field__checkbox-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.ds-field__checkbox[_ngcontent-%COMP%]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary, #007aff);flex-shrink:0}.ds-field__checkbox-label[_ngcontent-%COMP%]{font-size:.875rem;color:var(--color-text, #1d1d1f)}.ds-field__array[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.ds-field__array-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px}.ds-field__input--array-item[_ngcontent-%COMP%]{flex:1}.ds-field__array-remove[_ngcontent-%COMP%]{flex-shrink:0;width:28px;height:28px;padding:0;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease}.ds-field__array-remove[_ngcontent-%COMP%]:hover{border-color:var(--color-error, #d32f2f);color:var(--color-error, #d32f2f)}.ds-field__array-object-card[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7);display:flex;flex-direction:column;gap:10px}.ds-field__array-object-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.ds-field__array-object-title[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6e6e73)}.ds-field__array-add[_ngcontent-%COMP%]{align-self:flex-start;padding:4px 10px;border:1px dashed var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-primary, #007aff);font-size:.8125rem;font-family:inherit;cursor:pointer;transition:border-color .15s ease}.ds-field__array-add[_ngcontent-%COMP%]:hover{border-color:var(--color-primary, #007aff)}.ds-field__nested[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7)}"],changeDetection:0})};function Dn(t,i){if(t&1&&O(0,"ds-json-schema-field",1),t&2){let e=i.$implicit,n=l(2);p("fieldKey",e)("fieldSchema",n.getFieldSchema(e))("control",n.getControl(e))("required",n.isRequired(e))}}function On(t,i){if(t&1&&(r(0,"div",0),w(1,Dn,1,4,"ds-json-schema-field",1,re),s()),t&2){let e=l();p("formGroup",e.formGroup),a(),M(e.fieldKeys())}}var be=class t{destroyRef=c(K);schema=L(null);value=L(null);valueChange=ot();formGroup=new kt({});fieldKeys=P(()=>{let i=this.schema();return i?.properties?Object.keys(i.properties):[]});hasFields=P(()=>this.fieldKeys().length>0);constructor(){ze(()=>{let i=this.schema(),e=nt(()=>this.value());this.rebuildForm(i,e)})}rebuildForm(i,e){if(Object.keys(this.formGroup.controls).forEach(n=>{this.formGroup.removeControl(n)}),!i?.properties){this.valueChange.emit(null);return}for(let[n,o]of Object.entries(i.properties)){let d=e?.[n]??o.default??null;this.formGroup.addControl(n,new te(d))}this.formGroup.valueChanges.pipe(G(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)??!1}getControl(i){return this.formGroup.get(i)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,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,n){e&1&&u(0,On,3,1,"div",0),e&2&&f(n.hasFields()?0:-1)},dependencies:[fe,Tt,Nt,_e],styles:[".ds-json-schema-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}"]})};var xe=class t{static \u0275fac=function(e){return new(e||t)};static \u0275dir=F({type:t,selectors:[["","dsCardActions",""]]})};var kn=[[["","dsCardActions",""]]],Pn=["[dsCardActions]"],An=(t,i)=>i.label;function Fn(t,i){if(t&1&&(r(0,"span"),m(1),s()),t&2){let e=i.$implicit;de(Xe("entity-card__badge badge-",e.variant)),a(),_(e.label)}}function jn(t,i){if(t&1&&(r(0,"div",3),w(1,Fn,2,4,"span",6,An),s()),t&2){let e=l();a(),M(e.badges)}}function Nn(t,i){if(t&1&&(r(0,"span",4),m(1),s()),t&2){let e=l();p("matTooltip",e.description),a(),_(e.description)}}function Rn(t,i){t&1&&(r(0,"div",5),I(1),s())}var ye=class t{id;name;description=void 0;badges=[];selected=new g;cardActions;get hasActions(){return this.cardActions!==void 0}onClick(){this.selected.emit(this.id)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["ds-entity-card"]],contentQueries:function(e,n,o){if(e&1&&Z(o,xe,5),e&2){let d;N(d=R())&&(n.cardActions=d.first)}},inputs:{id:"id",name:"name",description:"description",badges:"badges"},outputs:{selected:"selected"},ngContentSelectors:Pn,decls:7,vars:8,consts:[["matRipple","",1,"entity-card",3,"click","keydown.enter","keydown.space"],[1,"entity-card__body"],[1,"entity-card__name"],[1,"entity-card__badges"],["matTooltipShowDelay","600",1,"entity-card__description",3,"matTooltip"],[1,"entity-card__actions"],[3,"class"]],template:function(e,n){e&1&&(j(kn),r(0,"div",0),h("click",function(){return!n.hasActions&&n.onClick()})("keydown.enter",function(){return!n.hasActions&&n.onClick()})("keydown.space",function(){return!n.hasActions&&n.onClick()}),r(1,"div",1)(2,"span",2),m(3),s(),u(4,jn,3,0,"div",3),u(5,Nn,2,2,"span",4),s(),u(6,Rn,2,0,"div",5),s()),e&2&&(E("entity-card--clickable",!n.hasActions),x("role",n.hasActions?null:"button")("tabindex",n.hasActions?null:"0"),a(3),_(n.name),a(),f(n.badges.length>0?4:-1),a(),f(n.description?5:-1),a(),f(n.hasActions?6:-1))},dependencies:[De,Ee,yt,xt],styles:[".entity-card[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.25rem;background:var(--color-bg-secondary, rgba(255, 255, 255, .7));border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:12px;overflow:hidden;position:relative;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease}.entity-card--clickable[_ngcontent-%COMP%]{cursor:pointer}.entity-card--clickable[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff);box-shadow:0 2px 12px var(--color-shadow, rgba(0, 0, 0, .08));transform:translateY(-1px)}.entity-card--clickable[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:2px}.entity-card--clickable[_ngcontent-%COMP%]:active{transform:translateY(0)}.entity-card__body[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.375rem}.entity-card__name[_ngcontent-%COMP%]{font-size:.9375rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1.3}.entity-card__description[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-card__badges[_ngcontent-%COMP%]{display:flex;gap:.25rem;flex-wrap:wrap}.entity-card__badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.0625rem .3rem;border-radius:999px;font-size:.5625rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#fff}.entity-card__badge.badge-warning[_ngcontent-%COMP%]{background:var(--color-warning, #ff9500)}.entity-card__badge.badge-info[_ngcontent-%COMP%]{background:var(--color-info, #5ac8fa)}.entity-card__badge.badge-success[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.entity-card__badge.badge-error[_ngcontent-%COMP%]{background:var(--color-error, #ff3b30)}.entity-card__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}"],changeDetection:0})};var Oe=new z("CdkAccordion"),Ut=(()=>{class t{_stateChanges=new H;_openCloseAllActions=new H;id=c(ee).getId("cdk-accordion-");multi=!1;openAll(){this.multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(e){this._stateChanges.next(e)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}static \u0275fac=function(n){return new(n||t)};static \u0275dir=F({type:t,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:[2,"multi","multi",q]},exportAs:["cdkAccordion"],features:[W([{provide:Oe,useExisting:t}]),B]})}return t})(),Yt=(()=>{class t{accordion=c(Oe,{optional:!0,skipSelf:!0});_changeDetectorRef=c(ce);_expansionDispatcher=c(he);_openCloseAllSubscription=ie.EMPTY;closed=new g;opened=new g;destroyed=new g;expandedChange=new g;id=c(ee).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(e){if(this._expanded!==e){if(this._expanded=e,this.expandedChange.emit(e),e){this.opened.emit();let n=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,n)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;get disabled(){return this._disabled()}set disabled(e){this._disabled.set(e)}_disabled=D(!1);_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((e,n)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===n&&this.id!==e&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static \u0275fac=function(n){return new(n||t)};static \u0275dir=F({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",q],disabled:[2,"disabled","disabled",q]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[W([{provide:Oe,useValue:void 0}])]})}return t})(),Zt=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=ae({type:t});static \u0275inj=oe({})}return t})();var Hn=["body"],qn=["bodyWrapper"],$n=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],zn=["mat-expansion-panel-header","*","mat-action-row"];function Kn(t,i){}var Bn=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],Jn=["mat-panel-title","mat-panel-description","*"];function Wn(t,i){t&1&&(T(0,"span",1),He(),T(1,"svg",2),Ue(2,"path",3),k()())}var Te=new z("MAT_ACCORDION"),Xt=new z("MAT_EXPANSION_PANEL"),Qn=(()=>{class t{_template=c(Je);_expansionPanel=c(Xt,{optional:!0});constructor(){}static \u0275fac=function(n){return new(n||t)};static \u0275dir=F({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),en=new z("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),ke=(()=>{class t extends Yt{_viewContainerRef=c(Qe);_animationsDisabled=gt();_document=c(qe);_ngZone=c($e);_elementRef=c(Y);_renderer=c(We);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=e}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}_togglePosition;afterExpand=new g;afterCollapse=new g;_inputChanges=new H;accordion=c(Te,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=c(ee).getId("mat-expansion-panel-header-");constructor(){super();let e=c(en,{optional:!0});this._expansionDispatcher=c(he),e&&(this.hideToggle=e.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(Ce(null),U(()=>this.expanded&&!this._portal),Re(1)).subscribe(()=>{this._portal=new ut(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let e=this._document.activeElement,n=this._body.nativeElement;return e===n||n.contains(e)}return!1}_transitionEndListener=({target:e,propertyName:n})=>{e===this._bodyWrapper?.nativeElement&&n==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let e=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this._transitionEndListener),e.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=b({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(n,o,d){if(n&1&&Z(d,Qn,5),n&2){let y;N(y=R())&&(o._lazyContent=y.first)}},viewQuery:function(n,o){if(n&1&&se(Hn,5)(qn,5),n&2){let d;N(d=R())&&(o._body=d.first),N(d=R())&&(o._bodyWrapper=d.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(n,o){n&2&&E("mat-expanded",o.expanded)("mat-expansion-panel-spacing",o._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",q],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[W([{provide:Te,useValue:void 0},{provide:Xt,useExisting:t}]),we,B],ngContentSelectors:zn,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(n,o){n&1&&(j($n),I(0),r(1,"div",2,0)(3,"div",3,1)(5,"div",4),I(6,1),J(7,Kn,0,0,"ng-template",5),s(),I(8,2),s()()),n&2&&(a(),x("inert",o.expanded?null:""),a(2),p("id",o.id),x("aria-labelledby",o._headerId),a(4),p("cdkPortalOutlet",o._portal))},dependencies:[ft],styles:[`.mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel{position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:var(--mat-expansion-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}@media print{.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-content{font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}
2
2
  `],encapsulation:2,changeDetection:0})}return t})();var Pe=(()=>{class t{panel=c(ke,{host:!0});_element=c(Y);_focusMonitor=c(st);_changeDetectorRef=c(ce);_parentChangeSubscription=ie.EMPTY;constructor(){c(dt).load(_t);let e=this.panel,n=c(en,{optional:!0}),o=c(new it("tabindex"),{optional:!0}),d=e.accordion?e.accordion._stateChanges.pipe(U(y=>!!(y.hideToggle||y.togglePosition))):Ae;this.tabIndex=parseInt(o||"")||0,this._parentChangeSubscription=je(e.opened,e.closed,d,e._inputChanges.pipe(U(y=>!!(y.hideToggle||y.disabled||y.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(U(()=>e._containsFocus())).subscribe(()=>this._focusMonitor.focusVia(this._element,"program")),n&&(this.expandedHeight=n.expandedHeight,this.collapsedHeight=n.collapsedHeight)}expandedHeight;collapsedHeight;tabIndex=0;get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){let e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:ct(e)||(e.preventDefault(),this._toggle());break;default:this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e);return}}focus(e,n){e?this._focusMonitor.focusVia(this._element,e,n):this._element.nativeElement.focus(n)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=b({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:13,hostBindings:function(n,o){n&1&&h("click",function(){return o._toggle()})("keydown",function(y){return o._keydown(y)}),n&2&&(x("id",o.panel._headerId)("tabindex",o.disabled?-1:o.tabIndex)("aria-controls",o._getPanelId())("aria-expanded",o._isExpanded())("aria-disabled",o.panel.disabled),V("height",o._getHeaderHeight()),E("mat-expanded",o._isExpanded())("mat-expansion-toggle-indicator-after",o._getTogglePosition()==="after")("mat-expansion-toggle-indicator-before",o._getTogglePosition()==="before"))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:at(e)]},ngContentSelectors:Jn,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(n,o){n&1&&(j(Bn),T(0,"span",0),I(1),I(2,1),I(3,2),k(),u(4,Wn,3,0,"span",1)),n&2&&(E("mat-content-hide-toggle",!o._showToggle()),a(4),f(o._showToggle()?4:-1))},styles:[`.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header{height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}}
3
3
  `],encapsulation:2,changeDetection:0})}return t})();var tn=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275dir=F({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return t})(),nn=(()=>{class t extends Ut{_keyManager;_ownHeaders=new Be;_headers;hideToggle=!1;displayMode="default";togglePosition="after";ngAfterContentInit(){this._headers.changes.pipe(Ce(this._headers)).subscribe(e=>{this._ownHeaders.reset(e.filter(n=>n.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new pt(this._ownHeaders).withWrap().withHomeAndEnd()}_handleHeaderKeydown(e){this._keyManager.onKeydown(e)}_handleHeaderFocus(e){this._keyManager.updateActiveItem(e)}ngOnDestroy(){super.ngOnDestroy(),this._keyManager?.destroy(),this._ownHeaders.destroy()}static \u0275fac=(()=>{let e;return function(o){return(e||(e=Ke(t)))(o||t)}})();static \u0275dir=F({type:t,selectors:[["mat-accordion"]],contentQueries:function(n,o,d){if(n&1&&Z(d,Pe,5),n&2){let y;N(y=R())&&(o._headers=y)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(n,o){n&2&&E("mat-accordion-multi",o.multi)},inputs:{hideToggle:[2,"hideToggle","hideToggle",q],displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],features:[W([{provide:Te,useExisting:t}]),we]})}return t})(),on=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=ae({type:t});static \u0275inj=oe({imports:[Zt,ht,mt]})}return t})();var Un=["searchInput"],Yn=[[["","toolbar-start",""]],[["","toolbar-extras",""]]],Zn=["[toolbar-start]","[toolbar-extras]"],rn=t=>({$implicit:t}),Xn=()=>[],ei=(t,i)=>i.groupKey,sn=(t,i)=>i.id;function ti(t,i){if(t&1){let e=S();r(0,"button",14),h("click",function(){v(e);let o=l();return C(o.clearSearch())}),r(1,"mat-icon"),m(2,"close"),s()()}}function ni(t,i){if(t&1){let e=S();r(0,"button",15),h("click",function(){v(e);let o=l();return C(o.onCreateRequested())}),r(1,"mat-icon"),m(2,"add"),s()()}}function ii(t,i){if(t&1&&(r(0,"p",11),m(1),s()),t&2){let e=l();a(),_(e.emptyMessage)}}function oi(t,i){if(t&1&&(r(0,"mat-expansion-panel-header")(1,"mat-panel-title",18),m(2),s()()),t&2){let e=l().$implicit;a(2),_(e.groupLabel)}}function ai(t,i){t&1&&Me(0)}function ri(t,i){if(t&1&&J(0,ai,1,0,"ng-container",19),t&2){let e=i.$implicit,n=l(3),o=X(18);p("ngTemplateOutlet",n.itemTemplate??o)("ngTemplateOutletContext",Se(2,rn,e))}}function si(t,i){if(t&1&&(r(0,"mat-expansion-panel",16),u(1,oi,3,1,"mat-expansion-panel-header"),r(2,"div",17),w(3,ri,1,4,"ng-container",null,sn),s()()),t&2){let e=i.$implicit,n=l(2);p("expanded",!0),a(),f(e.groupLabel?1:-1),a(),V("--card-min-width",n.cardMinWidth),a(),M(e.items)}}function di(t,i){if(t&1&&(r(0,"mat-accordion",12),w(1,si,5,4,"mat-expansion-panel",16,ei),s()),t&2){let e=l();p("multi",!0),a(),M(e.groupedItems())}}function li(t,i){t&1&&Me(0)}function ci(t,i){if(t&1&&J(0,li,1,0,"ng-container",19),t&2){let e=i.$implicit,n=l(2),o=X(18);p("ngTemplateOutlet",n.itemTemplate??o)("ngTemplateOutletContext",Se(2,rn,e))}}function pi(t,i){if(t&1&&(r(0,"div",17),w(1,ci,1,4,"ng-container",null,sn),s()),t&2){let e=l();V("--card-min-width",e.cardMinWidth),a(),M(e.filteredItems())}}function mi(t,i){if(t&1){let e=S();r(0,"ds-entity-card",20),h("selected",function(o){v(e);let d=l();return C(d.onItemSelected(o))}),s()}if(t&2){let e=i.$implicit;p("id",e.id)("name",e.name)("description",e.description)("badges",e.badges??et(4,Xn))}}var an=class t{title;items=[];searchPlaceholder="Filter\u2026";emptyMessage="No items found.";autoFocusSearch=!1;cardMinWidth="260px";contentMaxWidth="900px";showCreate=!1;itemTemplate;itemSelected=new g;createRequested=new g;searchInputRef;itemsSignal=D([]);searchQuery=D("");isSearchActive=P(()=>this.searchQuery().trim().length>0);filteredItems=P(()=>{let i=this.searchQuery().toLowerCase().trim(),e=this.itemsSignal();return i?e.filter(n=>n.name.toLowerCase().includes(i)||(n.description?.toLowerCase().includes(i)??!1)):e});groupedItems=P(()=>{let i=this.filteredItems(),e=[],n=new Map;for(let d of i){if(!d.groupKey){e.push(d);continue}n.has(d.groupKey)||n.set(d.groupKey,{groupKey:d.groupKey,groupLabel:d.groupLabel??d.groupKey,items:[]}),n.get(d.groupKey).items.push(d)}let o=[];return e.length>0&&o.push({groupKey:"",groupLabel:"",items:e}),o.push(...n.values()),o});hasGroups=P(()=>!this.isSearchActive()&&this.groupedItems().some(i=>i.groupKey!==""));ngOnChanges(i){i.items&&this.itemsSignal.set(this.items)}ngAfterViewInit(){this.autoFocusSearch&&setTimeout(()=>this.searchInputRef?.nativeElement.focus(),0)}onSearchChange(i){this.searchQuery.set(i)}clearSearch(){this.searchQuery.set(""),this.searchInputRef?.nativeElement.focus()}onItemSelected(i){this.itemSelected.emit(i)}onCreateRequested(){this.createRequested.emit()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["ds-entity-list"]],viewQuery:function(e,n){if(e&1&&se(Un,5),e&2){let o;N(o=R())&&(n.searchInputRef=o.first)}},hostVars:1,hostBindings:function(e,n){e&2&&x("title",null)},inputs:{title:"title",items:"items",searchPlaceholder:"searchPlaceholder",emptyMessage:"emptyMessage",autoFocusSearch:"autoFocusSearch",cardMinWidth:"cardMinWidth",contentMaxWidth:"contentMaxWidth",showCreate:"showCreate",itemTemplate:"itemTemplate"},outputs:{itemSelected:"itemSelected",createRequested:"createRequested"},features:[B],ngContentSelectors:Zn,decls:19,vars:8,consts:[["searchInput",""],["defaultCard",""],[1,"entity-list"],[1,"entity-list__toolbar"],[1,"entity-list__title"],["appearance","fill","subscriptSizing","dynamic",1,"entity-list__search-field"],["matPrefix",""],["matInput","","type","search","autocomplete","off",3,"ngModelChange","keydown.escape","placeholder","ngModel"],["matSuffix","","mat-icon-button","","aria-label","Clear"],["mat-icon-button","","type","button","title","Create",1,"entity-list__toolbar-btn","entity-list__toolbar-btn--primary"],[1,"entity-list__content"],[1,"entity-list__empty"],[3,"multi"],[1,"entity-list__grid",3,"--card-min-width"],["matSuffix","","mat-icon-button","","aria-label","Clear",3,"click"],["mat-icon-button","","type","button","title","Create",1,"entity-list__toolbar-btn","entity-list__toolbar-btn--primary",3,"click"],[1,"entity-list__panel",3,"expanded"],[1,"entity-list__grid"],[1,"entity-list__panel-title"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"selected","id","name","description","badges"]],template:function(e,n){e&1&&(j(Yn),r(0,"div",2)(1,"div",3),I(2),r(3,"h1",4),m(4),s(),r(5,"mat-form-field",5)(6,"mat-icon",6),m(7,"search"),s(),r(8,"input",7,0),h("ngModelChange",function(d){return n.onSearchChange(d)})("keydown.escape",function(){return n.clearSearch()}),s(),u(10,ti,3,0,"button",8),s(),I(11,1),u(12,ni,3,0,"button",9),s(),r(13,"div",10),u(14,ii,2,1,"p",11)(15,di,3,1,"mat-accordion",12)(16,pi,3,2,"div",13),s()(),J(17,mi,1,5,"ng-template",null,1,tt)),e&2&&(a(4),_(n.title),a(4),p("placeholder",n.searchPlaceholder)("ngModel",n.searchQuery()),a(2),f(n.isSearchActive()?10:-1),a(2),f(n.showCreate?12:-1),a(),V("max-width",n.contentMaxWidth),a(),f(n.filteredItems().length===0?14:n.hasGroups()?15:16))},dependencies:[Ht,me,ue,Pt,bt,Q,pe,on,nn,ke,Pe,tn,Dt,Et,It,St,$t,qt,ye,rt],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0}.entity-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;box-sizing:border-box}.entity-list__toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .1));height:56px;width:100%;box-sizing:border-box}.entity-list__title[_ngcontent-%COMP%]{flex:0 0 auto;margin:0;font-size:1rem;font-weight:600;color:var(--color-text, #1d1d1f);white-space:nowrap}.entity-list__search-field[_ngcontent-%COMP%]{margin-left:auto;padding-left:20px;flex:0 1 240px;min-width:80px;--mat-form-field-container-height: 36px;--mat-form-field-container-vertical-padding: 6px;font-size:.875rem;--mat-form-field-filled-with-label-container-padding-top: 0;--mdc-filled-text-field-container-color: transparent;--mdc-filled-text-field-hover-container-color: transparent;--mdc-filled-text-field-focus-container-color: transparent;--mdc-filled-text-field-active-indicator-color: transparent;--mdc-filled-text-field-hover-active-indicator-color: transparent;--mdc-filled-text-field-focus-active-indicator-color: transparent;--mdc-filled-text-field-active-indicator-height: 0}.entity-list__toolbar-btn[_ngcontent-%COMP%]{flex-shrink:0;color:var(--color-text-secondary, #6e6e73)}.entity-list__toolbar-btn[_ngcontent-%COMP%]:hover{color:var(--color-text, #1d1d1f)}.entity-list__toolbar-btn--primary[_ngcontent-%COMP%]{color:var(--color-primary, #007aff)}.entity-list__toolbar-btn--primary[_ngcontent-%COMP%]:hover{color:var(--color-primary-hover, #0051d5)}.entity-list__content[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;width:100%;max-width:900px;margin:0 auto;padding:.75rem 1rem;box-sizing:border-box}.entity-list__empty[_ngcontent-%COMP%]{margin:0;padding:2rem 0;text-align:center;color:var(--color-text-secondary, #6e6e73);font-size:.9375rem}.entity-list__panel[_ngcontent-%COMP%]{background:transparent;box-shadow:none!important}.entity-list__panel[_ngcontent-%COMP%] + .entity-list__panel[_ngcontent-%COMP%]{border-top:1px solid var(--color-border-light, rgba(40, 40, 40, .08))}.entity-list__panel-title[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary, #6e6e73)}.entity-list__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-min-width, 260px),1fr));gap:.75rem;padding:.5rem 0}"]})};var ui=(t,i)=>i.id;function fi(t,i){if(t&1&&(T(0,"span",6),m(1),k()),t&2){let e=l().$implicit;a(),_(e.description)}}function hi(t,i){if(t&1){let e=S();T(0,"div",4),Ie("mousedown",function(){let o=v(e).$implicit,d=l(2);return C(d.selectItem(o))})("touchstart",function(){let o=v(e).$implicit,d=l(2);return C(d.selectItem(o))}),T(1,"span",5),m(2),k(),u(3,fi,2,1,"span",6),k()}if(t&2){let e=i.$implicit,n=i.$index,o=l(2);E("selected",n===o.selectedIndex),a(2),_(e.name),a(),f(e.description?3:-1)}}function gi(t,i){if(t&1&&(T(0,"div",2),w(1,hi,4,4,"div",3,ui),k()),t&2){let e=l();a(),M(e.items)}}var dn=class t{dataSource;placeholder="";disabled=!1;itemSelected=new g;elementRef=c(Y);destroyRef=c(K);query$=new H;query="";items=[];showDropdown=!1;selectedIndex=-1;ngOnInit(){this.query$.pipe(Ne(200),Ve(),Le(i=>{let e=i.trim();return e?this.dataSource.search(e):Fe([])}),G(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=!0)}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=!1,this.selectedIndex=-1,this.items=[]}scrollSelectedIntoView(){setTimeout(()=>{this.elementRef.nativeElement.querySelector(".autocomplete-dropdown")?.querySelector(".autocomplete-option.selected")?.scrollIntoView({block:"nearest"})})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,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,n){e&1&&(T(0,"div",0)(1,"input",1),Ie("input",function(d){return n.onInput(d)})("keydown",function(d){return n.onKeydown(d)})("focus",function(){return n.onFocus()})("blur",function(){return n.onBlur()}),k(),u(2,gi,3,0,"div",2),k()),e&2&&(a(),Ye("placeholder",n.placeholder)("disabled",n.disabled)("value",n.query),a(),f(n.showDropdown&&n.items.length>0?2:-1))},styles:['@charset "UTF-8";.autocomplete-container[_ngcontent-%COMP%]{position:relative;display:block;width:100%}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;font-size:14px;line-height:1.5;color:var(--color-text, #1d1d1f);background:var(--glass-bg);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff);box-shadow:0 0 0 3px #007aff26}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.autocomplete-dropdown[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:var(--glass-bg);border:1px solid var(--color-border, #e0e0e0);border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;max-height:240px;overflow-y:auto;overflow-x:hidden}.autocomplete-option[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;padding:10px 12px;cursor:pointer;transition:background .1s ease}.autocomplete-option[_ngcontent-%COMP%]:first-child{border-radius:8px 8px 0 0}.autocomplete-option[_ngcontent-%COMP%]:last-child{border-radius:0 0 8px 8px}.autocomplete-option[_ngcontent-%COMP%]:only-child{border-radius:8px}.autocomplete-option[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, #f5f5f5)}.autocomplete-option.selected[_ngcontent-%COMP%]{background:var(--color-bg-hover, #f5f5f5);outline:2px solid var(--color-primary, #007aff);outline-offset:-2px}.autocomplete-option[_ngcontent-%COMP%] .option-name[_ngcontent-%COMP%]{font-size:14px;font-weight:400;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-option[_ngcontent-%COMP%] .option-description[_ngcontent-%COMP%]{font-size:12px;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}']})};var _i=(t,i)=>i.key;function bi(t,i){if(t&1&&(r(0,"mat-icon"),m(1),s()),t&2){let e=l().$implicit;a(),_(e.icon)}}function xi(t,i){if(t&1){let e=S();r(0,"button",3),h("click",function(){let o=v(e).$implicit,d=l();return C(d.onItemClick(o.key))}),u(1,bi,2,1,"mat-icon"),r(2,"span"),m(3),s()()}if(t&2){let e=i.$implicit;p("disabled",e.disabled??!1),x("data-variant",e.variant??"default"),a(),f(e.icon?1:-1),a(2),_(e.label)}}var ln=class t{items;itemSelected=new g;onItemClick(i){this.itemSelected.emit(i)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["ds-kebab-menu"]],inputs:{items:"items"},outputs:{itemSelected:"itemSelected"},decls:5,vars:1,consts:[["menu","matMenu"],["icon","more_vert","title","More actions",3,"matMenuTriggerFor"],["mat-menu-item","",3,"disabled"],["mat-menu-item","",3,"click","disabled"]],template:function(e,n){if(e&1&&(O(0,"ds-icon-button",1),r(1,"mat-menu",null,0),w(3,xi,4,4,"button",2,_i),s()),e&2){let o=X(2);p("matMenuTriggerFor",o),a(3),M(n.items)}},dependencies:[ge,Q,Mt,Ct,vt,wt],styles:["[_nghost-%COMP%]{display:inline-flex;align-items:center}"],changeDetection:0})};export{Wt as a,ge as b,be as c,dn as d,xe as e,ye as f,an as g,ln as h};
@@ -1 +1 @@
1
- import{b as L,c as z}from"./chunk-GAZJZBKP.js";import{b as F,d as y}from"./chunk-QWMDAFBN.js";import{b as v,g as K,h as j}from"./chunk-7A54VTP2.js";import"./chunk-ZAM3WGZM.js";import"./chunk-RQLQ22PM.js";import"./chunk-AK6F2DC7.js";import{a as x}from"./chunk-AJOXSD6I.js";import"./chunk-IXD43YQI.js";import"./chunk-WPC6XC7P.js";import"./chunk-XJUBZLY2.js";import"./chunk-B2QA6UZX.js";import{Bb as u,Db as s,Fb as l,Gc as $,Ka as p,Pb as T,S as P,Tb as f,Ub as I,Vb as E,Wa as g,ab as R,ac as O,ca as d,dc as B,ec as V,ga as m,ha as c,hc as q,i as w,lb as C,ma as k,mb as b,oa as N,rb as _,sb as a,t as A,ta as S,tb as r,u as D}from"./chunk-3JGMGRXW.js";function H(o,i){if(o&1){let e=u();a(0,"span",7),f(1,"Delete?"),r(),a(2,"ds-icon-button",8),s("action",function(){m(e);let t=l();return c(t.onDeleteConfirmed())}),r(),a(3,"ds-icon-button",9),s("action",function(){m(e);let t=l();return c(t.onDeleteCancelled())}),r()}}function J(o,i){if(o&1){let e=u();a(0,"ds-kebab-menu",10),s("itemSelected",function(t){m(e);let h=l();return c(h.onMenuAction(t))}),r()}if(o&2){let e=l();_("items",e.menuItems)}}var M=class o{router=d(y);model;namespaceId;deleteRequested=new N;pendingDelete=S(!1);menuItems=[{key:"edit",label:"Edit model",icon:"edit"},{key:"delete",label:"Delete model",icon:"delete",variant:"danger"}];get displayTitle(){return this.model.alias??this.model.apiModelName}onMenuAction(i){switch(i){case"edit":this.router.navigate(["/agentos",this.namespaceId,"ai-models",this.model.id,"edit"]);break;case"delete":this.pendingDelete.set(!0);break}}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.model)}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=g({type:o,selectors:[["agentos-ai-model-item"]],inputs:{model:"model",namespaceId:"namespaceId"},outputs:{deleteRequested:"deleteRequested"},decls:12,vars:4,consts:[["role","listitem",1,"ai-model-item"],[1,"ai-model-item__body"],[1,"ai-model-item__name"],[1,"ai-model-item__api-name"],[1,"ai-model-item__params"],[1,"ai-model-item__actions"],[3,"items"],[1,"ai-model-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],[3,"itemSelected","items"]],template:function(e,n){e&1&&(a(0,"div",0)(1,"div",1)(2,"span",2),f(3),r(),a(4,"span",3),f(5),r(),a(6,"span",4)(7,"span"),f(8),r()()(),a(9,"div",5),C(10,H,4,0)(11,J,1,1,"ds-kebab-menu",6),r()()),e&2&&(p(3),I(n.displayTitle),p(2),I(n.model.apiModelName),p(3),E("priority: ",n.model.priority),p(2),b(n.pendingDelete()?10:11))},dependencies:[j,v],styles:[".ai-model-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--glass-bg, rgba(255, 255, 255, .72));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px));transition:background .15s ease,border-color .15s ease}.ai-model-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.ai-model-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.ai-model-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-item__api-name[_ngcontent-%COMP%]{font-size:.78rem;color:var(--color-text-secondary, #6e6e73);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-item__params[_ngcontent-%COMP%]{display:flex;gap:.75rem;font-size:.75rem;color:var(--color-text-secondary, #6e6e73)}.ai-model-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.ai-model-item[_ngcontent-%COMP%]:hover .ai-model-item__actions[_ngcontent-%COMP%], .ai-model-item[_ngcontent-%COMP%]:focus-within .ai-model-item__actions[_ngcontent-%COMP%]{opacity:1}.ai-model-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error, #ff3b30);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};var Q=()=>[];function X(o,i){if(o&1){let e=u();a(0,"agentos-ai-model-item",4),s("deleteRequested",function(t){m(e);let h=l(2);return c(h.deleteModel(t))}),r()}if(o&2){let e=l(2);_("model",i)("namespaceId",e.namespaceId)}}function Y(o,i){if(o&1&&C(0,X,1,2,"agentos-ai-model-item",3),o&2){let e,n=i.$implicit,t=l();b((e=t.resolveModel(n.id))?0:-1,e)}}var U=class o{route=d(F);router=d(y);destroyRef=d(k);aiModelController=d(L);aiProviderController=d(z);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new w(void 0);data$=this.refresh$.pipe(P(()=>D([this.aiModelController.listByNamespaceIdAiModel(this.namespaceId),this.aiProviderController.listByParentAiProvider(this.namespaceId)])));modelItems$=this.data$.pipe(A(([i,e])=>{let n=new Map(e.map(t=>[t.id??"",t.name]));return i.map(t=>({id:t.id??"",name:t.alias??t.apiModelName,description:t.apiModelName,groupKey:t.aiProviderId,groupLabel:n.get(t.aiProviderId)??t.aiProviderId}))}));modelsById=new Map;constructor(){this.data$.pipe(x(this.destroyRef)).subscribe(([i])=>{this.modelsById=new Map(i.map(e=>[e.id??"",e]))})}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"ai-models","new"])}deleteModel(i){this.aiModelController.deleteAiModel(i.id??"").pipe(x(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveModel(i){return this.modelsById.get(i)??null}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=g({type:o,selectors:[["agentos-namespace-ai-models"]],decls:5,vars:6,consts:[["aiModelItemTpl",""],["title","AI models","emptyMessage","No AI models configured yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"model","namespaceId"],[3,"deleteRequested","model","namespaceId"]],template:function(e,n){if(e&1&&(a(0,"ds-entity-list",1),B(1,"async"),s("createRequested",function(){return n.openCreateForm()}),a(2,"ds-icon-button",2),s("action",function(){return n.goBack()}),r()(),R(3,Y,1,1,"ng-template",null,0,q)),e&2){let t=T(4);_("items",V(1,3,n.modelItems$)??O(5,Q))("showCreate",!0)("itemTemplate",t)}},dependencies:[K,M,v,$],encapsulation:2,changeDetection:0})};export{U as NamespaceAiModelsComponent};
1
+ import{c as L,d as z}from"./chunk-R5RVDZLX.js";import{b as F,d as y}from"./chunk-LTFITYTW.js";import{b as v,g as K,h as j}from"./chunk-MLNEYB77.js";import"./chunk-3DDLKUVJ.js";import"./chunk-HYNHL5RY.js";import"./chunk-6JH2UGTU.js";import{a as x}from"./chunk-LCBWJP6Z.js";import"./chunk-UQNMPA5Y.js";import"./chunk-QFSZDRP2.js";import"./chunk-DLU3TQID.js";import"./chunk-SDLTQWY6.js";import{Bb as u,Db as s,Fb as l,Gc as $,Ka as p,Pb as T,S as P,Tb as f,Ub as I,Vb as E,Wa as g,ab as R,ac as O,ca as d,dc as B,ec as V,ga as m,ha as c,hc as q,i as w,lb as C,ma as k,mb as b,oa as N,rb as _,sb as a,t as A,ta as S,tb as r,u as D}from"./chunk-RNXBUYHW.js";function H(o,i){if(o&1){let e=u();a(0,"span",7),f(1,"Delete?"),r(),a(2,"ds-icon-button",8),s("action",function(){m(e);let t=l();return c(t.onDeleteConfirmed())}),r(),a(3,"ds-icon-button",9),s("action",function(){m(e);let t=l();return c(t.onDeleteCancelled())}),r()}}function J(o,i){if(o&1){let e=u();a(0,"ds-kebab-menu",10),s("itemSelected",function(t){m(e);let h=l();return c(h.onMenuAction(t))}),r()}if(o&2){let e=l();_("items",e.menuItems)}}var M=class o{router=d(y);model;namespaceId;deleteRequested=new N;pendingDelete=S(!1);menuItems=[{key:"edit",label:"Edit model",icon:"edit"},{key:"delete",label:"Delete model",icon:"delete",variant:"danger"}];get displayTitle(){return this.model.alias??this.model.apiModelName}onMenuAction(i){switch(i){case"edit":this.router.navigate(["/agentos",this.namespaceId,"ai-models",this.model.id,"edit"]);break;case"delete":this.pendingDelete.set(!0);break}}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.model)}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=g({type:o,selectors:[["agentos-ai-model-item"]],inputs:{model:"model",namespaceId:"namespaceId"},outputs:{deleteRequested:"deleteRequested"},decls:12,vars:4,consts:[["role","listitem",1,"ai-model-item"],[1,"ai-model-item__body"],[1,"ai-model-item__name"],[1,"ai-model-item__api-name"],[1,"ai-model-item__params"],[1,"ai-model-item__actions"],[3,"items"],[1,"ai-model-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],[3,"itemSelected","items"]],template:function(e,n){e&1&&(a(0,"div",0)(1,"div",1)(2,"span",2),f(3),r(),a(4,"span",3),f(5),r(),a(6,"span",4)(7,"span"),f(8),r()()(),a(9,"div",5),C(10,H,4,0)(11,J,1,1,"ds-kebab-menu",6),r()()),e&2&&(p(3),I(n.displayTitle),p(2),I(n.model.apiModelName),p(3),E("priority: ",n.model.priority),p(2),b(n.pendingDelete()?10:11))},dependencies:[j,v],styles:[".ai-model-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--glass-bg, rgba(255, 255, 255, .72));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px));transition:background .15s ease,border-color .15s ease}.ai-model-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.ai-model-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.ai-model-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-item__api-name[_ngcontent-%COMP%]{font-size:.78rem;color:var(--color-text-secondary, #6e6e73);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-item__params[_ngcontent-%COMP%]{display:flex;gap:.75rem;font-size:.75rem;color:var(--color-text-secondary, #6e6e73)}.ai-model-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.ai-model-item[_ngcontent-%COMP%]:hover .ai-model-item__actions[_ngcontent-%COMP%], .ai-model-item[_ngcontent-%COMP%]:focus-within .ai-model-item__actions[_ngcontent-%COMP%]{opacity:1}.ai-model-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error, #ff3b30);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};var Q=()=>[];function X(o,i){if(o&1){let e=u();a(0,"agentos-ai-model-item",4),s("deleteRequested",function(t){m(e);let h=l(2);return c(h.deleteModel(t))}),r()}if(o&2){let e=l(2);_("model",i)("namespaceId",e.namespaceId)}}function Y(o,i){if(o&1&&C(0,X,1,2,"agentos-ai-model-item",3),o&2){let e,n=i.$implicit,t=l();b((e=t.resolveModel(n.id))?0:-1,e)}}var U=class o{route=d(F);router=d(y);destroyRef=d(k);aiModelController=d(L);aiProviderController=d(z);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new w(void 0);data$=this.refresh$.pipe(P(()=>D([this.aiModelController.listByNamespaceIdAiModel(this.namespaceId),this.aiProviderController.listByParentAiProvider(this.namespaceId)])));modelItems$=this.data$.pipe(A(([i,e])=>{let n=new Map(e.map(t=>[t.id??"",t.name]));return i.map(t=>({id:t.id??"",name:t.alias??t.apiModelName,description:t.apiModelName,groupKey:t.aiProviderId,groupLabel:n.get(t.aiProviderId)??t.aiProviderId}))}));modelsById=new Map;constructor(){this.data$.pipe(x(this.destroyRef)).subscribe(([i])=>{this.modelsById=new Map(i.map(e=>[e.id??"",e]))})}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"ai-models","new"])}deleteModel(i){this.aiModelController.deleteAiModel(i.id??"").pipe(x(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveModel(i){return this.modelsById.get(i)??null}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=g({type:o,selectors:[["agentos-namespace-ai-models"]],decls:5,vars:6,consts:[["aiModelItemTpl",""],["title","AI models","emptyMessage","No AI models configured yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"model","namespaceId"],[3,"deleteRequested","model","namespaceId"]],template:function(e,n){if(e&1&&(a(0,"ds-entity-list",1),B(1,"async"),s("createRequested",function(){return n.openCreateForm()}),a(2,"ds-icon-button",2),s("action",function(){return n.goBack()}),r()(),R(3,Y,1,1,"ng-template",null,0,q)),e&2){let t=T(4);_("items",V(1,3,n.modelItems$)??O(5,Q))("showCreate",!0)("itemTemplate",t)}},dependencies:[K,M,v,$],encapsulation:2,changeDetection:0})};export{U as NamespaceAiModelsComponent};
@@ -1 +1 @@
1
- import{b as Y}from"./chunk-6LO3ANKL.js";import{d as K}from"./chunk-GAZJZBKP.js";import{a as A,b as H,c as G,d as J}from"./chunk-QWMDAFBN.js";import{a as U,b as g,g as X}from"./chunk-7A54VTP2.js";import{b}from"./chunk-AJOXSD6I.js";import{A as D,B as O,Bb as h,Db as l,Fb as m,Jb as N,Ka as c,Kb as k,Lb as L,Pb as V,Rb as F,S as R,Tb as W,Ub as $,Wa as d,Xb as B,Yb as Q,Zb as j,ab as q,ca as p,ga as u,ha as C,hc as z,i as I,lb as P,m as x,mb as E,oa as f,rb as _,sb as o,t as y,ta as M,tb as s,ub as S,va as T}from"./chunk-3JGMGRXW.js";var v=class i{case;static toListItem(e){return{id:e.id??"",name:e.id??"\u2014",description:void 0}}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=d({type:i,selectors:[["agentos-case-item"]],inputs:{case:"case"},decls:0,vars:0,template:function(t,n){},encapsulation:2,changeDetection:0})};var ne=["caseItemTpl"];function ae(i,e){if(i&1){let t=h();o(0,"button",3),l("click",function(){let a=u(t).$implicit,r=m();return C(r.onItemSelected(a.id))}),o(1,"span",4),W(2),s()()}if(i&2){let t=e.$implicit,n=m();F("case-drawer-item--active",t.id===n.activeCaseId),c(2),$(t.name)}}var w=class i{cases=[];activeCaseId=null;caseSelected=new f;createRequested=new f;closeRequested=new f;caseItemTpl;caseItems=[];ngOnChanges(e){e.cases&&(this.caseItems=this.cases.map(v.toListItem))}onItemSelected(e){this.caseSelected.emit(e)}onCreateRequested(){this.createRequested.emit()}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=d({type:i,selectors:[["agentos-case-drawer"]],viewQuery:function(t,n){if(t&1&&N(ne,7),t&2){let a;k(a=L())&&(n.caseItemTpl=a.first)}},inputs:{cases:"cases",activeCaseId:"activeCaseId"},outputs:{caseSelected:"caseSelected",createRequested:"createRequested",closeRequested:"closeRequested"},features:[T],decls:4,vars:3,consts:[["caseItemTpl",""],["title","Cases","emptyMessage","No cases yet. Start one below.","searchPlaceholder","Filter cases\u2026","cardMinWidth","220px","contentMaxWidth","100%",3,"itemSelected","createRequested","items","itemTemplate","showCreate"],["toolbar-start","","icon","chevron_left","variant","default","title","Close drawer",3,"action"],["type","button",1,"case-drawer-item",3,"click"],[1,"case-drawer-item__name"]],template:function(t,n){if(t&1&&(o(0,"ds-entity-list",1),l("itemSelected",function(r){return n.onItemSelected(r)})("createRequested",function(){return n.onCreateRequested()}),o(1,"ds-icon-button",2),l("action",function(){return n.closeRequested.emit()}),s()(),q(2,ae,3,3,"ng-template",null,0,z)),t&2){let a=V(3);_("items",n.caseItems)("itemTemplate",a)("showCreate",!0)}},dependencies:[X,g],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.case-drawer-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .75rem;border-radius:8px;border:none;background:transparent;cursor:pointer;text-align:left;font-family:inherit;font-size:.875rem;color:var(--color-text, #1d1d1f);transition:background .12s ease;gap:.5rem}.case-drawer-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.case-drawer-item--active[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);color:var(--color-text-inverse, #fff)}.case-drawer-item--active[_ngcontent-%COMP%] .case-drawer-item__status[_ngcontent-%COMP%]{color:#ffffffb3}.case-drawer-item--active[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover, #0051d5)}.case-drawer-item__name[_ngcontent-%COMP%]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-family:var(--font-mono, ui-monospace, "SF Mono", monospace);font-size:.8rem}'],changeDetection:0})};function ie(i,e){if(i&1){let t=h();o(0,"div",7)(1,"ds-icon-button",8),l("action",function(){u(t);let a=m();return C(a.toggleDrawer())}),s()()}}var te=class i{router=p(J);route=p(H);caseController=p(K);namespaceId=this.route.snapshot.params.namespaceId;drawerOpen=M(!0);refresh$=new I(void 0);cases$=this.refresh$.pipe(R(()=>this.caseController.listByParentCase(this.namespaceId)));cases=b(this.cases$,{initialValue:[]});activeCaseId=b(D(x(this.router.url),this.router.events.pipe(O(e=>e instanceof A),y(e=>e.urlAfterRedirects))).pipe(y(e=>this.extractCaseId(e))),{initialValue:null});extractCaseId(e){return e.match(/\/cases\/([^/?#]+)/)?.[1]??null}toggleDrawer(){this.drawerOpen.update(e=>!e)}onCaseSelected(e){this.router.navigate([e],{relativeTo:this.route})}onCreateRequested(){this.router.navigate(["."],{relativeTo:this.route})}refreshCases(){this.refresh$.next()}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=d({type:i,selectors:[["agentos-case-shell"]],decls:9,vars:4,consts:[[1,"case-shell"],[1,"case-shell__header"],[1,"case-shell__body"],["drawerWidth","400px",3,"openChange","open"],["dsDrawerSide","",1,"case-shell__sidenav"],[3,"caseSelected","createRequested","closeRequested","cases","activeCaseId"],["dsDrawerContent","",1,"case-shell__content"],[1,"case-shell__toggle"],["icon","menu","variant","default","title","Open drawer",3,"action"]],template:function(t,n){t&1&&(o(0,"div",0),S(1,"agentos-header",1),o(2,"div",2)(3,"ds-drawer",3),j("openChange",function(r){return Q(n.drawerOpen,r)||(n.drawerOpen=r),r}),o(4,"div",4)(5,"agentos-case-drawer",5),l("caseSelected",function(r){return n.onCaseSelected(r)})("createRequested",function(){return n.onCreateRequested()})("closeRequested",function(){return n.toggleDrawer()}),s()(),o(6,"div",6),P(7,ie,2,0,"div",7),S(8,"router-outlet"),s()()()()),t&2&&(c(3),B("open",n.drawerOpen),c(2),_("cases",n.cases())("activeCaseId",n.activeCaseId()),c(2),E(n.drawerOpen()?-1:7))},dependencies:[G,U,w,Y,g],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100dvh}.case-shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.case-shell__header[_ngcontent-%COMP%]{flex-shrink:0}.case-shell__body[_ngcontent-%COMP%]{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.case-shell__sidenav[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}.case-shell__content[_ngcontent-%COMP%]{position:relative;flex:1;display:flex;flex-direction:column;height:100%;overflow:hidden}.case-shell__toggle[_ngcontent-%COMP%]{position:absolute;top:.375rem;left:.5rem;z-index:10}"]})};export{v as a,w as b,te as c};
1
+ import{b as Y}from"./chunk-3CAK3MY2.js";import{e as K}from"./chunk-R5RVDZLX.js";import{a as A,b as H,c as G,d as J}from"./chunk-LTFITYTW.js";import{a as U,b as g,g as X}from"./chunk-MLNEYB77.js";import{b}from"./chunk-LCBWJP6Z.js";import{A as D,B as O,Bb as h,Db as l,Fb as m,Jb as N,Ka as c,Kb as k,Lb as L,Pb as V,Rb as F,S as R,Tb as W,Ub as $,Wa as d,Xb as B,Yb as Q,Zb as j,ab as q,ca as p,ga as u,ha as C,hc as z,i as I,lb as P,m as x,mb as E,oa as f,rb as _,sb as o,t as y,ta as M,tb as s,ub as S,va as T}from"./chunk-RNXBUYHW.js";var v=class i{case;static toListItem(e){return{id:e.id??"",name:e.id??"\u2014",description:void 0}}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=d({type:i,selectors:[["agentos-case-item"]],inputs:{case:"case"},decls:0,vars:0,template:function(t,n){},encapsulation:2,changeDetection:0})};var ne=["caseItemTpl"];function ae(i,e){if(i&1){let t=h();o(0,"button",3),l("click",function(){let a=u(t).$implicit,r=m();return C(r.onItemSelected(a.id))}),o(1,"span",4),W(2),s()()}if(i&2){let t=e.$implicit,n=m();F("case-drawer-item--active",t.id===n.activeCaseId),c(2),$(t.name)}}var w=class i{cases=[];activeCaseId=null;caseSelected=new f;createRequested=new f;closeRequested=new f;caseItemTpl;caseItems=[];ngOnChanges(e){e.cases&&(this.caseItems=this.cases.map(v.toListItem))}onItemSelected(e){this.caseSelected.emit(e)}onCreateRequested(){this.createRequested.emit()}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=d({type:i,selectors:[["agentos-case-drawer"]],viewQuery:function(t,n){if(t&1&&N(ne,7),t&2){let a;k(a=L())&&(n.caseItemTpl=a.first)}},inputs:{cases:"cases",activeCaseId:"activeCaseId"},outputs:{caseSelected:"caseSelected",createRequested:"createRequested",closeRequested:"closeRequested"},features:[T],decls:4,vars:3,consts:[["caseItemTpl",""],["title","Cases","emptyMessage","No cases yet. Start one below.","searchPlaceholder","Filter cases\u2026","cardMinWidth","220px","contentMaxWidth","100%",3,"itemSelected","createRequested","items","itemTemplate","showCreate"],["toolbar-start","","icon","chevron_left","variant","default","title","Close drawer",3,"action"],["type","button",1,"case-drawer-item",3,"click"],[1,"case-drawer-item__name"]],template:function(t,n){if(t&1&&(o(0,"ds-entity-list",1),l("itemSelected",function(r){return n.onItemSelected(r)})("createRequested",function(){return n.onCreateRequested()}),o(1,"ds-icon-button",2),l("action",function(){return n.closeRequested.emit()}),s()(),q(2,ae,3,3,"ng-template",null,0,z)),t&2){let a=V(3);_("items",n.caseItems)("itemTemplate",a)("showCreate",!0)}},dependencies:[X,g],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.case-drawer-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .75rem;border-radius:8px;border:none;background:transparent;cursor:pointer;text-align:left;font-family:inherit;font-size:.875rem;color:var(--color-text, #1d1d1f);transition:background .12s ease;gap:.5rem}.case-drawer-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.case-drawer-item--active[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);color:var(--color-text-inverse, #fff)}.case-drawer-item--active[_ngcontent-%COMP%] .case-drawer-item__status[_ngcontent-%COMP%]{color:#ffffffb3}.case-drawer-item--active[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover, #0051d5)}.case-drawer-item__name[_ngcontent-%COMP%]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-family:var(--font-mono, ui-monospace, "SF Mono", monospace);font-size:.8rem}'],changeDetection:0})};function ie(i,e){if(i&1){let t=h();o(0,"div",7)(1,"ds-icon-button",8),l("action",function(){u(t);let a=m();return C(a.toggleDrawer())}),s()()}}var te=class i{router=p(J);route=p(H);caseController=p(K);namespaceId=this.route.snapshot.params.namespaceId;drawerOpen=M(!0);refresh$=new I(void 0);cases$=this.refresh$.pipe(R(()=>this.caseController.listByParentCase(this.namespaceId)));cases=b(this.cases$,{initialValue:[]});activeCaseId=b(D(x(this.router.url),this.router.events.pipe(O(e=>e instanceof A),y(e=>e.urlAfterRedirects))).pipe(y(e=>this.extractCaseId(e))),{initialValue:null});extractCaseId(e){return e.match(/\/cases\/([^/?#]+)/)?.[1]??null}toggleDrawer(){this.drawerOpen.update(e=>!e)}onCaseSelected(e){this.router.navigate([e],{relativeTo:this.route})}onCreateRequested(){this.router.navigate(["."],{relativeTo:this.route})}refreshCases(){this.refresh$.next()}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=d({type:i,selectors:[["agentos-case-shell"]],decls:9,vars:4,consts:[[1,"case-shell"],[1,"case-shell__header"],[1,"case-shell__body"],["drawerWidth","400px",3,"openChange","open"],["dsDrawerSide","",1,"case-shell__sidenav"],[3,"caseSelected","createRequested","closeRequested","cases","activeCaseId"],["dsDrawerContent","",1,"case-shell__content"],[1,"case-shell__toggle"],["icon","menu","variant","default","title","Open drawer",3,"action"]],template:function(t,n){t&1&&(o(0,"div",0),S(1,"agentos-header",1),o(2,"div",2)(3,"ds-drawer",3),j("openChange",function(r){return Q(n.drawerOpen,r)||(n.drawerOpen=r),r}),o(4,"div",4)(5,"agentos-case-drawer",5),l("caseSelected",function(r){return n.onCaseSelected(r)})("createRequested",function(){return n.onCreateRequested()})("closeRequested",function(){return n.toggleDrawer()}),s()(),o(6,"div",6),P(7,ie,2,0,"div",7),S(8,"router-outlet"),s()()()()),t&2&&(c(3),B("open",n.drawerOpen),c(2),_("cases",n.cases())("activeCaseId",n.activeCaseId()),c(2),E(n.drawerOpen()?-1:7))},dependencies:[G,U,w,Y,g],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100dvh}.case-shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.case-shell__header[_ngcontent-%COMP%]{flex-shrink:0}.case-shell__body[_ngcontent-%COMP%]{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.case-shell__sidenav[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}.case-shell__content[_ngcontent-%COMP%]{position:relative;flex:1;display:flex;flex-direction:column;height:100%;overflow:hidden}.case-shell__toggle[_ngcontent-%COMP%]{position:absolute;top:.375rem;left:.5rem;z-index:10}"]})};export{v as a,w as b,te as c};
@@ -1 +1 @@
1
- import{Rc as g,V as c,Z as p,ca as l,m as s,t as a}from"./chunk-3JGMGRXW.js";var m=class n{http=l(g);agentsCache=new Map;getAgents(e){let t=this.agentsCache.get(e);return t?s(t):this.http.get(`/api/projects/${e}/agents`).pipe(c(r=>{this.agentsCache.set(e,r)}))}getAgentsAutocomplete(e,t){return this.getAgents(e).pipe(a(r=>{if(!t)return r;let o=t.toLowerCase();return r.filter(i=>{let h=i.name.toLowerCase(),u=i.description?.toLowerCase()||"";return h.includes(o)||u.includes(o)})}))}clearCache(e){this.agentsCache.delete(e)}clearAllCache(){this.agentsCache.clear()}static \u0275fac=function(t){return new(t||n)};static \u0275prov=p({token:n,factory:n.\u0275fac,providedIn:"root"})};export{m as a};
1
+ import{Rc as g,V as c,Z as p,ca as l,m as s,t as a}from"./chunk-RNXBUYHW.js";var m=class n{http=l(g);agentsCache=new Map;getAgents(e){let t=this.agentsCache.get(e);return t?s(t):this.http.get(`/api/projects/${e}/agents`).pipe(c(r=>{this.agentsCache.set(e,r)}))}getAgentsAutocomplete(e,t){return this.getAgents(e).pipe(a(r=>{if(!t)return r;let o=t.toLowerCase();return r.filter(i=>{let h=i.name.toLowerCase(),u=i.description?.toLowerCase()||"";return h.includes(o)||u.includes(o)})}))}clearCache(e){this.agentsCache.delete(e)}clearAllCache(){this.agentsCache.clear()}static \u0275fac=function(t){return new(t||n)};static \u0275prov=p({token:n,factory:n.\u0275fac,providedIn:"root"})};export{m as a};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-AHABNNMX.js";import"./chunk-R5RVDZLX.js";import"./chunk-LTFITYTW.js";import"./chunk-MLNEYB77.js";import"./chunk-3DDLKUVJ.js";import"./chunk-HYNHL5RY.js";import"./chunk-6JH2UGTU.js";import"./chunk-LCBWJP6Z.js";import"./chunk-UQNMPA5Y.js";import"./chunk-QFSZDRP2.js";import"./chunk-DLU3TQID.js";import"./chunk-SDLTQWY6.js";import"./chunk-RNXBUYHW.js";export{a as CaseHomeComponent};
@@ -1 +1 @@
1
- import{a as N}from"./chunk-3U3QVZEU.js";import{a as J}from"./chunk-I5OT3IGD.js";import{d as F,e as $}from"./chunk-QWMDAFBN.js";import"./chunk-WNNKQ2DH.js";import"./chunk-KTPX26DH.js";import{f as U,g as z}from"./chunk-7A54VTP2.js";import"./chunk-ZAM3WGZM.js";import"./chunk-RQLQ22PM.js";import"./chunk-AK6F2DC7.js";import{a as L,b as S}from"./chunk-AJOXSD6I.js";import{d as K}from"./chunk-DRBOHCTP.js";import"./chunk-IXD43YQI.js";import{a as W,b as A}from"./chunk-WPC6XC7P.js";import"./chunk-XJUBZLY2.js";import{b as B}from"./chunk-XIQ3L6H6.js";import{O as V}from"./chunk-B2QA6UZX.js";import{B as x,Bb as k,Db as h,Fb as b,Ka as v,Pb as E,Tb as O,Wa as D,a as c,ab as I,ac as T,b as p,ca as m,ga as C,ha as j,hc as q,kc as w,ma as R,rb as P,sb as d,tb as _,ub as M}from"./chunk-3JGMGRXW.js";var ee=()=>[];function te(u,t){if(u&1){let o=k();d(0,"div",5)(1,"ds-entity-card",6),h("selected",function(r){C(o);let n=b();return j(n.onItemSelected(r))}),_(),d(2,"button",7),h("click",function(r){let n=C(o).$implicit,f=b();return r.stopPropagation(),j(f.onDeleteRequested(n.id))}),d(3,"mat-icon"),O(4,"close"),_()()()}if(u&2){let o=t.$implicit;v(),P("id",o.id)("name",o.name)("description",o.description)("badges",o.badges??T(4,ee))}}var g="__",Y=class u{router=m(F);projectStateService=m(B);dialog=m(K);destroyRef=m(R);notification=m(J);projects=S(this.projectStateService.projectList$);forcedProject=S(this.projectStateService.forcedProject$,{initialValue:null});projectItems=w(()=>{let t=this.projects();if(!t)return[];let o=t.filter(e=>!e.name.includes(g)),a=t.filter(e=>e.name.includes(g)),r=new Set(o.map(e=>e.name)),n=e=>e.split(g)[0]??null,f=new Set(a.map(e=>n(e.name)).filter(e=>e!==null&&r.has(e))),l=[],G=[...f].sort((e,i)=>e.localeCompare(i));for(let e of G){let i=o.find(s=>s.name===e);l.push(p(c({},this.toEntityListItem(i)),{groupKey:e,groupLabel:e}));let Z=a.filter(s=>n(s.name)===e).sort((s,y)=>s.name.localeCompare(y.name));for(let s of Z){let y=s.name.slice(e.length+g.length);l.push(p(c({},this.toEntityListItem(s)),{name:y,description:s.name,groupKey:e,groupLabel:e}))}}let H=[...o].filter(e=>!f.has(e.name)&&!e.volatile).sort((e,i)=>e.name.localeCompare(i.name));for(let e of H)l.push(p(c({},this.toEntityListItem(e)),{groupKey:"__standalone__",groupLabel:"Projects"}));let Q=[...o].filter(e=>!f.has(e.name)&&e.volatile).sort((e,i)=>e.name.localeCompare(i.name));for(let e of Q)l.push(p(c({},this.toEntityListItem(e)),{groupKey:"__volatile__",groupLabel:"Temporary"}));let X=a.filter(e=>{let i=n(e.name);return i!==null&&!r.has(i)}).sort((e,i)=>e.name.localeCompare(i.name));for(let e of X)l.push(p(c({},this.toEntityListItem(e)),{groupKey:"__orphaned__",groupLabel:"Orphaned worktrees"}));return l});showCreateButton=w(()=>!this.forcedProject());constructor(){}onItemSelected(t){this.projectStateService.selectProject(t),this.router.navigate(["project",t])}onCreateRequested(){this.router.navigate(["project","new"])}onDeleteRequested(t){let o=t.includes(g);this.dialog.open(N,{width:"400px",panelClass:"confirm-dialog-panel",data:c({title:"Delete project",message:`This will remove the project "${t}" from Coday and archive its configuration. The project source code on disk is not affected.`,confirmLabel:"Delete",cancelLabel:"Cancel",isDestructive:!0},o?{checkboxLabel:"Also remove git worktree from disk"}:{})}).afterClosed().pipe(x(r=>r?.confirmed===!0),L(this.destroyRef)).subscribe(r=>{this.notification.info("Deleting project\u2026"),this.projectStateService.deleteProject(t,r.checkboxChecked).pipe(L(this.destroyRef)).subscribe({next:()=>{this.notification.success(`Project "${t}" deleted`),this.router.url.includes(`/project/${encodeURIComponent(t)}`)&&this.router.navigate(["/"])},error:n=>{console.error("[PROJECT-LIST] Failed to delete project:",n),this.notification.error(n?.error?.error??"Failed to delete project")}})})}toEntityListItem(t){return{id:t.name,name:t.name,badges:t.volatile?[{label:"temp",variant:"warning"}]:[]}}static \u0275fac=function(o){return new(o||u)};static \u0275cmp=D({type:u,selectors:[["app-project-selection"]],decls:6,vars:4,consts:[["projectCard",""],[1,"project-page-layout"],["title","Projects","contentMaxWidth","1400px","searchPlaceholder","Filter projects\u2026","emptyMessage","No projects found.",3,"itemSelected","createRequested","items","itemTemplate","showCreate","autoFocusSearch"],["toolbar-start","","routerLink","/","title","Back to tasks",1,"project-list__logo"],["src","CODAY-Logo.png","alt","Coday"],[1,"project-card-wrapper"],[3,"selected","id","name","description","badges"],["mat-icon-button","","title","Delete project",1,"project-card-wrapper__delete",3,"click"]],template:function(o,a){if(o&1&&(d(0,"div",1)(1,"ds-entity-list",2),h("itemSelected",function(n){return a.onItemSelected(n)})("createRequested",function(){return a.onCreateRequested()}),d(2,"a",3),M(3,"img",4),_()()(),I(4,te,5,5,"ng-template",null,0,q)),o&2){let r=E(5);v(),P("items",a.projectItems())("itemTemplate",r)("showCreate",a.showCreateButton())("autoFocusSearch",!0)}},dependencies:[z,U,A,W,V,$],styles:["[_nghost-%COMP%]{display:block;width:100%;min-height:100vh;background:var(--color-bg);overflow-y:auto}.project-page-layout[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.project-list__logo[_ngcontent-%COMP%]{display:flex;align-items:center;flex-shrink:0;border-radius:4px;opacity:.85;transition:opacity .15s ease;cursor:pointer}.project-list__logo[_ngcontent-%COMP%]:hover{opacity:1}.project-list__logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:40px;height:40px;object-fit:contain;border-radius:4px}.project-card-wrapper[_ngcontent-%COMP%]{position:relative}.project-card-wrapper__delete[_ngcontent-%COMP%]{position:absolute;top:4px;right:4px;width:28px;height:28px;line-height:28px;padding:0;opacity:0;transition:opacity .15s ease;color:var(--color-text-secondary, #6e6e73)}.project-card-wrapper__delete[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}.project-card-wrapper__delete[_ngcontent-%COMP%]:hover{color:var(--color-error, #ff3b30)}.project-card-wrapper[_ngcontent-%COMP%]:hover .project-card-wrapper__delete[_ngcontent-%COMP%]{opacity:1}"]})};export{Y as ProjectListComponent};
1
+ import{a as N}from"./chunk-I75FDNMK.js";import{a as J}from"./chunk-Q74LPU7S.js";import{d as F,e as $}from"./chunk-LTFITYTW.js";import"./chunk-CND4W2V5.js";import"./chunk-FDCPX2YT.js";import{f as U,g as z}from"./chunk-MLNEYB77.js";import"./chunk-3DDLKUVJ.js";import"./chunk-HYNHL5RY.js";import"./chunk-6JH2UGTU.js";import{a as L,b as S}from"./chunk-LCBWJP6Z.js";import{d as K}from"./chunk-HY7OYHZF.js";import"./chunk-UQNMPA5Y.js";import{a as W,b as A}from"./chunk-QFSZDRP2.js";import"./chunk-DLU3TQID.js";import{b as B}from"./chunk-G4QDBE4F.js";import{O as V}from"./chunk-SDLTQWY6.js";import{B as x,Bb as k,Db as h,Fb as b,Ka as v,Pb as E,Tb as O,Wa as D,a as c,ab as I,ac as T,b as p,ca as m,ga as C,ha as j,hc as q,kc as w,ma as R,rb as P,sb as d,tb as _,ub as M}from"./chunk-RNXBUYHW.js";var ee=()=>[];function te(u,t){if(u&1){let o=k();d(0,"div",5)(1,"ds-entity-card",6),h("selected",function(r){C(o);let n=b();return j(n.onItemSelected(r))}),_(),d(2,"button",7),h("click",function(r){let n=C(o).$implicit,f=b();return r.stopPropagation(),j(f.onDeleteRequested(n.id))}),d(3,"mat-icon"),O(4,"close"),_()()()}if(u&2){let o=t.$implicit;v(),P("id",o.id)("name",o.name)("description",o.description)("badges",o.badges??T(4,ee))}}var g="__",Y=class u{router=m(F);projectStateService=m(B);dialog=m(K);destroyRef=m(R);notification=m(J);projects=S(this.projectStateService.projectList$);forcedProject=S(this.projectStateService.forcedProject$,{initialValue:null});projectItems=w(()=>{let t=this.projects();if(!t)return[];let o=t.filter(e=>!e.name.includes(g)),a=t.filter(e=>e.name.includes(g)),r=new Set(o.map(e=>e.name)),n=e=>e.split(g)[0]??null,f=new Set(a.map(e=>n(e.name)).filter(e=>e!==null&&r.has(e))),l=[],G=[...f].sort((e,i)=>e.localeCompare(i));for(let e of G){let i=o.find(s=>s.name===e);l.push(p(c({},this.toEntityListItem(i)),{groupKey:e,groupLabel:e}));let Z=a.filter(s=>n(s.name)===e).sort((s,y)=>s.name.localeCompare(y.name));for(let s of Z){let y=s.name.slice(e.length+g.length);l.push(p(c({},this.toEntityListItem(s)),{name:y,description:s.name,groupKey:e,groupLabel:e}))}}let H=[...o].filter(e=>!f.has(e.name)&&!e.volatile).sort((e,i)=>e.name.localeCompare(i.name));for(let e of H)l.push(p(c({},this.toEntityListItem(e)),{groupKey:"__standalone__",groupLabel:"Projects"}));let Q=[...o].filter(e=>!f.has(e.name)&&e.volatile).sort((e,i)=>e.name.localeCompare(i.name));for(let e of Q)l.push(p(c({},this.toEntityListItem(e)),{groupKey:"__volatile__",groupLabel:"Temporary"}));let X=a.filter(e=>{let i=n(e.name);return i!==null&&!r.has(i)}).sort((e,i)=>e.name.localeCompare(i.name));for(let e of X)l.push(p(c({},this.toEntityListItem(e)),{groupKey:"__orphaned__",groupLabel:"Orphaned worktrees"}));return l});showCreateButton=w(()=>!this.forcedProject());constructor(){}onItemSelected(t){this.projectStateService.selectProject(t),this.router.navigate(["project",t])}onCreateRequested(){this.router.navigate(["project","new"])}onDeleteRequested(t){let o=t.includes(g);this.dialog.open(N,{width:"400px",panelClass:"confirm-dialog-panel",data:c({title:"Delete project",message:`This will remove the project "${t}" from Coday and archive its configuration. The project source code on disk is not affected.`,confirmLabel:"Delete",cancelLabel:"Cancel",isDestructive:!0},o?{checkboxLabel:"Also remove git worktree from disk"}:{})}).afterClosed().pipe(x(r=>r?.confirmed===!0),L(this.destroyRef)).subscribe(r=>{this.notification.info("Deleting project\u2026"),this.projectStateService.deleteProject(t,r.checkboxChecked).pipe(L(this.destroyRef)).subscribe({next:()=>{this.notification.success(`Project "${t}" deleted`),this.router.url.includes(`/project/${encodeURIComponent(t)}`)&&this.router.navigate(["/"])},error:n=>{console.error("[PROJECT-LIST] Failed to delete project:",n),this.notification.error(n?.error?.error??"Failed to delete project")}})})}toEntityListItem(t){return{id:t.name,name:t.name,badges:t.volatile?[{label:"temp",variant:"warning"}]:[]}}static \u0275fac=function(o){return new(o||u)};static \u0275cmp=D({type:u,selectors:[["app-project-selection"]],decls:6,vars:4,consts:[["projectCard",""],[1,"project-page-layout"],["title","Projects","contentMaxWidth","1400px","searchPlaceholder","Filter projects\u2026","emptyMessage","No projects found.",3,"itemSelected","createRequested","items","itemTemplate","showCreate","autoFocusSearch"],["toolbar-start","","routerLink","/","title","Back to tasks",1,"project-list__logo"],["src","CODAY-Logo.png","alt","Coday"],[1,"project-card-wrapper"],[3,"selected","id","name","description","badges"],["mat-icon-button","","title","Delete project",1,"project-card-wrapper__delete",3,"click"]],template:function(o,a){if(o&1&&(d(0,"div",1)(1,"ds-entity-list",2),h("itemSelected",function(n){return a.onItemSelected(n)})("createRequested",function(){return a.onCreateRequested()}),d(2,"a",3),M(3,"img",4),_()()(),I(4,te,5,5,"ng-template",null,0,q)),o&2){let r=E(5);v(),P("items",a.projectItems())("itemTemplate",r)("showCreate",a.showCreateButton())("autoFocusSearch",!0)}},dependencies:[z,U,A,W,V,$],styles:["[_nghost-%COMP%]{display:block;width:100%;min-height:100vh;background:var(--color-bg);overflow-y:auto}.project-page-layout[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.project-list__logo[_ngcontent-%COMP%]{display:flex;align-items:center;flex-shrink:0;border-radius:4px;opacity:.85;transition:opacity .15s ease;cursor:pointer}.project-list__logo[_ngcontent-%COMP%]:hover{opacity:1}.project-list__logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:40px;height:40px;object-fit:contain;border-radius:4px}.project-card-wrapper[_ngcontent-%COMP%]{position:relative}.project-card-wrapper__delete[_ngcontent-%COMP%]{position:absolute;top:4px;right:4px;width:28px;height:28px;line-height:28px;padding:0;opacity:0;transition:opacity .15s ease;color:var(--color-text-secondary, #6e6e73)}.project-card-wrapper__delete[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}.project-card-wrapper__delete[_ngcontent-%COMP%]:hover{color:var(--color-error, #ff3b30)}.project-card-wrapper[_ngcontent-%COMP%]:hover .project-card-wrapper__delete[_ngcontent-%COMP%]{opacity:1}"]})};export{Y as ProjectListComponent};
@@ -1 +1 @@
1
- import{d as S}from"./chunk-QWMDAFBN.js";import{a as q,b as I}from"./chunk-AK6F2DC7.js";import{a as E,b as N}from"./chunk-WPC6XC7P.js";import{b as D}from"./chunk-XIQ3L6H6.js";import{O as j,S as R}from"./chunk-B2QA6UZX.js";import{Bb as C,Db as p,Fb as g,Ka as c,Rb as y,Sb as w,Tb as l,Ub as u,Vb as O,Wa as x,ca as h,ga as b,ha as _,jb as M,kc as v,lb as d,mb as m,nc as k,oc as f,rb as P,sb as n,tb as i,ub as T}from"./chunk-3JGMGRXW.js";function V(a,e){a&1&&(n(0,"mat-icon",1),l(1,"star"),i())}function A(a,e){a&1&&T(0,"span",5)}function L(a,e){if(a&1&&(n(0,"div",6)(1,"mat-icon",19),l(2,"folder"),i(),n(3,"span"),l(4),i()()),a&2){let o=g();c(4),u(o.projectName())}}function Y(a,e){if(a&1&&(n(0,"p",8),l(1),i()),a&2){let o=g();c(),u(o.task().summary)}}function W(a,e){a&1&&(n(0,"p",9),l(1,"No summary yet"),i())}function U(a,e){if(a&1){let o=C();n(0,"button",20),p("click",function(s){b(o);let r=g();return _(r.onStop(s))}),n(1,"mat-icon"),l(2,"stop_circle"),i()()}}function B(a,e){if(a&1){let o=C();n(0,"button",21),p("click",function(s){b(o);let r=g();return _(r.onMarkDone(s))}),n(1,"mat-icon"),l(2,"check_circle_outline"),i()()}}function $(a,e){if(a&1){let o=C();n(0,"button",22),p("click",function(s){b(o);let r=g();return _(r.onMarkActive(s))}),n(1,"mat-icon"),l(2,"replay"),i()()}}function H(a,e){if(a&1){let o=C();n(0,"button",23),p("click",function(s){b(o);let r=g();return _(r.onCloseTask(s))}),n(1,"mat-icon"),l(2,"close_fullscreen"),i()()}}var z=class a{task=f.required();projectNameOverride=f(null);showProject=f(!1);stopRequested=k();deleteRequested=k();starToggled=k();closeTaskRequested=k();markDoneRequested=k();markActiveRequested=k();router=h(S);projectState=h(D);projectName=v(()=>this.projectNameOverride()??this.projectState.getSelectedProjectId());statusLabel=v(()=>F[this.task().status]);statusIcon=v(()=>G[this.task().status]);isWorktree=v(()=>!!this.task().worktreeProject);navigate(){let e=this.projectName();e&&(this.projectState.selectProject(e),this.router.navigate(["project",e,"thread",this.task().id]))}onStop(e){e.stopPropagation(),this.stopRequested.emit(this.task().id)}onDelete(e){e.stopPropagation(),this.deleteRequested.emit(this.task().id)}onStarToggle(e){e.stopPropagation(),this.starToggled.emit(this.task().id)}onCloseTask(e){e.stopPropagation(),this.closeTaskRequested.emit(this.task().id)}onMarkDone(e){e.stopPropagation(),this.markDoneRequested.emit(this.task().id)}onMarkActive(e){e.stopPropagation(),this.markActiveRequested.emit(this.task().id)}formatRelativeTime(e){let o=Date.now()-new Date(e).getTime(),t=Math.floor(o/6e4);if(t<1)return"just now";if(t<60)return`${t} min ago`;let s=Math.floor(t/60);if(s<24)return`${s}h ago`;let r=Math.floor(s/24);return r===1?"yesterday":r<7?`${r} days ago`:new Date(e).toLocaleDateString("en",{day:"numeric",month:"short"})}static \u0275fac=function(o){return new(o||a)};static \u0275cmp=x({type:a,selectors:[["app-task-card"]],inputs:{task:[1,"task"],projectNameOverride:[1,"projectNameOverride"],showProject:[1,"showProject"]},outputs:{stopRequested:"stopRequested",deleteRequested:"deleteRequested",starToggled:"starToggled",closeTaskRequested:"closeTaskRequested",markDoneRequested:"markDoneRequested",markActiveRequested:"markActiveRequested"},decls:27,vars:21,consts:[["role","button","tabindex","0",1,"task-card",3,"click","keydown.enter","keydown.space"],["aria-label","Starred",1,"starred-indicator"],[1,"status-badge"],[1,"status-icon"],[1,"status-label"],["aria-hidden","true",1,"pulse-ring"],[1,"task-project"],[1,"task-name"],[1,"task-summary"],[1,"task-summary","empty"],[1,"task-footer"],[1,"task-time"],[1,"task-actions"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn"],["mat-icon-button","",1,"action-btn","star-btn",3,"click","matTooltip"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn"],["mat-icon-button","","matTooltip","Delete task","aria-label","Delete task",1,"action-btn","delete-btn",3,"click"],[1,"project-icon"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn",3,"click"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn",3,"click"]],template:function(o,t){o&1&&(n(0,"article",0),p("click",function(){return t.navigate()})("keydown.enter",function(){return t.navigate()})("keydown.space",function(r){return t.navigate(),r.preventDefault()}),d(1,V,2,0,"mat-icon",1),n(2,"div",2)(3,"mat-icon",3),l(4),i(),n(5,"span",4),l(6),i(),d(7,A,1,0,"span",5),i(),d(8,L,5,1,"div",6),n(9,"h3",7),l(10),i(),d(11,Y,2,1,"p",8)(12,W,2,0,"p",9),n(13,"footer",10)(14,"span",11),l(15),i(),n(16,"div",12),d(17,U,3,0,"button",13),d(18,B,3,0,"button",14)(19,$,3,0,"button",15),n(20,"button",16),p("click",function(r){return t.onStarToggle(r)}),n(21,"mat-icon"),l(22),i()(),d(23,H,3,0,"button",17),n(24,"button",18),p("click",function(r){return t.onDelete(r)}),n(25,"mat-icon"),l(26,"delete_outline"),i()()()()()),o&2&&(w("status-"+t.task().status),y("is-active",t.task().isActive),M("aria-label","Open task: "+t.task().name),c(),m(t.task().starring.length>0?1:-1),c(3),u(t.statusIcon()),c(2),u(t.statusLabel()),c(),m(t.task().status==="waiting-you"?7:-1),c(),m(t.showProject()&&t.projectName()?8:-1),c(2),O(" ",t.task().name||"Unnamed task"," "),c(),m(t.task().summary?11:12),c(4),u(t.formatRelativeTime(t.task().modifiedDate)),c(2),m(t.task().status==="in-progress"?17:-1),c(),m(t.task().status!=="done"?18:19),c(2),y("starred",t.task().starring.length>0),P("matTooltip",t.task().starring.length>0?"Unstar":"Star"),M("aria-label",t.task().starring.length>0?"Unstar task":"Star task"),c(2),u(t.task().starring.length>0?"star":"star_border"),c(),m(t.isWorktree()?23:-1))},dependencies:[N,E,R,j,I,q],styles:['.glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:block}.task-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;padding:1.25rem;cursor:pointer;position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),border-color .2s ease;outline:none;display:flex;flex-direction:column;gap:.5rem;min-height:160px}.task-card[_ngcontent-%COMP%]:hover, .task-card[_ngcontent-%COMP%]:focus-visible{transform:translateY(-3px);box-shadow:0 16px 48px #00000026}.task-card[_ngcontent-%COMP%]:active{transform:translateY(-1px)}.task-card[_ngcontent-%COMP%]:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:16px 0 0 16px;background:var(--status-color, var(--color-text-secondary))}.task-card.status-waiting-you[_ngcontent-%COMP%]{--status-color: var(--color-error);border-color:#ff3b3040}.task-card.status-in-progress[_ngcontent-%COMP%]{--status-color: var(--color-warning);border-color:#ff950033}.task-card.status-done[_ngcontent-%COMP%]{--status-color: var(--color-success)}.task-card.status-paused[_ngcontent-%COMP%]{--status-color: var(--color-text-secondary)}.task-card.status-error[_ngcontent-%COMP%]{--status-color: var(--color-error)}.task-card.is-active[_ngcontent-%COMP%]{box-shadow:var(--glass-shadow),0 0 0 2px rgba(var(--color-primary),.3)}.starred-indicator[_ngcontent-%COMP%]{position:absolute;top:.75rem;right:.75rem;font-size:1rem;width:1rem;height:1rem;color:#f5a623;pointer-events:none}.status-badge[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;position:relative}.status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;color:var(--status-color, var(--color-text-secondary))}.status-in-progress[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spin 2s linear infinite}.status-badge[_ngcontent-%COMP%] .status-label[_ngcontent-%COMP%]{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--status-color, var(--color-text-secondary))}.status-badge[_ngcontent-%COMP%] .pulse-ring[_ngcontent-%COMP%]{position:absolute;left:-2px;top:-2px;width:20px;height:20px;border-radius:50%;border:2px solid var(--color-error);animation:_ngcontent-%COMP%_pulse 1.5s ease-out infinite;pointer-events:none}.task-project[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:600;color:var(--color-primary);opacity:.8;text-transform:uppercase;letter-spacing:.04em}.task-project[_ngcontent-%COMP%] .project-icon[_ngcontent-%COMP%]{font-size:.75rem;width:.75rem;height:.75rem}.task-name[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:600;color:var(--color-text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-summary[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-summary.empty[_ngcontent-%COMP%]{font-style:italic;opacity:.6}.task-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.25rem}.task-time[_ngcontent-%COMP%]{font-size:.72rem;color:var(--color-text-secondary);opacity:.8}.task-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.task-card[_ngcontent-%COMP%]:hover .task-actions[_ngcontent-%COMP%], .task-card[_ngcontent-%COMP%]:focus-within .task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:28px;height:28px;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;display:flex;align-items:center;justify-content:center}.task-actions[_ngcontent-%COMP%] .stop-btn[_ngcontent-%COMP%]{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .mark-done-btn[_ngcontent-%COMP%]{color:var(--color-success)}.task-actions[_ngcontent-%COMP%] .star-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .star-btn.starred[_ngcontent-%COMP%]{color:#f5a623}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]:hover{color:var(--color-error)}@media(max-width:600px){.task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:36px;height:36px}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_pulse{0%{transform:scale(.8);opacity:1}to{transform:scale(2.2);opacity:0}}'],changeDetection:0})},F={"waiting-you":"Waiting for you","in-progress":"In progress\u2026",done:"Done",paused:"Paused",error:"Error"},G={"waiting-you":"mark_unread_chat_alt","in-progress":"pending",done:"check_circle",paused:"pause_circle",error:"error"};var lt=300*1e3,dt={"waiting-you":0,"in-progress":1,done:2,paused:3,error:4};export{z as a,lt as b,dt as c};
1
+ import{d as S}from"./chunk-LTFITYTW.js";import{a as q,b as I}from"./chunk-6JH2UGTU.js";import{a as E,b as N}from"./chunk-QFSZDRP2.js";import{b as D}from"./chunk-G4QDBE4F.js";import{O as j,S as R}from"./chunk-SDLTQWY6.js";import{Bb as C,Db as p,Fb as g,Ka as c,Rb as y,Sb as w,Tb as l,Ub as u,Vb as O,Wa as x,ca as h,ga as b,ha as _,jb as M,kc as v,lb as d,mb as m,nc as k,oc as f,rb as P,sb as n,tb as i,ub as T}from"./chunk-RNXBUYHW.js";function V(a,e){a&1&&(n(0,"mat-icon",1),l(1,"star"),i())}function A(a,e){a&1&&T(0,"span",5)}function L(a,e){if(a&1&&(n(0,"div",6)(1,"mat-icon",19),l(2,"folder"),i(),n(3,"span"),l(4),i()()),a&2){let o=g();c(4),u(o.projectName())}}function Y(a,e){if(a&1&&(n(0,"p",8),l(1),i()),a&2){let o=g();c(),u(o.task().summary)}}function W(a,e){a&1&&(n(0,"p",9),l(1,"No summary yet"),i())}function U(a,e){if(a&1){let o=C();n(0,"button",20),p("click",function(s){b(o);let r=g();return _(r.onStop(s))}),n(1,"mat-icon"),l(2,"stop_circle"),i()()}}function B(a,e){if(a&1){let o=C();n(0,"button",21),p("click",function(s){b(o);let r=g();return _(r.onMarkDone(s))}),n(1,"mat-icon"),l(2,"check_circle_outline"),i()()}}function $(a,e){if(a&1){let o=C();n(0,"button",22),p("click",function(s){b(o);let r=g();return _(r.onMarkActive(s))}),n(1,"mat-icon"),l(2,"replay"),i()()}}function H(a,e){if(a&1){let o=C();n(0,"button",23),p("click",function(s){b(o);let r=g();return _(r.onCloseTask(s))}),n(1,"mat-icon"),l(2,"close_fullscreen"),i()()}}var z=class a{task=f.required();projectNameOverride=f(null);showProject=f(!1);stopRequested=k();deleteRequested=k();starToggled=k();closeTaskRequested=k();markDoneRequested=k();markActiveRequested=k();router=h(S);projectState=h(D);projectName=v(()=>this.projectNameOverride()??this.projectState.getSelectedProjectId());statusLabel=v(()=>F[this.task().status]);statusIcon=v(()=>G[this.task().status]);isWorktree=v(()=>!!this.task().worktreeProject);navigate(){let e=this.projectName();e&&(this.projectState.selectProject(e),this.router.navigate(["project",e,"thread",this.task().id]))}onStop(e){e.stopPropagation(),this.stopRequested.emit(this.task().id)}onDelete(e){e.stopPropagation(),this.deleteRequested.emit(this.task().id)}onStarToggle(e){e.stopPropagation(),this.starToggled.emit(this.task().id)}onCloseTask(e){e.stopPropagation(),this.closeTaskRequested.emit(this.task().id)}onMarkDone(e){e.stopPropagation(),this.markDoneRequested.emit(this.task().id)}onMarkActive(e){e.stopPropagation(),this.markActiveRequested.emit(this.task().id)}formatRelativeTime(e){let o=Date.now()-new Date(e).getTime(),t=Math.floor(o/6e4);if(t<1)return"just now";if(t<60)return`${t} min ago`;let s=Math.floor(t/60);if(s<24)return`${s}h ago`;let r=Math.floor(s/24);return r===1?"yesterday":r<7?`${r} days ago`:new Date(e).toLocaleDateString("en",{day:"numeric",month:"short"})}static \u0275fac=function(o){return new(o||a)};static \u0275cmp=x({type:a,selectors:[["app-task-card"]],inputs:{task:[1,"task"],projectNameOverride:[1,"projectNameOverride"],showProject:[1,"showProject"]},outputs:{stopRequested:"stopRequested",deleteRequested:"deleteRequested",starToggled:"starToggled",closeTaskRequested:"closeTaskRequested",markDoneRequested:"markDoneRequested",markActiveRequested:"markActiveRequested"},decls:27,vars:21,consts:[["role","button","tabindex","0",1,"task-card",3,"click","keydown.enter","keydown.space"],["aria-label","Starred",1,"starred-indicator"],[1,"status-badge"],[1,"status-icon"],[1,"status-label"],["aria-hidden","true",1,"pulse-ring"],[1,"task-project"],[1,"task-name"],[1,"task-summary"],[1,"task-summary","empty"],[1,"task-footer"],[1,"task-time"],[1,"task-actions"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn"],["mat-icon-button","",1,"action-btn","star-btn",3,"click","matTooltip"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn"],["mat-icon-button","","matTooltip","Delete task","aria-label","Delete task",1,"action-btn","delete-btn",3,"click"],[1,"project-icon"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn",3,"click"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn",3,"click"]],template:function(o,t){o&1&&(n(0,"article",0),p("click",function(){return t.navigate()})("keydown.enter",function(){return t.navigate()})("keydown.space",function(r){return t.navigate(),r.preventDefault()}),d(1,V,2,0,"mat-icon",1),n(2,"div",2)(3,"mat-icon",3),l(4),i(),n(5,"span",4),l(6),i(),d(7,A,1,0,"span",5),i(),d(8,L,5,1,"div",6),n(9,"h3",7),l(10),i(),d(11,Y,2,1,"p",8)(12,W,2,0,"p",9),n(13,"footer",10)(14,"span",11),l(15),i(),n(16,"div",12),d(17,U,3,0,"button",13),d(18,B,3,0,"button",14)(19,$,3,0,"button",15),n(20,"button",16),p("click",function(r){return t.onStarToggle(r)}),n(21,"mat-icon"),l(22),i()(),d(23,H,3,0,"button",17),n(24,"button",18),p("click",function(r){return t.onDelete(r)}),n(25,"mat-icon"),l(26,"delete_outline"),i()()()()()),o&2&&(w("status-"+t.task().status),y("is-active",t.task().isActive),M("aria-label","Open task: "+t.task().name),c(),m(t.task().starring.length>0?1:-1),c(3),u(t.statusIcon()),c(2),u(t.statusLabel()),c(),m(t.task().status==="waiting-you"?7:-1),c(),m(t.showProject()&&t.projectName()?8:-1),c(2),O(" ",t.task().name||"Unnamed task"," "),c(),m(t.task().summary?11:12),c(4),u(t.formatRelativeTime(t.task().modifiedDate)),c(2),m(t.task().status==="in-progress"?17:-1),c(),m(t.task().status!=="done"?18:19),c(2),y("starred",t.task().starring.length>0),P("matTooltip",t.task().starring.length>0?"Unstar":"Star"),M("aria-label",t.task().starring.length>0?"Unstar task":"Star task"),c(2),u(t.task().starring.length>0?"star":"star_border"),c(),m(t.isWorktree()?23:-1))},dependencies:[N,E,R,j,I,q],styles:['.glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:block}.task-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;padding:1.25rem;cursor:pointer;position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),border-color .2s ease;outline:none;display:flex;flex-direction:column;gap:.5rem;min-height:160px}.task-card[_ngcontent-%COMP%]:hover, .task-card[_ngcontent-%COMP%]:focus-visible{transform:translateY(-3px);box-shadow:0 16px 48px #00000026}.task-card[_ngcontent-%COMP%]:active{transform:translateY(-1px)}.task-card[_ngcontent-%COMP%]:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:16px 0 0 16px;background:var(--status-color, var(--color-text-secondary))}.task-card.status-waiting-you[_ngcontent-%COMP%]{--status-color: var(--color-error);border-color:#ff3b3040}.task-card.status-in-progress[_ngcontent-%COMP%]{--status-color: var(--color-warning);border-color:#ff950033}.task-card.status-done[_ngcontent-%COMP%]{--status-color: var(--color-success)}.task-card.status-paused[_ngcontent-%COMP%]{--status-color: var(--color-text-secondary)}.task-card.status-error[_ngcontent-%COMP%]{--status-color: var(--color-error)}.task-card.is-active[_ngcontent-%COMP%]{box-shadow:var(--glass-shadow),0 0 0 2px rgba(var(--color-primary),.3)}.starred-indicator[_ngcontent-%COMP%]{position:absolute;top:.75rem;right:.75rem;font-size:1rem;width:1rem;height:1rem;color:#f5a623;pointer-events:none}.status-badge[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;position:relative}.status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;color:var(--status-color, var(--color-text-secondary))}.status-in-progress[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spin 2s linear infinite}.status-badge[_ngcontent-%COMP%] .status-label[_ngcontent-%COMP%]{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--status-color, var(--color-text-secondary))}.status-badge[_ngcontent-%COMP%] .pulse-ring[_ngcontent-%COMP%]{position:absolute;left:-2px;top:-2px;width:20px;height:20px;border-radius:50%;border:2px solid var(--color-error);animation:_ngcontent-%COMP%_pulse 1.5s ease-out infinite;pointer-events:none}.task-project[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:600;color:var(--color-primary);opacity:.8;text-transform:uppercase;letter-spacing:.04em}.task-project[_ngcontent-%COMP%] .project-icon[_ngcontent-%COMP%]{font-size:.75rem;width:.75rem;height:.75rem}.task-name[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:600;color:var(--color-text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-summary[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-summary.empty[_ngcontent-%COMP%]{font-style:italic;opacity:.6}.task-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.25rem}.task-time[_ngcontent-%COMP%]{font-size:.72rem;color:var(--color-text-secondary);opacity:.8}.task-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.task-card[_ngcontent-%COMP%]:hover .task-actions[_ngcontent-%COMP%], .task-card[_ngcontent-%COMP%]:focus-within .task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:28px;height:28px;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;display:flex;align-items:center;justify-content:center}.task-actions[_ngcontent-%COMP%] .stop-btn[_ngcontent-%COMP%]{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .mark-done-btn[_ngcontent-%COMP%]{color:var(--color-success)}.task-actions[_ngcontent-%COMP%] .star-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .star-btn.starred[_ngcontent-%COMP%]{color:#f5a623}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]:hover{color:var(--color-error)}@media(max-width:600px){.task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:36px;height:36px}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_pulse{0%{transform:scale(.8);opacity:1}to{transform:scale(2.2);opacity:0}}'],changeDetection:0})},F={"waiting-you":"Waiting for you","in-progress":"In progress\u2026",done:"Done",paused:"Paused",error:"Error"},G={"waiting-you":"mark_unread_chat_alt","in-progress":"pending",done:"check_circle",paused:"pause_circle",error:"error"};var lt=300*1e3,dt={"waiting-you":0,"in-progress":1,done:2,paused:3,error:4};export{z as a,lt as b,dt as c};
@@ -0,0 +1 @@
1
+ import{b as D,f as z}from"./chunk-R5RVDZLX.js";import{b as T,d as V}from"./chunk-LTFITYTW.js";import{a as M}from"./chunk-LCBWJP6Z.js";import{D as J,c as L,e as O,g as B,h as $,i as G,l as _,n as j,s as W,u as q}from"./chunk-DLU3TQID.js";import{Bb as I,Db as h,Fb as s,Ka as r,Tb as a,Ub as w,Vb as N,Wa as A,a as P,b as S,ca as f,ga as v,ha as y,lb as C,ma as E,mb as b,pb as F,qb as R,rb as c,sb as i,ta as d,tb as t,ub as p,z as k}from"./chunk-RNXBUYHW.js";var H=(o,n)=>n.config.id;function K(o,n){o&1&&(i(0,"p",5),a(1,"Loading\u2026"),t())}function Q(o,n){if(o&1&&(i(0,"span",28),a(1),t()),o&2){let e=s().$implicit;r(),w(e.config.integrationType)}}function X(o,n){if(o&1&&p(0,"input",29),o&2){let e=s().$implicit;c("formControl",e.toolsControl)}}function Y(o,n){if(o&1){let e=I();i(0,"div",24)(1,"label",25)(2,"input",26),h("change",function(){let g=v(e).$implicit,m=s(3);return y(m.toggleIntegration(g))}),t(),i(3,"span",27),a(4),t(),C(5,Q,2,1,"span",28),t(),C(6,X,1,1,"input",29),t()}if(o&2){let e=n.$implicit;r(2),c("checked",e.enabled()),r(2),w(e.config.name),r(),b(e.config.integrationType?5:-1),r(),b(e.enabled()?6:-1)}}function Z(o,n){if(o&1&&(i(0,"fieldset",18)(1,"legend",22),a(2,"Integrations"),t(),i(3,"p",23),a(4," Select which integrations this agent can use. Leave tool names empty to allow all tools from an integration. "),t(),F(5,Y,7,4,"div",24,H),t()),o&2){let e=s(2);r(5),R(e.integrationRows())}}function ee(o,n){if(o&1){let e=I();i(0,"form",7),h("ngSubmit",function(){v(e);let g=s();return y(g.submit())}),i(1,"div",8)(2,"label",9),a(3,"Name "),i(4,"span",10),a(5,"*"),t()(),p(6,"input",11),t(),i(7,"div",8)(8,"label",12),a(9,"Description"),t(),p(10,"input",13),t(),i(11,"div",8)(12,"label",14),a(13,"Model name"),t(),p(14,"input",15),t(),i(15,"div",8)(16,"label",16),a(17,"Instructions"),t(),p(18,"textarea",17),t(),C(19,Z,7,0,"fieldset",18),i(20,"div",19)(21,"button",20),a(22),t(),i(23,"button",21),h("click",function(){v(e);let g=s();return y(g.cancel())}),a(24,"Cancel"),t()()()}if(o&2){let e=s();c("formGroup",e.form),r(6),c("formControl",e.nameControl),r(4),c("formControl",e.descriptionControl),r(4),c("formControl",e.modelNameControl),r(4),c("formControl",e.instructionsControl),r(),b(e.integrationRows().length>0?19:-1),r(2),c("disabled",e.form.invalid||e.isSubmitting()),r(),N(" ",e.isEditMode()?"Save changes":"Create"," ")}}var U=class o{route=f(T);router=f(V);destroyRef=f(E);agentConfigController=f(D);integrationConfigController=f(z);namespaceId=this.route.snapshot.params.namespaceId;form=new G({name:new _("",{nonNullable:!0,validators:[O.required,O.minLength(1)]}),description:new _(null),modelName:new _(null),instructions:new _(null)});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get modelNameControl(){return this.form.controls.modelName}get instructionsControl(){return this.form.controls.instructions}isEditMode=d(!1);isSubmitting=d(!1);isLoading=d(!1);integrationRows=d([]);existingConfig=null;ngOnInit(){let n=this.route.snapshot.paramMap.get("agentConfigId");n?(this.isEditMode.set(!0),this.loadConfigAndIntegrations(n)):this.loadIntegrations(void 0)}loadConfigAndIntegrations(n){this.isLoading.set(!0),k({config:this.agentConfigController.getByIdAgentConfig(n),integrations:this.integrationConfigController.listByParentIntegrationConfig(this.namespaceId)}).pipe(M(this.destroyRef)).subscribe({next:({config:e,integrations:l})=>{this.existingConfig=e,this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??null),this.modelNameControl.setValue(e.modelName??null),this.instructionsControl.setValue(e.instructions??null),this.integrationRows.set(this.buildIntegrationRows(l,e.integrations??void 0)),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1),this.navigateBack()}})}loadIntegrations(n){this.integrationConfigController.listByParentIntegrationConfig(this.namespaceId).pipe(M(this.destroyRef)).subscribe({next:e=>{this.integrationRows.set(this.buildIntegrationRows(e,n??void 0))}})}buildIntegrationRows(n,e){return n.map(l=>{let g=l.name??"",m=e?.[g],x=e!=null&&g in e,u=Array.isArray(m)?m.join(", "):"";return{config:l,enabled:d(x),toolsControl:new _(u,{nonNullable:!0})}})}toggleIntegration(n){n.enabled.update(e=>!e)}buildIntegrationsPayload(){let e=this.integrationRows().filter(g=>g.enabled());if(e.length===0)return;let l={};for(let g of e){let m=g.config.name??"",x=g.toolsControl.value.trim();x===""?l[m]=null:l[m]=x.split(",").map(u=>u.trim()).filter(u=>u.length>0)}return l}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(!0);let n=S(P({},this.existingConfig??{}),{namespaceId:this.namespaceId,name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,modelName:this.modelNameControl.value?.trim()||void 0,instructions:this.instructionsControl.value?.trim()||void 0,integrations:this.buildIntegrationsPayload()});(this.isEditMode()?this.agentConfigController.updateAgentConfig(this.existingConfig.id??"",n):this.agentConfigController.createAgentConfig(n)).pipe(M(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(!1)})}cancel(){this.navigateBack()}navigateBack(){this.router.navigate(["/agentos",this.namespaceId,"agent-configs"])}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=A({type:o,selectors:[["agentos-agent-config-form"]],decls:10,vars:2,consts:[[1,"agent-config-form"],[1,"agent-config-form__header"],["type","button","title","Back to agent configs",1,"agent-config-form__back",3,"click"],[1,"agent-config-form__back-icon"],[1,"agent-config-form__title"],[1,"agent-config-form__loading"],[1,"agent-config-form__form",3,"formGroup"],[1,"agent-config-form__form",3,"ngSubmit","formGroup"],[1,"agent-config-form__field"],["for","agent-config-name",1,"agent-config-form__label"],["aria-hidden","true"],["id","agent-config-name","type","text","placeholder","e.g. Support agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-description",1,"agent-config-form__label"],["id","agent-config-description","type","text","placeholder","Optional \u2014 short description of this agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-model-name",1,"agent-config-form__label"],["id","agent-config-model-name","type","text","placeholder","Optional \u2014 model alias or name to use","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-instructions",1,"agent-config-form__label"],["id","agent-config-instructions","rows","6","placeholder","Optional \u2014 system instructions for this agent",1,"agent-config-form__textarea",3,"formControl"],[1,"agent-config-form__integrations"],[1,"agent-config-form__actions"],["type","submit",1,"agent-config-form__btn","agent-config-form__btn--primary",3,"disabled"],["type","button",1,"agent-config-form__btn",3,"click"],[1,"agent-config-form__label"],[1,"agent-config-form__integrations-hint"],[1,"agent-config-form__integration-row"],[1,"agent-config-form__integration-toggle"],["type","checkbox",1,"agent-config-form__integration-checkbox",3,"change","checked"],[1,"agent-config-form__integration-name"],[1,"agent-config-form__integration-type"],["type","text","placeholder","Tool names, comma-separated (empty = all tools)","autocomplete","off",1,"agent-config-form__input","agent-config-form__integration-tools",3,"formControl"]],template:function(e,l){e&1&&(i(0,"div",0)(1,"header",1)(2,"button",2),h("click",function(){return l.cancel()}),i(3,"span",3),a(4,"\u2190"),t(),a(5," Agent Configs "),t(),i(6,"h1",4),a(7),t()(),C(8,K,2,0,"p",5)(9,ee,25,8,"form",6),t()),e&2&&(r(7),w(l.isEditMode()?"Edit agent config":"New agent config"),r(),b(l.isLoading()?8:9))},dependencies:[J,j,L,B,$,W,q],styles:[".agent-config-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.agent-config-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.agent-config-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.agent-config-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.agent-config-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.agent-config-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.agent-config-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.agent-config-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.agent-config-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text, #1d1d1f)}.agent-config-form__input[_ngcontent-%COMP%], .agent-config-form__textarea[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.agent-config-form__input[_ngcontent-%COMP%]:focus, .agent-config-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.agent-config-form__input[_ngcontent-%COMP%]::placeholder, .agent-config-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.agent-config-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:120px;line-height:1.5}.agent-config-form__integrations[_ngcontent-%COMP%]{border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:8px;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.agent-config-form__integrations-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4}.agent-config-form__integration-row[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.agent-config-form__integration-toggle[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.agent-config-form__integration-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-primary, #007aff);cursor:pointer}.agent-config-form__integration-name[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text, #1d1d1f)}.agent-config-form__integration-type[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);font-family:monospace}.agent-config-form__integration-tools[_ngcontent-%COMP%]{margin-left:1.5rem;font-size:.875rem}.agent-config-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.agent-config-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.agent-config-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.agent-config-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.agent-config-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.agent-config-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"],changeDetection:0})};export{U as AgentConfigFormComponent};
@@ -1 +1 @@
1
- import{c as r}from"./chunk-QWMDAFBN.js";import{Wa as t,ub as o}from"./chunk-3JGMGRXW.js";var s=class n{static \u0275fac=function(e){return new(e||n)};static \u0275cmp=t({type:n,selectors:[["agentos-shell"]],decls:1,vars:0,template:function(e,i){e&1&&o(0,"router-outlet")},dependencies:[r],styles:[".shell-loader[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem;color:var(--color-text-secondary, #6e6e73);font-size:.9rem}.shell-loader[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0}.spinner[_ngcontent-%COMP%]{width:32px;height:32px;border:3px solid var(--color-border, rgba(0, 0, 0, .1));border-top-color:var(--color-primary, #007aff);border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}"]})};export{s as a};
1
+ import{c as r}from"./chunk-LTFITYTW.js";import{Wa as t,ub as o}from"./chunk-RNXBUYHW.js";var s=class n{static \u0275fac=function(e){return new(e||n)};static \u0275cmp=t({type:n,selectors:[["agentos-shell"]],decls:1,vars:0,template:function(e,i){e&1&&o(0,"router-outlet")},dependencies:[r],styles:[".shell-loader[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem;color:var(--color-text-secondary, #6e6e73);font-size:.9rem}.shell-loader[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0}.spinner[_ngcontent-%COMP%]{width:32px;height:32px;border:3px solid var(--color-border, rgba(0, 0, 0, .1));border-top-color:var(--color-primary, #007aff);border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}"]})};export{s as a};
@@ -1 +1 @@
1
- import{b as r}from"./chunk-WNNKQ2DH.js";import{Z as a,ca as i}from"./chunk-3JGMGRXW.js";var s=class n{snackBar=i(r);success(t,o=2e3){this.snackBar.open(t,"",{duration:o,horizontalPosition:"center",verticalPosition:"bottom",panelClass:["snackbar-success"]})}error(t,o=3e3){this.snackBar.open(t,"",{duration:o,horizontalPosition:"center",verticalPosition:"bottom",panelClass:["snackbar-error"]})}info(t,o=2e3){this.snackBar.open(t,"",{duration:o,horizontalPosition:"center",verticalPosition:"bottom",panelClass:["snackbar-info"]})}static \u0275fac=function(o){return new(o||n)};static \u0275prov=a({token:n,factory:n.\u0275fac,providedIn:"root"})};export{s as a};
1
+ import{b as r}from"./chunk-CND4W2V5.js";import{Z as a,ca as i}from"./chunk-RNXBUYHW.js";var s=class n{snackBar=i(r);success(t,o=2e3){this.snackBar.open(t,"",{duration:o,horizontalPosition:"center",verticalPosition:"bottom",panelClass:["snackbar-success"]})}error(t,o=3e3){this.snackBar.open(t,"",{duration:o,horizontalPosition:"center",verticalPosition:"bottom",panelClass:["snackbar-error"]})}info(t,o=2e3){this.snackBar.open(t,"",{duration:o,horizontalPosition:"center",verticalPosition:"bottom",panelClass:["snackbar-info"]})}static \u0275fac=function(o){return new(o||n)};static \u0275prov=a({token:n,factory:n.\u0275fac,providedIn:"root"})};export{s as a};
@@ -1 +1 @@
1
- import{e as R,f as z}from"./chunk-GAZJZBKP.js";import{b as F,d as N}from"./chunk-QWMDAFBN.js";import{c as Q}from"./chunk-7A54VTP2.js";import"./chunk-ZAM3WGZM.js";import"./chunk-RQLQ22PM.js";import"./chunk-AK6F2DC7.js";import{a as M,b as I}from"./chunk-AJOXSD6I.js";import"./chunk-IXD43YQI.js";import"./chunk-WPC6XC7P.js";import{D as H,c as B,e as u,g as L,h as j,i as G,l as C,n as J,s as A,u as $,v as q,w as K,x as U}from"./chunk-XJUBZLY2.js";import"./chunk-B2QA6UZX.js";import{Bb as v,Db as p,Fb as g,Ka as l,Tb as r,Ub as x,Vb as V,Wa as P,a as S,b as O,ca as c,ga as f,ha as _,kb as T,kc as D,lb as b,ma as k,mb as y,pb as w,qb as E,rb as s,sb as i,ta as d,tb as o,ub as h}from"./chunk-3JGMGRXW.js";function Y(a,t){a&1&&(i(0,"p",5),r(1,"Loading\u2026"),o())}function Z(a,t){if(a&1&&(i(0,"option",13),r(1),o()),a&2){let e=t.$implicit;s("value",e.type),l(),x(e.displayName)}}function ee(a,t){if(a&1){let e=v();i(0,"div",18)(1,"ds-json-schema-form",22),p("valueChange",function(m){f(e);let X=g(2);return _(X.onParamsChange(m))}),o()()}if(a&2){let e=g(2);l(),s("schema",t)("value",e.initialParams())}}function te(a,t){if(a&1){let e=v();i(0,"form",7),p("ngSubmit",function(){f(e);let m=g();return _(m.submit())}),i(1,"div",8)(2,"label",9),r(3,"Type "),i(4,"span",10),r(5,"*"),o()(),i(6,"select",11)(7,"option",12),r(8,"Select type"),o(),w(9,Z,2,2,"option",13,T().trackByType,!0),o()(),i(11,"div",8)(12,"label",14),r(13,"Name "),i(14,"span",10),r(15,"*"),o()(),h(16,"input",15),o(),i(17,"div",8)(18,"label",16),r(19,"Description"),o(),h(20,"textarea",17),o(),b(21,ee,2,2,"div",18),i(22,"div",19)(23,"button",20),r(24),o(),i(25,"button",21),p("click",function(){f(e);let m=g();return _(m.cancel())}),r(26,"Cancel"),o()()()}if(a&2){let e,n=g();s("formGroup",n.form),l(6),s("formControl",n.typeControl),l(3),E(n.integrationTypes()),l(7),s("formControl",n.nameControl),l(4),s("formControl",n.descriptionControl),l(),y((e=n.schema())?21:-1,e),l(2),s("disabled",n.nameControl.invalid||n.typeControl.invalid||n.isSubmitting()),l(),V(" ",n.isEditMode()?"Save changes":"Create"," ")}}var W=class a{route=c(F);router=c(N);destroyRef=c(k);integrationConfigController=c(R);integrationTypeController=c(z);namespaceId=this.route.snapshot.params.namespaceId;form=new G({name:new C("",{nonNullable:!0,validators:[u.required,u.minLength(1)]}),description:new C(null),type:new C("",{nonNullable:!0,validators:[u.required]})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get typeControl(){return this.form.controls.type}isEditMode=d(!1);isSubmitting=d(!1);isLoading=d(!1);paramsValue=d(null);initialParams=d(null);integrationTypes=I(this.integrationTypeController.listTypesIntegrationType(),{initialValue:[]});selectedType=I(this.form.controls.type.valueChanges,{initialValue:this.form.controls.type.value});schema=D(()=>{let t=this.selectedType();return t?this.integrationTypes().find(n=>n.type===t)?.configSchema??null:null});existingConfig=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("integrationId");t&&(this.isEditMode.set(!0),this.loadConfig(t))}loadConfig(t){this.isLoading.set(!0),this.integrationConfigController.getByIdIntegrationConfig(t).pipe(M(this.destroyRef)).subscribe({next:e=>{this.existingConfig=e,this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??null),this.typeControl.setValue(e.integrationType),this.initialParams.set(e.parameters),this.paramsValue.set(e.parameters),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1),this.navigateBack()}})}onParamsChange(t){this.paramsValue.set(t)}submit(){if(this.nameControl.invalid||this.typeControl.invalid||this.isSubmitting())return;this.isSubmitting.set(!0),(this.isEditMode()?this.integrationConfigController.updateIntegrationConfig(this.existingConfig.id??"",O(S({},this.existingConfig),{name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,integrationType:this.typeControl.value,parameters:this.paramsValue()})):this.integrationConfigController.createIntegrationConfig({name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,integrationType:this.typeControl.value,namespaceId:this.namespaceId,parameters:this.paramsValue()})).pipe(M(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(!1)})}cancel(){this.navigateBack()}navigateBack(){this.router.navigate(["/agentos",this.namespaceId,"integrations"])}trackByType(t,e){return e.type}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=P({type:a,selectors:[["agentos-integration-form"]],decls:10,vars:2,consts:[[1,"integration-form"],[1,"integration-form__header"],["type","button","title","Back to integrations",1,"integration-form__back",3,"click"],[1,"integration-form__back-icon"],[1,"integration-form__title"],[1,"integration-form__loading"],[1,"integration-form__form",3,"formGroup"],[1,"integration-form__form",3,"ngSubmit","formGroup"],[1,"integration-form__field"],["for","integration-type",1,"integration-form__label"],["aria-hidden","true"],["id","integration-type",1,"integration-form__select",3,"formControl"],["value","","disabled",""],[3,"value"],["for","integration-name",1,"integration-form__label"],["id","integration-name","type","text","placeholder","Integration name","autocomplete","off",1,"integration-form__input",3,"formControl"],["for","integration-description",1,"integration-form__label"],["id","integration-description","placeholder","Optional description","rows","3",1,"integration-form__textarea",3,"formControl"],[1,"integration-form__schema-form"],[1,"integration-form__actions"],["type","submit",1,"integration-form__btn","integration-form__btn--primary",3,"disabled"],["type","button",1,"integration-form__btn",3,"click"],[3,"valueChange","schema","value"]],template:function(e,n){e&1&&(i(0,"div",0)(1,"header",1)(2,"button",2),p("click",function(){return n.cancel()}),i(3,"span",3),r(4,"\u2190"),o(),r(5," Integrations "),o(),i(6,"h1",4),r(7),o()(),b(8,Y,2,0,"p",5)(9,te,27,7,"form",6),o()),e&2&&(l(7),x(n.isEditMode()?"Edit integration":"New integration"),l(),y(n.isLoading()?8:9))},dependencies:[H,J,K,U,B,q,L,j,A,$,Q],styles:[".integration-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.integration-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.integration-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-primary, #007aff);font-family:inherit}.integration-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.integration-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.integration-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.integration-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.integration-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.integration-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.integration-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text, #1d1d1f)}.integration-form__input[_ngcontent-%COMP%], .integration-form__textarea[_ngcontent-%COMP%], .integration-form__select[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.integration-form__input[_ngcontent-%COMP%]:focus, .integration-form__textarea[_ngcontent-%COMP%]:focus, .integration-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.integration-form__input[_ngcontent-%COMP%]::placeholder, .integration-form__textarea[_ngcontent-%COMP%]::placeholder, .integration-form__select[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.integration-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:4.5rem;line-height:1.5}.integration-form__select[_ngcontent-%COMP%]{cursor:pointer}.integration-form__select[_ngcontent-%COMP%] option[disabled][_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73)}.integration-form__schema-form[_ngcontent-%COMP%]{padding:1rem;border-radius:10px;border:1px solid var(--color-border-light, rgba(0, 0, 0, .06));background:var(--glass-bg, rgba(255, 255, 255, .5));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px))}.integration-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.integration-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.integration-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.integration-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.integration-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.integration-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"],changeDetection:0})};export{W as IntegrationFormComponent};
1
+ import{f as R,g as z}from"./chunk-R5RVDZLX.js";import{b as F,d as N}from"./chunk-LTFITYTW.js";import{c as Q}from"./chunk-MLNEYB77.js";import"./chunk-3DDLKUVJ.js";import"./chunk-HYNHL5RY.js";import"./chunk-6JH2UGTU.js";import{a as M,b as I}from"./chunk-LCBWJP6Z.js";import"./chunk-UQNMPA5Y.js";import"./chunk-QFSZDRP2.js";import{D as H,c as B,e as u,g as L,h as j,i as G,l as C,n as J,s as A,u as $,v as q,w as K,x as U}from"./chunk-DLU3TQID.js";import"./chunk-SDLTQWY6.js";import{Bb as v,Db as p,Fb as g,Ka as l,Tb as r,Ub as x,Vb as V,Wa as P,a as S,b as O,ca as c,ga as f,ha as _,kb as T,kc as D,lb as b,ma as k,mb as y,pb as w,qb as E,rb as s,sb as i,ta as d,tb as o,ub as h}from"./chunk-RNXBUYHW.js";function Y(a,t){a&1&&(i(0,"p",5),r(1,"Loading\u2026"),o())}function Z(a,t){if(a&1&&(i(0,"option",13),r(1),o()),a&2){let e=t.$implicit;s("value",e.type),l(),x(e.displayName)}}function ee(a,t){if(a&1){let e=v();i(0,"div",18)(1,"ds-json-schema-form",22),p("valueChange",function(m){f(e);let X=g(2);return _(X.onParamsChange(m))}),o()()}if(a&2){let e=g(2);l(),s("schema",t)("value",e.initialParams())}}function te(a,t){if(a&1){let e=v();i(0,"form",7),p("ngSubmit",function(){f(e);let m=g();return _(m.submit())}),i(1,"div",8)(2,"label",9),r(3,"Type "),i(4,"span",10),r(5,"*"),o()(),i(6,"select",11)(7,"option",12),r(8,"Select type"),o(),w(9,Z,2,2,"option",13,T().trackByType,!0),o()(),i(11,"div",8)(12,"label",14),r(13,"Name "),i(14,"span",10),r(15,"*"),o()(),h(16,"input",15),o(),i(17,"div",8)(18,"label",16),r(19,"Description"),o(),h(20,"textarea",17),o(),b(21,ee,2,2,"div",18),i(22,"div",19)(23,"button",20),r(24),o(),i(25,"button",21),p("click",function(){f(e);let m=g();return _(m.cancel())}),r(26,"Cancel"),o()()()}if(a&2){let e,n=g();s("formGroup",n.form),l(6),s("formControl",n.typeControl),l(3),E(n.integrationTypes()),l(7),s("formControl",n.nameControl),l(4),s("formControl",n.descriptionControl),l(),y((e=n.schema())?21:-1,e),l(2),s("disabled",n.nameControl.invalid||n.typeControl.invalid||n.isSubmitting()),l(),V(" ",n.isEditMode()?"Save changes":"Create"," ")}}var W=class a{route=c(F);router=c(N);destroyRef=c(k);integrationConfigController=c(R);integrationTypeController=c(z);namespaceId=this.route.snapshot.params.namespaceId;form=new G({name:new C("",{nonNullable:!0,validators:[u.required,u.minLength(1)]}),description:new C(null),type:new C("",{nonNullable:!0,validators:[u.required]})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get typeControl(){return this.form.controls.type}isEditMode=d(!1);isSubmitting=d(!1);isLoading=d(!1);paramsValue=d(null);initialParams=d(null);integrationTypes=I(this.integrationTypeController.listTypesIntegrationType(),{initialValue:[]});selectedType=I(this.form.controls.type.valueChanges,{initialValue:this.form.controls.type.value});schema=D(()=>{let t=this.selectedType();return t?this.integrationTypes().find(n=>n.type===t)?.configSchema??null:null});existingConfig=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("integrationId");t&&(this.isEditMode.set(!0),this.loadConfig(t))}loadConfig(t){this.isLoading.set(!0),this.integrationConfigController.getByIdIntegrationConfig(t).pipe(M(this.destroyRef)).subscribe({next:e=>{this.existingConfig=e,this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??null),this.typeControl.setValue(e.integrationType),this.initialParams.set(e.parameters),this.paramsValue.set(e.parameters),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1),this.navigateBack()}})}onParamsChange(t){this.paramsValue.set(t)}submit(){if(this.nameControl.invalid||this.typeControl.invalid||this.isSubmitting())return;this.isSubmitting.set(!0),(this.isEditMode()?this.integrationConfigController.updateIntegrationConfig(this.existingConfig.id??"",O(S({},this.existingConfig),{name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,integrationType:this.typeControl.value,parameters:this.paramsValue()})):this.integrationConfigController.createIntegrationConfig({name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,integrationType:this.typeControl.value,namespaceId:this.namespaceId,parameters:this.paramsValue()})).pipe(M(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(!1)})}cancel(){this.navigateBack()}navigateBack(){this.router.navigate(["/agentos",this.namespaceId,"integrations"])}trackByType(t,e){return e.type}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=P({type:a,selectors:[["agentos-integration-form"]],decls:10,vars:2,consts:[[1,"integration-form"],[1,"integration-form__header"],["type","button","title","Back to integrations",1,"integration-form__back",3,"click"],[1,"integration-form__back-icon"],[1,"integration-form__title"],[1,"integration-form__loading"],[1,"integration-form__form",3,"formGroup"],[1,"integration-form__form",3,"ngSubmit","formGroup"],[1,"integration-form__field"],["for","integration-type",1,"integration-form__label"],["aria-hidden","true"],["id","integration-type",1,"integration-form__select",3,"formControl"],["value","","disabled",""],[3,"value"],["for","integration-name",1,"integration-form__label"],["id","integration-name","type","text","placeholder","Integration name","autocomplete","off",1,"integration-form__input",3,"formControl"],["for","integration-description",1,"integration-form__label"],["id","integration-description","placeholder","Optional description","rows","3",1,"integration-form__textarea",3,"formControl"],[1,"integration-form__schema-form"],[1,"integration-form__actions"],["type","submit",1,"integration-form__btn","integration-form__btn--primary",3,"disabled"],["type","button",1,"integration-form__btn",3,"click"],[3,"valueChange","schema","value"]],template:function(e,n){e&1&&(i(0,"div",0)(1,"header",1)(2,"button",2),p("click",function(){return n.cancel()}),i(3,"span",3),r(4,"\u2190"),o(),r(5," Integrations "),o(),i(6,"h1",4),r(7),o()(),b(8,Y,2,0,"p",5)(9,te,27,7,"form",6),o()),e&2&&(l(7),x(n.isEditMode()?"Edit integration":"New integration"),l(),y(n.isLoading()?8:9))},dependencies:[H,J,K,U,B,q,L,j,A,$,Q],styles:[".integration-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.integration-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.integration-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-primary, #007aff);font-family:inherit}.integration-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.integration-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.integration-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.integration-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.integration-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.integration-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.integration-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text, #1d1d1f)}.integration-form__input[_ngcontent-%COMP%], .integration-form__textarea[_ngcontent-%COMP%], .integration-form__select[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.integration-form__input[_ngcontent-%COMP%]:focus, .integration-form__textarea[_ngcontent-%COMP%]:focus, .integration-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.integration-form__input[_ngcontent-%COMP%]::placeholder, .integration-form__textarea[_ngcontent-%COMP%]::placeholder, .integration-form__select[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.integration-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:4.5rem;line-height:1.5}.integration-form__select[_ngcontent-%COMP%]{cursor:pointer}.integration-form__select[_ngcontent-%COMP%] option[disabled][_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73)}.integration-form__schema-form[_ngcontent-%COMP%]{padding:1rem;border-radius:10px;border:1px solid var(--color-border-light, rgba(0, 0, 0, .06));background:var(--glass-bg, rgba(255, 255, 255, .5));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px))}.integration-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.integration-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.integration-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.integration-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.integration-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.integration-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"],changeDetection:0})};export{W as IntegrationFormComponent};