@whoz-oss/coday-client 0.232.0 → 0.233.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 (117) hide show
  1. package/browser/{chunk-4IIMBSGN.js → chunk-26GNTYMR.js} +1 -1
  2. package/browser/{chunk-J4RKXKG2.js → chunk-2OX7XSO7.js} +1 -1
  3. package/browser/{chunk-74YMXW2X.js → chunk-2RRKNP4O.js} +1 -1
  4. package/browser/{chunk-NVHDXKPX.js → chunk-2X6HKQMK.js} +1 -1
  5. package/browser/{chunk-KG53RXF4.js → chunk-3A3LFDQO.js} +1 -1
  6. package/browser/{chunk-3ONL4DJI.js → chunk-3AJHM5GI.js} +1 -1
  7. package/browser/{chunk-OIQVBN7H.js → chunk-3DCEAZDI.js} +1 -1
  8. package/browser/{chunk-AFIHJVHG.js → chunk-3DOXTB6J.js} +2 -2
  9. package/browser/chunk-3LN7WHDT.js +1 -0
  10. package/browser/{chunk-P5NRG4I2.js → chunk-3PL5XB7S.js} +1 -1
  11. package/browser/{chunk-SIJ5T6MQ.js → chunk-4KS5XFO4.js} +1 -1
  12. package/browser/chunk-4MIM6YHV.js +1 -0
  13. package/browser/{chunk-4UTJRMNS.js → chunk-4WS3QONK.js} +1 -1
  14. package/browser/chunk-55CCIZ6Y.js +1 -0
  15. package/browser/{chunk-BB5JFKXH.js → chunk-56F7GUQR.js} +1 -1
  16. package/browser/chunk-5EIDKSSY.js +1 -0
  17. package/browser/chunk-5SWFEZKV.js +1 -0
  18. package/browser/{chunk-ND6LRPIP.js → chunk-63DV6LLE.js} +1 -1
  19. package/browser/{chunk-GDV5ITOI.js → chunk-63ETMQRH.js} +1 -1
  20. package/browser/{chunk-UEKMQY3M.js → chunk-6AFOV467.js} +1 -1
  21. package/browser/{chunk-7HHH4JYI.js → chunk-6TRRS6GZ.js} +1 -1
  22. package/browser/chunk-7ZDYCVKF.js +1 -0
  23. package/browser/chunk-ALD52Y36.js +1 -0
  24. package/browser/{chunk-WS3X4SNH.js → chunk-AVQED52W.js} +1 -1
  25. package/browser/{chunk-5FEVTJAS.js → chunk-B2ZYZID5.js} +1 -1
  26. package/browser/{chunk-2TXUDUDV.js → chunk-BEM5KLWR.js} +1 -1
  27. package/browser/{chunk-3MTDP4VX.js → chunk-BKCR2XHG.js} +1 -1
  28. package/browser/{chunk-JYJTYOKL.js → chunk-BYGLGHPS.js} +1 -1
  29. package/browser/{chunk-GEWWMLQN.js → chunk-BZA46IMY.js} +1 -1
  30. package/browser/{chunk-6XQBW7HA.js → chunk-COLWSJEP.js} +1 -1
  31. package/browser/{chunk-G7BN6ECD.js → chunk-CSYPFTXB.js} +1 -1
  32. package/browser/{chunk-AA5QCH73.js → chunk-DLB34U6L.js} +1 -1
  33. package/browser/{chunk-QYMTZUZD.js → chunk-DPBIW5BW.js} +1 -1
  34. package/browser/chunk-E5K3YORT.js +1 -0
  35. package/browser/{chunk-GPV4WMJB.js → chunk-EGMTTOHU.js} +1 -1
  36. package/browser/chunk-EJX3SCU5.js +1 -0
  37. package/browser/{chunk-R4RUNF6U.js → chunk-ENLVIBXZ.js} +1 -1
  38. package/browser/{chunk-BPC2QPLU.js → chunk-EUKRA2OA.js} +1 -1
  39. package/browser/{chunk-DWTZEEAD.js → chunk-FEEV626B.js} +1 -1
  40. package/browser/{chunk-XMNSCHH7.js → chunk-FS4CUJQH.js} +1 -1
  41. package/browser/{chunk-SPN2NP4Q.js → chunk-GIVWLRNX.js} +1 -1
  42. package/browser/{chunk-G45KM4GY.js → chunk-GO5IXCK2.js} +1 -1
  43. package/browser/{chunk-WGWHICOU.js → chunk-GULJQNKJ.js} +1 -1
  44. package/browser/{chunk-J37DPZ6E.js → chunk-HV4YVRZD.js} +1 -1
  45. package/browser/{chunk-3PYYPGWK.js → chunk-IFOIZS2E.js} +1 -1
  46. package/browser/{chunk-I37HXTFG.js → chunk-IQAYYKT5.js} +1 -1
  47. package/browser/{chunk-L43PAPKS.js → chunk-JIYGZGAO.js} +1 -1
  48. package/browser/{chunk-PVCT2NFQ.js → chunk-KTYUC4CA.js} +1 -1
  49. package/browser/{chunk-7DPA42PN.js → chunk-KY2WN2WL.js} +1 -1
  50. package/browser/{chunk-WNCCMO6S.js → chunk-L2RA4HKE.js} +1 -1
  51. package/browser/{chunk-OGB6WYHT.js → chunk-LPBSLDC7.js} +1 -1
  52. package/browser/{chunk-G65WOLVG.js → chunk-LVLF3D4X.js} +1 -1
  53. package/browser/chunk-MDHGCSE2.js +1 -0
  54. package/browser/{chunk-CBNBGASZ.js → chunk-MFNQXB7D.js} +1 -1
  55. package/browser/chunk-MHB6HAME.js +1 -0
  56. package/browser/{chunk-LCJUMP4N.js → chunk-MKGPVNPI.js} +1 -1
  57. package/browser/{chunk-MQRXQYSE.js → chunk-N3OHOQ4Z.js} +1 -1
  58. package/browser/chunk-NAJJT42Y.js +1 -0
  59. package/browser/{chunk-TQUZS2SI.js → chunk-NAVKI6RT.js} +1 -1
  60. package/browser/{chunk-ZGXLG3K2.js → chunk-NQVAKMAF.js} +1 -1
  61. package/browser/{chunk-DDDWWOBZ.js → chunk-OFLO4C7X.js} +1 -1
  62. package/browser/chunk-OFPREK4V.js +1 -0
  63. package/browser/{chunk-ARNZJRTH.js → chunk-OGFIIHAP.js} +1 -1
  64. package/browser/{chunk-GDU2Z5DW.js → chunk-OJAJVOW4.js} +1 -1
  65. package/browser/{chunk-MCDRF32R.js → chunk-OMBUBJIY.js} +1 -1
  66. package/browser/{chunk-J7VVELU3.js → chunk-OUCM7C5E.js} +4 -4
  67. package/browser/{chunk-T24DFZQU.js → chunk-P7QBEYDF.js} +1 -1
  68. package/browser/{chunk-NPJSGATI.js → chunk-PUWEEZSA.js} +1 -1
  69. package/browser/chunk-QAGM2FI6.js +1 -0
  70. package/browser/{chunk-4YSSYO6C.js → chunk-QR2CLZRO.js} +1 -1
  71. package/browser/{chunk-IIF6K52V.js → chunk-QV4IBPS2.js} +1 -1
  72. package/browser/{chunk-DA4EUPMU.js → chunk-R727IQCN.js} +1 -1
  73. package/browser/chunk-SBHTD5EV.js +1 -0
  74. package/browser/{chunk-4Z7YULMF.js → chunk-SG2Y5LGP.js} +1 -1
  75. package/browser/{chunk-HEUQXXCL.js → chunk-TBHL5APT.js} +1 -1
  76. package/browser/{chunk-PXW2NKOT.js → chunk-TCYL6I4G.js} +1 -1
  77. package/browser/{chunk-7C22S5RR.js → chunk-THGVFGUJ.js} +1 -1
  78. package/browser/{chunk-H76CYJNV.js → chunk-TOQLOSTJ.js} +1 -1
  79. package/browser/{chunk-5OX5N476.js → chunk-TQXOFKZO.js} +1 -1
  80. package/browser/chunk-TT5QO735.js +1 -0
  81. package/browser/{chunk-GY6HKZNN.js → chunk-U6DZITWN.js} +1 -1
  82. package/browser/{chunk-DL2CN54C.js → chunk-UB4FDBZH.js} +1 -1
  83. package/browser/{chunk-PLCVMTKZ.js → chunk-UCATWB2P.js} +1 -1
  84. package/browser/{chunk-ZHNZU36N.js → chunk-UNIVHWT7.js} +1 -1
  85. package/browser/{chunk-56PQRYGG.js → chunk-URQ2HLXP.js} +1 -1
  86. package/browser/{chunk-3EE5YWX5.js → chunk-V4WIZDIH.js} +1 -1
  87. package/browser/chunk-VH7ZEMCE.js +1 -0
  88. package/browser/{chunk-3KPZCMYP.js → chunk-VZVJKZA2.js} +1 -1
  89. package/browser/chunk-WMFFMGRT.js +1 -0
  90. package/browser/{chunk-NC4DZ44Z.js → chunk-WMJZ5F67.js} +1 -1
  91. package/browser/{chunk-3SLREHKR.js → chunk-WXFL4OGQ.js} +1 -1
  92. package/browser/chunk-XKAY4JO3.js +1 -0
  93. package/browser/{chunk-O4KHZCHW.js → chunk-XLLFCK5L.js} +1 -1
  94. package/browser/{chunk-BTVIFMPB.js → chunk-XNCC2T76.js} +1 -1
  95. package/browser/{chunk-XQFQYRN4.js → chunk-XZAGZJYJ.js} +1 -1
  96. package/browser/{chunk-TY25SONC.js → chunk-YKT74LKI.js} +1 -1
  97. package/browser/{chunk-7J5PDKSA.js → chunk-ZGOOG7E4.js} +1 -1
  98. package/browser/{chunk-36O4BB7T.js → chunk-ZJ5WTNW7.js} +1 -1
  99. package/browser/{chunk-OTQBW2W7.js → chunk-ZJV25K6M.js} +1 -1
  100. package/browser/{chunk-7BB2QBYF.js → chunk-ZNYL2V5A.js} +1 -1
  101. package/browser/index.html +1 -1
  102. package/browser/{main-RJ5ZCZKL.js → main-SDUET5IO.js} +1 -1
  103. package/package.json +1 -1
  104. package/browser/chunk-37XKIC5U.js +0 -1
  105. package/browser/chunk-4ZRHOAVD.js +0 -1
  106. package/browser/chunk-CO2BUEJR.js +0 -1
  107. package/browser/chunk-K5RMGAFS.js +0 -1
  108. package/browser/chunk-KHUREVIJ.js +0 -1
  109. package/browser/chunk-MD6JHLP3.js +0 -1
  110. package/browser/chunk-NSFWHBLR.js +0 -1
  111. package/browser/chunk-OI5ZXKZN.js +0 -1
  112. package/browser/chunk-PESUZCLX.js +0 -1
  113. package/browser/chunk-SI4H2FAD.js +0 -1
  114. package/browser/chunk-SPKYGK35.js +0 -1
  115. package/browser/chunk-UW36C33Q.js +0 -1
  116. package/browser/chunk-WS6KGZB6.js +0 -1
  117. package/browser/chunk-ZUWK72PR.js +0 -1
