@whoz-oss/coday-client 3.16.0 → 3.18.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 (96) hide show
  1. package/browser/chunk--yaU4Sri.js +1 -0
  2. package/browser/{chunk-kvCfAm7Z.js → chunk-4uEZjTft.js} +1 -1
  3. package/browser/chunk-4v7WiOTx.js +1 -0
  4. package/browser/chunk-B-UKlpjJ.js +1 -0
  5. package/browser/chunk-B13_C_P9.js +675 -0
  6. package/browser/chunk-B17Inq8D.js +2 -0
  7. package/browser/chunk-B1vuv-dv.js +1 -0
  8. package/browser/{chunk-Bhq5earA.js → chunk-BEdQqXxw.js} +1 -1
  9. package/browser/{chunk-B_9LxHBv.js → chunk-BGTRsbsl.js} +1 -1
  10. package/browser/{chunk-pH1k_bet.js → chunk-BHiaH1Jm.js} +1 -1
  11. package/browser/chunk-BJld3zB5.js +9 -0
  12. package/browser/{chunk-7jUQT_3F.js → chunk-BVmICoo4.js} +1 -1
  13. package/browser/chunk-BXCHG0wB.js +1 -0
  14. package/browser/{chunk-DOq0u21j.js → chunk-B_Sx6nwb.js} +1 -1
  15. package/browser/{chunk-CXLytVC3.js → chunk-BbPMe8u2.js} +1 -1
  16. package/browser/{chunk-6gdeYlLc.js → chunk-Bb_J3EoX.js} +1 -1
  17. package/browser/chunk-BfE6wTUj.js +1 -0
  18. package/browser/chunk-Bnj9Hkqy.js +276 -0
  19. package/browser/chunk-BqWEyotW.js +55 -0
  20. package/browser/{chunk-Dcftf7UY.js → chunk-Buu9Jf-V.js} +2 -2
  21. package/browser/{chunk-0OiZWE88.js → chunk-CJAdjOmi.js} +1 -1
  22. package/browser/{chunk-Bn3R3VC2.js → chunk-CJEW8Ogd.js} +5 -5
  23. package/browser/chunk-CM1_Z4h5.js +1 -0
  24. package/browser/{chunk-BTS5TBK0.js → chunk-CP3b1EMm.js} +1 -1
  25. package/browser/chunk-CR817PBg.js +1 -0
  26. package/browser/{chunk-YfG457Nc.js → chunk-CXgj_KJY.js} +3 -3
  27. package/browser/{chunk-CYulIMKp.js → chunk-CakkML6n.js} +1 -1
  28. package/browser/{chunk-DQLU3kYb.js → chunk-CfPmQ0Fw.js} +1 -1
  29. package/browser/chunk-CgNkwpQ7.js +508 -0
  30. package/browser/chunk-Cjk-zAXy.js +1 -0
  31. package/browser/chunk-ClCDsg8D.js +5 -0
  32. package/browser/{chunk-BdpJ2ZCM.js → chunk-CmyT-Z4A.js} +1 -1
  33. package/browser/{chunk-C_s4Z3Dk.js → chunk-CqJ7rGVY.js} +1 -1
  34. package/browser/{chunk-SbH2L3h2.js → chunk-CxpHnwnx.js} +1 -1
  35. package/browser/{chunk-CtWMrBfw.js → chunk-D1ZnLng-.js} +1 -1
  36. package/browser/{chunk-swj7IkJA.js → chunk-D26Y186i.js} +1 -1
  37. package/browser/chunk-D2zGvbD2.js +190 -0
  38. package/browser/{chunk-IUvEtpfr.js → chunk-D30bRRTP.js} +1 -1
  39. package/browser/{chunk-CTuHnJP4.js → chunk-D4dmZgr6.js} +1 -1
  40. package/browser/{chunk-CiWu4t_i.js → chunk-D6nkbOg1.js} +1 -1
  41. package/browser/chunk-D8nXP3jN.js +2 -0
  42. package/browser/{chunk-BNS6Fgaw.js → chunk-D92adUD_.js} +1 -1
  43. package/browser/{chunk-Bib1Seeu.js → chunk-DDu5Ufv3.js} +1 -1
  44. package/browser/{chunk-HjD5Rk4C.js → chunk-DFjZf9oL.js} +3 -3
  45. package/browser/{chunk-B0vRsgnD.js → chunk-DJjbZAaS.js} +1 -1
  46. package/browser/{chunk-CgqDTJ5-.js → chunk-DKQvH1hP.js} +1 -1
  47. package/browser/{chunk-UzUd84Qf.js → chunk-DMUiJ7oP.js} +1 -1
  48. package/browser/chunk-DMyGIjcZ.js +1 -0
  49. package/browser/chunk-DOHvMo5p.js +1 -0
  50. package/browser/{chunk-CbK5Lcu9.js → chunk-DVTNoWCQ.js} +1 -1
  51. package/browser/chunk-DV_7IOl_.js +1 -0
  52. package/browser/chunk-DaoWXYMw.js +1 -0
  53. package/browser/{chunk-jv0lz5Ah.js → chunk-DmaEv05C.js} +1 -1
  54. package/browser/{chunk-BSSDDOqW.js → chunk-DoqL_RuM.js} +2 -2
  55. package/browser/chunk-FMHkoXwM.js +37 -0
  56. package/browser/{chunk-axGY7UtD.js → chunk-Fr6-w83-.js} +1 -1
  57. package/browser/{chunk-iNIQR015.js → chunk-HHPhxe9B.js} +1 -1
  58. package/browser/{chunk-fhFxOLYS.js → chunk-IYMfBoNU.js} +1 -1
  59. package/browser/chunk-PQu4_Hy2.js +2 -0
  60. package/browser/chunk-Qpb04pBJ.js +1 -0
  61. package/browser/{chunk-CBNhmZDS.js → chunk-W5DNK5PC.js} +1 -1
  62. package/browser/{chunk-BHZY3TvC.js → chunk-WSA7xa0h.js} +5 -5
  63. package/browser/{chunk-BJYyjaQ6.js → chunk-lX2E6ugr.js} +1 -1
  64. package/browser/{chunk-CGMAzvSo.js → chunk-o2LY9dfG.js} +1 -1
  65. package/browser/{chunk-DzlrRiVM.js → chunk-py_Q_oQH.js} +1 -1
  66. package/browser/{chunk-BUJoEGsf.js → chunk-t87lD8bQ.js} +1 -1
  67. package/browser/{chunk-Be1LOFvg.js → chunk-vL7dLM7S.js} +1 -1
  68. package/browser/{chunk-Co81dkbz.js → chunk-zvR-rokl.js} +1 -1
  69. package/browser/index.html +1 -1
  70. package/browser/main-YYHD6X7H.js +1811 -0
  71. package/package.json +1 -1
  72. package/browser/chunk-BEKR4Un_.js +0 -1
  73. package/browser/chunk-BEUXx3TO.js +0 -1
  74. package/browser/chunk-BJeLQooO.js +0 -1
  75. package/browser/chunk-BY7uKZAo.js +0 -9
  76. package/browser/chunk-BdApeECy.js +0 -1
  77. package/browser/chunk-C-aF2_1R.js +0 -55
  78. package/browser/chunk-CFZbDe5T.js +0 -5
  79. package/browser/chunk-CPBcDx4G.js +0 -1
  80. package/browser/chunk-Ci1jk71f.js +0 -276
  81. package/browser/chunk-CjrWXBiR.js +0 -2
  82. package/browser/chunk-CtkiOUdU.js +0 -675
  83. package/browser/chunk-CwaAd8kk.js +0 -1
  84. package/browser/chunk-DDnWPYAA.js +0 -2
  85. package/browser/chunk-Dfujxxcr.js +0 -1
  86. package/browser/chunk-DgrvmqY2.js +0 -2
  87. package/browser/chunk-DoKoAMs6.js +0 -1
  88. package/browser/chunk-Dtu-PLbq.js +0 -1
  89. package/browser/chunk-S8F5_Te_.js +0 -508
  90. package/browser/chunk-YS-vAhPY.js +0 -190
  91. package/browser/chunk-fYErSEXN.js +0 -1
  92. package/browser/chunk-gmPqDrDS.js +0 -1
  93. package/browser/chunk-izARvh_2.js +0 -1
  94. package/browser/chunk-rwEyLSEP.js +0 -1
  95. package/browser/chunk-tTmeIHGS.js +0 -37
  96. package/browser/main-5PAOSHSM.js +0 -1811