@@ -1,2 +1,2 @@
1
- import{A as L,B,C as Q,D as A,E as N,F as mt,G as u,d as q,e as M,g as Lt,i as _t,l as gt,t as Nt,u as zt}from"./chunk-G45KM4GY.js";import{$a as ut,B as Z,Bc as Tt,C as lt,Ca as Ft,Hc as It,Ma as G,Na as $,Oa as E,Pa as K,Sa as I,Ta as dt,U as At,Wa as ft,Xa as P,Ya as D,Z as v,_ as x,a as X,aa as T,b as Mt,ca as l,e as O,ea as U,g as Vt,h as m,ib as pt,ka as C,la as b,m as Bt,oa as S,pa as y,va as ht,wa as ct,ya as R,yc as k}from"./chunk-AFIHJVHG.js";var le=20,z=(()=>{class o{_ngZone=l(y);_platform=l(M);_renderer=l(E).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new m;_scrolledCount=0;scrollContainers=new Map;register(t){this.scrollContainers.has(t)||this.scrollContainers.set(t,t.elementScrolled().subscribe(()=>this._scrolled.next(t)))}deregister(t){let i=this.scrollContainers.get(t);i&&(i.unsubscribe(),this.scrollContainers.delete(t))}scrolled(t=le){return this._platform.isBrowser?new Vt(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let n=t>0?this._scrolled.pipe(lt(t)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{n.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):Bt()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((t,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(t,i){let n=this.getAncestorScrollContainers(t);return this.scrolled(i).pipe(Z(s=>!s||n.indexOf(s)>-1))}getAncestorScrollContainers(t){let i=[];return this.scrollContainers.forEach((n,s)=>{this._scrollableContainsElement(s,t)&&i.push(s)}),i}_scrollableContainsElement(t,i){let n=Lt(i),s=t.getElementRef().nativeElement;do if(n==s)return!0;while(n=n.parentElement);return!1}static \u0275fac=function(i){return new(i||o)};static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),he=(()=>{class o{elementRef=l(R);scrollDispatcher=l(z);ngZone=l(y);dir=l(L,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new m;_renderer=l(K);_cleanupScroll;_elementScrolled=new m;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",t=>this._elementScrolled.next(t))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(t){let i=this.elementRef.nativeElement,n=this.dir&&this.dir.value=="rtl";t.left==null&&(t.left=n?t.end:t.start),t.right==null&&(t.right=n?t.start:t.end),t.bottom!=null&&(t.top=i.scrollHeight-i.clientHeight-t.bottom),n&&A()!=B.NORMAL?(t.left!=null&&(t.right=i.scrollWidth-i.clientWidth-t.left),A()==B.INVERTED?t.left=t.right:A()==B.NEGATED&&(t.left=t.right?-t.right:t.right)):t.right!=null&&(t.left=i.scrollWidth-i.clientWidth-t.right),this._applyScrollToOptions(t)}_applyScrollToOptions(t){let i=this.elementRef.nativeElement;Q()?i.scrollTo(t):(t.top!=null&&(i.scrollTop=t.top),t.left!=null&&(i.scrollLeft=t.left))}measureScrollOffset(t){let i="left",n="right",s=this.elementRef.nativeElement;if(t=="top")return s.scrollTop;if(t=="bottom")return s.scrollHeight-s.clientHeight-s.scrollTop;let r=this.dir&&this.dir.value=="rtl";return t=="start"?t=r?n:i:t=="end"&&(t=r?i:n),r&&A()==B.INVERTED?t==i?s.scrollWidth-s.clientWidth-s.scrollLeft:s.scrollLeft:r&&A()==B.NEGATED?t==i?s.scrollLeft+s.scrollWidth-s.clientWidth:-s.scrollLeft:t==i?s.scrollLeft:s.scrollWidth-s.clientWidth-s.scrollLeft}static \u0275fac=function(i){return new(i||o)};static \u0275dir=D({type:o,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return o})(),ce=20,F=(()=>{class o{_platform=l(M);_listeners;_viewportSize=null;_change=new m;_document=l(b);constructor(){let t=l(y),i=l(E).createRenderer(null,null);t.runOutsideAngular(()=>{if(this._platform.isBrowser){let n=s=>this._change.next(s);this._listeners=[i.listen("window","resize",n),i.listen("window","orientationchange",n)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(t=>t()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let t={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),t}getViewportRect(){let t=this.getViewportScrollPosition(),{width:i,height:n}=this.getViewportSize();return{top:t.top,left:t.left,bottom:t.top+n,right:t.left+i,height:n,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let t=this._document,i=this._getWindow(),n=t.documentElement,s=n.getBoundingClientRect(),r=-s.top||t.body?.scrollTop||i.scrollY||n.scrollTop||0,a=-s.left||t.body?.scrollLeft||i.scrollX||n.scrollLeft||0;return{top:r,left:a}}change(t=ce){return t>0?this._change.pipe(lt(t)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let t=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:t.innerWidth,height:t.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||o)};static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();var vt=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=P({type:o});static \u0275inj=x({})}return o})(),yt=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=P({type:o});static \u0275inj=x({imports:[N,vt,N,vt]})}return o})();var W=class{_attachedHost=null;attach(e){return this._attachedHost=e,e.attach(this)}detach(){let e=this._attachedHost;e!=null&&(this._attachedHost=null,e.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(e){this._attachedHost=e}},wt=class extends W{component;viewContainerRef;injector;projectableNodes;bindings;constructor(e,t,i,n,s){super(),this.component=e,this.viewContainerRef=t,this.injector=i,this.projectableNodes=n,this.bindings=s||null}},Y=class extends W{templateRef;viewContainerRef;context;injector;constructor(e,t,i,n){super(),this.templateRef=e,this.viewContainerRef=t,this.context=i,this.injector=n}get origin(){return this.templateRef.elementRef}attach(e,t=this.context){return this.context=t,super.attach(e)}detach(){return this.context=void 0,super.detach()}},bt=class extends W{element;constructor(e){super(),this.element=e instanceof R?e.nativeElement:e}},J=class{_attachedPortal=null;_disposeFn=null;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(e){if(e instanceof wt)return this._attachedPortal=e,this.attachComponentPortal(e);if(e instanceof Y)return this._attachedPortal=e,this.attachTemplatePortal(e);if(this.attachDomPortal&&e instanceof bt)return this._attachedPortal=e,this.attachDomPortal(e)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(e){this._disposeFn=e}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}},tt=class extends J{outletElement;_appRef;_defaultInjector;constructor(e,t,i){super(),this.outletElement=e,this._appRef=t,this._defaultInjector=i}attachComponentPortal(e){let t;if(e.viewContainerRef){let i=e.injector||e.viewContainerRef.injector,n=i.get(dt,null,{optional:!0})||void 0;t=e.viewContainerRef.createComponent(e.component,{index:e.viewContainerRef.length,injector:i,ngModuleRef:n,projectableNodes:e.projectableNodes||void 0,bindings:e.bindings||void 0}),this.setDisposeFn(()=>t.destroy())}else{let i=this._appRef,n=e.injector||this._defaultInjector||C.NULL,s=n.get(U,i.injector);t=Tt(e.component,{elementInjector:n,environmentInjector:s,projectableNodes:e.projectableNodes||void 0,bindings:e.bindings||void 0}),i.attachView(t.hostView),this.setDisposeFn(()=>{i.viewCount>0&&i.detachView(t.hostView),t.destroy()})}return this.outletElement.appendChild(this._getComponentRootNode(t)),this._attachedPortal=e,t}attachTemplatePortal(e){let t=e.viewContainerRef,i=t.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return i.rootNodes.forEach(n=>this.outletElement.appendChild(n)),i.detectChanges(),this.setDisposeFn(()=>{let n=t.indexOf(i);n!==-1&&t.remove(n)}),this._attachedPortal=e,i}attachDomPortal=e=>{let t=e.element;t.parentNode;let i=this.outletElement.ownerDocument.createComment("dom-portal");t.parentNode.insertBefore(i,t),this.outletElement.appendChild(t),this._attachedPortal=e,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(t,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(e){return e.hostView.rootNodes[0]}};var _i=(()=>{class o extends J{_moduleRef=l(dt,{optional:!0});_document=l(b);_viewContainerRef=l(I);_isInitialized=!1;_attachedRef=null;constructor(){super()}get portal(){return this._attachedPortal}set portal(t){this.hasAttached()&&!t&&!this._isInitialized||(this.hasAttached()&&super.detach(),t&&super.attach(t),this._attachedPortal=t||null)}attached=new S;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(t){t.setAttachedHost(this);let i=t.viewContainerRef!=null?t.viewContainerRef:this._viewContainerRef,n=i.createComponent(t.component,{index:i.length,injector:t.injector||i.injector,projectableNodes:t.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0,bindings:t.bindings||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(n.hostView.rootNodes[0]),super.setDisposeFn(()=>n.destroy()),this._attachedPortal=t,this._attachedRef=n,this.attached.emit(n),n}attachTemplatePortal(t){t.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=t,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=t=>{let i=t.element;i.parentNode;let n=this._document.createComment("dom-portal");t.setAttachedHost(this),i.parentNode.insertBefore(n,i),this._getRootNode().appendChild(i),this._attachedPortal=t,super.setDisposeFn(()=>{n.parentNode&&n.parentNode.replaceChild(i,n)})};_getRootNode(){let t=this._viewContainerRef.element.nativeElement;return t.nodeType===t.ELEMENT_NODE?t:t.parentNode}static \u0275fac=function(i){return new(i||o)};static \u0275dir=D({type:o,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[ut]})}return o})(),Yt=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=P({type:o});static \u0275inj=x({})}return o})();var jt=Q();function Kt(o){return new et(o.get(F),o.get(b))}var et=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(e,t){this._viewportRuler=e,this._document=t}attach(){}enable(){if(this._canBeEnabled()){let e=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=u(-this._previousScrollPosition.left),e.style.top=u(-this._previousScrollPosition.top),e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let e=this._document.documentElement,t=this._document.body,i=e.style,n=t.style,s=i.scrollBehavior||"",r=n.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),jt&&(i.scrollBehavior=n.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),jt&&(i.scrollBehavior=s,n.scrollBehavior=r)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let t=this._document.documentElement,i=this._viewportRuler.getViewportSize();return t.scrollHeight>i.height||t.scrollWidth>i.width}};function qt(o,e){return new it(o.get(z),o.get(y),o.get(F),e)}var it=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(e,t,i,n){this._scrollDispatcher=e,this._ngZone=t,this._viewportRuler=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(this._scrollSubscription)return;let e=this._scrollDispatcher.scrolled(0).pipe(Z(t=>!t||!this._overlayRef.overlayElement.contains(t.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(()=>{let t=this._viewportRuler.getViewportScrollPosition().top;Math.abs(t-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}};var j=class{enable(){}disable(){}attach(){}};function Ct(o,e){return e.some(t=>{let i=o.bottom<t.top,n=o.top>t.bottom,s=o.right<t.left,r=o.left>t.right;return i||n||s||r})}function Ht(o,e){return e.some(t=>{let i=o.top<t.top,n=o.bottom>t.bottom,s=o.left<t.left,r=o.right>t.right;return i||n||s||r})}function kt(o,e){return new ot(o.get(z),o.get(F),o.get(y),e)}var ot=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(e,t,i,n){this._scrollDispatcher=e,this._viewportRuler=t,this._ngZone=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(!this._scrollSubscription){let e=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(e).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let t=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:n}=this._viewportRuler.getViewportSize();Ct(t,[{width:i,height:n,bottom:n,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},Qt=(()=>{class o{_injector=l(C);constructor(){}noop=()=>new j;close=t=>qt(this._injector,t);block=()=>Kt(this._injector);reposition=t=>kt(this._injector,t);static \u0275fac=function(i){return new(i||o)};static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),H=class{positionStrategy;scrollStrategy=new j;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";disableAnimations;width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;usePopover;eventPredicate;constructor(e){if(e){let t=Object.keys(e);for(let i of t)e[i]!==void 0&&(this[i]=e[i])}}};var nt=class{connectionPair;scrollableViewProperties;constructor(e,t){this.connectionPair=e,this.scrollableViewProperties=t}};var Jt=(()=>{class o{_attachedOverlays=[];_document=l(b);_isAttached=!1;constructor(){}ngOnDestroy(){this.detach()}add(t){this.remove(t),this._attachedOverlays.push(t)}remove(t){let i=this._attachedOverlays.indexOf(t);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}canReceiveEvent(t,i,n){return n.observers.length<1?!1:t.eventPredicate?t.eventPredicate(i):!0}static \u0275fac=function(i){return new(i||o)};static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),te=(()=>{class o extends Jt{_ngZone=l(y);_renderer=l(E).createRenderer(null,null);_cleanupKeydown;add(t){super.add(t),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=t=>{let i=this._attachedOverlays;for(let n=i.length-1;n>-1;n--){let s=i[n];if(this.canReceiveEvent(s,t,s._keydownEvents)){this._ngZone.run(()=>s._keydownEvents.next(t));break}}};static \u0275fac=(()=>{let t;return function(n){return(t||(t=ct(o)))(n||o)}})();static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),ee=(()=>{class o extends Jt{_platform=l(M);_ngZone=l(y);_renderer=l(E).createRenderer(null,null);_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget=null;_cleanups;add(t){if(super.add(t),!this._isAttached){let i=this._document.body,n={capture:!0},s=this._renderer;this._cleanups=this._ngZone.runOutsideAngular(()=>[s.listen(i,"pointerdown",this._pointerDownListener,n),s.listen(i,"click",this._clickListener,n),s.listen(i,"auxclick",this._clickListener,n),s.listen(i,"contextmenu",this._clickListener,n)]),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){this._isAttached&&(this._cleanups?.forEach(t=>t()),this._cleanups=void 0,this._platform.IOS&&this._cursorStyleIsSet&&(this._document.body.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1)}_pointerDownListener=t=>{this._pointerDownEventTarget=q(t)};_clickListener=t=>{let i=q(t),n=t.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let s=this._attachedOverlays.slice();for(let r=s.length-1;r>-1;r--){let a=s[r],c=a._outsidePointerEvents;if(!(!a.hasAttached()||!this.canReceiveEvent(a,t,c))){if(Xt(a.overlayElement,i)||Xt(a.overlayElement,n))break;this._ngZone?this._ngZone.run(()=>c.next(t)):c.next(t)}}};static \u0275fac=(()=>{let t;return function(n){return(t||(t=ct(o)))(n||o)}})();static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();function Xt(o,e){let t=typeof ShadowRoot<"u"&&ShadowRoot,i=e;for(;i;){if(i===o)return!0;i=t&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var ie=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275cmp=ft({type:o,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[`.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:auto;top:0;left:0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}
1
+ import{A as L,B,C as Q,D as A,E as N,F as mt,G as u,d as q,e as M,g as Lt,i as _t,l as gt,t as Nt,u as zt}from"./chunk-GO5IXCK2.js";import{$a as ut,B as Z,Bc as Tt,C as lt,Ca as Ft,Hc as It,Ma as G,Na as $,Oa as E,Pa as K,Sa as I,Ta as dt,U as At,Wa as ft,Xa as P,Ya as D,Z as v,_ as x,a as X,aa as T,b as Mt,ca as l,e as O,ea as U,g as Vt,h as m,ib as pt,ka as C,la as b,m as Bt,oa as S,pa as y,va as ht,wa as ct,ya as R,yc as k}from"./chunk-3DOXTB6J.js";var le=20,z=(()=>{class o{_ngZone=l(y);_platform=l(M);_renderer=l(E).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new m;_scrolledCount=0;scrollContainers=new Map;register(t){this.scrollContainers.has(t)||this.scrollContainers.set(t,t.elementScrolled().subscribe(()=>this._scrolled.next(t)))}deregister(t){let i=this.scrollContainers.get(t);i&&(i.unsubscribe(),this.scrollContainers.delete(t))}scrolled(t=le){return this._platform.isBrowser?new Vt(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let n=t>0?this._scrolled.pipe(lt(t)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{n.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):Bt()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((t,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(t,i){let n=this.getAncestorScrollContainers(t);return this.scrolled(i).pipe(Z(s=>!s||n.indexOf(s)>-1))}getAncestorScrollContainers(t){let i=[];return this.scrollContainers.forEach((n,s)=>{this._scrollableContainsElement(s,t)&&i.push(s)}),i}_scrollableContainsElement(t,i){let n=Lt(i),s=t.getElementRef().nativeElement;do if(n==s)return!0;while(n=n.parentElement);return!1}static \u0275fac=function(i){return new(i||o)};static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),he=(()=>{class o{elementRef=l(R);scrollDispatcher=l(z);ngZone=l(y);dir=l(L,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new m;_renderer=l(K);_cleanupScroll;_elementScrolled=new m;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",t=>this._elementScrolled.next(t))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(t){let i=this.elementRef.nativeElement,n=this.dir&&this.dir.value=="rtl";t.left==null&&(t.left=n?t.end:t.start),t.right==null&&(t.right=n?t.start:t.end),t.bottom!=null&&(t.top=i.scrollHeight-i.clientHeight-t.bottom),n&&A()!=B.NORMAL?(t.left!=null&&(t.right=i.scrollWidth-i.clientWidth-t.left),A()==B.INVERTED?t.left=t.right:A()==B.NEGATED&&(t.left=t.right?-t.right:t.right)):t.right!=null&&(t.left=i.scrollWidth-i.clientWidth-t.right),this._applyScrollToOptions(t)}_applyScrollToOptions(t){let i=this.elementRef.nativeElement;Q()?i.scrollTo(t):(t.top!=null&&(i.scrollTop=t.top),t.left!=null&&(i.scrollLeft=t.left))}measureScrollOffset(t){let i="left",n="right",s=this.elementRef.nativeElement;if(t=="top")return s.scrollTop;if(t=="bottom")return s.scrollHeight-s.clientHeight-s.scrollTop;let r=this.dir&&this.dir.value=="rtl";return t=="start"?t=r?n:i:t=="end"&&(t=r?i:n),r&&A()==B.INVERTED?t==i?s.scrollWidth-s.clientWidth-s.scrollLeft:s.scrollLeft:r&&A()==B.NEGATED?t==i?s.scrollLeft+s.scrollWidth-s.clientWidth:-s.scrollLeft:t==i?s.scrollLeft:s.scrollWidth-s.clientWidth-s.scrollLeft}static \u0275fac=function(i){return new(i||o)};static \u0275dir=D({type:o,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return o})(),ce=20,F=(()=>{class o{_platform=l(M);_listeners;_viewportSize=null;_change=new m;_document=l(b);constructor(){let t=l(y),i=l(E).createRenderer(null,null);t.runOutsideAngular(()=>{if(this._platform.isBrowser){let n=s=>this._change.next(s);this._listeners=[i.listen("window","resize",n),i.listen("window","orientationchange",n)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(t=>t()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let t={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),t}getViewportRect(){let t=this.getViewportScrollPosition(),{width:i,height:n}=this.getViewportSize();return{top:t.top,left:t.left,bottom:t.top+n,right:t.left+i,height:n,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let t=this._document,i=this._getWindow(),n=t.documentElement,s=n.getBoundingClientRect(),r=-s.top||t.body?.scrollTop||i.scrollY||n.scrollTop||0,a=-s.left||t.body?.scrollLeft||i.scrollX||n.scrollLeft||0;return{top:r,left:a}}change(t=ce){return t>0?this._change.pipe(lt(t)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let t=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:t.innerWidth,height:t.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||o)};static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();var vt=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=P({type:o});static \u0275inj=x({})}return o})(),yt=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=P({type:o});static \u0275inj=x({imports:[N,vt,N,vt]})}return o})();var W=class{_attachedHost=null;attach(e){return this._attachedHost=e,e.attach(this)}detach(){let e=this._attachedHost;e!=null&&(this._attachedHost=null,e.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(e){this._attachedHost=e}},wt=class extends W{component;viewContainerRef;injector;projectableNodes;bindings;constructor(e,t,i,n,s){super(),this.component=e,this.viewContainerRef=t,this.injector=i,this.projectableNodes=n,this.bindings=s||null}},Y=class extends W{templateRef;viewContainerRef;context;injector;constructor(e,t,i,n){super(),this.templateRef=e,this.viewContainerRef=t,this.context=i,this.injector=n}get origin(){return this.templateRef.elementRef}attach(e,t=this.context){return this.context=t,super.attach(e)}detach(){return this.context=void 0,super.detach()}},bt=class extends W{element;constructor(e){super(),this.element=e instanceof R?e.nativeElement:e}},J=class{_attachedPortal=null;_disposeFn=null;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(e){if(e instanceof wt)return this._attachedPortal=e,this.attachComponentPortal(e);if(e instanceof Y)return this._attachedPortal=e,this.attachTemplatePortal(e);if(this.attachDomPortal&&e instanceof bt)return this._attachedPortal=e,this.attachDomPortal(e)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(e){this._disposeFn=e}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}},tt=class extends J{outletElement;_appRef;_defaultInjector;constructor(e,t,i){super(),this.outletElement=e,this._appRef=t,this._defaultInjector=i}attachComponentPortal(e){let t;if(e.viewContainerRef){let i=e.injector||e.viewContainerRef.injector,n=i.get(dt,null,{optional:!0})||void 0;t=e.viewContainerRef.createComponent(e.component,{index:e.viewContainerRef.length,injector:i,ngModuleRef:n,projectableNodes:e.projectableNodes||void 0,bindings:e.bindings||void 0}),this.setDisposeFn(()=>t.destroy())}else{let i=this._appRef,n=e.injector||this._defaultInjector||C.NULL,s=n.get(U,i.injector);t=Tt(e.component,{elementInjector:n,environmentInjector:s,projectableNodes:e.projectableNodes||void 0,bindings:e.bindings||void 0}),i.attachView(t.hostView),this.setDisposeFn(()=>{i.viewCount>0&&i.detachView(t.hostView),t.destroy()})}return this.outletElement.appendChild(this._getComponentRootNode(t)),this._attachedPortal=e,t}attachTemplatePortal(e){let t=e.viewContainerRef,i=t.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return i.rootNodes.forEach(n=>this.outletElement.appendChild(n)),i.detectChanges(),this.setDisposeFn(()=>{let n=t.indexOf(i);n!==-1&&t.remove(n)}),this._attachedPortal=e,i}attachDomPortal=e=>{let t=e.element;t.parentNode;let i=this.outletElement.ownerDocument.createComment("dom-portal");t.parentNode.insertBefore(i,t),this.outletElement.appendChild(t),this._attachedPortal=e,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(t,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(e){return e.hostView.rootNodes[0]}};var _i=(()=>{class o extends J{_moduleRef=l(dt,{optional:!0});_document=l(b);_viewContainerRef=l(I);_isInitialized=!1;_attachedRef=null;constructor(){super()}get portal(){return this._attachedPortal}set portal(t){this.hasAttached()&&!t&&!this._isInitialized||(this.hasAttached()&&super.detach(),t&&super.attach(t),this._attachedPortal=t||null)}attached=new S;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(t){t.setAttachedHost(this);let i=t.viewContainerRef!=null?t.viewContainerRef:this._viewContainerRef,n=i.createComponent(t.component,{index:i.length,injector:t.injector||i.injector,projectableNodes:t.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0,bindings:t.bindings||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(n.hostView.rootNodes[0]),super.setDisposeFn(()=>n.destroy()),this._attachedPortal=t,this._attachedRef=n,this.attached.emit(n),n}attachTemplatePortal(t){t.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=t,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=t=>{let i=t.element;i.parentNode;let n=this._document.createComment("dom-portal");t.setAttachedHost(this),i.parentNode.insertBefore(n,i),this._getRootNode().appendChild(i),this._attachedPortal=t,super.setDisposeFn(()=>{n.parentNode&&n.parentNode.replaceChild(i,n)})};_getRootNode(){let t=this._viewContainerRef.element.nativeElement;return t.nodeType===t.ELEMENT_NODE?t:t.parentNode}static \u0275fac=function(i){return new(i||o)};static \u0275dir=D({type:o,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[ut]})}return o})(),Yt=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=P({type:o});static \u0275inj=x({})}return o})();var jt=Q();function Kt(o){return new et(o.get(F),o.get(b))}var et=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(e,t){this._viewportRuler=e,this._document=t}attach(){}enable(){if(this._canBeEnabled()){let e=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=u(-this._previousScrollPosition.left),e.style.top=u(-this._previousScrollPosition.top),e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let e=this._document.documentElement,t=this._document.body,i=e.style,n=t.style,s=i.scrollBehavior||"",r=n.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),jt&&(i.scrollBehavior=n.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),jt&&(i.scrollBehavior=s,n.scrollBehavior=r)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let t=this._document.documentElement,i=this._viewportRuler.getViewportSize();return t.scrollHeight>i.height||t.scrollWidth>i.width}};function qt(o,e){return new it(o.get(z),o.get(y),o.get(F),e)}var it=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(e,t,i,n){this._scrollDispatcher=e,this._ngZone=t,this._viewportRuler=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(this._scrollSubscription)return;let e=this._scrollDispatcher.scrolled(0).pipe(Z(t=>!t||!this._overlayRef.overlayElement.contains(t.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(()=>{let t=this._viewportRuler.getViewportScrollPosition().top;Math.abs(t-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}};var j=class{enable(){}disable(){}attach(){}};function Ct(o,e){return e.some(t=>{let i=o.bottom<t.top,n=o.top>t.bottom,s=o.right<t.left,r=o.left>t.right;return i||n||s||r})}function Ht(o,e){return e.some(t=>{let i=o.top<t.top,n=o.bottom>t.bottom,s=o.left<t.left,r=o.right>t.right;return i||n||s||r})}function kt(o,e){return new ot(o.get(z),o.get(F),o.get(y),e)}var ot=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(e,t,i,n){this._scrollDispatcher=e,this._viewportRuler=t,this._ngZone=i,this._config=n}attach(e){this._overlayRef,this._overlayRef=e}enable(){if(!this._scrollSubscription){let e=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(e).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let t=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:n}=this._viewportRuler.getViewportSize();Ct(t,[{width:i,height:n,bottom:n,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},Qt=(()=>{class o{_injector=l(C);constructor(){}noop=()=>new j;close=t=>qt(this._injector,t);block=()=>Kt(this._injector);reposition=t=>kt(this._injector,t);static \u0275fac=function(i){return new(i||o)};static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),H=class{positionStrategy;scrollStrategy=new j;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";disableAnimations;width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;usePopover;eventPredicate;constructor(e){if(e){let t=Object.keys(e);for(let i of t)e[i]!==void 0&&(this[i]=e[i])}}};var nt=class{connectionPair;scrollableViewProperties;constructor(e,t){this.connectionPair=e,this.scrollableViewProperties=t}};var Jt=(()=>{class o{_attachedOverlays=[];_document=l(b);_isAttached=!1;constructor(){}ngOnDestroy(){this.detach()}add(t){this.remove(t),this._attachedOverlays.push(t)}remove(t){let i=this._attachedOverlays.indexOf(t);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}canReceiveEvent(t,i,n){return n.observers.length<1?!1:t.eventPredicate?t.eventPredicate(i):!0}static \u0275fac=function(i){return new(i||o)};static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),te=(()=>{class o extends Jt{_ngZone=l(y);_renderer=l(E).createRenderer(null,null);_cleanupKeydown;add(t){super.add(t),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=t=>{let i=this._attachedOverlays;for(let n=i.length-1;n>-1;n--){let s=i[n];if(this.canReceiveEvent(s,t,s._keydownEvents)){this._ngZone.run(()=>s._keydownEvents.next(t));break}}};static \u0275fac=(()=>{let t;return function(n){return(t||(t=ct(o)))(n||o)}})();static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),ee=(()=>{class o extends Jt{_platform=l(M);_ngZone=l(y);_renderer=l(E).createRenderer(null,null);_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget=null;_cleanups;add(t){if(super.add(t),!this._isAttached){let i=this._document.body,n={capture:!0},s=this._renderer;this._cleanups=this._ngZone.runOutsideAngular(()=>[s.listen(i,"pointerdown",this._pointerDownListener,n),s.listen(i,"click",this._clickListener,n),s.listen(i,"auxclick",this._clickListener,n),s.listen(i,"contextmenu",this._clickListener,n)]),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){this._isAttached&&(this._cleanups?.forEach(t=>t()),this._cleanups=void 0,this._platform.IOS&&this._cursorStyleIsSet&&(this._document.body.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1)}_pointerDownListener=t=>{this._pointerDownEventTarget=q(t)};_clickListener=t=>{let i=q(t),n=t.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let s=this._attachedOverlays.slice();for(let r=s.length-1;r>-1;r--){let a=s[r],c=a._outsidePointerEvents;if(!(!a.hasAttached()||!this.canReceiveEvent(a,t,c))){if(Xt(a.overlayElement,i)||Xt(a.overlayElement,n))break;this._ngZone?this._ngZone.run(()=>c.next(t)):c.next(t)}}};static \u0275fac=(()=>{let t;return function(n){return(t||(t=ct(o)))(n||o)}})();static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();function Xt(o,e){let t=typeof ShadowRoot<"u"&&ShadowRoot,i=e;for(;i;){if(i===o)return!0;i=t&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var ie=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275cmp=ft({type:o,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,n){},styles:[`.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:auto;top:0;left:0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}
2
2
  `],encapsulation:2,changeDetection:0})}return o})(),oe=(()=>{class o{_platform=l(M);_containerElement;_document=l(b);_styleLoader=l(_t);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let t="cdk-overlay-container";if(this._platform.isBrowser||mt()){let n=this._document.querySelectorAll(`.${t}[platform="server"], .${t}[platform="test"]`);for(let s=0;s<n.length;s++)n[s].remove()}let i=this._document.createElement("div");i.classList.add(t),mt()?i.setAttribute("platform","test"):this._platform.isBrowser||i.setAttribute("platform","server"),this._document.body.appendChild(i),this._containerElement=i}_loadStyles(){this._styleLoader.load(ie)}static \u0275fac=function(i){return new(i||o)};static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),St=class{_renderer;_ngZone;element;_cleanupClick;_cleanupTransitionEnd;_fallbackTimeout;constructor(e,t,i,n){this._renderer=t,this._ngZone=i,this.element=e.createElement("div"),this.element.classList.add("cdk-overlay-backdrop"),this._cleanupClick=t.listen(this.element,"click",n)}detach(){this._ngZone.runOutsideAngular(()=>{let e=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),e.style.pointerEvents="none",e.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}};function Ot(o){return o&&o.nodeType===1}var st=class{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new m;_attachments=new m;_detachments=new m;_positionStrategy;_scrollStrategy;_locationChanges=O.EMPTY;_backdropRef=null;_detachContentMutationObserver;_detachContentAfterRenderRef;_disposed=!1;_previousHostParent;_keydownEvents=new m;_outsidePointerEvents=new m;_afterNextRenderRef;constructor(e,t,i,n,s,r,a,c,f,h=!1,d,p){this._portalOutlet=e,this._host=t,this._pane=i,this._config=n,this._ngZone=s,this._keyboardDispatcher=r,this._document=a,this._location=c,this._outsideClickDispatcher=f,this._animationsDisabled=h,this._injector=d,this._renderer=p,n.scrollStrategy&&(this._scrollStrategy=n.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=n.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}get eventPredicate(){return this._config?.eventPredicate||null}attach(e){if(this._disposed)return null;this._attachHost();let t=this._portalOutlet.attach(e);return this._positionStrategy?.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=G(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._completeDetachContent(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof t?.onDestroy=="function"&&t.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),t}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let e=this._portalOutlet.detach();return this._detachments.next(),this._completeDetachContent(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),e}dispose(){if(this._disposed)return;let e=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,e&&this._detachments.next(),this._detachments.complete(),this._completeDetachContent(),this._disposed=!0}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(e){e!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=e,this.hasAttached()&&(e.attach(this),this.updatePosition()))}updateSize(e){this._config=X(X({},this._config),e),this._updateElementSize()}setDirection(e){this._config=Mt(X({},this._config),{direction:e}),this._updateElementDirection()}addPanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!0)}removePanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!1)}getDirection(){let e=this._config.direction;return e?typeof e=="string"?e:e.value:"ltr"}updateScrollStrategy(e){e!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=e,this.hasAttached()&&(e.attach(this),e.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let e=this._pane.style;e.width=u(this._config.width),e.height=u(this._config.height),e.minWidth=u(this._config.minWidth),e.minHeight=u(this._config.minHeight),e.maxWidth=u(this._config.maxWidth),e.maxHeight=u(this._config.maxHeight)}_togglePointerEvents(e){this._pane.style.pointerEvents=e?"":"none"}_attachHost(){if(!this._host.parentElement){let e=this._config.usePopover?this._positionStrategy?.getPopoverInsertionPoint?.():null;Ot(e)?e.after(this._host):e?.type==="parent"?e.element.appendChild(this._host):this._previousHostParent?.appendChild(this._host)}if(this._config.usePopover)try{this._host.showPopover()}catch(e){}}_attachBackdrop(){let e="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new St(this._document,this._renderer,this._ngZone,t=>{this._backdropClick.next(t)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._config.usePopover?this._host.prepend(this._backdropRef.element):this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(e))}):this._backdropRef.element.classList.add(e)}_updateStackingOrder(){!this._config.usePopover&&this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(e,t,i){let n=gt(t||[]).filter(s=>!!s);n.length&&(i?e.classList.add(...n):e.classList.remove(...n))}_detachContentWhenEmpty(){let e=!1;try{this._detachContentAfterRenderRef=G(()=>{e=!0,this._detachContent()},{injector:this._injector})}catch(t){if(e)throw t;this._detachContent()}globalThis.MutationObserver&&this._pane&&(this._detachContentMutationObserver||=new globalThis.MutationObserver(()=>{this._detachContent()}),this._detachContentMutationObserver.observe(this._pane,{childList:!0}))}_detachContent(){(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),this._completeDetachContent())}_completeDetachContent(){this._detachContentAfterRenderRef?.destroy(),this._detachContentAfterRenderRef=void 0,this._detachContentMutationObserver?.disconnect()}_disposeScrollStrategy(){let e=this._scrollStrategy;e?.disable(),e?.detach?.()}},Zt="cdk-overlay-connected-position-bounding-box",de=/([A-Za-z%]+)$/;function xt(o,e){return new rt(e,o.get(F),o.get(b),o.get(M),o.get(oe))}var rt=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender=!1;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed=!1;_boundingBox=null;_lastPosition=null;_lastScrollVisibility=null;_positionChanges=new m;_resizeSubscription=O.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount=null;_popoverLocation="global";positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(e,t,i,n,s){this._viewportRuler=t,this._document=i,this._platform=n,this._overlayContainer=s,this.setOrigin(e)}attach(e){this._overlayRef&&this._overlayRef,this._validatePositions(),e.hostElement.classList.add(Zt),this._overlayRef=e,this._boundingBox=e.hostElement,this._pane=e.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._getContainerRect();let e=this._originRect,t=this._overlayRect,i=this._viewportRect,n=this._containerRect,s=[],r;for(let a of this._preferredPositions){let c=this._getOriginPoint(e,n,a),f=this._getOverlayPoint(c,t,a),h=this._getOverlayFit(f,t,i,a);if(h.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(a,c);return}if(this._canFitWithFlexibleDimensions(h,f,i)){s.push({position:a,origin:c,overlayRect:t,boundingBoxRect:this._calculateBoundingBoxRect(c,a)});continue}(!r||r.overlayFit.visibleArea<h.visibleArea)&&(r={overlayFit:h,overlayPoint:f,originPoint:c,position:a,overlayRect:t})}if(s.length){let a=null,c=-1;for(let f of s){let h=f.boundingBoxRect.width*f.boundingBoxRect.height*(f.position.weight||1);h>c&&(c=h,a=f)}this._isPushed=!1,this._applyPosition(a.position,a.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(r.position,r.originPoint);return}this._applyPosition(r.position,r.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&V(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(Zt),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let e=this._lastPosition;e?(this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._getContainerRect(),this._applyPosition(e,this._getOriginPoint(this._originRect,this._containerRect,e))):this.apply()}withScrollableContainers(e){return this._scrollables=e,this}withPositions(e){return this._preferredPositions=e,e.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(e){return this._viewportMargin=e,this}withFlexibleDimensions(e=!0){return this._hasFlexibleDimensions=e,this}withGrowAfterOpen(e=!0){return this._growAfterOpen=e,this}withPush(e=!0){return this._canPush=e,this}withLockedPosition(e=!0){return this._positionLocked=e,this}setOrigin(e){return this._origin=e,this}withDefaultOffsetX(e){return this._offsetX=e,this}withDefaultOffsetY(e){return this._offsetY=e,this}withTransformOriginOn(e){return this._transformOriginSelector=e,this}withPopoverLocation(e){return this._popoverLocation=e,this}getPopoverInsertionPoint(){return this._popoverLocation==="global"?null:this._popoverLocation!=="inline"?this._popoverLocation:this._origin instanceof R?this._origin.nativeElement:Ot(this._origin)?this._origin:null}_getOriginPoint(e,t,i){let n;if(i.originX=="center")n=e.left+e.width/2;else{let r=this._isRtl()?e.right:e.left,a=this._isRtl()?e.left:e.right;n=i.originX=="start"?r:a}t.left<0&&(n-=t.left);let s;return i.originY=="center"?s=e.top+e.height/2:s=i.originY=="top"?e.top:e.bottom,t.top<0&&(s-=t.top),{x:n,y:s}}_getOverlayPoint(e,t,i){let n;i.overlayX=="center"?n=-t.width/2:i.overlayX==="start"?n=this._isRtl()?-t.width:0:n=this._isRtl()?0:-t.width;let s;return i.overlayY=="center"?s=-t.height/2:s=i.overlayY=="top"?0:-t.height,{x:e.x+n,y:e.y+s}}_getOverlayFit(e,t,i,n){let s=Gt(t),{x:r,y:a}=e,c=this._getOffset(n,"x"),f=this._getOffset(n,"y");c&&(r+=c),f&&(a+=f);let h=0-r,d=r+s.width-i.width,p=0-a,g=a+s.height-i.height,_=this._subtractOverflows(s.width,h,d),w=this._subtractOverflows(s.height,p,g),Dt=_*w;return{visibleArea:Dt,isCompletelyWithinViewport:s.width*s.height===Dt,fitsInViewportVertically:w===s.height,fitsInViewportHorizontally:_==s.width}}_canFitWithFlexibleDimensions(e,t,i){if(this._hasFlexibleDimensions){let n=i.bottom-t.y,s=i.right-t.x,r=Ut(this._overlayRef.getConfig().minHeight),a=Ut(this._overlayRef.getConfig().minWidth),c=e.fitsInViewportVertically||r!=null&&r<=n,f=e.fitsInViewportHorizontally||a!=null&&a<=s;return c&&f}return!1}_pushOverlayOnScreen(e,t,i){if(this._previousPushAmount&&this._positionLocked)return{x:e.x+this._previousPushAmount.x,y:e.y+this._previousPushAmount.y};let n=Gt(t),s=this._viewportRect,r=Math.max(e.x+n.width-s.width,0),a=Math.max(e.y+n.height-s.height,0),c=Math.max(s.top-i.top-e.y,0),f=Math.max(s.left-i.left-e.x,0),h=0,d=0;return n.width<=s.width?h=f||-r:h=e.x<this._getViewportMarginStart()?s.left-i.left-e.x:0,n.height<=s.height?d=c||-a:d=e.y<this._getViewportMarginTop()?s.top-i.top-e.y:0,this._previousPushAmount={x:h,y:d},{x:e.x+h,y:e.y+d}}_applyPosition(e,t){if(this._setTransformOrigin(e),this._setOverlayElementStyles(t,e),this._setBoundingBoxStyles(t,e),e.panelClass&&this._addPanelClasses(e.panelClass),this._positionChanges.observers.length){let i=this._getScrollVisibility();if(e!==this._lastPosition||!this._lastScrollVisibility||!fe(this._lastScrollVisibility,i)){let n=new nt(e,i);this._positionChanges.next(n)}this._lastScrollVisibility=i}this._lastPosition=e,this._isInitialRender=!1}_setTransformOrigin(e){if(!this._transformOriginSelector)return;let t=this._boundingBox.querySelectorAll(this._transformOriginSelector),i,n=e.overlayY;e.overlayX==="center"?i="center":this._isRtl()?i=e.overlayX==="start"?"right":"left":i=e.overlayX==="start"?"left":"right";for(let s=0;s<t.length;s++)t[s].style.transformOrigin=`${i} ${n}`}_calculateBoundingBoxRect(e,t){let i=this._viewportRect,n=this._isRtl(),s,r,a;if(t.overlayY==="top")r=e.y,s=i.height-r+this._getViewportMarginBottom();else if(t.overlayY==="bottom")a=i.height-e.y+this._getViewportMarginTop()+this._getViewportMarginBottom(),s=i.height-a+this._getViewportMarginTop();else{let g=Math.min(i.bottom-e.y+i.top,e.y),_=this._lastBoundingBoxSize.height;s=g*2,r=e.y-g,s>_&&!this._isInitialRender&&!this._growAfterOpen&&(r=e.y-_/2)}let c=t.overlayX==="start"&&!n||t.overlayX==="end"&&n,f=t.overlayX==="end"&&!n||t.overlayX==="start"&&n,h,d,p;if(f)p=i.width-e.x+this._getViewportMarginStart()+this._getViewportMarginEnd(),h=e.x-this._getViewportMarginStart();else if(c)d=e.x,h=i.right-e.x-this._getViewportMarginEnd();else{let g=Math.min(i.right-e.x+i.left,e.x),_=this._lastBoundingBoxSize.width;h=g*2,d=e.x-g,h>_&&!this._isInitialRender&&!this._growAfterOpen&&(d=e.x-_/2)}return{top:r,left:d,bottom:a,right:p,width:h,height:s}}_setBoundingBoxStyles(e,t){let i=this._calculateBoundingBoxRect(e,t);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let n={};if(this._hasExactPosition())n.top=n.left="0",n.bottom=n.right="auto",n.maxHeight=n.maxWidth="",n.width=n.height="100%";else{let s=this._overlayRef.getConfig().maxHeight,r=this._overlayRef.getConfig().maxWidth;n.width=u(i.width),n.height=u(i.height),n.top=u(i.top)||"auto",n.bottom=u(i.bottom)||"auto",n.left=u(i.left)||"auto",n.right=u(i.right)||"auto",t.overlayX==="center"?n.alignItems="center":n.alignItems=t.overlayX==="end"?"flex-end":"flex-start",t.overlayY==="center"?n.justifyContent="center":n.justifyContent=t.overlayY==="bottom"?"flex-end":"flex-start",s&&(n.maxHeight=u(s)),r&&(n.maxWidth=u(r))}this._lastBoundingBoxSize=i,V(this._boundingBox.style,n)}_resetBoundingBoxStyles(){V(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){V(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(e,t){let i={},n=this._hasExactPosition(),s=this._hasFlexibleDimensions,r=this._overlayRef.getConfig();if(n){let h=this._viewportRuler.getViewportScrollPosition();V(i,this._getExactOverlayY(t,e,h)),V(i,this._getExactOverlayX(t,e,h))}else i.position="static";let a="",c=this._getOffset(t,"x"),f=this._getOffset(t,"y");c&&(a+=`translateX(${c}px) `),f&&(a+=`translateY(${f}px)`),i.transform=a.trim(),r.maxHeight&&(n?i.maxHeight=u(r.maxHeight):s&&(i.maxHeight="")),r.maxWidth&&(n?i.maxWidth=u(r.maxWidth):s&&(i.maxWidth="")),V(this._pane.style,i)}_getExactOverlayY(e,t,i){let n={top:"",bottom:""},s=this._getOverlayPoint(t,this._overlayRect,e);if(this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),e.overlayY==="bottom"){let r=this._document.documentElement.clientHeight;n.bottom=`${r-(s.y+this._overlayRect.height)}px`}else n.top=u(s.y);return n}_getExactOverlayX(e,t,i){let n={left:"",right:""},s=this._getOverlayPoint(t,this._overlayRect,e);this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i));let r;if(this._isRtl()?r=e.overlayX==="end"?"left":"right":r=e.overlayX==="end"?"right":"left",r==="right"){let a=this._document.documentElement.clientWidth;n.right=`${a-(s.x+this._overlayRect.width)}px`}else n.left=u(s.x);return n}_getScrollVisibility(){let e=this._getOriginRect(),t=this._pane.getBoundingClientRect(),i=this._scrollables.map(n=>n.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:Ht(e,i),isOriginOutsideView:Ct(e,i),isOverlayClipped:Ht(t,i),isOverlayOutsideView:Ct(t,i)}}_subtractOverflows(e,...t){return t.reduce((i,n)=>i-Math.max(n,0),e)}_getNarrowedViewportRect(){let e=this._document.documentElement.clientWidth,t=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._getViewportMarginTop(),left:i.left+this._getViewportMarginStart(),right:i.left+e-this._getViewportMarginEnd(),bottom:i.top+t-this._getViewportMarginBottom(),width:e-this._getViewportMarginStart()-this._getViewportMarginEnd(),height:t-this._getViewportMarginTop()-this._getViewportMarginBottom()}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(e,t){return t==="x"?e.offsetX==null?this._offsetX:e.offsetX:e.offsetY==null?this._offsetY:e.offsetY}_validatePositions(){}_addPanelClasses(e){this._pane&&gt(e).forEach(t=>{t!==""&&this._appliedPanelClasses.indexOf(t)===-1&&(this._appliedPanelClasses.push(t),this._pane.classList.add(t))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(e=>{this._pane.classList.remove(e)}),this._appliedPanelClasses=[])}_getViewportMarginStart(){return typeof this._viewportMargin=="number"?this._viewportMargin:this._viewportMargin?.start??0}_getViewportMarginEnd(){return typeof this._viewportMargin=="number"?this._viewportMargin:this._viewportMargin?.end??0}_getViewportMarginTop(){return typeof this._viewportMargin=="number"?this._viewportMargin:this._viewportMargin?.top??0}_getViewportMarginBottom(){return typeof this._viewportMargin=="number"?this._viewportMargin:this._viewportMargin?.bottom??0}_getOriginRect(){let e=this._origin;if(e instanceof R)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();let t=e.width||0,i=e.height||0;return{top:e.y,bottom:e.y+i,left:e.x,right:e.x+t,height:i,width:t}}_getContainerRect(){let e=this._overlayRef.getConfig().usePopover&&this._popoverLocation!=="global",t=this._overlayContainer.getContainerElement();e&&(t.style.display="block");let i=t.getBoundingClientRect();return e&&(t.style.display=""),i}};function V(o,e){for(let t in e)e.hasOwnProperty(t)&&(o[t]=e[t]);return o}function Ut(o){if(typeof o!="number"&&o!=null){let[e,t]=o.split(de);return!t||t==="px"?parseFloat(e):null}return o||null}function Gt(o){return{top:Math.floor(o.top),right:Math.floor(o.right),bottom:Math.floor(o.bottom),left:Math.floor(o.left),width:Math.floor(o.width),height:Math.floor(o.height)}}function fe(o,e){return o===e?!0:o.isOriginClipped===e.isOriginClipped&&o.isOriginOutsideView===e.isOriginOutsideView&&o.isOverlayClipped===e.isOverlayClipped&&o.isOverlayOutsideView===e.isOverlayOutsideView}var $t="cdk-global-overlay-wrapper";function ne(o){return new at}var at=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(e){let t=e.getConfig();this._overlayRef=e,this._width&&!t.width&&e.updateSize({width:this._width}),this._height&&!t.height&&e.updateSize({height:this._height}),e.hostElement.classList.add($t),this._isDisposed=!1}top(e=""){return this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this}left(e=""){return this._xOffset=e,this._xPosition="left",this}bottom(e=""){return this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this}right(e=""){return this._xOffset=e,this._xPosition="right",this}start(e=""){return this._xOffset=e,this._xPosition="start",this}end(e=""){return this._xOffset=e,this._xPosition="end",this}width(e=""){return this._overlayRef?this._overlayRef.updateSize({width:e}):this._width=e,this}height(e=""){return this._overlayRef?this._overlayRef.updateSize({height:e}):this._height=e,this}centerHorizontally(e=""){return this.left(e),this._xPosition="center",this}centerVertically(e=""){return this.top(e),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let e=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:n,height:s,maxWidth:r,maxHeight:a}=i,c=(n==="100%"||n==="100vw")&&(!r||r==="100%"||r==="100vw"),f=(s==="100%"||s==="100vh")&&(!a||a==="100%"||a==="100vh"),h=this._xPosition,d=this._xOffset,p=this._overlayRef.getConfig().direction==="rtl",g="",_="",w="";c?w="flex-start":h==="center"?(w="center",p?_=d:g=d):p?h==="left"||h==="end"?(w="flex-end",g=d):(h==="right"||h==="start")&&(w="flex-start",_=d):h==="left"||h==="start"?(w="flex-start",g=d):(h==="right"||h==="end")&&(w="flex-end",_=d),e.position=this._cssPosition,e.marginLeft=c?"0":g,e.marginTop=f?"0":this._topOffset,e.marginBottom=this._bottomOffset,e.marginRight=c?"0":_,t.justifyContent=w,t.alignItems=f?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let e=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement,i=t.style;t.classList.remove($t),i.justifyContent=i.alignItems=e.marginTop=e.marginBottom=e.marginLeft=e.marginRight=e.position="",this._overlayRef=null,this._isDisposed=!0}},se=(()=>{class o{_injector=l(C);constructor(){}global(){return ne()}flexibleConnectedTo(t){return xt(this._injector,t)}static \u0275fac=function(i){return new(i||o)};static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),Et=new T("OVERLAY_DEFAULT_CONFIG");function Pt(o,e){o.get(_t).load(ie);let t=o.get(oe),i=o.get(b),n=o.get(Nt),s=o.get(pt),r=o.get(L),a=o.get(K,null,{optional:!0})||o.get(E).createRenderer(null,null),c=new H(e),f=o.get(Et,null,{optional:!0})?.usePopover??!0;c.direction=c.direction||r.value,"showPopover"in i.body?c.usePopover=e?.usePopover??f:c.usePopover=!1;let h=i.createElement("div"),d=i.createElement("div");h.id=n.getId("cdk-overlay-"),h.classList.add("cdk-overlay-pane"),d.appendChild(h),c.usePopover&&(d.setAttribute("popover","manual"),d.classList.add("cdk-overlay-popover"));let p=c.usePopover?c.positionStrategy?.getPopoverInsertionPoint?.():null;return Ot(p)?p.after(d):p?.type==="parent"?p.element.appendChild(d):t.getContainerElement().appendChild(d),new st(new tt(h,s,o),d,h,c,o.get(y),o.get(te),i,o.get(It),o.get(ee),e?.disableAnimations??o.get(Ft,null,{optional:!0})==="NoopAnimations",o.get(U),a)}var re=(()=>{class o{scrollStrategies=l(Qt);_positionBuilder=l(se);_injector=l(C);constructor(){}create(t){return Pt(this._injector,t)}position(){return this._positionBuilder}static \u0275fac=function(i){return new(i||o)};static \u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})(),ue=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],pe=new T("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let o=l(C);return()=>kt(o)}}),Rt=(()=>{class o{elementRef=l(R);constructor(){}static \u0275fac=function(i){return new(i||o)};static \u0275dir=D({type:o,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return o})(),ae=new T("cdk-connected-overlay-default-config"),_e=(()=>{class o{_dir=l(L,{optional:!0});_injector=l(C);_overlayRef;_templatePortal;_backdropSubscription=O.EMPTY;_attachSubscription=O.EMPTY;_detachSubscription=O.EMPTY;_positionSubscription=O.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=l(pe);_ngZone=l(y);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(t){this._offsetX=t,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(t){this._offsetY=t,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;disposeOnNavigation=!1;usePopover;matchWidth=!1;set _config(t){typeof t!="string"&&this._assignConfig(t)}backdropClick=new S;positionChange=new S;attach=new S;detach=new S;overlayKeydown=new S;overlayOutsideClick=new S;constructor(){let t=l($),i=l(I),n=l(ae,{optional:!0}),s=l(Et,{optional:!0});this.usePopover=s?.usePopover===!1?null:"global",this._templatePortal=new Y(t,i),this.scrollStrategy=this._scrollStrategyFactory(),n&&this._assignConfig(n)}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef?.dispose()}ngOnChanges(t){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef?.updateSize({width:this._getWidth(),minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),t.origin&&this.open&&this._position.apply()),t.open&&(this.open?this.attachOverlay():this.detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=ue);let t=this._overlayRef=Pt(this._injector,this._buildConfig());this._attachSubscription=t.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=t.detachments().subscribe(()=>this.detach.emit()),t.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!zt(i)&&(i.preventDefault(),this.detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let n=this._getOriginElement(),s=q(i);(!n||n!==s&&!n.contains(s))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let t=this._position=this.positionStrategy||this._createPositionStrategy(),i=new H({direction:this._dir||"ltr",positionStrategy:t,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation,usePopover:!!this.usePopover});return(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(t){let i=this.positions.map(n=>({originX:n.originX,originY:n.originY,overlayX:n.overlayX,overlayY:n.overlayY,offsetX:n.offsetX||this.offsetX,offsetY:n.offsetY||this.offsetY,panelClass:n.panelClass||void 0}));return t.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector).withPopoverLocation(this.usePopover===null?"global":this.usePopover)}_createPositionStrategy(){let t=xt(this._injector,this._getOrigin());return this._updatePositionStrategy(t),t}_getOrigin(){return this.origin instanceof Rt?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Rt?this.origin.elementRef.nativeElement:this.origin instanceof R?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_getWidth(){return this.width?this.width:this.matchWidth?this._getOriginElement()?.getBoundingClientRect?.().width:void 0}attachOverlay(){this._overlayRef||this._createOverlay();let t=this._overlayRef;t.getConfig().hasBackdrop=this.hasBackdrop,t.updateSize({width:this._getWidth()}),t.hasAttached()||t.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=t.backdropClick().subscribe(i=>this.backdropClick.emit(i)):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(At(()=>this.positionChange.observers.length>0)).subscribe(i=>{this._ngZone.run(()=>this.positionChange.emit(i)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()})),this.open=!0}detachOverlay(){this._overlayRef?.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.open=!1}_assignConfig(t){this.origin=t.origin??this.origin,this.positions=t.positions??this.positions,this.positionStrategy=t.positionStrategy??this.positionStrategy,this.offsetX=t.offsetX??this.offsetX,this.offsetY=t.offsetY??this.offsetY,this.width=t.width??this.width,this.height=t.height??this.height,this.minWidth=t.minWidth??this.minWidth,this.minHeight=t.minHeight??this.minHeight,this.backdropClass=t.backdropClass??this.backdropClass,this.panelClass=t.panelClass??this.panelClass,this.viewportMargin=t.viewportMargin??this.viewportMargin,this.scrollStrategy=t.scrollStrategy??this.scrollStrategy,this.disableClose=t.disableClose??this.disableClose,this.transformOriginSelector=t.transformOriginSelector??this.transformOriginSelector,this.hasBackdrop=t.hasBackdrop??this.hasBackdrop,this.lockPosition=t.lockPosition??this.lockPosition,this.flexibleDimensions=t.flexibleDimensions??this.flexibleDimensions,this.growAfterOpen=t.growAfterOpen??this.growAfterOpen,this.push=t.push??this.push,this.disposeOnNavigation=t.disposeOnNavigation??this.disposeOnNavigation,this.usePopover=t.usePopover??this.usePopover,this.matchWidth=t.matchWidth??this.matchWidth}static \u0275fac=function(i){return new(i||o)};static \u0275dir=D({type:o,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",k],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",k],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",k],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",k],push:[2,"cdkConnectedOverlayPush","push",k],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",k],usePopover:[0,"cdkConnectedOverlayUsePopover","usePopover"],matchWidth:[2,"cdkConnectedOverlayMatchWidth","matchWidth",k],_config:[0,"cdkConnectedOverlay","_config"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[ht]})}return o})(),ge=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=P({type:o});static \u0275inj=x({providers:[re],imports:[N,Yt,yt,yt]})}return o})();export{z as a,he as b,F as c,vt as d,wt as e,Y as f,J as g,tt as h,_i as i,Yt as j,Kt as k,kt as l,H as m,oe as n,st as o,xt as p,ne as q,Et as r,Pt as s,Rt as t,_e as u,ge as v};
@@ -0,0 +1 @@
1
+ import{b as a}from"./chunk-MDHGCSE2.js";import"./chunk-DLB34U6L.js";import"./chunk-VH7ZEMCE.js";import"./chunk-COLWSJEP.js";import"./chunk-2X6HKQMK.js";import"./chunk-EGMTTOHU.js";import"./chunk-TQXOFKZO.js";import"./chunk-PUWEEZSA.js";import"./chunk-WXFL4OGQ.js";import"./chunk-ZJV25K6M.js";import"./chunk-GO5IXCK2.js";import"./chunk-3DOXTB6J.js";export{a as NamespaceListComponent};
@@ -1 +1 @@
1
- import{a as B}from"./chunk-ARNZJRTH.js";import{a as G}from"./chunk-AIC4U2MU.js";import{a as K}from"./chunk-74YMXW2X.js";import{a as V}from"./chunk-BPC2QPLU.js";import"./chunk-L43PAPKS.js";import"./chunk-ZGXLG3K2.js";import"./chunk-4ZRHOAVD.js";import{a as N,c as D}from"./chunk-6XQBW7HA.js";import{s as $,z as L}from"./chunk-NVHDXKPX.js";import"./chunk-GPV4WMJB.js";import"./chunk-5OX5N476.js";import{a as d}from"./chunk-NPJSGATI.js";import"./chunk-3SLREHKR.js";import"./chunk-OTQBW2W7.js";import"./chunk-G45KM4GY.js";import{Bb as b,Db as u,Fb as s,Ka as A,Lc as q,Pb as S,S as g,Tb as x,Ub as E,Wa as I,ab as P,ca as n,cc as w,fc as O,ga as l,gc as M,ha as c,jc as T,lb as C,m as f,ma as y,mb as R,rb as v,sb as p,t as _,ta as h,tb as m}from"./chunk-AFIHJVHG.js";var z=()=>[];function W(r,e){if(r&1&&(p(0,"p",3),x(1),m()),r&2){let t=s().$implicit;A(),E(t.name)}}function U(r,e){if(r&1){let t=b();p(0,"agentos-ai-provider-item",5),u("editRequested",function(){let o=l(t),a=s(2);return c(a.onEdit(o))})("deleteRequested",function(){let o=l(t),a=s(2);return c(a.onDelete(o))})("duplicateRequested",function(){let o=l(t),a=s(2);return c(a.onDuplicate(o))}),m()}if(r&2){let t=e,i=s(2);v("config",t.config)("scope",t.scope)("readOnly",t.scope==="platform"||t.scope==="namespace"&&!i.isAdmin())}}function X(r,e){if(r&1&&C(0,W,2,1,"p",3)(1,U,1,3,"agentos-ai-provider-item",4),r&2){let t,i=e.$implicit,o=s();R(o.isEmptyPlaceholder(i.id)?0:(t=o.resolve(i.id))?1:-1,t)}}var k=Object.freeze({platform:"Platform (read-only)",namespace:"AI Providers du namespace",userOnNs:"Mes overrides sur ce namespace",userGlobal:"Mes overrides globaux"}),F="__empty__",j=class r{route=n(N);router=n(D);destroyRef=n(y);state=n(K);namespaceRole=n(V);namespaceId=this.route.snapshot.params.namespaceId;isAdmin=h(!1);listItems$=this.state.vm$.pipe(_(e=>this.toListItems(e)));resolved=new Map;ngOnInit(){this.route.paramMap.pipe(d(this.destroyRef)).subscribe(e=>{let t=e.get("namespaceId")??"";t&&t!==this.namespaceId&&(this.namespaceId=t),this.state.setNamespace(t)}),this.route.paramMap.pipe(_(e=>e.get("namespaceId")??""),g(e=>e?this.namespaceRole.isAdminOfNamespace$(e):f(!1)),d(this.destroyRef)).subscribe(e=>this.isAdmin.set(e)),this.state.vm$.pipe(d(this.destroyRef)).subscribe(e=>{let t=new Map;e.platform.forEach(i=>{i.id&&t.set(this.itemKey("platform",i.id),{config:i,scope:"platform"})}),e.namespace.forEach(i=>{i.id&&t.set(this.itemKey("namespace",i.id),{config:i,scope:"namespace"})}),e.userOnNs.forEach(i=>{i.id&&t.set(this.itemKey("userOnNs",i.id),{config:i,scope:"userOnNs"})}),e.userGlobal.forEach(i=>{i.id&&t.set(this.itemKey("userGlobal",i.id),{config:i,scope:"userGlobal"})}),this.resolved=t})}isEmptyPlaceholder(e){return e.startsWith(F)}resolve(e){return this.resolved.get(e)??null}itemKey(e,t){return`${e}:${t}`}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"ai-providers","new"],{queryParams:{scope:G(this.isAdmin())}})}onEdit(e){let t=e.config.id;t&&this.router.navigate(["/agentos",this.namespaceId,"ai-providers",t,"edit"],{queryParams:{scope:e.scope}})}onDelete(e){let t=e.config.id;t&&this.state.delete(t,e.scope).pipe(d(this.destroyRef)).subscribe({error:i=>{console.error(`[AiProvidersAllScopes] Delete failed for ${e.scope}:${t}:`,i)}})}onDuplicate(e){if(!e.config.id)return;let t=e.scope==="namespace"&&!this.isAdmin()?"userOnNs":e.scope;this.router.navigate(["/agentos",this.namespaceId,"ai-providers","new"],{queryParams:{scope:t,template:e.config.id,templateScope:e.scope}})}toListItems(e){let t=[];return t.push(...this.sectionItems("platform",e.platform)),t.push(...this.sectionItems("namespace",e.namespace)),t.push(...this.sectionItems("userOnNs",e.userOnNs)),t.push(...this.sectionItems("userGlobal",e.userGlobal)),t}sectionItems(e,t){return t.length===0?[{id:`${F}${e}`,name:"Aucun AI Provider",groupKey:e,groupLabel:k[e]}]:t.filter(i=>!!i.id).map(i=>({id:this.itemKey(e,i.id),name:i.name,description:i.apiType,groupKey:e,groupLabel:k[e]}))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=I({type:r,selectors:[["agentos-ai-providers-all-scopes"]],decls:5,vars:6,consts:[["aiProviderItemTpl",""],["title","AI Providers","emptyMessage","No AI providers available.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[1,"ai-providers-all-scopes__empty"],[3,"config","scope","readOnly"],[3,"editRequested","deleteRequested","duplicateRequested","config","scope","readOnly"]],template:function(t,i){if(t&1&&(p(0,"ds-entity-list",1),O(1,"async"),u("createRequested",function(){return i.openCreateForm()}),p(2,"ds-icon-button",2),u("action",function(){return i.goBack()}),m()(),P(3,X,2,1,"ng-template",null,0,T)),t&2){let o=S(4);v("items",M(1,3,i.listItems$)??w(5,z))("showCreate",!0)("itemTemplate",o)}},dependencies:[L,B,$,q],styles:[".ai-providers-all-scopes__empty[_ngcontent-%COMP%]{font-size:.85rem;color:var(--color-text-secondary);padding:.5rem .25rem;margin:0;font-style:italic}"],changeDetection:0})};export{j as AiProvidersAllScopesComponent};
1
+ import{a as G}from"./chunk-AIC4U2MU.js";import{a as K}from"./chunk-2RRKNP4O.js";import{a as B}from"./chunk-OGFIIHAP.js";import{a as V}from"./chunk-EUKRA2OA.js";import"./chunk-JIYGZGAO.js";import"./chunk-NQVAKMAF.js";import"./chunk-VH7ZEMCE.js";import{a as N,c as D}from"./chunk-COLWSJEP.js";import{s as $,z as L}from"./chunk-2X6HKQMK.js";import"./chunk-EGMTTOHU.js";import"./chunk-TQXOFKZO.js";import{a as d}from"./chunk-PUWEEZSA.js";import"./chunk-WXFL4OGQ.js";import"./chunk-ZJV25K6M.js";import"./chunk-GO5IXCK2.js";import{Bb as b,Db as u,Fb as s,Ka as A,Lc as q,Pb as S,S as g,Tb as x,Ub as E,Wa as I,ab as P,ca as n,cc as w,fc as O,ga as l,gc as M,ha as c,jc as T,lb as C,m as f,ma as y,mb as R,rb as v,sb as p,t as _,ta as h,tb as m}from"./chunk-3DOXTB6J.js";var z=()=>[];function W(r,e){if(r&1&&(p(0,"p",3),x(1),m()),r&2){let t=s().$implicit;A(),E(t.name)}}function U(r,e){if(r&1){let t=b();p(0,"agentos-ai-provider-item",5),u("editRequested",function(){let o=l(t),a=s(2);return c(a.onEdit(o))})("deleteRequested",function(){let o=l(t),a=s(2);return c(a.onDelete(o))})("duplicateRequested",function(){let o=l(t),a=s(2);return c(a.onDuplicate(o))}),m()}if(r&2){let t=e,i=s(2);v("config",t.config)("scope",t.scope)("readOnly",t.scope==="platform"||t.scope==="namespace"&&!i.isAdmin())}}function X(r,e){if(r&1&&C(0,W,2,1,"p",3)(1,U,1,3,"agentos-ai-provider-item",4),r&2){let t,i=e.$implicit,o=s();R(o.isEmptyPlaceholder(i.id)?0:(t=o.resolve(i.id))?1:-1,t)}}var k=Object.freeze({platform:"Platform (read-only)",namespace:"AI Providers du namespace",userOnNs:"Mes overrides sur ce namespace",userGlobal:"Mes overrides globaux"}),F="__empty__",j=class r{route=n(N);router=n(D);destroyRef=n(y);state=n(K);namespaceRole=n(V);namespaceId=this.route.snapshot.params.namespaceId;isAdmin=h(!1);listItems$=this.state.vm$.pipe(_(e=>this.toListItems(e)));resolved=new Map;ngOnInit(){this.route.paramMap.pipe(d(this.destroyRef)).subscribe(e=>{let t=e.get("namespaceId")??"";t&&t!==this.namespaceId&&(this.namespaceId=t),this.state.setNamespace(t)}),this.route.paramMap.pipe(_(e=>e.get("namespaceId")??""),g(e=>e?this.namespaceRole.isAdminOfNamespace$(e):f(!1)),d(this.destroyRef)).subscribe(e=>this.isAdmin.set(e)),this.state.vm$.pipe(d(this.destroyRef)).subscribe(e=>{let t=new Map;e.platform.forEach(i=>{i.id&&t.set(this.itemKey("platform",i.id),{config:i,scope:"platform"})}),e.namespace.forEach(i=>{i.id&&t.set(this.itemKey("namespace",i.id),{config:i,scope:"namespace"})}),e.userOnNs.forEach(i=>{i.id&&t.set(this.itemKey("userOnNs",i.id),{config:i,scope:"userOnNs"})}),e.userGlobal.forEach(i=>{i.id&&t.set(this.itemKey("userGlobal",i.id),{config:i,scope:"userGlobal"})}),this.resolved=t})}isEmptyPlaceholder(e){return e.startsWith(F)}resolve(e){return this.resolved.get(e)??null}itemKey(e,t){return`${e}:${t}`}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"ai-providers","new"],{queryParams:{scope:G(this.isAdmin())}})}onEdit(e){let t=e.config.id;t&&this.router.navigate(["/agentos",this.namespaceId,"ai-providers",t,"edit"],{queryParams:{scope:e.scope}})}onDelete(e){let t=e.config.id;t&&this.state.delete(t,e.scope).pipe(d(this.destroyRef)).subscribe({error:i=>{console.error(`[AiProvidersAllScopes] Delete failed for ${e.scope}:${t}:`,i)}})}onDuplicate(e){if(!e.config.id)return;let t=e.scope==="namespace"&&!this.isAdmin()?"userOnNs":e.scope;this.router.navigate(["/agentos",this.namespaceId,"ai-providers","new"],{queryParams:{scope:t,template:e.config.id,templateScope:e.scope}})}toListItems(e){let t=[];return t.push(...this.sectionItems("platform",e.platform)),t.push(...this.sectionItems("namespace",e.namespace)),t.push(...this.sectionItems("userOnNs",e.userOnNs)),t.push(...this.sectionItems("userGlobal",e.userGlobal)),t}sectionItems(e,t){return t.length===0?[{id:`${F}${e}`,name:"Aucun AI Provider",groupKey:e,groupLabel:k[e]}]:t.filter(i=>!!i.id).map(i=>({id:this.itemKey(e,i.id),name:i.name,description:i.apiType,groupKey:e,groupLabel:k[e]}))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=I({type:r,selectors:[["agentos-ai-providers-all-scopes"]],decls:5,vars:6,consts:[["aiProviderItemTpl",""],["title","AI Providers","emptyMessage","No AI providers available.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[1,"ai-providers-all-scopes__empty"],[3,"config","scope","readOnly"],[3,"editRequested","deleteRequested","duplicateRequested","config","scope","readOnly"]],template:function(t,i){if(t&1&&(p(0,"ds-entity-list",1),O(1,"async"),u("createRequested",function(){return i.openCreateForm()}),p(2,"ds-icon-button",2),u("action",function(){return i.goBack()}),m()(),P(3,X,2,1,"ng-template",null,0,T)),t&2){let o=S(4);v("items",M(1,3,i.listItems$)??w(5,z))("showCreate",!0)("itemTemplate",o)}},dependencies:[L,B,$,q],styles:[".ai-providers-all-scopes__empty[_ngcontent-%COMP%]{font-size:.85rem;color:var(--color-text-secondary);padding:.5rem .25rem;margin:0;font-style:italic}"],changeDetection:0})};export{j as AiProvidersAllScopesComponent};
@@ -1,3 +1,3 @@
1
- import{a as He,b as Ge,d as ye,f as Pe}from"./chunk-GDV5ITOI.js";import{a as $e,b as pe,c as Be,d as Ue}from"./chunk-GEWWMLQN.js";import{c as le}from"./chunk-6XQBW7HA.js";import{c as nt}from"./chunk-MQRXQYSE.js";import{h as We,j as Ye}from"./chunk-5FEVTJAS.js";import{a as Xe,b as Qe,d as qe,k as Ze,l as Ke,m as et,n as tt}from"./chunk-GPV4WMJB.js";import{d as Re}from"./chunk-PVCT2NFQ.js";import{a as T,c as P}from"./chunk-NPJSGATI.js";import{a as B,b as U}from"./chunk-3SLREHKR.js";import{D as Je,E as he,c as _e,g as ge,m as ue}from"./chunk-OTQBW2W7.js";import{a as de,b as me}from"./chunk-PXW2NKOT.js";import{E as ze,O as R,S as $,n as Le}from"./chunk-G45KM4GY.js";import{$b as ae,Ab as be,Bb as C,Db as u,Fb as c,Gb as Ve,Ha as J,Hb as De,Jb as te,Ka as d,Kb as ne,Kc as Ae,Lb as ie,Pb as xe,Qb as V,Rb as x,T as I,Tb as l,Ub as y,Vb as Y,Wa as E,Xa as je,Zb as re,_ as Ee,_b as oe,a as k,ab as K,b as H,ca as v,dc as Ne,ec as Fe,ga as m,h as Oe,ha as p,jb as ee,jc as Ie,lb as _,ma as Z,mb as g,mc as se,oa as q,pb as L,qb as z,qc as ce,rb as b,sb as o,t as G,ta as A,tb as a,ua as W,ub as j,z as ke}from"./chunk-AFIHJVHG.js";var it=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=je({type:n});static \u0275inj=Ee({imports:[ze]})}return n})();var mt=(n,t)=>({subThreads:n,depth:t}),pt=n=>({subThreads:n,depth:1}),st=(n,t)=>t.id,_t=(n,t)=>t.label;function gt(n,t){if(n&1){let e=C();o(0,"mat-icon",10),u("click",function(r){m(e);let s=c().$implicit,f=c(3);return p(f.toggleSubThreads(r,s.id))}),l(1),a()}if(n&2){let e=c().$implicit,i=c(3);d(),y(i.isParentExpanded(e.id)?"expand_more":"chevron_right")}}function ut(n,t){n&1&&be(0)}function ht(n,t){if(n&1&&K(0,ut,1,0,"ng-container",11),n&2){let e=c().$implicit,i=c().depth;c();let r=xe(1);b("ngTemplateOutlet",r)("ngTemplateOutletContext",Fe(2,mt,e.subThreads,i+1))}}function ft(n,t){if(n&1){let e=C();o(0,"div",5)(1,"a",6),u("click",function(r){let s=m(e).$implicit;return c(3).selectThread(s.id),p(r.preventDefault())})("keydown.enter",function(r){let s=m(e).$implicit;return c(3).selectThread(s.id),p(r.preventDefault())})("keydown.space",function(r){let s=m(e).$implicit;return c(3).selectThread(s.id),p(r.preventDefault())}),_(2,gt,2,1,"mat-icon",7),o(3,"span",8),l(4),a(),o(5,"span",9),l(6),a()()(),_(7,ht,1,5,"ng-container")}if(n&2){let e,i=t.$implicit,r=c().depth,s=c(2);V("--sub-depth",r),x("current",i.id===((e=s.currentThread())==null?null:e.id)),d(2),g(i.subThreads!=null&&i.subThreads.length?2:-1),d(2),y(i.delegatedAgentName||"Agent"),d(2),y(i.delegatedTask||i.name),d(),g(s.isParentExpanded(i.id)&&(i.subThreads!=null&&i.subThreads.length)?7:-1)}}function Ct(n,t){if(n&1&&L(0,ft,8,8,null,null,st),n&2){let e=t.subThreads;z(e)}}function vt(n,t){n&1&&(o(0,"div",4),j(1,"span",12),o(2,"span",13),l(3,"Loading threads..."),a()())}function bt(n,t){if(n&1&&(o(0,"div",27),l(1),a()),n&2){let e=c(6);d(),y(e.renameErrorMessage)}}function xt(n,t){if(n&1){let e=C();o(0,"div",18)(1,"input",26),ae("ngModelChange",function(r){m(e);let s=c(5);return oe(s.editingThreadName,r)||(s.editingThreadName=r),p(r)}),u("keydown",function(r){m(e);let s=c(5);return p(s.onEditKeydown(r))})("blur",function(){m(e);let r=c(5);return p(r.onEditBlur())})("click",function(r){return r.stopPropagation()}),a(),_(2,bt,2,1,"div",27),a()}if(n&2){let e=c(5);d(),re("ngModel",e.editingThreadName),b("disabled",e.isRenamingThread),d(),g(e.renameErrorMessage?2:-1)}}function yt(n,t){if(n&1){let e=C();o(0,"mat-icon",10),u("click",function(r){m(e);let s=c(2).$implicit,f=c(4);return p(f.toggleSubThreads(r,s.id))}),l(1),a()}if(n&2){let e=c(2).$implicit,i=c(4);d(),y(i.isParentExpanded(e.id)?"expand_more":"chevron_right")}}function Pt(n,t){if(n&1&&(o(0,"span",29),l(1),a()),n&2){let e=c(2).$implicit;d(),y(e.name)}}function St(n,t){n&1&&(j(0,"mat-spinner",31),o(1,"span",32),l(2,"Generating name..."),a()),n&2&&b("diameter",16)}function Mt(n,t){n&1&&(o(0,"mat-icon",30),l(1,"group"),a())}function wt(n,t){if(n&1){let e=C();o(0,"a",28),u("click",function(r){m(e);let s=c().$implicit;return c(4).selectThread(s.id),p(r.preventDefault())})("keydown.enter",function(r){m(e);let s=c().$implicit;return c(4).selectThread(s.id),p(r.preventDefault())})("keydown.space",function(r){m(e);let s=c().$implicit;return c(4).selectThread(s.id),p(r.preventDefault())}),_(1,yt,2,1,"mat-icon",7),_(2,Pt,2,1,"span",29)(3,St,3,1),_(4,Mt,2,0,"mat-icon",30),a()}if(n&2){let e=c().$implicit,i=c(4);b("matTooltip",e.name?e.name+`
1
+ import{a as He,b as Ge,d as ye,f as Pe}from"./chunk-63ETMQRH.js";import{a as $e,b as pe,c as Be,d as Ue}from"./chunk-BZA46IMY.js";import{c as le}from"./chunk-COLWSJEP.js";import{c as nt}from"./chunk-N3OHOQ4Z.js";import{h as We,j as Ye}from"./chunk-B2ZYZID5.js";import{a as Xe,b as Qe,d as qe,k as Ze,l as Ke,m as et,n as tt}from"./chunk-EGMTTOHU.js";import{d as Re}from"./chunk-KTYUC4CA.js";import{a as T,c as P}from"./chunk-PUWEEZSA.js";import{a as B,b as U}from"./chunk-WXFL4OGQ.js";import{D as Je,E as he,c as _e,g as ge,m as ue}from"./chunk-ZJV25K6M.js";import{a as de,b as me}from"./chunk-TCYL6I4G.js";import{E as ze,O as R,S as $,n as Le}from"./chunk-GO5IXCK2.js";import{$b as ae,Ab as be,Bb as C,Db as u,Fb as c,Gb as Ve,Ha as J,Hb as De,Jb as te,Ka as d,Kb as ne,Kc as Ae,Lb as ie,Pb as xe,Qb as V,Rb as x,T as I,Tb as l,Ub as y,Vb as Y,Wa as E,Xa as je,Zb as re,_ as Ee,_b as oe,a as k,ab as K,b as H,ca as v,dc as Ne,ec as Fe,ga as m,h as Oe,ha as p,jb as ee,jc as Ie,lb as _,ma as Z,mb as g,mc as se,oa as q,pb as L,qb as z,qc as ce,rb as b,sb as o,t as G,ta as A,tb as a,ua as W,ub as j,z as ke}from"./chunk-3DOXTB6J.js";var it=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=je({type:n});static \u0275inj=Ee({imports:[ze]})}return n})();var mt=(n,t)=>({subThreads:n,depth:t}),pt=n=>({subThreads:n,depth:1}),st=(n,t)=>t.id,_t=(n,t)=>t.label;function gt(n,t){if(n&1){let e=C();o(0,"mat-icon",10),u("click",function(r){m(e);let s=c().$implicit,f=c(3);return p(f.toggleSubThreads(r,s.id))}),l(1),a()}if(n&2){let e=c().$implicit,i=c(3);d(),y(i.isParentExpanded(e.id)?"expand_more":"chevron_right")}}function ut(n,t){n&1&&be(0)}function ht(n,t){if(n&1&&K(0,ut,1,0,"ng-container",11),n&2){let e=c().$implicit,i=c().depth;c();let r=xe(1);b("ngTemplateOutlet",r)("ngTemplateOutletContext",Fe(2,mt,e.subThreads,i+1))}}function ft(n,t){if(n&1){let e=C();o(0,"div",5)(1,"a",6),u("click",function(r){let s=m(e).$implicit;return c(3).selectThread(s.id),p(r.preventDefault())})("keydown.enter",function(r){let s=m(e).$implicit;return c(3).selectThread(s.id),p(r.preventDefault())})("keydown.space",function(r){let s=m(e).$implicit;return c(3).selectThread(s.id),p(r.preventDefault())}),_(2,gt,2,1,"mat-icon",7),o(3,"span",8),l(4),a(),o(5,"span",9),l(6),a()()(),_(7,ht,1,5,"ng-container")}if(n&2){let e,i=t.$implicit,r=c().depth,s=c(2);V("--sub-depth",r),x("current",i.id===((e=s.currentThread())==null?null:e.id)),d(2),g(i.subThreads!=null&&i.subThreads.length?2:-1),d(2),y(i.delegatedAgentName||"Agent"),d(2),y(i.delegatedTask||i.name),d(),g(s.isParentExpanded(i.id)&&(i.subThreads!=null&&i.subThreads.length)?7:-1)}}function Ct(n,t){if(n&1&&L(0,ft,8,8,null,null,st),n&2){let e=t.subThreads;z(e)}}function vt(n,t){n&1&&(o(0,"div",4),j(1,"span",12),o(2,"span",13),l(3,"Loading threads..."),a()())}function bt(n,t){if(n&1&&(o(0,"div",27),l(1),a()),n&2){let e=c(6);d(),y(e.renameErrorMessage)}}function xt(n,t){if(n&1){let e=C();o(0,"div",18)(1,"input",26),ae("ngModelChange",function(r){m(e);let s=c(5);return oe(s.editingThreadName,r)||(s.editingThreadName=r),p(r)}),u("keydown",function(r){m(e);let s=c(5);return p(s.onEditKeydown(r))})("blur",function(){m(e);let r=c(5);return p(r.onEditBlur())})("click",function(r){return r.stopPropagation()}),a(),_(2,bt,2,1,"div",27),a()}if(n&2){let e=c(5);d(),re("ngModel",e.editingThreadName),b("disabled",e.isRenamingThread),d(),g(e.renameErrorMessage?2:-1)}}function yt(n,t){if(n&1){let e=C();o(0,"mat-icon",10),u("click",function(r){m(e);let s=c(2).$implicit,f=c(4);return p(f.toggleSubThreads(r,s.id))}),l(1),a()}if(n&2){let e=c(2).$implicit,i=c(4);d(),y(i.isParentExpanded(e.id)?"expand_more":"chevron_right")}}function Pt(n,t){if(n&1&&(o(0,"span",29),l(1),a()),n&2){let e=c(2).$implicit;d(),y(e.name)}}function St(n,t){n&1&&(j(0,"mat-spinner",31),o(1,"span",32),l(2,"Generating name..."),a()),n&2&&b("diameter",16)}function Mt(n,t){n&1&&(o(0,"mat-icon",30),l(1,"group"),a())}function wt(n,t){if(n&1){let e=C();o(0,"a",28),u("click",function(r){m(e);let s=c().$implicit;return c(4).selectThread(s.id),p(r.preventDefault())})("keydown.enter",function(r){m(e);let s=c().$implicit;return c(4).selectThread(s.id),p(r.preventDefault())})("keydown.space",function(r){m(e);let s=c().$implicit;return c(4).selectThread(s.id),p(r.preventDefault())}),_(1,yt,2,1,"mat-icon",7),_(2,Pt,2,1,"span",29)(3,St,3,1),_(4,Mt,2,0,"mat-icon",30),a()}if(n&2){let e=c().$implicit,i=c(4);b("matTooltip",e.name?e.name+`
2
2
 
3
3
  `+(e.summary||""):e.summary||"")("matTooltipDisabled",!e.summary),d(),g(e.subThreads!=null&&e.subThreads.length?1:-1),d(),g(e.name?2:3),d(2),g(i.isSharedThread(e)?4:-1)}}function Tt(n,t){if(n&1){let e=C();o(0,"button",33),u("click",function(r){m(e);let s=c().$implicit,f=c(4);return p(f.startEditingThreadName(r,s))}),o(1,"mat-icon"),l(2,"edit"),a()()}}function Ot(n,t){if(n&1){let e=C();o(0,"button",34),u("click",function(r){m(e);let s=c().$implicit,f=c(4);return p(f.markActive(r,s))}),o(1,"mat-icon"),l(2,"replay"),a()()}}function kt(n,t){if(n&1){let e=C();o(0,"button",35),u("click",function(r){m(e);let s=c().$implicit,f=c(4);return p(f.markDone(r,s))}),o(1,"mat-icon"),l(2,"check_circle_outline"),a()()}}function Et(n,t){n&1&&be(0)}function jt(n,t){if(n&1&&K(0,Et,1,0,"ng-container",11),n&2){let e=c().$implicit;c(3);let i=xe(1);b("ngTemplateOutlet",i)("ngTemplateOutletContext",Ne(2,pt,e.subThreads))}}function Vt(n,t){if(n&1){let e=C();o(0,"div",17),_(1,xt,3,3,"div",18)(2,wt,5,5,"a",19),o(3,"div",20),_(4,Tt,3,0,"button",21),_(5,Ot,3,0,"button",22)(6,kt,3,0,"button",23),o(7,"button",24),u("click",function(r){let s=m(e).$implicit,f=c(4);return p(f.toggleStar(r,s))}),o(8,"mat-icon"),l(9),a()(),o(10,"button",25),u("click",function(r){let s=m(e).$implicit,f=c(4);return p(f.deleteThread(r,s))}),o(11,"mat-icon"),l(12,"delete"),a()()()(),_(13,jt,1,4,"ng-container")}if(n&2){let e,i=t.$implicit,r=c(4);x("current",i.id===((e=r.currentThread())==null?null:e.id)),d(),g(r.editingThreadId===i.id?1:2),d(3),g(r.editingThreadId!==i.id&&i.name?4:-1),d(),g(i.closedByUser?5:6),d(2),x("starred",r.isStarred(i)),b("title",r.isStarred(i)?"Unstar thread":"Star thread"),d(2),y(r.isStarred(i)?"star":"star_outline"),d(4),g(r.isParentExpanded(i.id)&&(i.subThreads!=null&&i.subThreads.length)?13:-1)}}function Dt(n,t){if(n&1&&(o(0,"div",14)(1,"div",16),l(2),a(),L(3,Vt,14,10,null,null,st),a()),n&2){let e=t.$implicit;d(2),y(e.label),d(),z(e.threads)}}function Nt(n,t){n&1&&(o(0,"div",15),l(1,"No existing threads"),a())}function Ft(n,t){if(n&1&&(o(0,"div",15),l(1),a()),n&2){let e=c(3);d(),Y('No threads matching "',e.searchQuery(),'"')}}function It(n,t){if(n&1&&(L(0,Dt,5,1,"div",14,_t),_(2,Nt,2,0,"div",15)(3,Ft,2,1,"div",15)),n&2){let e,i=c(2);z(i.getGroupedThreads()),d(2),g(!((e=i.threads())!=null&&e.length)&&!i.searchQuery()?2:i.searchQuery()&&i.getGroupedThreads().length===0?3:-1)}}function At(n,t){if(n&1&&(K(0,Ct,2,0,"ng-template",null,0,Ie),o(2,"div",3),_(3,vt,4,0,"div",4)(4,It,4,1),a()),n&2){let e=c();d(3),g(e.isLoadingThreadList()?3:4)}}function Lt(n,t){n&1&&(o(0,"span",36),l(1,"No project selected"),a())}function zt(n,t){n&1&&(o(0,"span",36),l(1,"Loading..."),a())}function Rt(n,t){if(n&1&&(o(0,"div",2),_(1,Lt,2,0,"span",36)(2,zt,2,0,"span",36),a()),n&2){let e,i=c();d(),g((e=i.currentProject())!=null&&e.name?2:1)}}var fe=class n{projects=null;searchMode=!1;searchQuery=ce("");searchModeChange=new q;threadSelected=new q;projectStateService=v(me);threadStateService=v(pe);threadApiService=v($e);userService=v(Be);router=v(le);destroyRef=v(Z);currentThread=P(this.threadStateService.selectedThread$);currentProject=P(this.projectStateService.selectedProject$);threads=P(this.threadStateService.threadList$);isLoadingThreadList=P(this.threadStateService.isLoadingThreadList$);username=P(this.userService.username$);isTouchDevice="ontouchstart"in window||navigator.maxTouchPoints>0;editingThreadId=null;editingThreadName="";isRenamingThread=!1;renameErrorMessage="";expandedParents=new Set;constructor(){W(()=>{let t=this.currentThread()?.id,e=this.threads();if(!t||!e?.length)return;let i=new Map;for(let s of e)s.parentThreadId&&i.set(s.id,s.parentThreadId);let r=t;for(;r;){let s=i.get(r);s&&this.expandedParents.add(s),r=s}})}ngOnInit(){this.userService.fetchCurrentUser().subscribe({error:t=>{console.error("[THREAD-SELECTOR] Failed to load current user:",t)}})}selectThread(t){this.threadStateService.selectThread(t),this.threadSelected.emit(),this.router.navigate(["project",this.currentProject()?.name,"thread",t])}getGroupedThreads(){let t=this.threads();if(!t?.length)return[];let e=new Set(t.map(h=>h.id)),i=t.filter(h=>!h.parentThreadId),r=t.filter(h=>!!h.parentThreadId),s=r.filter(h=>!e.has(h.parentThreadId)),f=r.filter(h=>e.has(h.parentThreadId)),D=new Map;for(let h of f){let S=h.parentThreadId;D.has(S)||D.set(S,[]),D.get(S).push(h)}let X=h=>(D.get(h)||[]).sort((w,O)=>w.modifiedDate>O.modifiedDate?-1:1).map(w=>H(k({},w),{subThreads:X(w.id)})),N=[...i,...s];if(this.searchQuery()&&this.searchQuery().trim()){let h=this.searchQuery().toLowerCase().trim();N=N.filter(S=>S.name.toLowerCase().includes(h)||S.summary&&S.summary.toLowerCase().includes(h))}if(!N.length)return[];let F=this.username();if(!F)return[];let Me=N.map(h=>H(k({},h),{subThreads:X(h.id)})),we=Me.filter(h=>h.starring&&h.starring.includes(F)),lt=Me.filter(h=>!h.starring||!h.starring.includes(F)),Q=new Map,Te=new Date;Te.setHours(0,0,0,0);for(let h of lt){let S=new Date(h.modifiedDate);S.setHours(0,0,0,0);let w=Te.getTime()-S.getTime(),O=Math.floor(w/(1e3*60*60*24)),M;O===0?M="Today":O===1?M="Yesterday":O<7?M="This Week":O<30?M="This Month":O<90?M="Last 3 Months":M="Older",Q.has(M)||Q.set(M,[]),Q.get(M).push(h)}let ve=[];if(we.length>0){let h=[...we].sort((S,w)=>S.modifiedDate>w.modifiedDate?-1:1);ve.push({label:"Starred",threads:h})}return["Today","Yesterday","This Week","This Month","Last 3 Months","Older"].filter(h=>Q.has(h)).forEach(h=>{ve.push({label:h,threads:Q.get(h)})}),ve}isParentExpanded(t){return this.expandedParents.has(t)}toggleSubThreads(t,e){t.stopPropagation(),this.expandedParents.has(e)?this.expandedParents.delete(e):this.expandedParents.add(e)}isSubThread(t){return!!t.parentThreadId}isSharedThread(t){return t.users&&t.users.length>1}isStarred(t){let e=this.username();return!!e&&t.starring&&t.starring.includes(e)}toggleStar(t,e){t.stopPropagation();let i=this.username();if(!i)return;let r=e.starring&&e.starring.includes(i),s=r?this.threadApiService.unstarThread(e.id):this.threadApiService.starThread(e.id);this.threadStateService.updateStarLocal(e.id,!r,i),s.pipe(T(this.destroyRef)).subscribe({next:()=>{},error:f=>{console.error("Error toggling star:",f),this.threadStateService.refreshThreadList()}})}markDone(t,e){t.stopPropagation(),this.threadStateService.markDone(e.id)}markActive(t,e){t.stopPropagation(),this.threadStateService.markActive(e.id)}deleteThread(t,e){t.stopPropagation();let i=this.currentProject()?.name;!i||!confirm(`Are you sure you want to delete the thread "${e.name}"?`)||this.threadApiService.deleteThread(e.id).subscribe({next:()=>{this.currentThread()?.id===e.id&&(this.threadStateService.clearSelection(),this.router.navigate(["project",i])),this.threadStateService.refreshThreadList()},error:s=>{console.error("Error deleting thread:",s),alert("Failed to delete thread. Please try again.")}})}formatDate(t){try{let e=new Date(t),r=new Date().getTime()-e.getTime(),s=Math.floor(r/(1e3*60*60*24));return s===0?"Today":s===1?"Yesterday":s<7?`${s} days ago`:e.toLocaleDateString("en-EN",{day:"numeric",month:"short"})}catch(e){return"No date"}}startEditingThreadName(t,e){t.stopPropagation(),this.editingThreadId=e.id,this.editingThreadName=e.name||"",this.renameErrorMessage="",setTimeout(()=>{let i=document.querySelector(".thread-name-input");i&&(i.focus(),i.select())},0)}cancelEditingThreadName(){this.editingThreadId=null,this.editingThreadName="",this.renameErrorMessage=""}saveThreadName(t){if(t&&t.stopPropagation(),!this.editingThreadId)return;let e=this.editingThreadName.trim();if(!e){this.renameErrorMessage="Thread name cannot be empty";return}if(e.length>200){this.renameErrorMessage="Thread name is too long (max 200 characters)";return}let i=this.editingThreadId;this.isRenamingThread=!0,this.renameErrorMessage="",this.threadStateService.renameThread(i,e).subscribe({next:()=>{console.log("[THREAD-SELECTOR] Thread renamed successfully"),this.cancelEditingThreadName(),this.isRenamingThread=!1},error:r=>{console.error("[THREAD-SELECTOR] Error renaming thread:",r),this.renameErrorMessage=r.message||"Failed to rename thread",this.isRenamingThread=!1}})}onEditKeydown(t){t.key==="Enter"?(t.preventDefault(),t.stopPropagation(),this.saveThreadName()):t.key==="Escape"&&(t.preventDefault(),t.stopPropagation(),this.cancelEditingThreadName())}onEditBlur(){setTimeout(()=>{this.editingThreadId&&!this.isRenamingThread&&this.saveThreadName()},200)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=E({type:n,selectors:[["app-thread-selector"]],inputs:{searchMode:"searchMode",searchQuery:[1,"searchQuery"]},outputs:{searchModeChange:"searchModeChange",threadSelected:"threadSelected"},decls:3,vars:1,consts:[["subThreadTemplate",""],["tabindex","0","role","application","aria-label","Thread selector",1,"thread-selector",3,"click","keydown"],[1,"thread-disabled"],["role","menu","aria-label","Thread selection",1,"thread-list"],[1,"thread-loading"],[1,"thread-item-wrapper","sub-thread"],["role","menuitem","tabindex","0",1,"thread-item","sub-thread-item",3,"click","keydown.enter","keydown.space"],[1,"sub-thread-toggle"],[1,"sub-thread-agent"],[1,"sub-thread-task"],[1,"sub-thread-toggle",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"loading-spinner"],[1,"loading-text"],[1,"thread-group"],[1,"thread-empty"],[1,"thread-group-header"],[1,"thread-item-wrapper"],[1,"thread-name-edit-wrapper"],["matTooltipShowDelay","1000","role","menuitem","tabindex","0",1,"thread-item",3,"matTooltip","matTooltipDisabled"],[1,"action-buttons"],["mat-icon-button","","title","Rename thread","type","button",1,"action-button","edit-button"],["mat-icon-button","","title","Mark as active","type","button",1,"action-button","mark-active-button"],["mat-icon-button","","title","Mark as done","type","button",1,"action-button","mark-done-button"],["mat-icon-button","","type","button",1,"action-button","star-button",3,"click","title"],["mat-icon-button","","title","Delete thread","type","button",1,"action-button","delete-button",3,"click"],["type","text","maxlength","200",1,"thread-name-input",3,"ngModelChange","keydown","blur","click","ngModel","disabled"],[1,"rename-error"],["matTooltipShowDelay","1000","role","menuitem","tabindex","0",1,"thread-item",3,"click","keydown.enter","keydown.space","matTooltip","matTooltipDisabled"],[1,"thread-name"],["matTooltip","Shared thread",1,"shared-indicator"],[1,"thread-name-spinner",3,"diameter"],[1,"thread-name","thread-name-generating"],["mat-icon-button","","title","Rename thread","type","button",1,"action-button","edit-button",3,"click"],["mat-icon-button","","title","Mark as active","type","button",1,"action-button","mark-active-button",3,"click"],["mat-icon-button","","title","Mark as done","type","button",1,"action-button","mark-done-button",3,"click"],[1,"disabled-text"]],template:function(e,i){if(e&1&&(o(0,"div",1),u("click",function(s){return s.stopPropagation()})("keydown",function(s){return s.stopPropagation()}),_(1,At,5,1)(2,Rt,3,1,"div",2),a()),e&2){let r;d(),g((r=i.currentProject())!=null&&r.name?1:2)}},dependencies:[Ae,he,_e,ge,Je,ue,U,B,$,R,Ye,We,Ge,He,Qe,Xe],styles:[".thread-selector[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%;flex:1;min-height:0;overflow-x:hidden;overflow-y:auto}.thread-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:0;max-height:none;overflow:visible}.thread-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin-bottom:.5rem}.thread-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.thread-group-header[_ngcontent-%COMP%]{padding:.5rem 1rem .25rem;font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);z-index:1}.thread-item-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center;position:relative;width:100%;border-radius:0;min-width:0;gap:.25rem}.thread-item-wrapper[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.thread-item-wrapper[_ngcontent-%COMP%]:hover .action-buttons[_ngcontent-%COMP%]{display:flex}.thread-item-wrapper.current[_ngcontent-%COMP%]{background:var(--color-primary-light)}.thread-item-wrapper.current[_ngcontent-%COMP%] .thread-item[_ngcontent-%COMP%]{color:var(--color-primary-text);font-weight:600}.thread-item[_ngcontent-%COMP%]{display:flex;align-items:center;flex:1;min-width:0;padding:.75rem 1rem;text-decoration:none;cursor:pointer;transition:all .2s ease;background:transparent;border:none;border-radius:0;color:var(--color-text);text-align:left;justify-content:flex-start}.thread-item.new-thread-item[_ngcontent-%COMP%]{margin-bottom:.25rem}.thread-item[_ngcontent-%COMP%]:hover{color:var(--color-primary)}.thread-item[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.action-buttons[_ngcontent-%COMP%]{display:none;align-items:center;gap:.25rem;flex-shrink:0;margin-right:.5rem}.thread-item-wrapper[_ngcontent-%COMP%]:hover .action-buttons[_ngcontent-%COMP%], .thread-item-wrapper.current[_ngcontent-%COMP%] .action-buttons[_ngcontent-%COMP%]{display:flex}.action-button[_ngcontent-%COMP%]{flex-shrink:0;border-radius:4px!important;width:28px!important;height:28px!important;padding:0!important}.action-button[_ngcontent-%COMP%] .mat-mdc-button-persistent-ripple{border-radius:4px!important}.action-button[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)!important}.action-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}.action-button.edit-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}.action-button.edit-button[_ngcontent-%COMP%]:hover{background-color:var(--color-primary-hover)!important}.action-button.edit-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{color:var(--color-primary)}.action-button.star-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{transition:color .2s ease}.action-button.star-button.starred[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#fbbf24}.action-button.star-button[_ngcontent-%COMP%]:not(.starred):hover mat-icon[_ngcontent-%COMP%]{color:#fbbf24}.action-button.delete-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{color:#ef4444}.action-button.mark-done-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{color:#22c55e}.action-button.mark-active-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{color:var(--color-primary)}.thread-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;background:transparent;border:none;text-decoration:none;cursor:pointer;transition:all .2s ease;gap:.5rem;font-size:.875rem;font-weight:400;padding:0 1rem;min-width:0}.thread-link[_ngcontent-%COMP%]:hover:not(.new-thread-link){color:var(--color-primary-hover, var(--color-primary));text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}.thread-link[_ngcontent-%COMP%]:focus{outline:2px solid var(--color-primary);outline-offset:2px}.thread-link.new-thread-link[_ngcontent-%COMP%]{margin-bottom:.5rem;font-weight:600;font-size:.95rem}.thread-link.new-thread-link[_ngcontent-%COMP%] .thread-name[_ngcontent-%COMP%]{background:linear-gradient(90deg,var(--color-primary, #3b82f6) 0%,var(--color-accent, #8b5cf6) 50%,var(--color-primary, #3b82f6) 100%);background-size:200% auto;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:_ngcontent-%COMP%_gradientShift 3s ease-in-out infinite}.thread-link.new-thread-link[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--color-primary);animation:_ngcontent-%COMP%_iconPulse 3s ease-in-out infinite}.thread-link.new-thread-link[_ngcontent-%COMP%]:hover{transform:translate(4px)}.thread-link.new-thread-link[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_iconPulse 1.5s ease-in-out infinite}.thread-link[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px}@keyframes _ngcontent-%COMP%_gradientShift{0%{background-position:0 center}50%{background-position:100% center}to{background-position:0 center}}@keyframes _ngcontent-%COMP%_iconPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.thread-name[_ngcontent-%COMP%]{flex:1;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.thread-name.thread-name-generating[_ngcontent-%COMP%]{color:var(--color-text-muted);font-style:italic}.thread-name-edit-wrapper[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;padding:0 .5rem}.thread-name-input[_ngcontent-%COMP%]{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:.9rem;font-family:inherit}.thread-name-input[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f61a}.thread-name-input[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:not-allowed}.rename-error[_ngcontent-%COMP%]{color:var(--color-error);font-size:.75rem;margin-top:.25rem;padding-left:.5rem}.thread-name-spinner[_ngcontent-%COMP%]{flex-shrink:0;margin-right:.5rem}.thread-name-spinner[_ngcontent-%COMP%] .mat-mdc-progress-spinner circle{stroke:var(--color-primary)!important}.current-indicator[_ngcontent-%COMP%]{color:var(--color-success);font-weight:700;flex-shrink:0;font-size:1rem}.thread-separator[_ngcontent-%COMP%]{height:1px;background:var(--color-border);margin:.25rem 0}.thread-empty[_ngcontent-%COMP%]{padding:1.5rem 1rem;text-align:center;color:var(--color-text-muted);font-size:.8rem;font-style:italic}.thread-loading[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;gap:.75rem}.thread-loading[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%]{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite}.thread-loading[_ngcontent-%COMP%] .loading-text[_ngcontent-%COMP%]{color:var(--color-text-muted);font-size:.8rem}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.thread-disabled[_ngcontent-%COMP%]{padding:1.5rem 1rem}.thread-disabled[_ngcontent-%COMP%] .disabled-text[_ngcontent-%COMP%]{display:block;color:var(--color-text-muted);font-size:.85rem;font-style:italic;text-align:center}.thread-item-wrapper.sub-thread[_ngcontent-%COMP%]{padding-left:calc(.2rem + var(--sub-depth, 1) * 1.5rem);border-left:2px solid var(--color-primary, #3b82f6);margin-left:.75rem}.thread-item-wrapper.sub-thread[_ngcontent-%COMP%] .sub-thread-item[_ngcontent-%COMP%]{padding:.35rem .5rem .35rem 0;gap:.2rem;font-size:.8rem;color:var(--color-text-secondary)}.thread-item-wrapper.sub-thread[_ngcontent-%COMP%] .sub-thread-item[_ngcontent-%COMP%]:hover{color:var(--color-primary)}.thread-item-wrapper.sub-thread[_ngcontent-%COMP%] .sub-thread-agent[_ngcontent-%COMP%]{font-weight:600;color:var(--color-primary);white-space:nowrap;flex-shrink:0;font-size:.8rem}.thread-item-wrapper.sub-thread[_ngcontent-%COMP%] .sub-thread-task[_ngcontent-%COMP%]{color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.75rem}.sub-thread-toggle[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px;flex-shrink:0;cursor:pointer;color:var(--color-text-secondary);margin-right:.25rem}.sub-thread-toggle[_ngcontent-%COMP%]:hover{color:var(--color-primary)}.shared-indicator[_ngcontent-%COMP%]{font-size:14px;width:14px;height:14px;color:var(--color-text-secondary);flex-shrink:0;margin-left:.25rem}@media(max-width:768px){.thread-item[_ngcontent-%COMP%]{padding:.6rem .8rem}.thread-name[_ngcontent-%COMP%]{font-size:.8rem}}"]})};var $t=["logsContent"],Bt=(n,t)=>t.name;function Ut(n,t){if(n&1){let e=C();o(0,"button",12),u("click",function(){m(e);let r=c().$implicit,s=c();return p(s.start(r.name))}),o(1,"mat-icon"),l(2,"play_arrow"),a()()}if(n&2){let e=c().$implicit;b("disabled",e.isLoading)}}function Xt(n,t){if(n&1){let e=C();o(0,"button",13),u("click",function(){m(e);let r=c().$implicit,s=c();return p(s.stop(r.name))}),o(1,"mat-icon"),l(2,"stop"),a()()}if(n&2){let e=c().$implicit;b("disabled",e.isLoading)}}function Qt(n,t){if(n&1&&(o(0,"a",8)(1,"mat-icon",14),l(2,"open_in_new"),a()()),n&2){let e=c().$implicit;b("href",e.url,J)("title",e.url)}}function Ht(n,t){if(n&1&&(o(0,"div",15),l(1),a()),n&2){let e=c(),i=e.$implicit,r=e.$index;V("order",r*2),d(),y(i.errorMessage)}}function Gt(n,t){if(n&1){let e=C();o(0,"button",21),u("click",function(){m(e);let r=c(3);return p(r.onManualRefresh())}),o(1,"mat-icon"),l(2,"refresh"),a()()}}function qt(n,t){if(n&1&&(o(0,"div",16)(1,"div",17)(2,"span",18),l(3),a(),_(4,Gt,3,0,"button",19),a(),o(5,"pre",20,0),l(7),a()()),n&2){let e=c(),i=e.$implicit,r=e.$index,s=c();V("order",r*2+1),d(3),Y("",i.name," logs"),d(),g(i.status==="running"?4:-1),d(3),y(s.logs()||"(empty)")}}function Wt(n,t){if(n&1){let e=C();o(0,"div",2)(1,"span",3),l(2),a(),o(3,"div",4),_(4,Ut,3,1,"button",5)(5,Xt,3,1,"button",6),o(6,"span",7),l(7),a(),_(8,Qt,3,2,"a",8),o(9,"button",9),u("click",function(){let r=m(e).$implicit,s=c();return p(s.toggleLogs(r.name))}),o(10,"mat-icon"),l(11),a()()()(),_(12,Ht,2,3,"div",10),_(13,qt,8,5,"div",11)}if(n&2){let e=t.$implicit,i=t.$index,r=c();V("order",i*2),d(2),y(e.name),d(2),g(e.status==="stopped"?4:5),d(2),x("running",e.status==="running"),d(),Y(" ",e.status==="running"?"Running":"Stopped"," "),d(),g(e.url?8:-1),d(),b("title",r.logsOpenFor()===e.name?"Hide logs":"Show logs"),d(2),y(r.logsOpenFor()===e.name?"expand_less":"terminal"),d(),g(e.errorMessage?12:-1),d(),g(r.logsOpenFor()===e.name?13:-1)}}var Ce=class n{destroyRef=v(Z);projectApi=v(de);projectName=ce.required();entryStates=A([]);hasPreview=se(()=>this.entryStates().length>0);logsOpenFor=A(null);logs=A("");logsContent;logsPollTimer=null;logsTimeoutTimer=null;static LOGS_POLL_MS=5e3;static LOGS_TIMEOUT_MS=1200*1e3;constructor(){W(()=>{let t=this.projectName();t&&this.onProjectChanged(t)},{allowSignalWrites:!0}),W(()=>{console.log("entry states",this.entryStates())})}ngOnDestroy(){this.stopLogPolling()}onProjectChanged(t){this.stopLogPolling(),this.entryStates.set([]),this.logsOpenFor.set(null),this.logs.set(""),this.projectApi.getPreviewEntries(t).pipe(T(this.destroyRef)).subscribe({next:e=>{let i=e.entries;if(i.length===0)return;let r=i.map(f=>({name:f.name,command:f.command,url:f.url,status:"stopped",isLoading:!1,errorMessage:""}));this.entryStates.set(r);let s=i.map(f=>this.projectApi.getPreviewStatus(t,f.name));ke(s).pipe(T(this.destroyRef)).subscribe({next:f=>{this.entryStates.update(D=>D.map((X,N)=>{let F=f[N];return F?H(k({},X),{status:F.status}):X}))},error:()=>{}})},error:()=>{}})}start(t){this.updateEntry(t,{isLoading:!0,errorMessage:""}),this.projectApi.startPreview(this.projectName(),t).pipe(T(this.destroyRef)).subscribe({next:e=>{this.updateEntry(t,{status:e.status,isLoading:!1})},error:e=>{this.updateEntry(t,{errorMessage:e?.error?.error??"Failed to start preview",isLoading:!1})}})}stop(t){this.updateEntry(t,{isLoading:!0,errorMessage:""}),this.projectApi.stopPreview(this.projectName(),t).pipe(T(this.destroyRef)).subscribe({next:()=>{this.updateEntry(t,{status:"stopped",isLoading:!1}),this.logsOpenFor()===t&&this.stopLogPolling()},error:e=>{this.updateEntry(t,{errorMessage:e?.error?.error??"Failed to stop preview",isLoading:!1})}})}toggleLogs(t){this.logsOpenFor()===t?(this.logsOpenFor.set(null),this.logs.set(""),this.stopLogPolling()):(this.logsOpenFor.set(t),this.refreshLogs(),this.startLogPolling())}onManualRefresh(){this.refreshLogs(),this.logsPollTimer&&this.resetLogsTimeout()}refreshLogs(){let t=this.logsOpenFor();t&&this.projectApi.getPreviewLogs(this.projectName(),t).pipe(T(this.destroyRef)).subscribe({next:e=>{this.logs.set(e.logs),this.scrollLogsToBottom()},error:()=>this.logs.set("(failed to load logs)")})}updateEntry(t,e){this.entryStates.update(i=>i.map(r=>r.name===t?k(k({},r),e):r))}startLogPolling(){this.stopLogPolling(),this.logsPollTimer=setInterval(()=>{this.logsOpenFor()?this.refreshLogs():this.stopLogPolling()},n.LOGS_POLL_MS),this.resetLogsTimeout()}stopLogPolling(){this.logsPollTimer&&(clearInterval(this.logsPollTimer),this.logsPollTimer=null),this.logsTimeoutTimer&&(clearTimeout(this.logsTimeoutTimer),this.logsTimeoutTimer=null)}resetLogsTimeout(){this.logsTimeoutTimer&&clearTimeout(this.logsTimeoutTimer),this.logsTimeoutTimer=setTimeout(()=>{this.stopLogPolling()},n.LOGS_TIMEOUT_MS)}scrollLogsToBottom(){setTimeout(()=>{let t=this.logsContent?.nativeElement;t&&(t.scrollTop=t.scrollHeight)})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=E({type:n,selectors:[["app-preview-panel"]],viewQuery:function(e,i){if(e&1&&te($t,5),e&2){let r;ne(r=ie())&&(i.logsContent=r.first)}},inputs:{projectName:[1,"projectName"]},decls:3,vars:0,consts:[["logsContent",""],[1,"preview-panel"],[1,"entry-row"],[1,"entry-name"],[1,"entry-actions"],["mat-icon-button","","title","Start","type","button",1,"entry-btn","start",3,"disabled"],["mat-icon-button","","title","Stop","type","button",1,"entry-btn","stop",3,"disabled"],[1,"status-pill"],["target","_blank","rel","noopener noreferrer",1,"preview-url",3,"href","title"],["mat-icon-button","","type","button",1,"entry-btn","logs",3,"click","title"],[1,"preview-error",3,"order"],[1,"logs-container",3,"order"],["mat-icon-button","","title","Start","type","button",1,"entry-btn","start",3,"click","disabled"],["mat-icon-button","","title","Stop","type","button",1,"entry-btn","stop",3,"click","disabled"],[1,"link-icon"],[1,"preview-error"],[1,"logs-container"],[1,"logs-header"],[1,"logs-title"],["mat-icon-button","","title","Refresh logs","type","button",1,"entry-btn"],[1,"logs-content"],["mat-icon-button","","title","Refresh logs","type","button",1,"entry-btn",3,"click"]],template:function(e,i){e&1&&(o(0,"div",1),L(1,Wt,14,12,null,null,Bt),a()),e&2&&(d(),z(i.entryStates()))},dependencies:[$,R,U,B],styles:["[_nghost-%COMP%]{display:block}.preview-panel[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:.25rem 0}.entry-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;padding:.125rem .5rem;min-height:36px}.entry-name[_ngcontent-%COMP%]{font-size:.82rem;font-weight:500;color:var(--on-surface, #e0e0e0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.entry-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.entry-btn[_ngcontent-%COMP%]{width:28px!important;height:28px!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center;flex-shrink:0}.entry-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;line-height:18px}.entry-btn.start[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--color-primary)}.entry-btn.stop[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#e53935}.entry-btn.logs[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px;line-height:16px;color:var(--color-text-secondary)}.entry-btn[disabled][_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.status-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;padding:1px 6px;border-radius:12px;font-size:.68rem;font-weight:600;letter-spacing:.02em;flex-shrink:0;min-width:52px;text-align:center;background:var(--color-bg-hover);color:var(--color-text-secondary);border:1px solid var(--color-border)}.status-pill.running[_ngcontent-%COMP%]{background:#22c55e26;color:#16a34a;border-color:#22c55e66}.preview-url[_ngcontent-%COMP%]{display:inline-flex;align-items:center;text-decoration:none;color:var(--color-primary);flex-shrink:0}.preview-url[_ngcontent-%COMP%]:hover{text-decoration:underline}.preview-url[_ngcontent-%COMP%] .link-icon[_ngcontent-%COMP%]{font-size:14px;width:14px;height:14px}.preview-error[_ngcontent-%COMP%]{font-size:.75rem;color:#c00;padding:0 .75rem}.logs-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;margin:.125rem .5rem .25rem;background:var(--color-bg-hover);border-radius:8px;overflow:hidden;border:1px solid var(--color-border)}.logs-header[_ngcontent-%COMP%]{display:flex;align-items:center;padding:.25rem .75rem;border-bottom:1px solid var(--color-border)}.logs-header[_ngcontent-%COMP%] .logs-title[_ngcontent-%COMP%]{flex:1;font-size:.72rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.logs-content[_ngcontent-%COMP%]{margin:0;padding:.5rem .75rem;font-family:Courier New,Courier,monospace;font-size:.72rem;line-height:1.5;color:var(--color-text);white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}.logs-content[_ngcontent-%COMP%]::-webkit-scrollbar{width:6px}.logs-content[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent}.logs-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--color-text-secondary);border-radius:3px}"]})};var Jt=["threadSearchInput"],Yt=["*"];function Zt(n,t){if(n&1){let e=C();o(0,"button",27),u("click",function(){m(e);let r=c();return p(r.toggle())}),o(1,"mat-icon"),l(2,"menu"),a()(),o(3,"button",28),u("click",function(){m(e);let r=c();return p(r.createNewThread())}),o(4,"mat-icon",10),l(5,"play_circle"),a()()}if(n&2){let e=c();d(3),b("disabled",!e.selectedProjectName())}}function Kt(n,t){if(n&1){let e=C();o(0,"div",12)(1,"a",29),u("click",function(r){return m(e),c().openMissionControl(),p(r.preventDefault())}),o(2,"mat-icon"),l(3,"rocket_launch"),a(),o(4,"span",30),l(5,"Task Control"),a()()()}}function en(n,t){if(n&1){let e=C();o(0,"div",15)(1,"mat-icon",31),l(2,"search"),a(),o(3,"input",32,0),ae("ngModelChange",function(r){m(e);let s=c();return oe(s.threadSearchQuery,r)||(s.threadSearchQuery=r),p(r)}),u("input",function(){m(e);let r=c();return p(r.onThreadSearchInput())}),a(),o(5,"button",33),u("click",function(){m(e);let r=c();return p(r.closeThreadSearch())}),o(6,"mat-icon"),l(7,"close"),a()()()}if(n&2){let e=c();d(3),re("ngModel",e.threadSearchQuery)}}function tn(n,t){if(n&1){let e=C();o(0,"div",16)(1,"mat-icon",23),l(2,"forum"),a(),o(3,"span",24),l(4,"Threads"),a(),o(5,"button",34),u("click",function(r){m(e);let s=c();return p(s.toggleThreadSearch(r))}),o(6,"mat-icon"),l(7,"search"),a()()()}}function nn(n,t){n&1&&(o(0,"mat-icon",22),l(1,"keyboard_arrow_up"),a())}function rn(n,t){n&1&&(o(0,"mat-icon",23),l(1,"hub"),a())}function on(n,t){n&1&&(o(0,"mat-icon",22),l(1,"keyboard_arrow_up"),a())}function an(n,t){n&1&&(o(0,"mat-icon",23),l(1,"tune"),a())}function sn(n,t){n&1&&(o(0,"div",36)(1,"div",40),j(2,"app-options-panel",41),a()())}function cn(n,t){if(n&1){let e=C();o(0,"div",35)(1,"a",21),u("click",function(r){return m(e),c(3).openProjectConfig(),r.preventDefault(),p(r.stopPropagation())}),o(2,"mat-icon",23),l(3,"settings_applications"),a(),o(4,"span",24),l(5,"Project Configuration"),a()()()}}function ln(n,t){n&1&&(o(0,"div",35)(1,"a",42)(2,"mat-icon",23),l(3,"settings_applications"),a(),o(4,"span",24),l(5,"Project config (No project)"),a()()())}function dn(n,t){if(n&1&&_(0,cn,6,0,"div",35)(1,ln,6,0,"div",35),n&2){let e=c(2);g(e.selectedProjectName()?0:1)}}function mn(n,t){if(n&1){let e=C();o(0,"div",35)(1,"a",21),u("click",function(r){return m(e),c(2).openAgents(),r.preventDefault(),p(r.stopPropagation())}),o(2,"mat-icon",23),l(3,"smart_toy"),a(),o(4,"span",24),l(5,"Agents"),a()()()}}function pn(n,t){n&1&&(o(0,"div",35)(1,"a",42)(2,"mat-icon",23),l(3,"smart_toy"),a(),o(4,"span",24),l(5,"Agents (No project)"),a()()())}function _n(n,t){if(n&1){let e=C();o(0,"div",35)(1,"a",21),u("click",function(r){return m(e),c(2).openPrompts(),r.preventDefault(),p(r.stopPropagation())}),o(2,"mat-icon",23),l(3,"description"),a(),o(4,"span",24),l(5,"Prompts"),a()()()}}function gn(n,t){n&1&&(o(0,"div",35)(1,"a",42)(2,"mat-icon",23),l(3,"description"),a(),o(4,"span",24),l(5,"Prompts (No project)"),a()()())}function un(n,t){if(n&1){let e=C();o(0,"div",35)(1,"a",21),u("click",function(r){return m(e),c(2).openSchedulers(),r.preventDefault(),p(r.stopPropagation())}),o(2,"mat-icon",23),l(3,"schedule"),a(),o(4,"span",24),l(5,"Schedulers"),a()()()}}function hn(n,t){n&1&&(o(0,"div",35)(1,"a",42)(2,"mat-icon",23),l(3,"schedule"),a(),o(4,"span",24),l(5,"Schedulers (No project)"),a()()())}function fn(n,t){n&1&&(o(0,"mat-icon",22),l(1,"keyboard_arrow_up"),a())}function Cn(n,t){n&1&&(o(0,"mat-icon",23),l(1,"rocket_launch"),a())}function vn(n,t){if(n&1&&(o(0,"div",36),j(1,"app-preview-panel",43),a()),n&2){let e=c(3);d(),b("projectName",e.selectedProjectName())}}function bn(n,t){if(n&1){let e=C();o(0,"div",35)(1,"a",21),u("click",function(r){return m(e),c(2).toggleSection("preview"),r.preventDefault(),p(r.stopPropagation())}),_(2,fn,2,0,"mat-icon",22)(3,Cn,2,0,"mat-icon",23),o(4,"span",24),l(5,"Preview Server"),a()(),_(6,vn,2,1,"div",36),a()}if(n&2){let e=c(2);x("expanded",e.expandedSections.preview),d(),x("active",e.expandedSections.preview),d(),g(e.expandedSections.preview?2:3),d(4),g(e.expandedSections.preview?6:-1)}}function xn(n,t){if(n&1){let e=C();o(0,"div",25)(1,"div",35)(2,"a",21),u("click",function(r){return m(e),c().toggleSection("config"),p(r.preventDefault())}),_(3,on,2,0,"mat-icon",22)(4,an,2,0,"mat-icon",23),o(5,"span",24),l(6,"Preferences"),a()(),_(7,sn,3,0,"div",36),a(),o(8,"div",35)(9,"a",21),u("click",function(r){return m(e),c().openTokenUsage(),r.preventDefault(),p(r.stopPropagation())}),o(10,"mat-icon",23),l(11,"data_usage"),a(),o(12,"span",24),l(13,"Token Usage"),a()()(),o(14,"div",35)(15,"a",21),u("click",function(r){return m(e),c().openUserConfig(),r.preventDefault(),p(r.stopPropagation())}),o(16,"mat-icon",23),l(17,"manage_accounts"),a(),o(18,"span",24),l(19,"User Configuration"),a()()(),_(20,dn,2,1),_(21,mn,6,0,"div",35)(22,pn,6,0,"div",35),_(23,_n,6,0,"div",35)(24,gn,6,0,"div",35),_(25,un,6,0,"div",35)(26,hn,6,0,"div",35),_(27,bn,7,6,"div",37),o(28,"div",35)(29,"a",38),j(30,"img",39),o(31,"span",24),l(32,"Contribute on GitHub"),a()()()()}if(n&2){let e=c();d(),x("expanded",e.expandedSections.config),d(),x("active",e.expandedSections.config),d(),g(e.expandedSections.config?3:4),d(4),g(e.expandedSections.config?7:-1),d(13),g(e.isAdmin?20:-1),d(),g(e.selectedProjectName()?21:22),d(2),g(e.selectedProjectName()?23:24),d(2),g(e.selectedProjectName()?25:26),d(2),g(e.hasPreviewConfig()?27:-1),d(3),ee("src","CODAY-Logo.png",J)}}function yn(n,t){if(n&1){let e=C();o(0,"div",26)(1,"mat-icon",44),l(2,"warning"),a(),o(3,"span",45),l(4),a(),o(5,"button",46),u("click",function(){m(e);let r=c();return p(r.configErrorMessage="")}),o(6,"mat-icon"),l(7,"close"),a()()()}if(n&2){let e=c();d(4),y(e.configErrorMessage)}}var ct=class n{destroy$=new Oe;sidenavStateChange=new q;drawerOpen=!1;breakpointObserver=v(Le);isDesktop=P(this.breakpointObserver.observe("(min-width: 1400px)").pipe(G(t=>t.matches)),{initialValue:!1});userOpenPreference=A(!0);isOpen=se(()=>this.userOpenPreference());isAdmin=!1;configErrorMessage="";expandedSections={config:!1,preview:!1,settings:!1};isThreadSearchActive=!1;threadSearchQuery="";threadSearchInput;dialog=v(Re);configApi=v(nt);projectStateService=v(me);projectApi=v(de);router=v(le);preferences=v(Ue);threadStateService=v(pe);projects=P(this.projectStateService.projectList$);selectedProject=P(this.projectStateService.selectedProject$);selectedProjectName=P(this.projectStateService.selectedProject$.pipe(G(t=>t?.name)));isProjectVolatile=P(this.projectStateService.selectedProject$.pipe(G(t=>t?.config?.volatile||!1)));forcedProject=P(this.projectStateService.forcedProject$);hasPreviewConfig=P(this.projectStateService.selectedProject$.pipe(G(t=>{let e=t?.config?.preview;return Array.isArray(e)&&!!e.length})),{initialValue:!1});ngOnInit(){let t=window.innerWidth>=1024,e=this.preferences.getPreference("sidenavOpen",t);this.userOpenPreference.set(e??t),this.configApi.getUserConfig().pipe(I(this.destroy$)).subscribe({next:i=>{this.isAdmin=i.groups?.includes("CODAY_ADMIN")??!1,console.log("[SIDENAV] User admin status:",this.isAdmin)},error:i=>{console.error("[SIDENAV] Error loading user config for roles:",i),this.isAdmin=!1}})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}toggle(){let t=!this.userOpenPreference();this.userOpenPreference.set(t),this.saveSidenavState(t),this.sidenavStateChange.emit(t)}close(){this.userOpenPreference()&&(this.userOpenPreference.set(!1),this.saveSidenavState(!1),this.sidenavStateChange.emit(!1))}saveSidenavState(t){this.preferences.setPreference("sidenavOpen",t)}openTokenUsage(){this.configErrorMessage="",this.router.navigate(["/token-usage"])}openUserConfig(){console.log("[SIDENAV] openUserConfig called"),this.configErrorMessage="",this.configApi.getUserConfig().pipe(I(this.destroy$)).subscribe({next:t=>{console.log("[SIDENAV] User config loaded, opening dialog"),this.dialog.open(Pe,{data:{configType:"user",initialContent:JSON.stringify(t,null,2)}}).afterClosed().subscribe(i=>{i&&this.saveUserConfig(i)})},error:t=>{console.error("[SIDENAV] Error loading user config:",t),this.configErrorMessage=t?.error?.error||"Failed to load user configuration"}})}saveUserConfig(t){this.configApi.updateUserConfig(t).pipe(I(this.destroy$)).subscribe({next:e=>{console.log("[SIDENAV] User config saved successfully")},error:e=>{console.error("[SIDENAV] Error saving user config:",e),this.configErrorMessage=e?.error?.error||"Failed to save user configuration"}})}openProjectConfig(){let t=this.selectedProjectName();if(!t){console.error("[SIDENAV] No project selected"),this.configErrorMessage="No project selected. Please select a project first.";return}this.configErrorMessage="",this.projectApi.getProjectConfig(t).pipe(I(this.destroy$)).subscribe({next:e=>{console.log("[SIDENAV] Project config loaded, opening dialog"),this.dialog.open(Pe,{data:{configType:"project",projectName:t,initialContent:JSON.stringify(e,null,2)}}).afterClosed().subscribe(r=>{r&&this.saveProjectConfig(t,r)})},error:e=>{console.error("[SIDENAV] Error loading project config:",e),this.configErrorMessage=e?.error?.error||"Failed to load project configuration"}})}saveProjectConfig(t,e){this.projectApi.updateProjectConfig(t,e).pipe(I(this.destroy$)).subscribe({next:i=>{console.log("[SIDENAV] Project config saved successfully")},error:i=>{console.error("[SIDENAV] Error saving project config:",i),this.configErrorMessage=i?.error?.error||"Failed to save project configuration"}})}requireProjectSelection(t){return this.selectedProjectName()?!0:(console.error(`[SIDENAV] No project selected, cannot ${t}`),this.configErrorMessage="Please select a project first",!1)}openAgents(){if(!this.requireProjectSelection("open agents"))return;let t=this.selectedProjectName();this.router.navigate(["project",t,"agents"])}openPrompts(){if(!this.requireProjectSelection("open prompts"))return;let t=this.selectedProjectName();this.router.navigate(["project",t,"prompts"])}openSchedulers(){if(!this.requireProjectSelection("open schedulers"))return;let t=this.selectedProjectName();this.router.navigate(["project",t,"schedulers"])}toggleSection(t){let e=this.expandedSections[t];t==="settings"?this.expandedSections[t]=!e:(["config","preview"].forEach(r=>{this.expandedSections[r]=!1}),this.expandedSections[t]=!e)}navigateToHome(){console.log("[SIDENAV] Navigating to home (project selection)"),this.projectStateService.clearSelection(),this.router.navigate(["/"])}openMissionControl(){let t=this.selectedProjectName();t&&(this.router.navigate(["project",t,"tasks"]),this.close())}createNewThread(){let t=this.selectedProjectName();if(!t){console.error("[SIDENAV] No project selected, cannot create new thread"),this.configErrorMessage="Please select a project first";return}console.log("[SIDENAV] Navigating to welcome view for new thread"),this.threadStateService.clearSelection(),this.router.navigate(["project",t])}onThreadSelectedOnMobile(){this.isDesktop()||this.close()}toggleThreadSearch(t){t.stopPropagation(),this.isThreadSearchActive=!0,this.threadSearchQuery="",setTimeout(()=>{this.threadSearchInput?.nativeElement.focus()},0)}closeThreadSearch(){this.isThreadSearchActive=!1,this.threadSearchQuery=""}onThreadSearchInput(){}onThreadSearchModeChange(t){t||this.closeThreadSearch()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=E({type:n,selectors:[["app-sidenav"]],viewQuery:function(e,i){if(e&1&&te(Jt,5),e&2){let r;ne(r=ie())&&(i.threadSearchInput=r.first)}},inputs:{drawerOpen:"drawerOpen"},outputs:{sidenavStateChange:"sidenavStateChange"},ngContentSelectors:Yt,decls:35,vars:23,consts:[["threadSearchInput",""],[1,"sidenav-container",3,"hasBackdrop"],["mode","push","position","start",1,"app-sidenav",3,"closed","opened","disableClose"],[1,"sidenav-header"],["mat-icon-button","","title","Close menu",3,"click"],["alt","coday","title","Go to project selection","role","button","tabindex","0",1,"sidenav-logo","clickable",3,"click","keydown.enter","keydown.space"],[1,"header-title-section"],[1,"sidenav-title"],[1,"new-thread-section"],["role","button","tabindex","0",1,"new-thread-link",3,"click"],["fontSet","material-icons-outlined"],[1,"new-thread-text"],[1,"mission-control-section"],[1,"sidenav-sections"],[1,"section-container","expanded"],[1,"search-header"],[1,"section-toggle","active","threads-header"],[1,"section-content","threads"],[1,"sidenav-thread-selector",3,"searchModeChange","threadSelected","searchMode","searchQuery"],[1,"sidenav-nav"],[1,"section-container","settings-group"],["role","button","tabindex","0",1,"section-toggle",3,"click"],[1,"arrow-icon","expanded"],[1,"section-icon"],[1,"section-label"],[1,"section-content","settings-content"],["role","alert",1,"error-notification"],["mat-icon-button","","title","Menu","type","button",1,"sidenav-toggle-btn",3,"click"],["mat-icon-button","","title","Start a new thread","type","button",1,"sidenav-new-thread-btn",3,"click","disabled"],["role","button","tabindex","0",1,"mission-control-link",3,"click"],[1,"mission-control-text"],[1,"search-icon"],["type","text","placeholder","Search threads...",1,"search-input",3,"ngModelChange","input","ngModel"],["mat-icon-button","","title","Close search","type","button",1,"close-search-btn",3,"click"],["mat-icon-button","","title","Search threads","type","button",1,"search-button",3,"click"],[1,"section-container"],[1,"section-content"],[1,"section-container",3,"expanded"],["href","https://github.com/whoz-oss/coday","target","_blank","rel","noopener noreferrer","title","Contribute on GitHub",1,"section-toggle","contribute-btn"],["alt","Coday",1,"contribute-logo"],[1,"preference-item"],[1,"inline-panel"],["role","button","tabindex","-1","aria-disabled","true",1,"section-toggle","disabled"],[3,"projectName"],[1,"error-icon"],[1,"error-text"],["mat-icon-button","","aria-label","Close error message",1,"error-close",3,"click"]],template:function(e,i){e&1&&(Ve(),_(0,Zt,6,1),o(1,"mat-sidenav-container",1)(2,"mat-sidenav",2),u("closed",function(){return i.close()}),o(3,"div",3)(4,"button",4),u("click",function(){return i.close()}),o(5,"mat-icon"),l(6,"chevron_left"),a()(),o(7,"img",5),u("click",function(s){return i.navigateToHome(),s.stopPropagation()})("keydown.enter",function(s){return i.navigateToHome(),s.preventDefault(),s.stopPropagation()})("keydown.space",function(s){return i.navigateToHome(),s.preventDefault(),s.stopPropagation()}),a(),o(8,"div",6)(9,"h2",7),l(10),a()()(),o(11,"div",8)(12,"a",9),u("click",function(s){return i.createNewThread(),s.preventDefault()}),o(13,"mat-icon",10),l(14,"play_circle"),a(),o(15,"span",11),l(16,"Start a new thread"),a()()(),_(17,Kt,6,0,"div",12),o(18,"div",13)(19,"div",14),_(20,en,8,1,"div",15)(21,tn,8,0,"div",16),o(22,"div",17)(23,"app-thread-selector",18),u("searchModeChange",function(s){return i.onThreadSearchModeChange(s)})("threadSelected",function(){return i.onThreadSelectedOnMobile()}),a()()()(),o(24,"div",19)(25,"div",20)(26,"a",21),u("click",function(s){return i.toggleSection("settings"),s.preventDefault()}),_(27,nn,2,0,"mat-icon",22)(28,rn,2,0,"mat-icon",23),o(29,"span",24),l(30,"Control Center"),a()(),_(31,xn,33,12,"div",25),a()()(),o(32,"mat-sidenav-content"),De(33),a()(),_(34,yn,8,1,"div",26)),e&2&&(g(!i.isOpen()&&!i.drawerOpen?0:-1),d(),x("sidenav-open",i.isOpen()),b("hasBackdrop",!1),d(),b("opened",i.isOpen())("disableClose",!0),d(5),ee("src","CODAY-Logo.png",J),d(3),y(i.selectedProjectName()),d(7),g(i.selectedProjectName()?17:-1),d(3),g(i.isThreadSearchActive?20:21),d(3),b("searchMode",i.isThreadSearchActive)("searchQuery",i.threadSearchQuery),d(),x("is-admin",i.isAdmin),d(),x("expanded",i.expandedSections.settings),d(),x("active",i.expandedSections.settings),d(),g(i.expandedSections.settings?27:28),d(4),g(i.expandedSections.settings?31:-1),d(),x("sidenav-closed-offset",!i.isOpen()),d(2),g(i.configErrorMessage?34:-1))},dependencies:[he,_e,ge,ue,tt,Ke,et,Ze,U,B,$,R,qe,it,ye,fe,Ce],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%;position:relative}.sidenav-container[_ngcontent-%COMP%]{position:fixed;top:0;left:0;right:0;height:100dvh;z-index:1400;transition:width;display:flex}.sidenav-container[_ngcontent-%COMP%] mat-sidenav[_ngcontent-%COMP%]{position:relative!important;transition:width;width:25%;min-width:320px;height:100dvh!important;flex-shrink:0}.sidenav-container[_ngcontent-%COMP%] mat-sidenav[_ngcontent-%COMP%]:not(.mat-drawer-opened){width:0!important;min-width:0;overflow:hidden!important;visibility:hidden!important}.sidenav-container[_ngcontent-%COMP%] mat-sidenav-content[_ngcontent-%COMP%]{width:100%;margin:0!important}@media(min-width:1024px){.sidenav-container[_ngcontent-%COMP%] mat-sidenav-content[_ngcontent-%COMP%]{min-width:0}}[_nghost-%COMP%] .mat-drawer-backdrop{pointer-events:auto}[_nghost-%COMP%] .mat-drawer-content{pointer-events:auto!important;background:transparent!important;overflow:visible!important}[_nghost-%COMP%] .mat-drawer-inner-container{overflow:hidden!important;height:100dvh!important;display:flex!important;flex-direction:column!important}.sidenav-new-thread-btn[_ngcontent-%COMP%], .sidenav-toggle-btn[_ngcontent-%COMP%]{position:fixed!important;z-index:1500!important;width:40px!important;height:40px!important;border-radius:50%!important;background:var(--glass-bg)!important;backdrop-filter:var(--glass-backdrop-blur)!important;-webkit-backdrop-filter:var(--glass-backdrop-blur)!important;border:1px solid var(--glass-border)!important;box-shadow:var(--glass-shadow)!important}.sidenav-toggle-btn[_ngcontent-%COMP%]{top:1rem!important;left:1rem!important}.sidenav-new-thread-btn[_ngcontent-%COMP%]{top:calc(1.5rem + 40px)!important;left:1rem!important}.sidenav-new-thread-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--color-primary)!important}.sidenav-new-thread-btn[_ngcontent-%COMP%]:disabled{opacity:.5!important}.sidenav-logo-btn[_ngcontent-%COMP%]{position:fixed!important;bottom:1rem!important;left:1rem!important;z-index:1500!important;width:56px!important;height:56px!important;border-radius:50%!important;border:1px solid var(--glass-border)!important;padding:4px!important;background:var(--glass-bg)!important;backdrop-filter:var(--glass-backdrop-blur)!important;-webkit-backdrop-filter:var(--glass-backdrop-blur)!important;box-shadow:var(--glass-shadow)!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important;cursor:pointer!important;pointer-events:auto!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;text-decoration:none!important}.sidenav-logo-btn[_ngcontent-%COMP%]:hover{transform:scale(1.08) translateY(-2px)!important;box-shadow:0 16px 48px #0003!important;border-color:var(--color-primary)!important}.sidenav-logo-btn[_ngcontent-%COMP%]:active{transform:scale(.96)!important}.sidenav-logo-btn[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{width:48px;height:48px;border-radius:2px}.app-sidenav[_ngcontent-%COMP%]{width:480px;height:100dvh!important;min-height:0!important;position:relative;background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);overflow:hidden!important;display:flex;flex-direction:column}.sidenav-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:1.5rem 1rem .5rem;flex-shrink:0}.sidenav-header[_ngcontent-%COMP%] .sidenav-logo[_ngcontent-%COMP%]{width:40px;height:40px;border-radius:4px;flex-shrink:0;transition:all .2s ease}.sidenav-header[_ngcontent-%COMP%] .sidenav-logo.clickable[_ngcontent-%COMP%]{cursor:pointer}.sidenav-header[_ngcontent-%COMP%] .sidenav-logo.clickable[_ngcontent-%COMP%]:hover{transform:scale(1.1);filter:drop-shadow(0 4px 12px rgba(0,0,0,.15))}.sidenav-header[_ngcontent-%COMP%] .sidenav-logo.clickable[_ngcontent-%COMP%]:active{transform:scale(.95)}.sidenav-header[_ngcontent-%COMP%] .sidenav-logo.clickable[_ngcontent-%COMP%]:focus{outline:2px solid var(--color-primary);outline-offset:2px}.sidenav-header[_ngcontent-%COMP%] .header-title-section[_ngcontent-%COMP%]{flex:1;display:flex;align-items:center;min-width:0}.sidenav-header[_ngcontent-%COMP%] .header-title-section[_ngcontent-%COMP%] .sidenav-title[_ngcontent-%COMP%]{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mission-control-section[_ngcontent-%COMP%]{padding:.25rem 1rem .5rem;flex-shrink:0}.mission-control-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:none;text-decoration:none;cursor:pointer;transition:all .2s ease;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);padding:0}.mission-control-link[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;color:var(--color-text-secondary);transition:color .2s ease}.mission-control-link[_ngcontent-%COMP%]:hover{color:var(--color-primary);transform:translate(3px)}.mission-control-link[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{color:var(--color-primary)}.mission-control-link[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.new-thread-section[_ngcontent-%COMP%]{padding:1rem 1rem .5rem;flex-shrink:0}.new-thread-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;background:transparent;border:none;text-decoration:none;cursor:pointer;transition:all .2s ease;gap:.5rem;font-size:.95rem;font-weight:600;padding:0}.new-thread-link[_ngcontent-%COMP%] .new-thread-text[_ngcontent-%COMP%]{background:linear-gradient(90deg,var(--color-primary, #3b82f6) 0%,var(--color-accent, #8b5cf6) 50%,var(--color-primary, #3b82f6) 100%);background-size:200% auto;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:_ngcontent-%COMP%_gradientShift 3s ease-in-out infinite}.new-thread-link[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px;color:var(--color-primary);animation:_ngcontent-%COMP%_iconPulse 3s ease-in-out infinite}.new-thread-link[_ngcontent-%COMP%]:hover{transform:translate(4px)}.new-thread-link[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_iconPulse 1.5s ease-in-out infinite}.new-thread-link[_ngcontent-%COMP%]:focus{transform:scale(1.1)}@keyframes _ngcontent-%COMP%_gradientShift{0%{background-position:0% center}50%{background-position:100% center}to{background-position:0% center}}@keyframes _ngcontent-%COMP%_iconPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.sidenav-sections[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:100px;overflow:hidden}.sidenav-sections[_ngcontent-%COMP%] > .section-container[_ngcontent-%COMP%], .sidenav-sections[_ngcontent-%COMP%] > .section-container.expanded[_ngcontent-%COMP%], .sidenav-sections[_ngcontent-%COMP%] > .section-container[_ngcontent-%COMP%] > .section-content.threads[_ngcontent-%COMP%], .sidenav-sections[_ngcontent-%COMP%] > .section-container[_ngcontent-%COMP%] > .section-content.threads[_ngcontent-%COMP%] > app-thread-selector[_ngcontent-%COMP%]{display:flex!important;flex-direction:column!important;flex:1!important;min-height:0!important;overflow:hidden!important}.sidenav-nav[_ngcontent-%COMP%]{flex-shrink:0;display:flex;flex-direction:column;overflow:hidden;max-height:70%;border-top:1px solid var(--color-border)}.sidenav-nav[_ngcontent-%COMP%] > .settings-group[_ngcontent-%COMP%] > .section-toggle.active[_ngcontent-%COMP%]{border-top:none}.sidenav-nav[_ngcontent-%COMP%] .settings-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.sidenav-nav[_ngcontent-%COMP%] .settings-group[_ngcontent-%COMP%] > .section-toggle[_ngcontent-%COMP%]{flex-shrink:0}.sidenav-nav[_ngcontent-%COMP%] .settings-group[_ngcontent-%COMP%] > .section-content.settings-content[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.settings-group[_ngcontent-%COMP%] > .section-content.settings-content[_ngcontent-%COMP%]{padding:0;border-bottom:1px solid var(--color-border);overflow:visible}.settings-group[_ngcontent-%COMP%] > .section-content.settings-content[_ngcontent-%COMP%] .section-container.expanded[_ngcontent-%COMP%] .section-content[_ngcontent-%COMP%]{max-height:40vh;overflow-y:auto;overflow-x:hidden}.contribute-btn[_ngcontent-%COMP%] .contribute-logo[_ngcontent-%COMP%]{width:20px;height:20px;border-radius:2px;flex-shrink:0}.section-container[_ngcontent-%COMP%]{flex-shrink:0;display:flex;flex-direction:column}.section-container.expanded[_ngcontent-%COMP%] .section-content[_ngcontent-%COMP%]{border-bottom:none}.section-toggle[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem 1rem;height:50px;text-decoration:none;cursor:pointer;transition:all .2s ease;background:transparent;border:none;border-radius:0;color:var(--color-text);flex-shrink:0}.section-toggle.active[_ngcontent-%COMP%]{border-top:1px solid var(--color-border)}.section-toggle.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed;pointer-events:none}.section-toggle[_ngcontent-%COMP%] .arrow-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px;color:var(--color-text-secondary);transition:transform .2s ease;flex-shrink:0}.section-toggle[_ngcontent-%COMP%] .section-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px;color:var(--color-text-secondary);flex-shrink:0}.section-toggle[_ngcontent-%COMP%] .section-label[_ngcontent-%COMP%]{flex:1;font-size:.9rem;color:var(--color-text);text-align:left}.section-toggle[_ngcontent-%COMP%] .search-button[_ngcontent-%COMP%]{margin-left:auto;flex-shrink:0}.section-toggle[_ngcontent-%COMP%] .search-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}.section-toggle[_ngcontent-%COMP%]:hover:not(.disabled){background:var(--color-bg-hover)}.section-toggle[_ngcontent-%COMP%]:active:not(.disabled){transform:scale(.98)}.section-toggle[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.search-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;height:50px;background:var(--color-bg-hover);border-top:1px solid var(--color-border);transition:all .2s ease}.search-header[_ngcontent-%COMP%] .search-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px;color:var(--color-text-secondary);flex-shrink:0}.search-header[_ngcontent-%COMP%] .search-input[_ngcontent-%COMP%]{flex:1;border:none;outline:none;background:transparent;color:var(--color-text);font-size:.9rem;padding:0;min-width:0}.search-header[_ngcontent-%COMP%] .search-input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-muted)}.search-header[_ngcontent-%COMP%] .close-search-btn[_ngcontent-%COMP%]{flex-shrink:0}.search-header[_ngcontent-%COMP%] .close-search-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}.section-content[_ngcontent-%COMP%]{padding:.5rem 0 0;animation:_ngcontent-%COMP%_slideDown .2s ease;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column}.section-content.threads[_ngcontent-%COMP%]{padding:0;border-bottom:none;flex:1!important;min-height:0!important;overflow:hidden!important}.section-content.threads[_ngcontent-%COMP%] app-thread-selector[_ngcontent-%COMP%]{flex:1!important;min-height:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}@keyframes _ngcontent-%COMP%_slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.preference-item[_ngcontent-%COMP%]{padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--color-border)}.preference-item[_ngcontent-%COMP%]:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.preference-item[_ngcontent-%COMP%] .preference-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:0 1rem}.preference-item[_ngcontent-%COMP%] .preference-header[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px}.preference-item[_ngcontent-%COMP%] .preference-header[_ngcontent-%COMP%] .item-text[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.preference-item[_ngcontent-%COMP%] .preference-content[_ngcontent-%COMP%]{padding:0 1rem}.error-notification[_ngcontent-%COMP%]{position:fixed;top:5rem;left:50%;transform:translate(-50%);z-index:2000;display:flex;align-items:center;gap:.75rem;background:#ff3b3026;backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid rgba(255,59,48,.3);border-radius:16px;padding:1rem 1.5rem;box-shadow:var(--glass-shadow);animation:_ngcontent-%COMP%_errorSlideDown .3s cubic-bezier(.4,0,.2,1)}.error-notification[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{font-size:1.2rem;flex-shrink:0;color:#c00}.error-notification[_ngcontent-%COMP%] .error-text[_ngcontent-%COMP%]{flex:1;color:#c00;font-size:.9rem;font-weight:500}@keyframes _ngcontent-%COMP%_errorSlideDown{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}@media(max-width:480px){.app-sidenav[_ngcontent-%COMP%]{width:320px}.sidenav-toggle-btn[_ngcontent-%COMP%]{top:.75rem!important;left:.75rem!important}.sidenav-new-thread-btn[_ngcontent-%COMP%]{top:calc(1.25rem + 40px)!important;left:.75rem!important}.error-notification[_ngcontent-%COMP%]{left:1rem;right:1rem;transform:none;max-width:calc(100vw - 2rem)}}body.dark[_nghost-%COMP%] .app-sidenav[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .app-sidenav[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root[data-theme=dark] .app-sidenav[_ngcontent-%COMP%]{background:#242830f2;border-right-color:#b4c8ff17}body.dark[_nghost-%COMP%] .sidenav-header[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .sidenav-header[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root[data-theme=dark] .sidenav-header[_ngcontent-%COMP%]{background:#242830b3}"]})};export{ct as a};
@@ -1 +1 @@
1
- import{a as X}from"./chunk-XMNSCHH7.js";import{c as T}from"./chunk-6XQBW7HA.js";import{A as Q,s as W,z as J}from"./chunk-NVHDXKPX.js";import{a as j,b as N,c as H}from"./chunk-NPJSGATI.js";import{Bb as b,Cb as S,D as R,Db as c,Eb as A,Fb as u,Ka as l,Pb as B,Rb as F,S as P,Tb as p,Ub as M,Vb as z,Wa as y,Xb as K,ab as L,ca as v,ga as d,ha as g,jc as $,lb as _,m as U,ma as O,mb as f,mc as k,pb as q,pc as C,qb as V,qc as i,rb as h,sb as a,ta as I,tb as s,u as E,vb as x,wb as G}from"./chunk-AFIHJVHG.js";var te=(n,t)=>t.id;function ne(n,t){n&1&&(x(0,"option",3),p(1,"All namespaces"),G())}function oe(n,t){if(n&1&&(x(0,"option",4),p(1),G()),n&2){let e=t.$implicit;S("value",e.id),l(),M(e.name)}}var w=class n{namespaces=i.required();value=i(null);includeAllOption=i(!1);valueChange=C();onChange(t){let e=t.target.value;this.valueChange.emit(e===""?null:e)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["agentos-namespace-select"]],inputs:{namespaces:[1,"namespaces"],value:[1,"value"],includeAllOption:[1,"includeAllOption"]},outputs:{valueChange:"valueChange"},decls:7,vars:2,consts:[[1,"namespace-select"],[1,"namespace-select__label"],[1,"namespace-select__control",3,"change","value"],["value",""],[3,"value"]],template:function(e,o){e&1&&(x(0,"label",0)(1,"span",1),p(2,"Namespace"),G(),x(3,"select",2),A("change",function(m){return o.onChange(m)}),_(4,ne,2,0,"option",3),q(5,oe,2,2,"option",4,te),G()()),e&2&&(l(3),S("value",o.value()??""),l(),f(o.includeAllOption()?4:-1),l(),V(o.namespaces()))},styles:[".namespace-select[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem}.namespace-select__label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-text-secondary, #6e6e73);white-space:nowrap}.namespace-select__control[_ngcontent-%COMP%]{padding:.35rem .6rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;cursor:pointer}.namespace-select__control[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}"],changeDetection:0})};function re(n,t){if(n&1){let e=b();a(0,"span",6),p(1,"Delete?"),s(),a(2,"ds-icon-button",7),c("action",function(){d(e);let r=u();return g(r.onDeleteConfirmed())}),s(),a(3,"ds-icon-button",8),c("action",function(){d(e);let r=u();return g(r.onDeleteCancelled())}),s()}}function ie(n,t){if(n&1){let e=b();a(0,"ds-kebab-menu",9),c("itemSelected",function(r){d(e);let m=u();return g(m.onMenuAction(r))}),s()}if(n&2){let e=u();h("items",e.menuItems)}}var D=class n{router=v(T);userGroup=i.required();namespaceId=i.required();returnTo=i(void 0);deleteRequested=C();pendingDelete=I(!1);menuItems=[{key:"edit",label:"Edit group",icon:"edit"},{key:"delete",label:"Delete group",icon:"delete",variant:"danger"}];get agentCount(){return this.userGroup().agentIds.length}onMenuAction(t){switch(t){case"edit":this.router.navigate(["/agentos",this.namespaceId(),"user-groups",this.userGroup().userGroupId,"edit"],{queryParams:this.returnTo()?{returnTo:this.returnTo()}:{}});break;case"delete":this.pendingDelete.set(!0);break}}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.userGroup())}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["agentos-user-group-item"]],inputs:{userGroup:[1,"userGroup"],namespaceId:[1,"namespaceId"],returnTo:[1,"returnTo"]},outputs:{deleteRequested:"deleteRequested"},decls:9,vars:8,consts:[["role","listitem",1,"user-group-item"],[1,"user-group-item__body"],[1,"user-group-item__name"],[1,"user-group-item__meta"],[1,"user-group-item__actions"],[3,"items"],[1,"user-group-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,o){e&1&&(a(0,"div",0)(1,"div",1)(2,"span",2),p(3),s(),a(4,"span",3),p(5),s()(),a(6,"div",4),_(7,re,4,0)(8,ie,1,1,"ds-kebab-menu",5),s()()),e&2&&(F("user-group-item--pending-delete",o.pendingDelete()),l(3),M(o.userGroup().name),l(2),K(" ",o.agentCount," ",o.agentCount===1?"agent":"agents"," \xB7 ",o.userGroup().userCount," ",o.userGroup().userCount===1?"member":"members"," "),l(2),f(o.pendingDelete()?7:8))},dependencies:[Q,W],styles:[".user-group-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}.user-group-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.user-group-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.user-group-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-group-item__meta[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-group-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.user-group-item[_ngcontent-%COMP%]:hover .user-group-item__actions[_ngcontent-%COMP%], .user-group-item[_ngcontent-%COMP%]:focus-within .user-group-item__actions[_ngcontent-%COMP%], .user-group-item--pending-delete[_ngcontent-%COMP%] .user-group-item__actions[_ngcontent-%COMP%]{opacity:1}.user-group-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error, #ff3b30);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};function ae(n,t){if(n&1){let e=b();a(0,"button",4),c("click",function(){d(e);let r=u();return g(r.onBack())}),p(1),s()}n&2&&(l(),z("\u2190 ",t))}function se(n,t){if(n&1){let e=b();a(0,"agentos-namespace-select",5),c("valueChange",function(r){d(e);let m=u();return g(m.onNamespaceChange(r))}),s()}if(n&2){let e=u();h("namespaces",t)("value",e.namespaceId())}}function le(n,t){if(n&1){let e=b();a(0,"agentos-user-group-item",7),c("deleteRequested",function(r){d(e);let m=u(2);return g(m.deleteGroup(r))}),s()}if(n&2){let e=u(2);h("userGroup",t)("namespaceId",e.namespaceId())("returnTo",e.returnTo())}}function ue(n,t){if(n&1&&_(0,le,1,3,"agentos-user-group-item",6),n&2){let e,o=t.$implicit,r=u();f((e=r.resolveGroup(o.id))?0:-1,e)}}var ee=class n{router=v(T);destroyRef=v(O);userGroupState=v(X);namespaceId=i.required();backLabel=i(void 0);namespaces=i(void 0);hideTitle=i(!1);returnTo=i(void 0);backRequested=C();namespaceChange=C();refresh=I(0);groups=H(E([N(this.namespaceId),N(this.refresh)]).pipe(P(([t])=>this.userGroupState.listByNamespace(t).pipe(R(e=>(console.error("[UserGroupList] Failed to load user groups",e),U([])))))),{initialValue:[]});groupItems=k(()=>this.groups().map(t=>({id:t.userGroupId,name:t.name})));groupsById=k(()=>new Map(this.groups().map(t=>[t.userGroupId,t])));resolveGroup(t){return this.groupsById().get(t)??null}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId(),"user-groups","new"],{queryParams:this.returnTo()?{returnTo:this.returnTo()}:{}})}deleteGroup(t){this.userGroupState.delete(t.userGroupId).pipe(j(this.destroyRef)).subscribe(()=>this.refresh.update(e=>e+1))}onBack(){this.backRequested.emit()}onNamespaceChange(t){t&&this.namespaceChange.emit(t)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["agentos-user-group-list"]],inputs:{namespaceId:[1,"namespaceId"],backLabel:[1,"backLabel"],namespaces:[1,"namespaces"],hideTitle:[1,"hideTitle"],returnTo:[1,"returnTo"]},outputs:{backRequested:"backRequested",namespaceChange:"namespaceChange"},decls:5,vars:5,consts:[["groupItemTpl",""],["title","User Groups","emptyMessage","No user groups yet. Create one above.","cardMinWidth","400px",3,"createRequested","hideTitle","items","showCreate","itemTemplate"],["toolbar-start","","type","button",1,"user-group-list__back"],["toolbar-start","",3,"namespaces","value"],["toolbar-start","","type","button",1,"user-group-list__back",3,"click"],["toolbar-start","",3,"valueChange","namespaces","value"],[3,"userGroup","namespaceId","returnTo"],[3,"deleteRequested","userGroup","namespaceId","returnTo"]],template:function(e,o){if(e&1&&(a(0,"ds-entity-list",1),c("createRequested",function(){return o.openCreateForm()}),_(1,ae,2,1,"button",2)(2,se,1,2,"agentos-namespace-select",3),s(),L(3,ue,1,1,"ng-template",null,0,$)),e&2){let r,m=B(4);h("hideTitle",o.hideTitle())("items",o.groupItems())("showCreate",!0)("itemTemplate",m),l(),f((r=o.backLabel())?1:(r=o.namespaces())?2:-1,r)}},dependencies:[J,D,w],styles:[".user-group-list__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.user-group-list__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"],changeDetection:0})};export{w as a,D as b,ee as c};
1
+ import{a as X}from"./chunk-FS4CUJQH.js";import{c as T}from"./chunk-COLWSJEP.js";import{A as Q,s as W,z as J}from"./chunk-2X6HKQMK.js";import{a as j,b as N,c as H}from"./chunk-PUWEEZSA.js";import{Bb as b,Cb as S,D as R,Db as c,Eb as A,Fb as u,Ka as l,Pb as B,Rb as F,S as P,Tb as p,Ub as M,Vb as z,Wa as y,Xb as K,ab as L,ca as v,ga as d,ha as g,jc as $,lb as _,m as U,ma as O,mb as f,mc as k,pb as q,pc as C,qb as V,qc as i,rb as h,sb as a,ta as I,tb as s,u as E,vb as x,wb as G}from"./chunk-3DOXTB6J.js";var te=(n,t)=>t.id;function ne(n,t){n&1&&(x(0,"option",3),p(1,"All namespaces"),G())}function oe(n,t){if(n&1&&(x(0,"option",4),p(1),G()),n&2){let e=t.$implicit;S("value",e.id),l(),M(e.name)}}var w=class n{namespaces=i.required();value=i(null);includeAllOption=i(!1);valueChange=C();onChange(t){let e=t.target.value;this.valueChange.emit(e===""?null:e)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["agentos-namespace-select"]],inputs:{namespaces:[1,"namespaces"],value:[1,"value"],includeAllOption:[1,"includeAllOption"]},outputs:{valueChange:"valueChange"},decls:7,vars:2,consts:[[1,"namespace-select"],[1,"namespace-select__label"],[1,"namespace-select__control",3,"change","value"],["value",""],[3,"value"]],template:function(e,o){e&1&&(x(0,"label",0)(1,"span",1),p(2,"Namespace"),G(),x(3,"select",2),A("change",function(m){return o.onChange(m)}),_(4,ne,2,0,"option",3),q(5,oe,2,2,"option",4,te),G()()),e&2&&(l(3),S("value",o.value()??""),l(),f(o.includeAllOption()?4:-1),l(),V(o.namespaces()))},styles:[".namespace-select[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem}.namespace-select__label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-text-secondary, #6e6e73);white-space:nowrap}.namespace-select__control[_ngcontent-%COMP%]{padding:.35rem .6rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;cursor:pointer}.namespace-select__control[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}"],changeDetection:0})};function re(n,t){if(n&1){let e=b();a(0,"span",6),p(1,"Delete?"),s(),a(2,"ds-icon-button",7),c("action",function(){d(e);let r=u();return g(r.onDeleteConfirmed())}),s(),a(3,"ds-icon-button",8),c("action",function(){d(e);let r=u();return g(r.onDeleteCancelled())}),s()}}function ie(n,t){if(n&1){let e=b();a(0,"ds-kebab-menu",9),c("itemSelected",function(r){d(e);let m=u();return g(m.onMenuAction(r))}),s()}if(n&2){let e=u();h("items",e.menuItems)}}var D=class n{router=v(T);userGroup=i.required();namespaceId=i.required();returnTo=i(void 0);deleteRequested=C();pendingDelete=I(!1);menuItems=[{key:"edit",label:"Edit group",icon:"edit"},{key:"delete",label:"Delete group",icon:"delete",variant:"danger"}];get agentCount(){return this.userGroup().agentIds.length}onMenuAction(t){switch(t){case"edit":this.router.navigate(["/agentos",this.namespaceId(),"user-groups",this.userGroup().userGroupId,"edit"],{queryParams:this.returnTo()?{returnTo:this.returnTo()}:{}});break;case"delete":this.pendingDelete.set(!0);break}}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.userGroup())}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["agentos-user-group-item"]],inputs:{userGroup:[1,"userGroup"],namespaceId:[1,"namespaceId"],returnTo:[1,"returnTo"]},outputs:{deleteRequested:"deleteRequested"},decls:9,vars:8,consts:[["role","listitem",1,"user-group-item"],[1,"user-group-item__body"],[1,"user-group-item__name"],[1,"user-group-item__meta"],[1,"user-group-item__actions"],[3,"items"],[1,"user-group-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,o){e&1&&(a(0,"div",0)(1,"div",1)(2,"span",2),p(3),s(),a(4,"span",3),p(5),s()(),a(6,"div",4),_(7,re,4,0)(8,ie,1,1,"ds-kebab-menu",5),s()()),e&2&&(F("user-group-item--pending-delete",o.pendingDelete()),l(3),M(o.userGroup().name),l(2),K(" ",o.agentCount," ",o.agentCount===1?"agent":"agents"," \xB7 ",o.userGroup().userCount," ",o.userGroup().userCount===1?"member":"members"," "),l(2),f(o.pendingDelete()?7:8))},dependencies:[Q,W],styles:[".user-group-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}.user-group-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.user-group-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.user-group-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-group-item__meta[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-group-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.user-group-item[_ngcontent-%COMP%]:hover .user-group-item__actions[_ngcontent-%COMP%], .user-group-item[_ngcontent-%COMP%]:focus-within .user-group-item__actions[_ngcontent-%COMP%], .user-group-item--pending-delete[_ngcontent-%COMP%] .user-group-item__actions[_ngcontent-%COMP%]{opacity:1}.user-group-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error, #ff3b30);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};function ae(n,t){if(n&1){let e=b();a(0,"button",4),c("click",function(){d(e);let r=u();return g(r.onBack())}),p(1),s()}n&2&&(l(),z("\u2190 ",t))}function se(n,t){if(n&1){let e=b();a(0,"agentos-namespace-select",5),c("valueChange",function(r){d(e);let m=u();return g(m.onNamespaceChange(r))}),s()}if(n&2){let e=u();h("namespaces",t)("value",e.namespaceId())}}function le(n,t){if(n&1){let e=b();a(0,"agentos-user-group-item",7),c("deleteRequested",function(r){d(e);let m=u(2);return g(m.deleteGroup(r))}),s()}if(n&2){let e=u(2);h("userGroup",t)("namespaceId",e.namespaceId())("returnTo",e.returnTo())}}function ue(n,t){if(n&1&&_(0,le,1,3,"agentos-user-group-item",6),n&2){let e,o=t.$implicit,r=u();f((e=r.resolveGroup(o.id))?0:-1,e)}}var ee=class n{router=v(T);destroyRef=v(O);userGroupState=v(X);namespaceId=i.required();backLabel=i(void 0);namespaces=i(void 0);hideTitle=i(!1);returnTo=i(void 0);backRequested=C();namespaceChange=C();refresh=I(0);groups=H(E([N(this.namespaceId),N(this.refresh)]).pipe(P(([t])=>this.userGroupState.listByNamespace(t).pipe(R(e=>(console.error("[UserGroupList] Failed to load user groups",e),U([])))))),{initialValue:[]});groupItems=k(()=>this.groups().map(t=>({id:t.userGroupId,name:t.name})));groupsById=k(()=>new Map(this.groups().map(t=>[t.userGroupId,t])));resolveGroup(t){return this.groupsById().get(t)??null}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId(),"user-groups","new"],{queryParams:this.returnTo()?{returnTo:this.returnTo()}:{}})}deleteGroup(t){this.userGroupState.delete(t.userGroupId).pipe(j(this.destroyRef)).subscribe(()=>this.refresh.update(e=>e+1))}onBack(){this.backRequested.emit()}onNamespaceChange(t){t&&this.namespaceChange.emit(t)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["agentos-user-group-list"]],inputs:{namespaceId:[1,"namespaceId"],backLabel:[1,"backLabel"],namespaces:[1,"namespaces"],hideTitle:[1,"hideTitle"],returnTo:[1,"returnTo"]},outputs:{backRequested:"backRequested",namespaceChange:"namespaceChange"},decls:5,vars:5,consts:[["groupItemTpl",""],["title","User Groups","emptyMessage","No user groups yet. Create one above.","cardMinWidth","400px",3,"createRequested","hideTitle","items","showCreate","itemTemplate"],["toolbar-start","","type","button",1,"user-group-list__back"],["toolbar-start","",3,"namespaces","value"],["toolbar-start","","type","button",1,"user-group-list__back",3,"click"],["toolbar-start","",3,"valueChange","namespaces","value"],[3,"userGroup","namespaceId","returnTo"],[3,"deleteRequested","userGroup","namespaceId","returnTo"]],template:function(e,o){if(e&1&&(a(0,"ds-entity-list",1),c("createRequested",function(){return o.openCreateForm()}),_(1,ae,2,1,"button",2)(2,se,1,2,"agentos-namespace-select",3),s(),L(3,ue,1,1,"ng-template",null,0,$)),e&2){let r,m=B(4);h("hideTitle",o.hideTitle())("items",o.groupItems())("showCreate",!0)("itemTemplate",m),l(),f((r=o.backLabel())?1:(r=o.namespaces())?2:-1,r)}},dependencies:[J,D,w],styles:[".user-group-list__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.user-group-list__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"],changeDetection:0})};export{w as a,D as b,ee as c};
@@ -1 +1 @@
1
- import{Z as i,aa as d,ca as h,ta as c}from"./chunk-AFIHJVHG.js";var p=["industry","terminal"],l=["light","dark","system"],r="agentos.theme.variant",a="agentos.theme.mode",y="agentos.theme",m=class n{_theme=c(this.readStoredTheme());theme=this._theme.asReadonly();media=typeof window<"u"&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):null;onSystemChange=()=>{this._theme().mode==="system"&&this.applyTheme(this._theme())};constructor(){this.applyTheme(this._theme()),this.media?.addEventListener("change",this.onSystemChange)}ngOnDestroy(){this.media?.removeEventListener("change",this.onSystemChange)}setTheme(e){this._theme.set(e);try{localStorage.setItem(r,e.variant),localStorage.setItem(a,e.mode)}catch(t){}this.applyTheme(e)}applyTheme(e){if(typeof document>"u"||!document.documentElement)return;let t=e.mode==="system"?this.resolveSystem():e.mode,o=e.variant==="industry"&&t==="light"?null:`${e.variant}-${t}`;o?document.documentElement.setAttribute("data-theme",o):document.documentElement.removeAttribute("data-theme")}resolveSystem(){return this.media?.matches?"dark":"light"}readStoredTheme(){try{let e=localStorage.getItem(y);if(e&&!localStorage.getItem(a)){let s=l.includes(e)?e:"system";return localStorage.setItem(a,s),localStorage.setItem(r,"industry"),localStorage.removeItem(y),{variant:"industry",mode:s}}let t=localStorage.getItem(r),o=localStorage.getItem(a),T=p.includes(t??"")?t:"industry",g=l.includes(o??"")?o:"system";return{variant:T,mode:g}}catch(e){return{variant:"industry",mode:"system"}}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=i({token:n,factory:n.\u0275fac,providedIn:"root"})},I=new d("agentos.theme-port",{providedIn:"root",factory:()=>h(m)});export{p as a,l as b,m as c,I as d};
1
+ import{Z as i,aa as d,ca as h,ta as c}from"./chunk-3DOXTB6J.js";var p=["industry","terminal"],l=["light","dark","system"],r="agentos.theme.variant",a="agentos.theme.mode",y="agentos.theme",m=class n{_theme=c(this.readStoredTheme());theme=this._theme.asReadonly();media=typeof window<"u"&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):null;onSystemChange=()=>{this._theme().mode==="system"&&this.applyTheme(this._theme())};constructor(){this.applyTheme(this._theme()),this.media?.addEventListener("change",this.onSystemChange)}ngOnDestroy(){this.media?.removeEventListener("change",this.onSystemChange)}setTheme(e){this._theme.set(e);try{localStorage.setItem(r,e.variant),localStorage.setItem(a,e.mode)}catch(t){}this.applyTheme(e)}applyTheme(e){if(typeof document>"u"||!document.documentElement)return;let t=e.mode==="system"?this.resolveSystem():e.mode,o=e.variant==="industry"&&t==="light"?null:`${e.variant}-${t}`;o?document.documentElement.setAttribute("data-theme",o):document.documentElement.removeAttribute("data-theme")}resolveSystem(){return this.media?.matches?"dark":"light"}readStoredTheme(){try{let e=localStorage.getItem(y);if(e&&!localStorage.getItem(a)){let s=l.includes(e)?e:"system";return localStorage.setItem(a,s),localStorage.setItem(r,"industry"),localStorage.removeItem(y),{variant:"industry",mode:s}}let t=localStorage.getItem(r),o=localStorage.getItem(a),T=p.includes(t??"")?t:"industry",g=l.includes(o??"")?o:"system";return{variant:T,mode:g}}catch(e){return{variant:"industry",mode:"system"}}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=i({token:n,factory:n.\u0275fac,providedIn:"root"})},I=new d("agentos.theme-port",{providedIn:"root",factory:()=>h(m)});export{p as a,l as b,m as c,I as d};
@@ -1 +1 @@
1
- import{c as M}from"./chunk-6XQBW7HA.js";import{A as D,o as I,s as w}from"./chunk-NVHDXKPX.js";import{Bb as C,Db as _,Fb as r,Ka as c,Tb as l,Ub as u,Wa as x,ca as b,ga as g,ha as m,lb as f,mb as p,pc as h,qc as s,rb as y,sb as i,ta as v,tb as t}from"./chunk-AFIHJVHG.js";function k(n,o){if(n&1&&(i(0,"span",3),l(1),t()),n&2){let e=r();c(),u(e.config().modelName)}}function P(n,o){if(n&1&&(i(0,"span",4),l(1),t()),n&2){let e=r();c(),u(e.config().description)}}function S(n,o){if(n&1){let e=C();i(0,"span",7),l(1,"Delete?"),t(),i(2,"ds-icon-button",8),_("action",function(){g(e);let d=r();return m(d.onDeleteConfirmed())}),t(),i(3,"ds-icon-button",9),_("action",function(){g(e);let d=r();return m(d.onDeleteCancelled())}),t()}}function E(n,o){if(n&1){let e=C();i(0,"ds-kebab-menu",10),_("itemSelected",function(d){g(e);let A=r();return m(A.onMenuAction(d))}),t()}if(n&2){let e=r();y("items",e.readOnly()?e.readOnlyMenuItems:e.menuItems)}}var O=class n{router=b(M);config=s.required();namespaceId=s(void 0);platformMode=s(!1);readOnly=s(!1);deleteRequested=h();pendingDelete=v(!1);menuItems=[{key:"edit",label:"Edit agent config",icon:"edit"},{key:"inspect",label:"Inspect definition",icon:"search"},{key:"delete",label:"Delete agent config",icon:"delete",variant:"danger"}];readOnlyMenuItems=[{key:"inspect",label:"Inspect definition",icon:"search"}];onMenuAction(o){switch(o){case"edit":this.platformMode()?this.router.navigate(["/agentos","admin","agent-configs",this.config().id,"edit"]):this.router.navigate(["/agentos",this.namespaceId(),"agent-configs",this.config().id,"edit"]);break;case"inspect":this.platformMode()?this.router.navigate(["/agentos","admin","agent-configs",this.config().id,"inspect"]):this.router.navigate(["/agentos",this.namespaceId(),"agent-configs",this.config().id,"inspect"]);break;case"delete":this.pendingDelete.set(!0);break}}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.config())}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=x({type:n,selectors:[["agentos-agent-config-item"]],inputs:{config:[1,"config"],namespaceId:[1,"namespaceId"],platformMode:[1,"platformMode"],readOnly:[1,"readOnly"]},outputs:{deleteRequested:"deleteRequested"},decls:9,vars:4,consts:[["role","listitem","dsBlueprint","",1,"agent-config-item"],[1,"agent-config-item__body"],[1,"agent-config-item__name"],[1,"agent-config-item__model"],[1,"agent-config-item__description"],[1,"agent-config-item__actions"],[3,"items"],[1,"agent-config-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,a){e&1&&(i(0,"div",0)(1,"div",1)(2,"span",2),l(3),t(),f(4,k,2,1,"span",3),f(5,P,2,1,"span",4),t(),i(6,"div",5),f(7,S,4,0)(8,E,1,1,"ds-kebab-menu",6),t()()),e&2&&(c(3),u(a.config().name),c(),p(a.config().modelName?4:-1),c(),p(a.config().description?5:-1),c(2),p(a.pendingDelete()?7:8))},dependencies:[I,D,w],styles:[".agent-config-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:14px 16px;position:relative;border-radius:0;border:1px solid var(--color-divider);background:var(--color-bg);box-shadow:var(--shadow-sm);overflow:visible;transition:border-color .15s ease}.agent-config-item[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}.agent-config-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.agent-config-item__name[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__model[_ngcontent-%COMP%], .agent-config-item__description[_ngcontent-%COMP%]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.agent-config-item[_ngcontent-%COMP%]:hover .agent-config-item__actions[_ngcontent-%COMP%], .agent-config-item[_ngcontent-%COMP%]:focus-within .agent-config-item__actions[_ngcontent-%COMP%]{opacity:1}.agent-config-item__confirm-label[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};export{O as a};
1
+ import{c as M}from"./chunk-COLWSJEP.js";import{A as D,o as I,s as w}from"./chunk-2X6HKQMK.js";import{Bb as C,Db as _,Fb as r,Ka as c,Tb as d,Ub as u,Wa as x,ca as b,ga as g,ha as m,lb as f,mb as p,pc as h,qc as s,rb as y,sb as i,ta as v,tb as t}from"./chunk-3DOXTB6J.js";function P(n,o){if(n&1&&(i(0,"span",3),d(1),t()),n&2){let e=r();c(),u(e.config().modelName)}}function k(n,o){if(n&1&&(i(0,"span",4),d(1),t()),n&2){let e=r();c(),u(e.config().description)}}function S(n,o){if(n&1){let e=C();i(0,"span",7),d(1,"Delete?"),t(),i(2,"ds-icon-button",8),_("action",function(){g(e);let l=r();return m(l.onDeleteConfirmed())}),t(),i(3,"ds-icon-button",9),_("action",function(){g(e);let l=r();return m(l.onDeleteCancelled())}),t()}}function E(n,o){if(n&1){let e=C();i(0,"ds-kebab-menu",10),_("itemSelected",function(l){g(e);let A=r();return m(A.onMenuAction(l))}),t()}if(n&2){let e=r();y("items",e.readOnly()?e.readOnlyMenuItems:e.menuItems)}}var O=class n{router=b(M);config=s.required();namespaceId=s(void 0);platformMode=s(!1);readOnly=s(!1);deleteRequested=h();pendingDelete=v(!1);menuItems=[{key:"edit",label:"Edit agent config",icon:"edit"},{key:"inspect",label:"Inspect definition",icon:"search"},{key:"delete",label:"Delete agent config",icon:"delete",variant:"danger"}];readOnlyMenuItems=[{key:"inspect",label:"Inspect definition",icon:"search"}];onMenuAction(o){switch(o){case"edit":this.platformMode()?this.router.navigate(["/agentos","admin","agent-configs",this.config().id,"edit"]):this.router.navigate(["/agentos",this.namespaceId(),"agent-configs",this.config().id,"edit"]);break;case"inspect":this.platformMode()?this.router.navigate(["/agentos","admin","agent-configs",this.config().id,"inspect"]):this.router.navigate(["/agentos",this.namespaceId(),"agent-configs",this.config().id,"inspect"]);break;case"delete":this.pendingDelete.set(!0);break}}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.config())}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=x({type:n,selectors:[["agentos-agent-config-item"]],inputs:{config:[1,"config"],namespaceId:[1,"namespaceId"],platformMode:[1,"platformMode"],readOnly:[1,"readOnly"]},outputs:{deleteRequested:"deleteRequested"},decls:9,vars:4,consts:[["role","listitem","dsBlueprint","",1,"agent-config-item"],[1,"agent-config-item__body"],[1,"agent-config-item__name"],[1,"agent-config-item__model"],[1,"agent-config-item__description"],[1,"agent-config-item__actions"],[3,"items"],[1,"agent-config-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,a){e&1&&(i(0,"div",0)(1,"div",1)(2,"span",2),d(3),t(),f(4,P,2,1,"span",3),f(5,k,2,1,"span",4),t(),i(6,"div",5),f(7,S,4,0)(8,E,1,1,"ds-kebab-menu",6),t()()),e&2&&(c(3),u(a.config().name),c(),p(a.config().modelName?4:-1),c(),p(a.config().description?5:-1),c(2),p(a.pendingDelete()?7:8))},dependencies:[I,D,w],styles:[".agent-config-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:14px 16px;position:relative;border-radius:0;border:1px solid var(--color-divider);background:var(--color-bg);box-shadow:var(--shadow-sm);overflow:visible;transition:border-color .15s ease}.agent-config-item[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}.agent-config-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.agent-config-item__name[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__model[_ngcontent-%COMP%], .agent-config-item__description[_ngcontent-%COMP%]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.agent-config-item[_ngcontent-%COMP%]:hover .agent-config-item__actions[_ngcontent-%COMP%], .agent-config-item[_ngcontent-%COMP%]:focus-within .agent-config-item__actions[_ngcontent-%COMP%]{opacity:1}.agent-config-item[_ngcontent-%COMP%]:has(.agent-config-item__confirm-label) .agent-config-item__actions[_ngcontent-%COMP%]{opacity:1}.agent-config-item__confirm-label[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};export{O as a};
@@ -1 +1 @@
1
- import{a as k}from"./chunk-UEKMQY3M.js";import{c as q,d as O}from"./chunk-4ZRHOAVD.js";import{a as E,c as $}from"./chunk-6XQBW7HA.js";import{s as D,z as S}from"./chunk-NVHDXKPX.js";import"./chunk-GPV4WMJB.js";import"./chunk-5OX5N476.js";import{a as M}from"./chunk-NPJSGATI.js";import"./chunk-3SLREHKR.js";import"./chunk-OTQBW2W7.js";import"./chunk-G45KM4GY.js";import{Bb as R,D as g,Db as l,Fb as s,Lc as L,Pb as N,S as A,Wa as h,ab as I,ca as r,cc as w,fc as x,ga as p,gc as B,ha as m,i as u,jc as T,lb as b,m as f,ma as C,mb as P,rb as c,sb as d,t as y,tb as _,z as v}from"./chunk-AFIHJVHG.js";var V=()=>[];function K(n,t){if(n&1){let i=R();d(0,"agentos-ai-model-item",4),l("deleteRequested",function(a){p(i);let e=s(2);return m(e.deleteModel(a))})("editRequested",function(a){p(i);let e=s(2);return m(e.editModel(a))}),_()}if(n&2){let i=s().$implicit,o=s();c("model",t)("namespaceId",o.namespaceId)("readOnly",o.isPlatformModel(i.id))}}function U(n,t){if(n&1&&b(0,K,1,3,"agentos-ai-model-item",3),n&2){let i,o=t.$implicit,a=s();P((i=a.resolveModel(o.id))?0:-1,i)}}var j="__platform__",G="Platform (read-only)",F=class n{route=r(E);router=r($);destroyRef=r(C);aiModelController=r(q);aiProviderController=r(O);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new u(void 0);data$=this.refresh$.pipe(A(()=>v({namespace:this.aiModelController.listByNamespaceIdAiModel(this.namespaceId),platform:this.aiModelController.listPlatformLevelAiModel().pipe(g(()=>f([]))),providers:this.aiProviderController.listAiProvider(this.namespaceId)})));modelItems$=this.data$.pipe(y(({namespace:t,platform:i,providers:o})=>{let a=new Map(o.map(e=>[e.id??"",e.name]));return[...i.map(e=>({id:e.id??"",name:e.alias??e.apiModelName,description:e.apiModelName,groupKey:j,groupLabel:G})),...t.map(e=>({id:e.id??"",name:e.alias??e.apiModelName,description:e.apiModelName,groupKey:e.aiProviderId,groupLabel:a.get(e.aiProviderId)??e.aiProviderId}))]}));namespaceModelsById=new Map;platformModelsById=new Map;constructor(){this.data$.pipe(M(this.destroyRef)).subscribe(({namespace:t,platform:i})=>{this.namespaceModelsById=new Map(t.map(o=>[o.id??"",o])),this.platformModelsById=new Map(i.map(o=>[o.id??"",o]))})}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"ai-models","new"])}editModel(t){this.router.navigate(["/agentos",this.namespaceId,"ai-models",t.id,"edit"])}deleteModel(t){this.aiModelController.deleteAiModel(t.id??"").pipe(M(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveModel(t){return this.namespaceModelsById.get(t)??this.platformModelsById.get(t)??null}isPlatformModel(t){return this.platformModelsById.has(t)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=h({type:n,selectors:[["agentos-namespace-ai-models"]],decls:5,vars:6,consts:[["aiModelItemTpl",""],["title","AI models","emptyMessage","No AI models configured yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"model","namespaceId","readOnly"],[3,"deleteRequested","editRequested","model","namespaceId","readOnly"]],template:function(i,o){if(i&1&&(d(0,"ds-entity-list",1),x(1,"async"),l("createRequested",function(){return o.openCreateForm()}),d(2,"ds-icon-button",2),l("action",function(){return o.goBack()}),_()(),I(3,U,1,1,"ng-template",null,0,T)),i&2){let a=N(4);c("items",B(1,3,o.modelItems$)??w(5,V))("showCreate",!0)("itemTemplate",a)}},dependencies:[S,k,D,L],encapsulation:2,changeDetection:0})};export{F as NamespaceAiModelsComponent};
1
+ import{a as k}from"./chunk-6AFOV467.js";import{c as q,d as O}from"./chunk-VH7ZEMCE.js";import{a as E,c as $}from"./chunk-COLWSJEP.js";import{s as D,z as S}from"./chunk-2X6HKQMK.js";import"./chunk-EGMTTOHU.js";import"./chunk-TQXOFKZO.js";import{a as M}from"./chunk-PUWEEZSA.js";import"./chunk-WXFL4OGQ.js";import"./chunk-ZJV25K6M.js";import"./chunk-GO5IXCK2.js";import{Bb as R,D as g,Db as l,Fb as s,Lc as L,Pb as N,S as A,Wa as h,ab as I,ca as r,cc as w,fc as x,ga as p,gc as B,ha as m,i as u,jc as T,lb as b,m as f,ma as C,mb as P,rb as c,sb as d,t as y,tb as _,z as v}from"./chunk-3DOXTB6J.js";var V=()=>[];function K(n,t){if(n&1){let i=R();d(0,"agentos-ai-model-item",4),l("deleteRequested",function(a){p(i);let e=s(2);return m(e.deleteModel(a))})("editRequested",function(a){p(i);let e=s(2);return m(e.editModel(a))}),_()}if(n&2){let i=s().$implicit,o=s();c("model",t)("namespaceId",o.namespaceId)("readOnly",o.isPlatformModel(i.id))}}function U(n,t){if(n&1&&b(0,K,1,3,"agentos-ai-model-item",3),n&2){let i,o=t.$implicit,a=s();P((i=a.resolveModel(o.id))?0:-1,i)}}var j="__platform__",G="Platform (read-only)",F=class n{route=r(E);router=r($);destroyRef=r(C);aiModelController=r(q);aiProviderController=r(O);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new u(void 0);data$=this.refresh$.pipe(A(()=>v({namespace:this.aiModelController.listByNamespaceIdAiModel(this.namespaceId),platform:this.aiModelController.listPlatformLevelAiModel().pipe(g(()=>f([]))),providers:this.aiProviderController.listAiProvider(this.namespaceId)})));modelItems$=this.data$.pipe(y(({namespace:t,platform:i,providers:o})=>{let a=new Map(o.map(e=>[e.id??"",e.name]));return[...i.map(e=>({id:e.id??"",name:e.alias??e.apiModelName,description:e.apiModelName,groupKey:j,groupLabel:G})),...t.map(e=>({id:e.id??"",name:e.alias??e.apiModelName,description:e.apiModelName,groupKey:e.aiProviderId,groupLabel:a.get(e.aiProviderId)??e.aiProviderId}))]}));namespaceModelsById=new Map;platformModelsById=new Map;constructor(){this.data$.pipe(M(this.destroyRef)).subscribe(({namespace:t,platform:i})=>{this.namespaceModelsById=new Map(t.map(o=>[o.id??"",o])),this.platformModelsById=new Map(i.map(o=>[o.id??"",o]))})}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"ai-models","new"])}editModel(t){this.router.navigate(["/agentos",this.namespaceId,"ai-models",t.id,"edit"])}deleteModel(t){this.aiModelController.deleteAiModel(t.id??"").pipe(M(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveModel(t){return this.namespaceModelsById.get(t)??this.platformModelsById.get(t)??null}isPlatformModel(t){return this.platformModelsById.has(t)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=h({type:n,selectors:[["agentos-namespace-ai-models"]],decls:5,vars:6,consts:[["aiModelItemTpl",""],["title","AI models","emptyMessage","No AI models configured yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"model","namespaceId","readOnly"],[3,"deleteRequested","editRequested","model","namespaceId","readOnly"]],template:function(i,o){if(i&1&&(d(0,"ds-entity-list",1),x(1,"async"),l("createRequested",function(){return o.openCreateForm()}),d(2,"ds-icon-button",2),l("action",function(){return o.goBack()}),_()(),I(3,U,1,1,"ng-template",null,0,T)),i&2){let a=N(4);c("items",B(1,3,o.modelItems$)??w(5,V))("showCreate",!0)("itemTemplate",a)}},dependencies:[S,k,D,L],encapsulation:2,changeDetection:0})};export{F as NamespaceAiModelsComponent};