@@ -1,276 +0,0 @@
1
- import {x as xe}from'./chunk-C-aF2_1R.js';import {P as Pt$1,L as Lt}from'./chunk-YS-vAhPY.js';import {v as ve,n as ne}from'./chunk-Dcftf7UY.js';import {d}from'./chunk-BdpJ2ZCM.js';import {W,k as ke,s as se}from'./chunk-BSSDDOqW.js';import {T as Tn,S as Sn,n as nt,a as ae,l as le,c as ce}from'./chunk-YfG457Nc.js';import {W as Wn,o as ot,i as it,I as In,D as De,B as Be,y as ya,E as En,F as Fn,g as gt$1,A as An}from'./chunk-CtkiOUdU.js';import'./chunk-S8F5_Te_.js';import {g,bm as _m,R as Re,a as Gi,E as ET,h as Fw,i as hr,k as Gn,m as ws,o as Rg,Q as QC,n as hl,a3 as GI,q as oC,af as Eg,ag as mT,M as MC,t as nI,v as bg,a6 as qI,x as iC,Z as z,_ as Ue,am as Wm,$ as zt$1,a0 as jt$1,a1 as Vt,a2 as Nt$1,j as pr,ai as em,aj as tT,r as cC,a8 as Yg,ak as Jg,y as uC,a5 as Dl,ac as EC,a9 as gC,aa as wf,ab as Cf,bp as yl,bq as vl,ah as aT,b4 as cT,aL as Eo,aM as qn,br as sn,aO as wt$1,bs as bl,bt as Qn,aT as Ut$1,al as yt$2,aW as w,bu as Ve,aZ as js,a_ as JT,b5 as sT,T as Tg,A as Ug,bv as Fg,D as bC,H as SC,az as Kt$1,bw as St,aS as K$1,aX as D$1,bx as on,by as cm,bz as Oi,bA as wC,bB as CC,S as Sg,C as Pg,bC as bi,bo as sC}from'./main-5PAOSHSM.js';import {y as yt$1,w as wt,t as ti,Z as Zn,c as cn,Y as Ye,f as fn,g as gt,$ as $t$1,D}from'./chunk-tTmeIHGS.js';var Pt=["button"],Ot=["*"];function Ft(l,a){if(l&1&&(ws(0,"div",2),Sg(1,"mat-pseudo-checkbox",6),hl()),l&2){let e=EC();nI(),bg("disabled",e.disabled);}}var yt=new w("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:()=>({hideSingleSelectionIndicator:false,hideMultipleSelectionIndicator:false,disabledInteractive:false})}),vt=new w("MatButtonToggleGroup"),Dt={provide:D,useExisting:bi(()=>ie),multi:true},K=class{source;value;constructor(a,e){this.source=a,this.value=e;}},ie=(()=>{class l{_changeDetector=g(bl);_dir=g(Qn,{optional:true});_multiple=false;_disabled=false;_disabledInteractive=false;_selectionModel;_rawValue;_controlValueAccessorChangeFn=()=>{};_onTouched=()=>{};_buttonToggles;appearance;get name(){return this._name}set name(e){this._name=e,this._markButtonsForCheck();}_name=g(Ut$1).getId("mat-button-toggle-group-");vertical=false;get value(){let e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e.map(t=>t.value):e[0]?e[0].value:void 0}set value(e){this._setSelectionByValue(e),this.valueChange.emit(this.value);}valueChange=new yt$2;get selected(){let e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e:e[0]||null}get multiple(){return this._multiple}set multiple(e){this._multiple=e,this._markButtonsForCheck();}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._markButtonsForCheck();}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e,this._markButtonsForCheck();}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}change=new yt$2;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._markButtonsForCheck();}_hideSingleSelectionIndicator;get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(e){this._hideMultipleSelectionIndicator=e,this._markButtonsForCheck();}_hideMultipleSelectionIndicator;constructor(){let e=g(yt,{optional:true});this.appearance=e&&e.appearance?e.appearance:"standard",this._hideSingleSelectionIndicator=e?.hideSingleSelectionIndicator??false,this._hideMultipleSelectionIndicator=e?.hideMultipleSelectionIndicator??false;}ngOnInit(){this._selectionModel=new gt$1(this.multiple,void 0,false);}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(e=>e.checked)),this.multiple||this._initializeTabIndex();}writeValue(e){this.value=e,this._changeDetector.markForCheck();}registerOnChange(e){this._controlValueAccessorChangeFn=e;}registerOnTouched(e){this._onTouched=e;}setDisabledState(e){this.disabled=e;}_keydown(e){if(this.multiple||this.disabled||Ve(e))return;let n=e.target.id,o=this._buttonToggles.toArray().findIndex(I=>I.buttonId===n),u=null;switch(e.keyCode){case 32:case 13:u=this._buttonToggles.get(o)||null;break;case 38:u=this._getNextButton(o,-1);break;case 37:u=this._getNextButton(o,this.dir==="ltr"?-1:1);break;case 40:u=this._getNextButton(o,1);break;case 39:u=this._getNextButton(o,this.dir==="ltr"?1:-1);break;default:return}u&&(e.preventDefault(),u._onButtonClick(),u.focus());}_emitChangeEvent(e){let t=new K(e,this.value);this._rawValue=t.value,this._controlValueAccessorChangeFn(t.value),this.change.emit(t);}_syncButtonToggle(e,t,n=false,o=false){!this.multiple&&this.selected&&!e.checked&&(this.selected.checked=false),this._selectionModel?t?this._selectionModel.select(e):this._selectionModel.deselect(e):o=true,o?Promise.resolve().then(()=>this._updateModelValue(e,n)):this._updateModelValue(e,n);}_isSelected(e){return this._selectionModel&&this._selectionModel.isSelected(e)}_isPrechecked(e){return typeof this._rawValue>"u"?false:this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(t=>e.value!=null&&t===e.value):e.value===this._rawValue}_initializeTabIndex(){if(this._buttonToggles.forEach(e=>{e.tabIndex=-1;}),this.selected)this.selected.tabIndex=0;else for(let e=0;e<this._buttonToggles.length;e++){let t=this._buttonToggles.get(e);if(!t.disabled){t.tabIndex=0;break}}}_getNextButton(e,t){let n=this._buttonToggles;for(let o=1;o<=n.length;o++){let u=(e+t*o+n.length)%n.length,I=n.get(u);if(I&&!I.disabled)return I}return null}_setSelectionByValue(e){if(this._rawValue=e,!this._buttonToggles)return;let t=this._buttonToggles.toArray();if(this.multiple&&e?(this._clearSelection(),e.forEach(n=>this._selectValue(n,t))):(this._clearSelection(),this._selectValue(e,t)),!this.multiple&&t.every(n=>n.tabIndex===-1)){for(let n of t)if(!n.disabled){n.tabIndex=0;break}}}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(e=>{e.checked=false,this.multiple||(e.tabIndex=-1);});}_selectValue(e,t){for(let n of t)if(n.value===e){n.checked=true,this._selectionModel.select(n),this.multiple||(n.tabIndex=0);break}}_updateModelValue(e,t){t&&this._emitChangeEvent(e),this.valueChange.emit(this.value);}_markButtonsForCheck(){this._buttonToggles?.forEach(e=>e._markForCheck());}static \u0275fac=function(t){return new(t||l)};static \u0275dir=js({type:l,selectors:[["mat-button-toggle-group"]],contentQueries:function(t,n,o){if(t&1&&Fg(o,X,5),t&2){let u;bC(u=SC())&&(n._buttonToggles=u);}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(t,n){t&1&&Rg("keydown",function(u){return n._keydown(u)}),t&2&&(Tg("role",n.multiple?"group":"radiogroup")("aria-disabled",n.disabled),Ug("mat-button-toggle-vertical",n.vertical)("mat-button-toggle-group-appearance-standard",n.appearance==="standard"));},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",JT],value:"value",multiple:[2,"multiple","multiple",JT],disabled:[2,"disabled","disabled",JT],disabledInteractive:[2,"disabledInteractive","disabledInteractive",JT],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",JT],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",JT]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],features:[sT([Dt,{provide:vt,useExisting:l}])]})}return l})(),X=(()=>{class l{_changeDetectorRef=g(bl);_elementRef=g(Kt$1);_focusMonitor=g(St);_idGenerator=g(Ut$1);_animationDisabled=K$1();_checked=false;ariaLabel;ariaLabelledby=null;_buttonElement;buttonToggleGroup;get buttonId(){return `${this.id}-button`}id;name;value;get tabIndex(){return this._tabIndex()}set tabIndex(e){this._tabIndex.set(e);}_tabIndex;disableRipple=false;get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(e){this._appearance=e;}_appearance;get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(e){e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck());}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(e){this._disabled=e;}_disabled=false;get disabledInteractive(){return this._disabledInteractive||this.buttonToggleGroup!==null&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e;}_disabledInteractive;change=new yt$2;constructor(){g(D$1).load(on);let e=g(vt,{optional:true}),t=g(new cm("tabindex"),{optional:true})||"",n=g(yt,{optional:true});this._tabIndex=Gi(parseInt(t)||0),this.buttonToggleGroup=e,this._appearance=n&&n.appearance?n.appearance:"standard",this._disabledInteractive=n?.disabledInteractive??false;}ngOnInit(){let e=this.buttonToggleGroup;this.id=this.id||this._idGenerator.getId("mat-button-toggle-"),e&&(e._isPrechecked(this)?this.checked=true:e._isSelected(this)!==this._checked&&e._syncButtonToggle(this,this._checked));}ngAfterViewInit(){this._animationDisabled||this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"),this._focusMonitor.monitor(this._elementRef,true);}ngOnDestroy(){let e=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),e&&e._isSelected(this)&&e._syncButtonToggle(this,false,false,true);}focus(e){this._buttonElement.nativeElement.focus(e);}_onButtonClick(){if(this.disabled)return;let e=this.isSingleSelector()?true:!this._checked;if(e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,true),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){let t=this.buttonToggleGroup._buttonToggles.find(n=>n.tabIndex===0);t&&(t.tabIndex=-1),this.tabIndex=0;}this.change.emit(new K(this,this.value));}_markForCheck(){this._changeDetectorRef.markForCheck();}_getButtonName(){return this.isSingleSelector()?this.buttonToggleGroup.name:this.name||null}isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static \u0275fac=function(t){return new(t||l)};static \u0275cmp=Fw({type:l,selectors:[["mat-button-toggle"]],viewQuery:function(t,n){if(t&1&&Pg(Pt,5),t&2){let o;bC(o=SC())&&(n._buttonElement=o.first);}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(t,n){t&1&&Rg("focus",function(){return n.focus()}),t&2&&(Tg("aria-label",null)("aria-labelledby",null)("id",n.id)("name",null),Ug("mat-button-toggle-standalone",!n.buttonToggleGroup)("mat-button-toggle-checked",n.checked)("mat-button-toggle-disabled",n.disabled)("mat-button-toggle-disabled-interactive",n.disabledInteractive)("mat-button-toggle-appearance-standard",n.appearance==="standard"));},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",JT],appearance:"appearance",checked:[2,"checked","checked",JT],disabled:[2,"disabled","disabled",JT],disabledInteractive:[2,"disabledInteractive","disabledInteractive",JT]},outputs:{change:"change"},exportAs:["matButtonToggle"],ngContentSelectors:Ot,decls:7,vars:13,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-checkbox-wrapper"],[1,"mat-button-toggle-label-content"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"],["state","checked","aria-hidden","true","appearance","minimal",3,"disabled"]],template:function(t,n){if(t&1&&(wC(),ws(0,"button",1,0),Rg("click",function(){return n._onButtonClick()}),oC(2,Ft,2,1,"div",2),ws(3,"span",3),CC(4),hl()(),Sg(5,"span",4)(6,"span",5)),t&2){let o=MC(1);bg("id",n.buttonId)("disabled",n.disabled&&!n.disabledInteractive||null),Tg("role",n.isSingleSelector()?"radio":"button")("tabindex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("aria-pressed",n.isSingleSelector()?null:n.checked)("aria-checked",n.isSingleSelector()?n.checked:null)("name",n._getButtonName())("aria-label",n.ariaLabel)("aria-labelledby",n.ariaLabelledby)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),nI(2),iC(n.buttonToggleGroup&&(!n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideSingleSelectionIndicator||n.buttonToggleGroup.multiple&&!n.buttonToggleGroup.hideMultipleSelectionIndicator)?2:-1),nI(4),bg("matRippleTrigger",o)("matRippleDisabled",n.disableRipple||n.disabled);}},dependencies:[Oi,An],styles:[`.mat-button-toggle-standalone,
2
- .mat-button-toggle-group {
3
- position: relative;
4
- display: inline-flex;
5
- flex-direction: row;
6
- white-space: nowrap;
7
- overflow: hidden;
8
- -webkit-tap-highlight-color: transparent;
9
- border-radius: var(--mat-button-toggle-legacy-shape);
10
- transform: translateZ(0);
11
- }
12
- .mat-button-toggle-standalone:not([class*=mat-elevation-z]),
13
- .mat-button-toggle-group:not([class*=mat-elevation-z]) {
14
- box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
15
- }
16
- @media (forced-colors: active) {
17
- .mat-button-toggle-standalone,
18
- .mat-button-toggle-group {
19
- outline: solid 1px;
20
- }
21
- }
22
-
23
- .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
24
- .mat-button-toggle-group-appearance-standard {
25
- border-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
26
- border: solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline));
27
- }
28
- .mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,
29
- .mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox {
30
- --mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));
31
- }
32
- .mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),
33
- .mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]) {
34
- box-shadow: none;
35
- }
36
- @media (forced-colors: active) {
37
- .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
38
- .mat-button-toggle-group-appearance-standard {
39
- outline: 0;
40
- }
41
- }
42
-
43
- .mat-button-toggle-vertical {
44
- flex-direction: column;
45
- }
46
- .mat-button-toggle-vertical .mat-button-toggle-label-content {
47
- display: block;
48
- }
49
-
50
- .mat-button-toggle {
51
- white-space: nowrap;
52
- position: relative;
53
- color: var(--mat-button-toggle-legacy-text-color);
54
- font-family: var(--mat-button-toggle-legacy-label-text-font);
55
- font-size: var(--mat-button-toggle-legacy-label-text-size);
56
- line-height: var(--mat-button-toggle-legacy-label-text-line-height);
57
- font-weight: var(--mat-button-toggle-legacy-label-text-weight);
58
- letter-spacing: var(--mat-button-toggle-legacy-label-text-tracking);
59
- --mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-button-toggle-legacy-selected-state-text-color);
60
- }
61
- .mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay {
62
- opacity: var(--mat-button-toggle-legacy-focus-state-layer-opacity);
63
- }
64
- .mat-button-toggle .mat-icon svg {
65
- vertical-align: top;
66
- }
67
-
68
- .mat-button-toggle-checkbox-wrapper {
69
- display: inline-block;
70
- justify-content: flex-start;
71
- align-items: center;
72
- width: 0;
73
- height: 18px;
74
- line-height: 18px;
75
- overflow: hidden;
76
- box-sizing: border-box;
77
- position: absolute;
78
- top: 50%;
79
- left: 16px;
80
- transform: translate3d(0, -50%, 0);
81
- }
82
- [dir=rtl] .mat-button-toggle-checkbox-wrapper {
83
- left: auto;
84
- right: 16px;
85
- }
86
- .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper {
87
- left: 12px;
88
- }
89
- [dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper {
90
- left: auto;
91
- right: 12px;
92
- }
93
- .mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper {
94
- width: 18px;
95
- }
96
- .mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper {
97
- transition: width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1);
98
- }
99
- .mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper {
100
- transition: none;
101
- }
102
-
103
- .mat-button-toggle-checked {
104
- color: var(--mat-button-toggle-legacy-selected-state-text-color);
105
- background-color: var(--mat-button-toggle-legacy-selected-state-background-color);
106
- }
107
-
108
- .mat-button-toggle-disabled {
109
- pointer-events: none;
110
- color: var(--mat-button-toggle-legacy-disabled-state-text-color);
111
- background-color: var(--mat-button-toggle-legacy-disabled-state-background-color);
112
- --mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: var(--mat-button-toggle-legacy-disabled-state-text-color);
113
- }
114
- .mat-button-toggle-disabled.mat-button-toggle-checked {
115
- background-color: var(--mat-button-toggle-legacy-disabled-selected-state-background-color);
116
- }
117
-
118
- .mat-button-toggle-disabled-interactive {
119
- pointer-events: auto;
120
- }
121
-
122
- .mat-button-toggle-appearance-standard {
123
- color: var(--mat-button-toggle-text-color, var(--mat-sys-on-surface));
124
- background-color: var(--mat-button-toggle-background-color, transparent);
125
- font-family: var(--mat-button-toggle-label-text-font, var(--mat-sys-label-large-font));
126
- font-size: var(--mat-button-toggle-label-text-size, var(--mat-sys-label-large-size));
127
- line-height: var(--mat-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));
128
- font-weight: var(--mat-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));
129
- letter-spacing: var(--mat-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking));
130
- }
131
- .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard + .mat-button-toggle-appearance-standard {
132
- border-left: solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline));
133
- }
134
- [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard + .mat-button-toggle-appearance-standard {
135
- border-left: none;
136
- border-right: solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline));
137
- }
138
- .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard + .mat-button-toggle-appearance-standard {
139
- border-left: none;
140
- border-right: none;
141
- border-top: solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline));
142
- }
143
- .mat-button-toggle-appearance-standard.mat-button-toggle-checked {
144
- color: var(--mat-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));
145
- background-color: var(--mat-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container));
146
- }
147
- .mat-button-toggle-appearance-standard.mat-button-toggle-disabled {
148
- color: var(--mat-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));
149
- background-color: var(--mat-button-toggle-disabled-state-background-color, transparent);
150
- }
151
- .mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox {
152
- --mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: var(--mat-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));
153
- }
154
- .mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked {
155
- color: var(--mat-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));
156
- background-color: var(--mat-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent));
157
- }
158
- .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {
159
- background-color: var(--mat-button-toggle-state-layer-color, var(--mat-sys-on-surface));
160
- }
161
- .mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay {
162
- opacity: var(--mat-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));
163
- }
164
- .mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay {
165
- opacity: var(--mat-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));
166
- }
167
- @media (hover: none) {
168
- .mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay {
169
- display: none;
170
- }
171
- }
172
-
173
- .mat-button-toggle-label-content {
174
- -webkit-user-select: none;
175
- user-select: none;
176
- display: inline-block;
177
- padding: 0 16px;
178
- line-height: var(--mat-button-toggle-legacy-height);
179
- position: relative;
180
- }
181
- .mat-button-toggle-appearance-standard .mat-button-toggle-label-content {
182
- padding: 0 12px;
183
- line-height: var(--mat-button-toggle-height, 40px);
184
- }
185
-
186
- .mat-button-toggle-label-content > * {
187
- vertical-align: middle;
188
- }
189
-
190
- .mat-button-toggle-focus-overlay {
191
- top: 0;
192
- left: 0;
193
- right: 0;
194
- bottom: 0;
195
- position: absolute;
196
- border-radius: inherit;
197
- pointer-events: none;
198
- opacity: 0;
199
- background-color: var(--mat-button-toggle-legacy-state-layer-color);
200
- }
201
-
202
- @media (forced-colors: active) {
203
- .mat-button-toggle-checked .mat-button-toggle-focus-overlay {
204
- border-bottom: solid 500px;
205
- opacity: 0.5;
206
- height: 0;
207
- }
208
- .mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay {
209
- opacity: 0.6;
210
- }
211
- .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {
212
- border-bottom: solid 500px;
213
- }
214
- }
215
- .mat-button-toggle .mat-button-toggle-ripple {
216
- top: 0;
217
- left: 0;
218
- right: 0;
219
- bottom: 0;
220
- position: absolute;
221
- pointer-events: none;
222
- }
223
-
224
- .mat-button-toggle-button {
225
- border: 0;
226
- background: none;
227
- color: inherit;
228
- padding: 0;
229
- margin: 0;
230
- font: inherit;
231
- outline: none;
232
- width: 100%;
233
- cursor: pointer;
234
- }
235
- .mat-button-toggle-animations-enabled .mat-button-toggle-button {
236
- transition: padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1);
237
- }
238
- .mat-button-toggle-vertical .mat-button-toggle-button {
239
- transition: none;
240
- }
241
- .mat-button-toggle-disabled .mat-button-toggle-button {
242
- cursor: default;
243
- }
244
- .mat-button-toggle-button::-moz-focus-inner {
245
- border: 0;
246
- }
247
- .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper) {
248
- padding-left: 30px;
249
- }
250
- [dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper) {
251
- padding-left: 0;
252
- padding-right: 30px;
253
- }
254
-
255
- .mat-button-toggle-standalone.mat-button-toggle-appearance-standard {
256
- --mat-focus-indicator-border-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
257
- }
258
-
259
- .mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before {
260
- border-top-right-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
261
- border-bottom-right-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
262
- }
263
- .mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before {
264
- border-top-left-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
265
- border-bottom-left-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
266
- }
267
-
268
- .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before {
269
- border-bottom-right-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
270
- border-bottom-left-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
271
- }
272
- .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before {
273
- border-top-right-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
274
- border-top-left-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));
275
- }
276
- `],encapsulation:2})}return l})(),Mt=(()=>{class l{static \u0275fac=function(t){return new(t||l)};static \u0275mod=Eo({type:l});static \u0275inj=qn({imports:[sn,X,wt$1]})}return l})();var Wt=(l,a)=>a.id,Nt=(l,a)=>a.value;function Gt(l,a){l&1&&(ws(0,"mat-option",5),QC(1,"Loading prompts..."),hl());}function zt(l,a){if(l&1&&(ws(0,"mat-option",6),QC(1),hl()),l&2){let e=a.$implicit;bg("value",e.id),nI(),Dl(" ",e.name," ");}}function Ut(l,a){if(l&1){let e=gC();ws(0,"mat-checkbox",37),Rg("change",function(){let n=wf(e).$implicit,o=EC();return Cf(o.toggleDayOfWeek(n.value))}),QC(1),hl();}if(l&2){let e=a.$implicit,t=EC();bg("checked",t.isDaySelected(e.value)),nI(),Dl(" ",e.label," ");}}function qt(l,a){if(l&1){let e=gC();ws(0,"mat-form-field",2)(1,"mat-label"),QC(2,"Number of Occurrences"),hl(),ws(3,"input",11),em("ngModelChange",function(n){wf(e);let o=EC();return tT(o.endOccurrences,n)||(o.endOccurrences=n),Cf(n)}),hl(),GI(),hl();}if(l&2){let e=EC();nI(3),Jg("ngModel",e.endOccurrences),qI();}}function Ht(l,a){if(l&1){let e=gC();ws(0,"mat-form-field",2)(1,"mat-label"),QC(2,"End Date"),hl(),ws(3,"input",38),em("ngModelChange",function(n){wf(e);let o=EC();return tT(o.endTimestamp,n)||(o.endTimestamp=n),Cf(n)}),hl(),GI(),hl();}if(l&2){let e=EC();nI(3),Jg("ngModel",e.endTimestamp),qI();}}function jt(l,a){if(l&1){let e=gC();ws(0,"div")(1,"mat-form-field",2)(2,"mat-label"),QC(3,"Parameter Value"),hl(),ws(4,"input",39),em("ngModelChange",function(n){wf(e);let o=EC();return tT(o.simpleParameter,n)||(o.simpleParameter=n),Cf(n)}),hl(),GI(),ws(5,"mat-hint"),QC(6),hl()()();}if(l&2){let e=EC();nI(4),Jg("ngModel",e.simpleParameter),qI(),nI(2),Dl("Simple value for ","{{PARAMETERS}}"," placeholder or appended to first command");}}function Qt(l,a){if(l&1){let e=gC();ws(0,"div",42)(1,"mat-form-field",43)(2,"mat-label"),QC(3,"Key"),hl(),ws(4,"input",44),em("ngModelChange",function(n){let o=wf(e).$implicit;return tT(o.key,n)||(o.key=n),Cf(n)}),hl(),GI(),hl(),ws(5,"mat-form-field",45)(6,"mat-label"),QC(7,"Value"),hl(),ws(8,"input",46),em("ngModelChange",function(n){let o=wf(e).$implicit;return tT(o.value,n)||(o.value=n),Cf(n)}),hl(),GI(),hl(),ws(9,"button",47),Rg("click",function(){let n=wf(e).$index,o=EC(3);return Cf(o.removeParameter(n))}),ws(10,"mat-icon"),QC(11,"delete"),hl()()();}if(l&2){let e=a.$implicit;nI(4),Jg("ngModel",e.key),qI(),nI(4),Jg("ngModel",e.value),qI();}}function $t(l,a){if(l&1&&(ws(0,"div",41),cC(1,Qt,12,2,"div",42,sC),hl()),l&2){let e=EC(2);nI(),uC(e.parameters);}}function Kt(l,a){if(l&1){let e=gC();ws(0,"div")(1,"div",28)(2,"button",40),Rg("click",function(){wf(e);let n=EC();return Cf(n.addParameter())}),ws(3,"mat-icon"),QC(4,"add"),hl()()(),oC(5,$t,3,0,"div",41),ws(6,"p",21),QC(7),hl()();}if(l&2){let e=EC();nI(5),iC(e.parameters.length>0?5:-1),nI(2),Dl("Key-value pairs for ","{{key}}"," placeholders in prompt commands");}}function Xt(l,a){if(l&1&&(ws(0,"div",33)(1,"mat-icon"),QC(2,"error"),hl(),ws(3,"span"),QC(4),hl()()),l&2){let e=EC();nI(4),Yg(e.errorMessage);}}var B=class l{schedulerApi=g(xe);promptApi=g(d);dialogRef=g(z);availablePrompts=[];isLoadingPrompts=false;name="";promptId="";enabled=true;startTimestamp="";intervalValue=1;intervalUnit="h";daysOfWeek=[];endConditionType="none";endOccurrences=10;endTimestamp="";parameterMode="simple";simpleParameter="";parameters=[];isSaving=false;errorMessage="";isEditMode=false;schedulerId="";data=g(Ue);daysOfWeekOptions=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:2,label:"Tuesday"},{value:3,label:"Wednesday"},{value:4,label:"Thursday"},{value:5,label:"Friday"},{value:6,label:"Saturday"}];constructor(){this.isEditMode=this.data.mode==="edit";}ngOnInit(){if(this.loadPrompts(),this.isEditMode||(this.startTimestamp=this.formatDateForInput(new Date)),this.isEditMode&&this.data.scheduler){if(this.schedulerId=this.data.scheduler.id,this.name=this.data.scheduler.name,this.promptId=this.data.scheduler.promptId??"",this.enabled=this.data.scheduler.enabled,this.data.scheduler.schedule.startTimestamp){let e=new Date(this.data.scheduler.schedule.startTimestamp);this.startTimestamp=this.formatDateForInput(e);}let a=this.data.scheduler.schedule.interval.match(/^(\d+)(min|h|d|M)$/);a&&a[1]&&a[2]&&(this.intervalValue=parseInt(a[1],10),this.intervalUnit=a[2]),this.daysOfWeek=this.data.scheduler.schedule.daysOfWeek||[],this.data.scheduler.schedule.endCondition&&(this.endConditionType=this.data.scheduler.schedule.endCondition.type,this.endConditionType==="occurrences"?this.endOccurrences=this.data.scheduler.schedule.endCondition.value:this.endConditionType==="endTimestamp"&&(this.endTimestamp=this.data.scheduler.schedule.endCondition.value)),this.data.scheduler.parameters&&(typeof this.data.scheduler.parameters=="object"&&Object.keys(this.data.scheduler.parameters).length===1&&"PARAMETERS"in this.data.scheduler.parameters?(this.parameterMode="simple",this.simpleParameter=String(this.data.scheduler.parameters.PARAMETERS)):(this.parameterMode="structured",this.parameters=Object.entries(this.data.scheduler.parameters).map(([e,t])=>({key:e,value:String(t)}))));}}loadPrompts(){this.isLoadingPrompts=true,this.promptApi.listPrompts().subscribe({next:a=>{this.availablePrompts=a,this.isLoadingPrompts=false;},error:a=>{console.error("Error loading prompts:",a),this.errorMessage="Failed to load prompts",this.isLoadingPrompts=false;}});}toggleDayOfWeek(a){let e=this.daysOfWeek.indexOf(a);e>-1?this.daysOfWeek.splice(e,1):this.daysOfWeek.push(a),this.daysOfWeek.sort();}isDaySelected(a){return this.daysOfWeek.includes(a)}addParameter(){this.parameters.push({key:"",value:""});}removeParameter(a){this.parameters.splice(a,1);}trackByIndex(a){return a}formatDateForInput(a){let e=a.getFullYear(),t=String(a.getMonth()+1).padStart(2,"0"),n=String(a.getDate()).padStart(2,"0"),o=String(a.getHours()).padStart(2,"0"),u=String(a.getMinutes()).padStart(2,"0");return `${e}-${t}-${n}T${o}:${u}`}validateForm(){if(!this.name.trim())return this.errorMessage="Name is required",false;if(!this.promptId)return this.errorMessage="Prompt is required",false;if(this.intervalValue<1)return this.errorMessage="Interval must be at least 1",false;switch(this.intervalUnit){case "min":if(this.intervalValue>59)return this.errorMessage="Minutes interval must be between 1 and 59 (use hours for longer)",false;break;case "h":if(this.intervalValue>24)return this.errorMessage="Hours interval must be between 1 and 24 (use days for longer)",false;break;case "d":if(this.intervalValue>31)return this.errorMessage="Days interval must be between 1 and 31 (use months for longer)",false;break;case "M":if(this.intervalValue>12)return this.errorMessage="Months interval must be between 1 and 12",false;break}return this.endConditionType==="occurrences"&&this.endOccurrences<1?(this.errorMessage="Occurrences must be at least 1",false):this.endConditionType==="endTimestamp"&&!this.endTimestamp?(this.errorMessage="End date is required",false):true}buildSchedule(){let e={startTimestamp:(this.startTimestamp?new Date(this.startTimestamp):new Date).toISOString(),interval:`${this.intervalValue}${this.intervalUnit}`};return this.daysOfWeek.length>0&&(e.daysOfWeek=[...this.daysOfWeek]),this.endConditionType==="occurrences"?e.endCondition={type:"occurrences",value:this.endOccurrences}:this.endConditionType==="endTimestamp"&&(e.endCondition={type:"endTimestamp",value:this.endTimestamp}),e}buildParameters(){if(this.parameterMode==="simple")return this.simpleParameter.trim()?{PARAMETERS:this.simpleParameter.trim()}:void 0;let a=this.parameters.filter(t=>t.key.trim());if(a.length===0)return;let e={};return a.forEach(t=>{e[t.key]=t.value;}),e}save(){if(this.errorMessage="",!this.validateForm())return;let a=this.buildSchedule(),e=this.buildParameters();this.isSaving=true,this.isEditMode&&this.schedulerId?this.schedulerApi.updateScheduler(this.schedulerId,{name:this.name.trim(),enabled:this.enabled,promptId:this.promptId,schedule:a,parameters:e}).subscribe({next:()=>{this.isSaving=false,this.dialogRef.close(true);},error:t=>{console.error("Error updating scheduler:",t),this.errorMessage=t?.error?.error||t?.message||"Failed to update scheduler",this.isSaving=false;}}):this.schedulerApi.createScheduler({name:this.name.trim(),promptId:this.promptId,schedule:a,parameters:e,enabled:this.enabled}).subscribe({next:()=>{this.isSaving=false,this.dialogRef.close(true);},error:t=>{console.error("Error creating scheduler:",t),this.errorMessage=t?.error?.error||t?.message||"Failed to create scheduler",this.isSaving=false;}});}cancel(){this.dialogRef.close(false);}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=Fw({type:l,selectors:[["app-scheduler-form"]],decls:90,vars:20,consts:[["mat-dialog-title",""],[1,"form-container"],["appearance","outline",1,"full-width"],["matInput","","placeholder","My Scheduler","required","",3,"ngModelChange","ngModel"],["required","",3,"ngModelChange","ngModel","disabled"],["disabled",""],[3,"value"],["matInput","","type","datetime-local",3,"ngModelChange","ngModel"],[1,"interval-section"],[1,"interval-fields"],["appearance","outline",1,"interval-value"],["matInput","","type","number","min","1","required","",3,"ngModelChange","ngModel"],["appearance","outline",1,"interval-unit"],["required","",3,"ngModelChange","ngModel"],["value","min"],["value","h"],["value","d"],["value","M"],[1,"days-section"],[1,"days-checkboxes"],[3,"checked"],[1,"hint"],[1,"end-condition-section"],[3,"ngModelChange","ngModel"],["value","none"],["value","occurrences"],["value","endTimestamp"],[1,"parameters-section"],[1,"section-header"],[1,"mode-toggle",3,"ngModelChange","ngModel"],["value","simple"],["value","structured"],[1,"enabled-section"],[1,"error-message"],["align","end"],["mat-button","",3,"click","disabled"],["mat-raised-button","","color","primary",3,"click","disabled"],[3,"change","checked"],["matInput","","type","datetime-local","required","",3,"ngModelChange","ngModel"],["matInput","","placeholder","e.g., 1234 or staging",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Add parameter",3,"click"],[1,"parameters-list"],[1,"parameter-item"],["appearance","outline",1,"param-key"],["matInput","","placeholder","parameterName",3,"ngModelChange","ngModel"],["appearance","outline",1,"param-value"],["matInput","","placeholder","value",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Remove parameter",1,"remove-btn",3,"click"]],template:function(e,t){e&1&&(ws(0,"h2",0),QC(1),hl(),ws(2,"mat-dialog-content")(3,"div",1)(4,"mat-form-field",2)(5,"mat-label"),QC(6,"Name"),hl(),ws(7,"input",3),em("ngModelChange",function(o){return tT(t.name,o)||(t.name=o),o}),hl(),GI(),ws(8,"mat-hint"),QC(9,"A descriptive name for this scheduler"),hl()(),ws(10,"mat-form-field",2)(11,"mat-label"),QC(12,"Prompt"),hl(),ws(13,"mat-select",4),em("ngModelChange",function(o){return tT(t.promptId,o)||(t.promptId=o),o}),oC(14,Gt,2,0,"mat-option",5),cC(15,zt,2,2,"mat-option",6,Wt),hl(),GI(),ws(17,"mat-hint"),QC(18),hl()(),ws(19,"mat-form-field",2)(20,"mat-label"),QC(21,"Start Date & Time"),hl(),ws(22,"input",7),em("ngModelChange",function(o){return tT(t.startTimestamp,o)||(t.startTimestamp=o),o}),hl(),GI(),ws(23,"mat-hint"),QC(24,"When to start the scheduler (leave empty for now)"),hl()(),ws(25,"div",8)(26,"h3"),QC(27,"Schedule Interval"),hl(),ws(28,"div",9)(29,"mat-form-field",10)(30,"mat-label"),QC(31,"Every"),hl(),ws(32,"input",11),em("ngModelChange",function(o){return tT(t.intervalValue,o)||(t.intervalValue=o),o}),hl(),GI(),hl(),ws(33,"mat-form-field",12)(34,"mat-label"),QC(35,"Unit"),hl(),ws(36,"mat-select",13),em("ngModelChange",function(o){return tT(t.intervalUnit,o)||(t.intervalUnit=o),o}),ws(37,"mat-option",14),QC(38,"Minutes (1-59)"),hl(),ws(39,"mat-option",15),QC(40,"Hours (1-24)"),hl(),ws(41,"mat-option",16),QC(42,"Days (1-31)"),hl(),ws(43,"mat-option",17),QC(44,"Months (1-12)"),hl()(),GI(),hl()()(),ws(45,"div",18)(46,"h3"),QC(47,"Days of Week (Optional)"),hl(),ws(48,"div",19),cC(49,Ut,2,2,"mat-checkbox",20,Nt),hl(),ws(51,"p",21),QC(52,"Leave empty to run every day"),hl()(),ws(53,"div",22)(54,"h3"),QC(55,"End Condition (Optional)"),hl(),ws(56,"mat-form-field",2)(57,"mat-label"),QC(58,"End Type"),hl(),ws(59,"mat-select",23),em("ngModelChange",function(o){return tT(t.endConditionType,o)||(t.endConditionType=o),o}),ws(60,"mat-option",24),QC(61,"Never (run indefinitely)"),hl(),ws(62,"mat-option",25),QC(63,"After X occurrences"),hl(),ws(64,"mat-option",26),QC(65,"Until specific date"),hl()(),GI(),hl(),oC(66,qt,4,1,"mat-form-field",2),oC(67,Ht,4,1,"mat-form-field",2),hl(),ws(68,"div",27)(69,"div",28)(70,"h3"),QC(71,"Parameters (Optional)"),hl(),ws(72,"mat-button-toggle-group",29),em("ngModelChange",function(o){return tT(t.parameterMode,o)||(t.parameterMode=o),o}),ws(73,"mat-button-toggle",30),QC(74,"Simple"),hl(),ws(75,"mat-button-toggle",31),QC(76,"Structured"),hl()(),GI(),hl(),oC(77,jt,7,2,"div"),oC(78,Kt,8,2,"div"),hl(),ws(79,"div",32)(80,"mat-checkbox",23),em("ngModelChange",function(o){return tT(t.enabled,o)||(t.enabled=o),o}),QC(81,"Enabled"),hl(),GI(),ws(82,"p",21),QC(83,"Scheduler will only run if enabled"),hl()(),oC(84,Xt,5,1,"div",33),hl()(),ws(85,"mat-dialog-actions",34)(86,"button",35),Rg("click",function(){return t.cancel()}),QC(87,"Cancel"),hl(),ws(88,"button",36),Rg("click",function(){return t.save()}),QC(89),hl()()),e&2&&(nI(),Yg(t.isEditMode?"Edit Scheduler":"Create Scheduler"),nI(6),Jg("ngModel",t.name),qI(),nI(6),Jg("ngModel",t.promptId),bg("disabled",t.isLoadingPrompts),qI(),nI(),iC(t.isLoadingPrompts?14:-1),nI(),uC(t.availablePrompts),nI(3),Yg(t.isLoadingPrompts?"Loading available prompts...":"Select the prompt to execute"),nI(4),Jg("ngModel",t.startTimestamp),qI(),nI(10),Jg("ngModel",t.intervalValue),qI(),nI(4),Jg("ngModel",t.intervalUnit),qI(),nI(13),uC(t.daysOfWeekOptions),nI(10),Jg("ngModel",t.endConditionType),qI(),nI(7),iC(t.endConditionType==="occurrences"?66:-1),nI(),iC(t.endConditionType==="endTimestamp"?67:-1),nI(5),Jg("ngModel",t.parameterMode),qI(),nI(5),iC(t.parameterMode==="simple"?77:-1),nI(),iC(t.parameterMode==="structured"?78:-1),nI(2),Jg("ngModel",t.enabled),qI(),nI(4),iC(t.errorMessage?84:-1),nI(2),bg("disabled",t.isSaving),nI(2),bg("disabled",t.isSaving),nI(),Dl(" ",t.isSaving?"Saving...":"Save"," "));},dependencies:[Wm,ti,Ye,fn,Zn,gt,$t$1,cn,zt$1,jt$1,Vt,Nt$1,hr,pr,Gn,Tn,Sn,nt,ae,le,ce,yt$1,wt,Pt$1,Lt,Fn,ve,ne,Mt,ie,X],styles:[".form-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:0;min-width:600px}@media(max-width:768px){.form-container[_ngcontent-%COMP%]{min-width:auto}}.full-width[_ngcontent-%COMP%]{width:100%}.interval-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:1rem;font-weight:600}.interval-section[_ngcontent-%COMP%] .interval-fields[_ngcontent-%COMP%]{display:flex;gap:1rem}.interval-section[_ngcontent-%COMP%] .interval-fields[_ngcontent-%COMP%] .interval-value[_ngcontent-%COMP%], .interval-section[_ngcontent-%COMP%] .interval-fields[_ngcontent-%COMP%] .interval-unit[_ngcontent-%COMP%]{flex:1}.days-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:1rem;font-weight:600}.days-section[_ngcontent-%COMP%] .days-checkboxes[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.5rem}.days-section[_ngcontent-%COMP%] .days-checkboxes[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{min-width:120px}.days-section[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary)}.end-condition-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:1rem;font-weight:600}.parameters-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.parameters-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:600}.parameters-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] .mode-toggle[_ngcontent-%COMP%]{height:32px}.parameters-section[_ngcontent-%COMP%] .parameters-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.parameters-section[_ngcontent-%COMP%] .parameter-item[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem}.parameters-section[_ngcontent-%COMP%] .parameter-item[_ngcontent-%COMP%] .param-key[_ngcontent-%COMP%]{flex:1}.parameters-section[_ngcontent-%COMP%] .parameter-item[_ngcontent-%COMP%] .param-value[_ngcontent-%COMP%]{flex:2}.parameters-section[_ngcontent-%COMP%] .parameter-item[_ngcontent-%COMP%] .remove-btn[_ngcontent-%COMP%]{margin-top:8px}.parameters-section[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{margin:.5rem 0 0;font-size:.85rem;color:var(--color-text-secondary)}.enabled-section[_ngcontent-%COMP%]{padding:1rem;background:var(--color-surface);border-radius:8px;border:1px solid var(--color-border)}.enabled-section[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{display:block;margin-bottom:.5rem}.enabled-section[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary)}.error-message[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#f443361a;border:1px solid var(--color-error);border-radius:4px;color:var(--color-error)}.error-message[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}.error-message[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex:1}"],changeDetection:1})};var Yt=()=>[],Zt=l=>({id:l});function Jt(l,a){if(l&1&&(ws(0,"div",6),QC(1),hl()),l&2){let e=EC();nI(),Yg(e.errorMessage());}}function en(l,a){if(l&1){let e=gC();ws(0,"ds-entity-card",8),Rg("selected",function(n){wf(e);let o=EC();return Cf(o.onEdit(n))}),yl(1,9),ws(2,"button",10),Rg("click",function(n){return n.stopPropagation()}),ws(3,"mat-icon"),QC(4,"more_vert"),hl()(),vl(),hl();}if(l&2){let e=a.$implicit;EC();let t=MC(11);bg("id",e.id)("name",e.name)("description",e.description)("badges",e.badges??aT(6,Yt)),nI(2),bg("matMenuTriggerFor",t)("matMenuTriggerData",cT(7,Zt,e.id));}}function tn(l,a){if(l&1){let e=gC();ws(0,"button",11),Rg("click",function(){let n=wf(e).id,o=EC();return Cf(o.onEdit(n))}),ws(1,"mat-icon"),QC(2,"edit"),hl(),QC(3," Edit "),hl(),ws(4,"button",11),Rg("click",function(){let n=wf(e).id,o=EC();return Cf(o.onToggleEnabled(n))}),ws(5,"mat-icon"),QC(6),hl(),QC(7),hl(),ws(8,"button",11),Rg("click",function(){let n=wf(e).id,o=EC();return Cf(o.onRunNow(n))}),ws(9,"mat-icon"),QC(10,"play_arrow"),hl(),QC(11," Run now "),hl(),ws(12,"button",12),Rg("click",function(){let n=wf(e).id,o=EC();return Cf(o.onDelete(n))}),ws(13,"mat-icon"),QC(14,"delete"),hl(),QC(15," Delete "),hl();}if(l&2){let e=a.id,t=EC();nI(6),Yg(t.isEnabled(e)?"pause_circle":"play_circle"),nI(),Dl(" ",t.isEnabled(e)?"Disable":"Enable"," ");}}var Ct=class l{schedulerApi=g(xe);promptApi=g(d);configApi=g(W);location=g(_m);dialog=g(Re);schedulers=Gi([]);prompts=Gi([]);isLoading=Gi(false);errorMessage=Gi(null);showOnlyMine=Gi(true);currentUsername=Gi("");schedulerItems=ET(()=>{let a=this.schedulers(),e=this.currentUsername(),n=this.showOnlyMine()&&e?a.filter(C=>this.isMyScheduler(C)):a,u=[...new Set(n.map(C=>C.createdBy))].sort((C,F)=>C===e&&F!==e?-1:F===e&&C!==e?1:C.localeCompare(F)),I=[];for(let C of u){let F=C===e?`${C} (you)`:C;for(let V of n.filter(St=>St.createdBy===C))I.push({id:V.id,name:V.name,description:this.buildDescription(V),badges:this.buildBadges(V),groupKey:C,groupLabel:F});}return I});ngOnInit(){this.configApi.getUserConfig().subscribe({next:a=>this.currentUsername.set(a.username??""),error:()=>{}}),this.loadPrompts(),this.loadSchedulers();}loadPrompts(){this.promptApi.listPrompts().subscribe({next:a=>this.prompts.set(a),error:()=>{}});}loadSchedulers(){this.isLoading.set(true),this.schedulerApi.listSchedulers().subscribe({next:a=>{this.schedulers.set(a),this.isLoading.set(false);},error:a=>{this.errorMessage.set(a?.error?.error??"Failed to load schedulers"),this.isLoading.set(false);}});}onBack(){this.location.back();}onCreate(){this.dialog.open(B,{width:"700px",maxHeight:"90vh",data:{mode:"create"}}).afterClosed().subscribe(e=>{e&&this.loadSchedulers();});}onEdit(a){this.schedulerApi.getScheduler(a).subscribe({next:e=>{this.dialog.open(B,{width:"700px",maxHeight:"90vh",data:{mode:"edit",scheduler:e}}).afterClosed().subscribe(n=>{n&&this.loadSchedulers();});},error:e=>this.errorMessage.set(e?.error?.error??"Failed to load scheduler")});}onToggleEnabled(a){let e=this.schedulers().find(n=>n.id===a);if(!e)return;(e.enabled?this.schedulerApi.disableScheduler(a):this.schedulerApi.enableScheduler(a)).subscribe({next:()=>this.loadSchedulers(),error:n=>this.errorMessage.set(n?.error?.error??"Failed to toggle scheduler")});}onRunNow(a){this.schedulerApi.runSchedulerNow(a).subscribe({next:e=>{alert(`Scheduler executed successfully! Thread ID: ${e.threadId}`),this.loadSchedulers();},error:e=>this.errorMessage.set(e?.error?.error??"Failed to run scheduler")});}onDelete(a){confirm("Are you sure you want to delete this scheduler?")&&this.schedulerApi.deleteScheduler(a).subscribe({next:()=>this.loadSchedulers(),error:e=>this.errorMessage.set(e?.error?.error??"Failed to delete scheduler")});}isEnabled(a){return this.schedulers().find(e=>e.id===a)?.enabled??false}buildDescription(a){let e;if(a.promptId)e=this.getPromptName(a.promptId);else if(a.agentName&&a.instruction){let o=a.instruction.length>40?a.instruction.slice(0,40)+"\u2026":a.instruction;e=`${a.agentName}: ${o}`;}else console.error(`Scheduler "${a.name}" (${a.id}) has neither promptId nor agentName+instruction`),e="Unknown source";let t=this.formatInterval(a.schedule.interval),n=a.nextRun?new Date(a.nextRun).toLocaleString():"Expired";return `${e} \xB7 ${t} \xB7 Next: ${n}`}buildBadges(a){return [a.enabled?{label:"enabled",variant:"success"}:{label:"disabled",variant:"warning"}]}getPromptName(a){let e=this.prompts().find(t=>t.id===a);return e?e.name:a}formatInterval(a){let e=/^(\d+)(min|h|d|M)$/.exec(a);if(!e)return a;let[,t,n]=e;if(!t||!n)return a;let u={min:"minute",h:"hour",d:"day",M:"month"}[n]??n;return `Every ${t} ${u}${parseInt(t,10)>1?"s":""}`}isMyScheduler(a){let e=t=>t.replace(/[.\s]+/g,"_").toLowerCase();return e(a.createdBy)===e(this.currentUsername())}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=Fw({type:l,selectors:[["app-scheduler-list"]],decls:13,vars:6,consts:[["schedulerCard",""],["cardMenu","matMenu"],[1,"scheduler-list-page"],["title","Schedulers","cardMinWidth","384px","contentMaxWidth","1400px","searchPlaceholder","Filter schedulers\u2026","emptyMessage","No schedulers found.",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","mat-icon-button","","title","Back",3,"click"],["toolbar-extras","","color","primary",1,"scheduler-list__mine-toggle",3,"ngModelChange","ngModel"],[1,"scheduler-list__error"],["matMenuContent",""],[3,"selected","id","name","description","badges"],["dsCardActions",""],["mat-icon-button","",3,"click","matMenuTriggerFor","matMenuTriggerData"],["mat-menu-item","",3,"click"],["mat-menu-item","",1,"scheduler-list__delete-item",3,"click"]],template:function(e,t){if(e&1&&(ws(0,"div",2)(1,"ds-entity-list",3),Rg("createRequested",function(){return t.onCreate()}),ws(2,"button",4),Rg("click",function(){return t.onBack()}),ws(3,"mat-icon"),QC(4,"chevron_left"),hl()(),ws(5,"mat-slide-toggle",5),Rg("ngModelChange",function(o){return t.showOnlyMine.set(o)}),QC(6," Mine "),hl(),GI(),hl(),oC(7,Jt,2,1,"div",6),hl(),Eg(8,en,5,9,"ng-template",null,0,mT),ws(10,"mat-menu",null,1),Eg(12,tn,16,2,"ng-template",7),hl()),e&2){let n=MC(9);nI(),bg("items",t.schedulerItems())("loading",t.isLoading())("showCreate",true)("itemTemplate",n),nI(4),bg("ngModel",t.showOnlyMine()),qI(),nI(2),iC(t.errorMessage()?7:-1);}},dependencies:[Wn,ot,it,hr,Gn,yt$1,wt,ke,se,In,De,Be,ya,En,ti,Zn,cn],styles:["[_nghost-%COMP%]{display:block;width:100%;min-height:100vh;background:var(--color-bg);overflow-y:auto}.scheduler-list__mine-toggle[_ngcontent-%COMP%]{flex-shrink:0;font-size:.875rem}.scheduler-list__delete-item[_ngcontent-%COMP%]{color:var(--color-error, #ff3b30)}.scheduler-list__delete-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:inherit}.scheduler-list__error[_ngcontent-%COMP%]{margin:1rem auto;max-width:900px;padding:.75rem 1rem;background:#dc262614;border:1px solid rgba(220,38,38,.25);border-radius:8px;color:var(--color-error, #ff3b30);font-size:.875rem}"],changeDetection:1})};export{Ct as SchedulerListComponent};
@@ -1,2 +0,0 @@
1
- import {v}from'./chunk-CPBcDx4G.js';import {R,q,J}from'./chunk-rwEyLSEP.js';import {g,ao as V,G,w as we,a as Gi,F,E as ET,cd as Uf,c as U,z as z$1,b as P$1,h as Fw,m as ws,o as Rg,Q as QC,n as hl,q as oC,t as nI,a8 as Yg,x as iC,a9 as gC,r as cC,a4 as aC,a3 as GI,S as Sg,ac as EC,v as bg,a6 as qI,y as uC,a5 as Dl,cH as nC,aa as wf,ab as Cf,b$ as BC,T as Tg}from'./main-5PAOSHSM.js';import'./chunk-BY7uKZAo.js';import {k as _t,b as _e$1,o as z,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,A as At,m as mn,Z as Zn,l as Xn,C as Cn,E as En}from'./chunk-tTmeIHGS.js';import'./chunk-BEUXx3TO.js';import'./chunk-kvCfAm7Z.js';import'./chunk-CtkiOUdU.js';import'./chunk-S8F5_Te_.js';function se(i,t){i&1&&(ws(0,"p",5),QC(1,"Loading\u2026"),hl());}function ce(i,t){if(i&1&&(ws(0,"label",23),Sg(1,"input",24),GI(),ws(2,"span"),QC(3),hl()()),i&2){let e=t.$implicit,o=EC(3);nI(),bg("formControl",o.scopeControl)("value",e.value)("disabled",e.value==="namespace"&&!o.isAdmin()),qI(),nI(2),Yg(e.label);}}function de(i,t){if(i&1&&(ws(0,"fieldset",8)(1,"legend",22),QC(2,"Configuration scope"),hl(),cC(3,ce,4,4,"label",23,nC().trackByScope,true),hl()),i&2){let e=EC(2);bg("disabled",e.isEditMode()),nI(3),uC(e.scopeOptions);}}function ue(i,t){if(i&1&&(ws(0,"option",13),QC(1),hl()),i&2){let e=t.$implicit,o=EC(2);bg("value",e),nI(),Yg(o.authTypeLabel[e]);}}function pe(i,t){i&1&&QC(0," Leave a field unchanged to keep the stored credential. ");}function he(i,t){i&1&&(ws(0,"span",11),QC(1,"*"),hl());}function me(i,t){if(i&1&&(ws(0,"p",28),QC(1),hl()),i&2){let e=EC(2).$implicit;bg("id","as-hint-"+e.key),nI(),Yg(e.hint);}}function ge(i,t){if(i&1&&(Sg(0,"input",27),GI(),oC(1,me,2,2,"p",28)),i&2){let e=EC().$implicit;BC("auth-setting-form__input"+(e.secret?" auth-setting-form__input--secret":"")),bg("id","as-cred-"+e.key)("type",e.secret?"password":"text")("placeholder",e.placeholder)("formControl",t)("autocomplete",e.secret?"new-password":"off"),Tg("aria-describedby",e.hint?"as-hint-"+e.key:null),qI(),nI(),iC(e.hint?1:-1);}}function Ce(i,t){if(i&1&&(ws(0,"div",9)(1,"label",26),QC(2),oC(3,he,2,0,"span",11),hl(),oC(4,ge,2,9),hl()),i&2){let e,o=t.$implicit,l=EC(3);nI(),bg("for","as-cred-"+o.key),nI(),Dl(" ",o.label," "),nI(),iC(o.required?3:-1),nI(),iC((e=l.controlForField(o.key))?4:-1,e);}}function fe(i,t){if(i&1&&(ws(0,"fieldset",18)(1,"legend",22),QC(2,"Credentials"),hl(),ws(3,"p",25),QC(4," Values are stored encrypted and masked on read. "),oC(5,pe,1,0),hl(),cC(6,Ce,5,4,"div",9,nC().trackByField,true),hl()),i&2){let e=EC(2);nI(5),iC(e.isEditMode()?5:-1),nI(),uC(e.credentialFields());}}function ye(i,t){if(i&1){let e=gC();ws(0,"form",7),Rg("ngSubmit",function(){wf(e);let l=EC();return Cf(l.submit())}),oC(1,de,5,1,"fieldset",8),ws(2,"div",9)(3,"label",10),QC(4,"Auth type "),ws(5,"span",11),QC(6,"*"),hl()(),ws(7,"select",12),cC(8,ue,2,2,"option",13,aC),hl(),GI(),hl(),ws(10,"div",9)(11,"label",14),QC(12,"Name "),ws(13,"span",11),QC(14,"*"),hl()(),Sg(15,"input",15),GI(),hl(),ws(16,"div",9)(17,"label",16),QC(18,"Description"),hl(),Sg(19,"input",17),GI(),hl(),oC(20,fe,8,1,"fieldset",18),ws(21,"div",19)(22,"button",20),QC(23),hl(),ws(24,"button",21),Rg("click",function(){wf(e);let l=EC();return Cf(l.cancel())}),QC(25,"Cancel"),hl()()();}if(i&2){let e=EC();bg("formGroup",e.form),nI(),iC(e.isPlatformMode?-1:1),nI(6),bg("formControl",e.authTypeControl),qI(),nI(),uC(e.authTypeOptions),nI(7),bg("formControl",e.nameControl),qI(),nI(4),bg("formControl",e.descriptionControl),qI(),nI(),iC(e.credentialFields().length>0?20:-1),nI(2),bg("disabled",e.form.invalid||e.isSubmitting()),nI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," ");}}var _e=new Set(["namespace","userOnNs","userGlobal"]),P=Object.freeze({platform:"Platform (read-only)",namespace:"Namespace configuration",userOnNs:"Personal \u2014 this namespace only",userGlobal:"Personal \u2014 all namespaces"}),Se={ApiKeyAuthSetting:[{key:"apiKey",label:"API Key",placeholder:"sk-\u2026",secret:true,required:false}],BasicAuthAuthSetting:[{key:"username",label:"Username",placeholder:"user@example.com",secret:false,required:false},{key:"password",label:"Password",placeholder:"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022",secret:true,required:false}],BearerTokenAuthSetting:[{key:"token",label:"Bearer token",placeholder:"eyJ\u2026",secret:true,required:false}],OAuthDiscoverableAuthSetting:[{key:"discoveryUrl",label:"Discovery URL",placeholder:"https://\u2026/.well-known/openid-configuration",secret:false,required:false},{key:"clientId",label:"Client ID",placeholder:"",secret:false,required:false},{key:"clientSecret",label:"Client secret",placeholder:"",secret:true,required:false},{key:"scopes",label:"Scopes",placeholder:"",hint:"Space-separated OAuth scopes to request (e.g. openid profile email). Check your provider's documentation for the exact values.",secret:false,required:false}],OAuthCustomAuthSetting:[{key:"authorizationUrl",label:"Authorization URL",placeholder:"https://\u2026/authorize",secret:false,required:false},{key:"tokenUrl",label:"Token URL",placeholder:"https://\u2026/token",secret:false,required:false},{key:"clientId",label:"Client ID",placeholder:"",secret:false,required:false},{key:"clientSecret",label:"Client secret",placeholder:"",secret:true,required:false},{key:"scopes",label:"Scopes",placeholder:"",hint:"Space-separated OAuth scopes to request (e.g. openid profile email). Check your provider's documentation for the exact values.",secret:false,required:false}],OAuthRegisteredAuthSetting:[{key:"authorizationUrl",label:"Authorization URL",placeholder:"https://\u2026/authorize",secret:false,required:false},{key:"tokenUrl",label:"Token URL",placeholder:"https://\u2026/token",secret:false,required:false},{key:"clientId",label:"Client ID",placeholder:"",secret:false,required:false},{key:"clientSecret",label:"Client secret",placeholder:"",secret:true,required:false},{key:"scopes",label:"Scopes",placeholder:"",hint:"Space-separated OAuth scopes to request (e.g. openid profile email). Check your provider's documentation for the exact values.",secret:false,required:false}],OAuthMcpDiscoverableAuthSetting:[{key:"resourceUrl",label:"Resource URL",placeholder:"https://mcp.example.com",hint:"Use the base URL exactly as documented by your provider \u2014 do not append a path suffix. Examples: https://mcp.hubspot.com (HubSpot), https://mcp.atlassian.com/v1/mcp (Atlassian).",secret:false,required:false},{key:"clientId",label:"Client ID",placeholder:"",hint:"Leave empty to let the server register an OAuth client automatically (RFC 7591 dynamic registration). Fill in only if you have a pre-registered client ID from your provider.",secret:false,required:false},{key:"clientSecret",label:"Client secret",placeholder:"",secret:true,required:false},{key:"scopes",label:"Scopes",placeholder:"",hint:"Leave empty in most cases \u2014 the MCP server declares the required scopes itself. Fill in only if your provider explicitly requires client-declared scopes.",secret:false,required:false}]},le=class i{route=g(V);router=g(G);destroyRef=g(we);state=g(R);namespaceRole=g(v);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=this.namespaceId===void 0;isAdmin=this.isPlatformMode?Gi(true):F(this.namespaceRole.isAdminOfNamespace$(this.namespaceId),{initialValue:false});authTypeOptions=q;authTypeLabel=J;scopeOptions=[{value:"namespace",label:P.namespace},{value:"userOnNs",label:P.userOnNs},{value:"userGlobal",label:P.userGlobal}];nameControl=new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]});descriptionControl=new _t(null);authTypeControl=new _t("ApiKeyAuthSetting",{nonNullable:true,validators:[_e$1.required]});scopeControl=new _t("namespace",{nonNullable:true});form=new z({name:this.nameControl,description:this.descriptionControl,authType:this.authTypeControl,scope:this.scopeControl});apiKeyControl=new _t("",{nonNullable:true});usernameControl=new _t("",{nonNullable:true});passwordControl=new _t("",{nonNullable:true});tokenControl=new _t("",{nonNullable:true});discoveryUrlControl=new _t("",{nonNullable:true});authorizationUrlControl=new _t("",{nonNullable:true});tokenUrlControl=new _t("",{nonNullable:true});clientIdControl=new _t("",{nonNullable:true});clientSecretControl=new _t("",{nonNullable:true});scopesControl=new _t("",{nonNullable:true});resourceUrlControl=new _t("",{nonNullable:true});selectedAuthType=F(this.authTypeControl.valueChanges,{initialValue:this.authTypeControl.value});credentialFields=ET(()=>Se[this.selectedAuthType()]);isEditMode=Gi(false);isSubmitting=Gi(false);isLoading=Gi(false);existingConfig=null;initialCredentials={};constructor(){this.isPlatformMode||Uf(()=>{this.isAdmin()||this.isEditMode()||this.scopeControl.value==="namespace"&&this.scopeControl.setValue("userOnNs");});}ngOnInit(){this.namespaceId&&this.state.setNamespace(this.namespaceId);let t=this.route.snapshot.paramMap,e=this.route.snapshot.queryParamMap,o=t.get("authSettingId");if(o){this.isEditMode.set(true),this.scopeControl.disable(),this.authTypeControl.disable(),this.loadConfig(o);return}if(this.isPlatformMode){this.scopeControl.setValue("platform"),this.scopeControl.disable();return}let l=this.parseScope(e.get("scope"));this.scopeControl.setValue(l);let v=e.get("template");v&&this.hydrateFromTemplate(v);}parseScope(t){return t&&_e.has(t)?t:"namespace"}deriveScopeFromConfig(t){return !t.userId&&!t.namespaceId?"platform":t.userId?t.namespaceId?"userOnNs":"userGlobal":"namespace"}loadConfig(t){this.isLoading.set(true),this.state.getById(t).pipe(U(this.destroyRef)).subscribe({next:e=>{this.existingConfig=e,this.scopeControl.setValue(this.deriveScopeFromConfig(e)),this.applyConfigToForm(e),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),console.warn(`[AuthSettingForm] Could not load auth setting '${t}' \u2014 navigating back`),this.navigateBack();}});}hydrateFromTemplate(t){this.isLoading.set(true),this.state.getById(t).pipe(U(this.destroyRef)).subscribe({next:e=>{this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??null),this.authTypeControl.setValue(e.authType),this.clearCredentialControls(),this.initialCredentials={},this.isLoading.set(false),this.router.navigate([],{relativeTo:this.route,queryParams:{template:null,templateScope:null},queryParamsHandling:"merge",replaceUrl:true});},error:e=>{console.warn(`[AuthSettingForm] Could not hydrate from template ${t}:`,e),this.isLoading.set(false),this.router.navigate([],{relativeTo:this.route,queryParams:{template:null,templateScope:null},queryParamsHandling:"merge",replaceUrl:true});}});}applyConfigToForm(t){switch(this.nameControl.setValue(t.name),this.descriptionControl.setValue(t.description??null),this.authTypeControl.setValue(t.authType),this.clearCredentialControls(),this.initialCredentials={},t.authType){case "ApiKeyAuthSetting":{let e=t.apiKey??"";this.apiKeyControl.setValue(e),this.initialCredentials.apiKey=e;break}case "BasicAuthAuthSetting":{let e=t,o=e.username??"",l=e.password??"";this.usernameControl.setValue(o),this.passwordControl.setValue(l),this.initialCredentials.username=o,this.initialCredentials.password=l;break}case "BearerTokenAuthSetting":{let e=t.token??"";this.tokenControl.setValue(e),this.initialCredentials.token=e;break}case "OAuthDiscoverableAuthSetting":{let e=t;this.discoveryUrlControl.setValue(e.discoveryUrl??""),this.clientIdControl.setValue(e.clientId??""),this.clientSecretControl.setValue(e.clientSecret??""),this.scopesControl.setValue(e.scopes??""),this.initialCredentials.discoveryUrl=e.discoveryUrl??"",this.initialCredentials.clientId=e.clientId??"",this.initialCredentials.clientSecret=e.clientSecret??"",this.initialCredentials.scopes=e.scopes??"";break}case "OAuthCustomAuthSetting":{let e=t;this.authorizationUrlControl.setValue(e.authorizationUrl??""),this.tokenUrlControl.setValue(e.tokenUrl??""),this.clientIdControl.setValue(e.clientId??""),this.clientSecretControl.setValue(e.clientSecret??""),this.scopesControl.setValue(e.scopes??""),this.initialCredentials.authorizationUrl=e.authorizationUrl??"",this.initialCredentials.tokenUrl=e.tokenUrl??"",this.initialCredentials.clientId=e.clientId??"",this.initialCredentials.clientSecret=e.clientSecret??"",this.initialCredentials.scopes=e.scopes??"";break}case "OAuthRegisteredAuthSetting":{let e=t;this.authorizationUrlControl.setValue(e.authorizationUrl??""),this.tokenUrlControl.setValue(e.tokenUrl??""),this.clientIdControl.setValue(e.clientId??""),this.clientSecretControl.setValue(e.clientSecret??""),this.scopesControl.setValue(e.scopes??""),this.initialCredentials.authorizationUrl=e.authorizationUrl??"",this.initialCredentials.tokenUrl=e.tokenUrl??"",this.initialCredentials.clientId=e.clientId??"",this.initialCredentials.clientSecret=e.clientSecret??"",this.initialCredentials.scopes=e.scopes??"";break}case "OAuthMcpDiscoverableAuthSetting":{let e=t;this.resourceUrlControl.setValue(e.resourceUrl??""),this.clientIdControl.setValue(e.clientId??""),this.clientSecretControl.setValue(e.clientSecret??""),this.scopesControl.setValue(e.scopes??""),this.initialCredentials.resourceUrl=e.resourceUrl??"",this.initialCredentials.clientId=e.clientId??"",this.initialCredentials.clientSecret=e.clientSecret??"",this.initialCredentials.scopes=e.scopes??"";break}}}clearCredentialControls(){this.apiKeyControl.setValue(""),this.usernameControl.setValue(""),this.passwordControl.setValue(""),this.tokenControl.setValue(""),this.discoveryUrlControl.setValue(""),this.authorizationUrlControl.setValue(""),this.tokenUrlControl.setValue(""),this.clientIdControl.setValue(""),this.clientSecretControl.setValue(""),this.scopesControl.setValue(""),this.resourceUrlControl.setValue("");}credentialValue(t,e){if(!(this.isEditMode()&&e===this.initialCredentials[t]))return e||void 0}submit(){if(this.form.invalid||this.isSubmitting())return;if(this.isEditMode()&&!this.existingConfig?.id){this.navigateBack();return}this.isSubmitting.set(true);let t=this.nameControl.value.trim(),e=this.descriptionControl.value?.trim()||void 0,o=this.authTypeControl.value,l=this.form.getRawValue().scope,v=this.isPlatformMode?null:this.namespaceId??null,w=this.buildTypedPayload(o,t,e);(this.isEditMode()&&this.existingConfig?.id?this.state.update(this.existingConfig.id,w,this.existingConfig):this.state.create(w,l,v)).pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(false)});}buildTypedPayload(t,e,o){let l={name:e,description:o};switch(t){case "ApiKeyAuthSetting":return z$1(P$1({},l),{authType:"ApiKeyAuthSetting",apiKey:this.credentialValue("apiKey",this.apiKeyControl.value)});case "BasicAuthAuthSetting":return z$1(P$1({},l),{authType:"BasicAuthAuthSetting",username:this.credentialValue("username",this.usernameControl.value),password:this.credentialValue("password",this.passwordControl.value)});case "BearerTokenAuthSetting":return z$1(P$1({},l),{authType:"BearerTokenAuthSetting",token:this.credentialValue("token",this.tokenControl.value)});case "OAuthDiscoverableAuthSetting":return z$1(P$1({},l),{authType:"OAuthDiscoverableAuthSetting",discoveryUrl:this.credentialValue("discoveryUrl",this.discoveryUrlControl.value),clientId:this.credentialValue("clientId",this.clientIdControl.value),clientSecret:this.credentialValue("clientSecret",this.clientSecretControl.value),scopes:this.credentialValue("scopes",this.scopesControl.value)});case "OAuthCustomAuthSetting":return z$1(P$1({},l),{authType:"OAuthCustomAuthSetting",authorizationUrl:this.credentialValue("authorizationUrl",this.authorizationUrlControl.value),tokenUrl:this.credentialValue("tokenUrl",this.tokenUrlControl.value),clientId:this.credentialValue("clientId",this.clientIdControl.value),clientSecret:this.credentialValue("clientSecret",this.clientSecretControl.value),scopes:this.credentialValue("scopes",this.scopesControl.value)});case "OAuthRegisteredAuthSetting":return z$1(P$1({},l),{authType:"OAuthRegisteredAuthSetting",authorizationUrl:this.credentialValue("authorizationUrl",this.authorizationUrlControl.value),tokenUrl:this.credentialValue("tokenUrl",this.tokenUrlControl.value),clientId:this.credentialValue("clientId",this.clientIdControl.value),clientSecret:this.credentialValue("clientSecret",this.clientSecretControl.value),scopes:this.credentialValue("scopes",this.scopesControl.value)});case "OAuthMcpDiscoverableAuthSetting":return z$1(P$1({},l),{authType:"OAuthMcpDiscoverableAuthSetting",resourceUrl:this.credentialValue("resourceUrl",this.resourceUrlControl.value),clientId:this.credentialValue("clientId",this.clientIdControl.value),clientSecret:this.credentialValue("clientSecret",this.clientSecretControl.value),scopes:this.credentialValue("scopes",this.scopesControl.value)})}}controlForField(t){return {apiKey:this.apiKeyControl,username:this.usernameControl,password:this.passwordControl,token:this.tokenControl,discoveryUrl:this.discoveryUrlControl,authorizationUrl:this.authorizationUrlControl,tokenUrl:this.tokenUrlControl,clientId:this.clientIdControl,clientSecret:this.clientSecretControl,scopes:this.scopesControl,resourceUrl:this.resourceUrlControl}[t]}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","auth-settings"]):this.router.navigate(["/agentos",this.namespaceId,"auth-settings"]);}trackByScope(t,e){return e.value}trackByField(t,e){return e.key}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=Fw({type:i,selectors:[["agentos-auth-setting-form"]],decls:10,vars:2,consts:[[1,"auth-setting-form"],[1,"auth-setting-form__header"],["type","button","title","Back to auth settings",1,"auth-setting-form__back",3,"click"],[1,"auth-setting-form__back-icon"],[1,"auth-setting-form__title"],[1,"auth-setting-form__loading"],[1,"auth-setting-form__form",3,"formGroup"],[1,"auth-setting-form__form",3,"ngSubmit","formGroup"],[1,"auth-setting-form__scope",3,"disabled"],[1,"auth-setting-form__field"],["for","as-auth-type",1,"auth-setting-form__label"],["aria-hidden","true"],["id","as-auth-type",1,"auth-setting-form__select",3,"formControl"],[3,"value"],["for","as-name",1,"auth-setting-form__label"],["id","as-name","type","text","placeholder","e.g. GitHub OAuth App","autocomplete","off",1,"auth-setting-form__input",3,"formControl"],["for","as-description",1,"auth-setting-form__label"],["id","as-description","type","text","placeholder","Optional \u2014 short description of this auth setting","autocomplete","off",1,"auth-setting-form__input",3,"formControl"],[1,"auth-setting-form__credentials"],[1,"auth-setting-form__actions"],["type","submit",1,"auth-setting-form__btn","auth-setting-form__btn--primary",3,"disabled"],["type","button",1,"auth-setting-form__btn",3,"click"],[1,"auth-setting-form__label"],[1,"auth-setting-form__scope-option"],["type","radio",3,"formControl","value","disabled"],[1,"auth-setting-form__credentials-hint"],[1,"auth-setting-form__label",3,"for"],[3,"id","type","placeholder","formControl","autocomplete"],[1,"auth-setting-form__field-hint",3,"id"]],template:function(e,o){e&1&&(ws(0,"div",0)(1,"header",1)(2,"button",2),Rg("click",function(){return o.cancel()}),ws(3,"span",3),QC(4,"\u2190"),hl(),QC(5," Auth Settings "),hl(),ws(6,"h1",4),QC(7),hl()(),oC(8,se,2,0,"p",5)(9,ye,26,8,"form",6),hl()),e&2&&(nI(7),Yg(o.isEditMode()?"Edit auth setting":"New auth setting"),nI(),iC(o.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,At,mn,Zn,Xn,Cn,En],styles:[".auth-setting-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;max-width:640px}.auth-setting-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.auth-setting-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem;background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:.85rem;padding:0}.auth-setting-form__back[_ngcontent-%COMP%]:hover{color:var(--color-primary)}.auth-setting-form__back-icon[_ngcontent-%COMP%]{font-size:1rem}.auth-setting-form__title[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:600;color:var(--color-text);margin:0}.auth-setting-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem}.auth-setting-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.auth-setting-form__scope[_ngcontent-%COMP%]{border:1px solid var(--color-border);border-radius:8px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem}.auth-setting-form__scope[_ngcontent-%COMP%] legend[_ngcontent-%COMP%]{padding:0 .25rem}.auth-setting-form__scope-option[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;color:var(--color-text)}.auth-setting-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.35rem}.auth-setting-form__field-hint[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);margin:0;line-height:1.4}.auth-setting-form__label[_ngcontent-%COMP%]{font-size:.85rem;font-weight:500;color:var(--color-text-secondary)}.auth-setting-form__input[_ngcontent-%COMP%]{border:1px solid var(--color-border);border-radius:6px;padding:.5rem .75rem;background:var(--color-bg-secondary);color:var(--color-text);font-size:.9rem;outline:none;transition:border-color .15s ease;width:100%;box-sizing:border-box}.auth-setting-form__input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary)}.auth-setting-form__input--secret[_ngcontent-%COMP%]{font-family:monospace;letter-spacing:.05em}.auth-setting-form__select[_ngcontent-%COMP%]{border:1px solid var(--color-border);border-radius:6px;padding:.5rem .75rem;background:var(--color-bg-secondary);color:var(--color-text);font-size:.9rem;outline:none;cursor:pointer;transition:border-color .15s ease}.auth-setting-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-primary)}.auth-setting-form__credentials[_ngcontent-%COMP%]{border:1px solid var(--color-border);border-radius:8px;padding:.75rem 1rem 1rem;display:flex;flex-direction:column;gap:.75rem;margin:0}.auth-setting-form__credentials[_ngcontent-%COMP%] legend[_ngcontent-%COMP%]{padding:0 .25rem}.auth-setting-form__credentials-hint[_ngcontent-%COMP%]{font-size:.78rem;color:var(--color-text-secondary);margin:0}.auth-setting-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;align-items:center;padding-top:.5rem}.auth-setting-form__btn[_ngcontent-%COMP%]{border:1px solid var(--color-border);border-radius:6px;padding:.5rem 1.25rem;cursor:pointer;font-size:.9rem;font-weight:500;background:var(--color-bg-secondary);color:var(--color-text);transition:background .15s ease}.auth-setting-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover)}.auth-setting-form__btn[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.auth-setting-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-on-primary, #fff);border-color:var(--color-primary)}.auth-setting-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, var(--color-primary))}"]})};
2
- export{le as AuthSettingFormComponent};