@whoz-oss/coday-client 0.122.0 → 0.124.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdpartylicenses.txt +19 -19
- package/browser/chunk-2WJFXA53.js +1 -0
- package/browser/chunk-3D3KN52V.js +1 -0
- package/browser/chunk-3JGMGRXW.js +5 -0
- package/browser/chunk-3U3QVZEU.js +2 -0
- package/browser/chunk-4VZIFCB6.js +83 -0
- package/browser/chunk-53STPEYQ.js +3 -0
- package/browser/chunk-6LO3ANKL.js +1 -0
- package/browser/chunk-7MXZXY4I.js +1 -0
- package/browser/{chunk-VNGIXNER.js → chunk-AJOXSD6I.js} +1 -1
- package/browser/chunk-AK6F2DC7.js +5 -0
- package/browser/chunk-AQ3SEH2N.js +1 -0
- package/browser/{chunk-CBU7DNMV.js → chunk-B2FFL2F7.js} +1 -1
- package/browser/chunk-B2QA6UZX.js +9 -0
- package/browser/chunk-BRHVMM4O.js +1 -0
- package/browser/{chunk-OK747ZMT.js → chunk-CRBPOP52.js} +1 -1
- package/browser/{chunk-P5TSPSCB.js → chunk-DE5MXWYR.js} +1 -1
- package/browser/{chunk-NO2ODJHX.js → chunk-DRBOHCTP.js} +3 -3
- package/browser/{chunk-UGVRFJHC.js → chunk-EPA5P2I6.js} +1 -1
- package/browser/chunk-ESGUJDS6.js +1 -0
- package/browser/chunk-EWEA7F46.js +270 -0
- package/browser/chunk-FOWPCPU3.js +2 -0
- package/browser/chunk-GAZJZBKP.js +1 -0
- package/browser/chunk-H5JE6Y2U.js +1 -0
- package/browser/chunk-H6OBD3IB.js +1 -0
- package/browser/chunk-HCG45H7O.js +2 -0
- package/browser/chunk-HSNVFCBN.js +1 -0
- package/browser/chunk-HTG2SANG.js +1 -0
- package/browser/chunk-HTRRBKXE.js +2 -0
- package/browser/chunk-I5EEQETN.js +1 -0
- package/browser/chunk-I5OT3IGD.js +1 -0
- package/browser/{chunk-MQ3QG7VF.js → chunk-IFXDK4GQ.js} +1 -1
- package/browser/chunk-IXD43YQI.js +2 -0
- package/browser/chunk-IZFHJAEI.js +1 -0
- package/browser/chunk-J44N4WCW.js +1 -0
- package/browser/chunk-JFRMX4TL.js +1 -0
- package/browser/chunk-JUPV65PP.js +1 -0
- package/browser/chunk-KKEITF3S.js +1 -0
- package/browser/chunk-KTPX26DH.js +2 -0
- package/browser/chunk-KYPWHL43.js +1 -0
- package/browser/chunk-MWWLTJ77.js +1 -0
- package/browser/{chunk-7RF7FEOC.js → chunk-NAQEVUOV.js} +1 -1
- package/browser/chunk-O2IJMHBE.js +2 -0
- package/browser/chunk-O3U2KGCT.js +1 -0
- package/browser/chunk-OPGZ37VP.js +1 -0
- package/browser/chunk-PWDBCAQS.js +2 -0
- package/browser/{chunk-4UEZ3CNG.js → chunk-Q3YY3NFM.js} +1 -1
- package/browser/{chunk-UXXLDXN3.js → chunk-QSQYSFNQ.js} +1 -1
- package/browser/chunk-QWMDAFBN.js +1 -0
- package/browser/chunk-QXZ6AR76.js +1 -0
- package/browser/chunk-SHHNG775.js +1 -0
- package/browser/chunk-SPIWOGE3.js +1 -0
- package/browser/chunk-SZNIOJIK.js +1 -0
- package/browser/chunk-TLXAJ2J2.js +1 -0
- package/browser/chunk-TNUQQNZR.js +1 -0
- package/browser/{chunk-OMLFSDJ5.js → chunk-U4662WTU.js} +1 -1
- package/browser/chunk-UDGUWWGZ.js +1 -0
- package/browser/chunk-UKAN3Y3I.js +2 -0
- package/browser/{chunk-FCCT54AP.js → chunk-UORJVNGU.js} +1 -1
- package/browser/chunk-VNCIHM33.js +1 -0
- package/browser/chunk-VOCIDXAB.js +1 -0
- package/browser/{chunk-5UOZGBZ2.js → chunk-WNNKQ2DH.js} +4 -4
- package/browser/chunk-WPC6XC7P.js +2 -0
- package/browser/chunk-XIQ3L6H6.js +1 -0
- package/browser/chunk-XJUBZLY2.js +1 -0
- package/browser/chunk-XQ4PJULE.js +1 -0
- package/browser/chunk-YZSDQIEK.js +7 -0
- package/browser/chunk-ZAM3WGZM.js +3 -0
- package/browser/chunk-ZL64I3EB.js +4 -0
- package/browser/index.html +2 -2
- package/browser/main-PMTICERL.js +1 -0
- package/browser/{styles-HC545BYS.css → styles-THLRUXCP.css} +1 -1
- package/package.json +1 -1
- package/browser/chunk-2DE3OXG3.js +0 -1
- package/browser/chunk-3TOJSAQM.js +0 -1
- package/browser/chunk-4LFZBXC3.js +0 -1
- package/browser/chunk-4OMSGXSL.js +0 -1
- package/browser/chunk-5CTKRMM2.js +0 -2
- package/browser/chunk-6NFS2ZCV.js +0 -1
- package/browser/chunk-DJBCK5D7.js +0 -5
- package/browser/chunk-FPUSD6J7.js +0 -1
- package/browser/chunk-G5XS2TEE.js +0 -1
- package/browser/chunk-GT5UFSUE.js +0 -2
- package/browser/chunk-H2Q3V5BR.js +0 -1
- package/browser/chunk-IHHVFGPF.js +0 -1
- package/browser/chunk-JPWWZVYZ.js +0 -1
- package/browser/chunk-JW6LSUP2.js +0 -1
- package/browser/chunk-KYPMYRHP.js +0 -1
- package/browser/chunk-LVEC3TBP.js +0 -1
- package/browser/chunk-MJEQQZDO.js +0 -1
- package/browser/chunk-N5LTGEF5.js +0 -1
- package/browser/chunk-PKKHLHXJ.js +0 -10
- package/browser/chunk-PWN5O4WY.js +0 -1
- package/browser/chunk-S3ZG6FUN.js +0 -1
- package/browser/chunk-S5LR3GBS.js +0 -2
- package/browser/chunk-SNTJSECZ.js +0 -1
- package/browser/chunk-T357ITNZ.js +0 -1
- package/browser/chunk-TE3JOGRA.js +0 -2
- package/browser/chunk-UMDZZGIC.js +0 -1
- package/browser/chunk-VWD2QH4N.js +0 -1
- package/browser/chunk-W4VYO3E2.js +0 -1
- package/browser/chunk-XPK5V34V.js +0 -1
- package/browser/chunk-YDXVLOQW.js +0 -11
- package/browser/chunk-Z7DC3UIO.js +0 -1
- package/browser/main-3X4E54YE.js +0 -361
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{a as we,b as Oe,c as ie,d as Lt,e as zt,f as Bt}from"./chunk-ESGUJDS6.js";import{a as lt,b as ct}from"./chunk-HCG45H7O.js";import{a as rt,b as vt,c as bt,d as Ct,e as xt,f as yt,g as St,h as Mt,i as Pt,j as Tt,k as wt,l as Ot,m as Ae,n as Et,o as kt,q as Vt,r as It,s as jt,t as Nt}from"./chunk-EWEA7F46.js";import{d as Se}from"./chunk-QWMDAFBN.js";import{a as Wt,b as $t}from"./chunk-UKAN3Y3I.js";import{d as Dt,e as At,f as Ft,g as Rt}from"./chunk-ZAM3WGZM.js";import{a as Q,b as O}from"./chunk-AJOXSD6I.js";import{a as at,b as st,j as dt,n as ft}from"./chunk-AK6F2DC7.js";import{a as Ke,b as Ze,d as et,e as tt,f as nt,g as it}from"./chunk-DRBOHCTP.js";import{a as N,b as ne}from"./chunk-WPC6XC7P.js";import{B as _t,C as H,c as B,g as $,m as U,p as pt,q as mt,v as gt,w as ht,x as ut}from"./chunk-XJUBZLY2.js";import{a as Pe,b as Te}from"./chunk-XIQ3L6H6.js";import{E as Me,O as W,Q as ot,S as te,n as Ge}from"./chunk-B2QA6UZX.js";import{Ab as Ne,Bb as M,Db as p,Fb as d,Fc as Ye,Gb as $e,Ha as ce,Hb as Ue,Jb as ve,Jc as qe,Ka as c,Kb as be,Lb as Ce,Pb as De,Qb as G,Rb as T,T as C,Tb as l,Ub as w,V as Be,Vb as I,Wa as V,Wb as He,Xa as _e,Xb as x,Yb as y,Z as ge,Zb as S,_ as he,a as Y,ab as fe,b as re,bc as Qe,ca as v,cc as Xe,d as q,ga as u,h as F,ha as _,hc as Je,i as j,jb as de,kc as xe,lb as m,ma as ue,mb as g,oa as se,oc as ye,pb as R,qb as L,rb as b,sb as a,t as ae,ta as ee,tb as s,ua as le,ub as P,z as We}from"./chunk-3JGMGRXW.js";var Ut=class o{destroy$=new F;currentProject=null;currentThread=null;messagesSubject=new j([]);isThinkingSubject=new j(!1);currentChoiceSubject=new j(null);projectTitleSubject=new j("Coday");currentInviteEventSubject=new j(null);messageToRestoreSubject=new j("");threadUpdateEventSubject=new j(null);currentChoiceEvent=null;thinkingTimeout=null;accumulatedChunks="";streamingTextSubject=new j("");subThreadEventsSubject=new F;subThreadEvents$=this.subThreadEventsSubject.asObservable();subThreadEventBuffers=new Map;getBufferedSubThreadEvents(e){return this.subThreadEventBuffers.get(e)??[]}messages$=this.messagesSubject.asObservable();streamingText$=this.streamingTextSubject.asObservable();isThinking$=this.isThinkingSubject.asObservable();currentChoice$=this.currentChoiceSubject.asObservable();currentInviteEvent$=this.currentInviteEventSubject.asObservable();messageToRestore$=this.messageToRestoreSubject.asObservable();threadUpdateEvent$=this.threadUpdateEventSubject.asObservable();connectionStatus$;tabTitleService=null;eventStream=v(Lt);messageApi=v(zt);userService=v(Oe);constructor(){this.connectionStatus$=this.eventStream.connectionStatus$,this.initializeEventHandling()}setTabTitleService(e){this.tabTitleService=e}connectToThread(e,t){this.currentProject=e,this.currentThread=t,this.eventStream.connectToThread(e,t)}loadHistoryFromRest(e){for(let t of e){let n=Nt(t);n&&this.handleEvent(n)}}resetMessages(){this.messagesSubject.next([]),this.currentChoiceSubject.next(null),this.currentInviteEventSubject.next(null),this.currentChoiceEvent=null,this.accumulatedChunks="",this.streamingTextSubject.next(""),this.subThreadEventBuffers.clear(),this.stopThinking()}sendMessage(e){if(!this.currentProject||!this.currentThread){console.error("[CODAY] Cannot send message: no project or thread selected");return}let t=this.currentInviteEventSubject.value;if(t){this.isThinkingSubject.next(!0),this.tabTitleService?.setSystemActive(),this.currentInviteEventSubject.next(null);let n=t.buildAnswer(e);this.messageApi.sendMessage(n).subscribe({error:i=>{console.error("[CODAY] Send invite answer error:",i),this.currentInviteEventSubject.next(t),this.stopThinking()}})}else this.messageApi.sendFreeMessage(e).subscribe({error:n=>{console.error("[CODAY] Send error:",n)}})}sendChoice(e){if(!this.currentProject||!this.currentThread){console.error("[CODAY] Cannot send choice: no project or thread selected");return}if(this.currentChoiceEvent){this.isThinkingSubject.next(!0),this.tabTitleService?.setSystemActive();let t=this.currentChoiceEvent.buildAnswer(e);this.currentChoiceSubject.next(null),this.currentChoiceEvent=null,this.messageApi.sendMessage(t).subscribe({next:()=>{},error:n=>{console.error("[CODAY-CHOICE] Choice error:",n),this.stopThinking()}})}else console.error("[CODAY-CHOICE] No choice event available for choice:",e)}deleteMessage(e){let t=this.messagesSubject.value.find(i=>i.id===e),n=this.extractTextContentFromMessage(t);return this.messageApi.deleteMessage(e).pipe(Be(i=>{i.success&&(this.removeMessagesFromIndex(e),n.trim()&&this.messageToRestoreSubject.next(n))}))}getCurrentProjectTitle(){return this.projectTitleSubject.value}getCurrentInviteEvent(){return this.currentInviteEventSubject.value}setThinkingForPendingMessage(){this.isThinkingSubject.next(!0),this.tabTitleService?.setSystemActive()}initializeEventHandling(){this.eventStream.events$.pipe(C(this.destroy$)).subscribe({next:e=>this.handleEvent(e),error:e=>console.error("[CODAY] Event stream error:",e),complete:()=>console.log("[CODAY] Event stream completed")})}handleEvent(e){if(e.threadId&&e.threadId!==this.currentThread){let t=this.subThreadEventBuffers.get(e.threadId);t?t.push(e):this.subThreadEventBuffers.set(e.threadId,[e]),this.subThreadEventsSubject.next(e);return}e instanceof Et?this.handleMessageEvent(e):e instanceof St?this.handleTextChunkEvent(e):e instanceof yt?this.handleTextEvent(e):e instanceof xt?this.handleAnswerEvent(e):e instanceof Pt?this.handleErrorEvent(e):e instanceof Mt?this.handleWarnEvent(e):e instanceof Ae?this.handleThinkingEvent(e):e instanceof wt?this.handleToolRequestEvent(e):e instanceof Ot?this.handleToolResponseEvent(e):e instanceof Tt?this.handleChoiceEvent(e):e instanceof vt?this.handleHeartBeatEvent(e):e instanceof bt?this.handleInviteEvent(e):e instanceof kt?this.handleThreadUpdateEvent(e):e instanceof It?this.handleDelegationEvent(e):e instanceof Vt||e instanceof jt||console.warn("[CODAY] Unhandled event type:",e.type)}handleDelegationEvent(e){if(console.log("[CODAY] DelegationEvent received:",e.subThreadId,e.agentName),this.messagesSubject.value.findIndex(i=>i.subThreadId===e.subThreadId)===-1){let i={id:e.timestamp,role:"system",speaker:e.agentName,content:[{type:"text",content:""}],timestamp:new Date,type:"delegation",subThreadId:e.subThreadId,delegationAgentName:e.agentName};this.addMessage(i)}}handleThreadUpdateEvent(e){this.threadUpdateEventSubject.next(e)}handleMessageEvent(e){e.role==="assistant"&&this.accumulatedChunks&&(this.accumulatedChunks="",this.streamingTextSubject.next(""));let t={id:e.timestamp,role:e.role,speaker:e.name,content:e.content,timestamp:e.date,type:"text"};this.addMessage(t)}handleTextChunkEvent(e){this.accumulatedChunks+=e.chunk,this.streamingTextSubject.next(this.accumulatedChunks)}handleTextEvent(e){let t={id:e.timestamp,role:e.speaker?"assistant":"system",speaker:e.speaker??"System",content:[{type:"text",content:e.text}],timestamp:e.date,type:e.speaker?"text":"technical"};this.addMessage(t)}handleAnswerEvent(e){let t=this.currentInviteEventSubject.value;if(t){let i=!!e.parentKey&&e.parentKey===t.timestamp,r=!e.parentKey&&e.date>=t.date;(i||r)&&this.currentInviteEventSubject.next(null)}let n={id:e.timestamp,role:"user",speaker:e.name??this.userService.getUsername()??"User",content:[{type:"text",content:e.answer}],timestamp:e.date,type:"text",parentKey:e.parentKey,invite:e.invite};this.addMessage(n)}handleErrorEvent(e){let t={id:e.timestamp,role:"system",speaker:"System",content:[{type:"text",content:`Error: ${JSON.stringify(e.error)}`}],timestamp:e.date,type:"error"};this.addMessage(t)}handleWarnEvent(e){let t={id:e.timestamp,role:"system",speaker:"System",content:[{type:"text",content:`Warning: ${JSON.stringify(e.warning)}`}],timestamp:e.date,type:"warning"};this.addMessage(t)}handleThinkingEvent(e){this.currentInviteEventSubject.value||this.currentChoiceEvent||(this.clearThinkingTimeout(),this.isThinkingSubject.next(!0),this.tabTitleService?.setSystemActive(),this.thinkingTimeout=setTimeout(()=>{this.isThinkingSubject.next(!1),this.thinkingTimeout=null,this.tabTitleService?.setSystemInactive()},Ae.debounce+1e3))}handleToolRequestEvent(e){let t={id:e.timestamp,role:"system",speaker:"System",content:[{type:"text",content:e.toSingleLineString()}],timestamp:e.date,type:"technical",eventId:e.timestamp};this.addMessage(t)}handleToolResponseEvent(e){let t={id:e.timestamp,role:"system",speaker:"System",content:[{type:"text",content:e.toSingleLineString()}],timestamp:e.date,type:"technical",eventId:e.timestamp};this.addMessage(t)}handleChoiceEvent(e){this.stopThinking(),this.currentChoiceEvent=e,this.tabTitleService?.setSystemInactive();let t=e.options.map(i=>({value:i,label:i})),n=e.optionalQuestion?`${e.optionalQuestion} ${e.invite}`:e.invite;this.currentChoiceSubject.next({options:t,label:n,allowFreeText:e.allowFreeText})}handleHeartBeatEvent(e){}handleInviteEvent(e){if(this.stopThinking(),e.invite===Ct)this.currentInviteEventSubject.next(e),this.tabTitleService?.setSystemInactive();else{let n={id:e.timestamp,role:"assistant",speaker:"Assistant",content:[{type:"text",content:e.invite}],timestamp:e.date,type:"text"};this.addMessage(n),this.messagesSubject.value.some(h=>h.parentKey===e.timestamp||h.role==="user"&&h.timestamp>e.date||h.role==="assistant"&&h.timestamp>e.date)||(this.currentInviteEventSubject.next(e),this.tabTitleService?.setSystemInactive())}}addMessage(e){let t=this.messagesSubject.value;t.some(n=>n.id===e.id)||this.messagesSubject.next([...t,e])}removeMessagesFromIndex(e){let t=this.messagesSubject.value,n=t.findIndex(r=>r.id===e);if(n===-1||n===0)return;let i=t.slice(0,n);this.messagesSubject.next(i),this.stopThinking()}extractTextContentFromMessage(e){return e?e.content.filter(t=>t.type==="text").map(t=>t.content).join(`
|
|
2
|
+
|
|
3
|
+
`):""}clearThinkingTimeout(){this.thinkingTimeout&&(clearTimeout(this.thinkingTimeout),this.thinkingTimeout=null)}stopThinking(){this.clearThinkingTimeout(),this.isThinkingSubject.next(!1),this.tabTitleService&&this.tabTitleService.setSystemInactive()}ngOnDestroy(){this.clearThinkingTimeout(),this.destroy$.next(),this.destroy$.complete(),this.currentInviteEventSubject.complete(),this.messageToRestoreSubject.complete(),this.threadUpdateEventSubject.complete(),this.streamingTextSubject.complete(),this.eventStream.disconnect()}static \u0275fac=function(t){return new(t||o)};static \u0275prov=ge({token:o,factory:o.\u0275fac,providedIn:"root"})};var Ht=(()=>{class o{static \u0275fac=function(n){return new(n||o)};static \u0275mod=_e({type:o});static \u0275inj=he({imports:[Me]})}return o})();var Qt=(()=>{class o{static \u0275fac=function(n){return new(n||o)};static \u0275mod=_e({type:o});static \u0275inj=he({imports:[Me]})}return o})();var Ee=class o{destroy$=new F;voices;currentUtterance=null;currentOnEndCallback=null;speakingSubject=new j(!1);speaking$=this.speakingSubject.asObservable();volume=.8;rate=1.2;language="en-US";selectedVoice;preferencesService=v(ie);constructor(){this.initializeSpeechSynthesis(),this.subscribeToPreferences()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.stopSpeech()}initializeSpeechSynthesis(){if(!("speechSynthesis"in window)){console.warn("[VOICE-SERVICE] Speech synthesis not available"),this.voices=new Promise(e=>e([]));return}this.voices=new Promise((e,t)=>{let n=speechSynthesis.getVoices();if(n.length)e(n);else{let i=setTimeout(()=>{t("no voices found")},2e3);speechSynthesis.addEventListener("voiceschanged",()=>{let r=speechSynthesis.getVoices();r.length&&(clearTimeout(i),e(r))})}}),console.log("[VOICE-SERVICE] Speech synthesis initialized")}subscribeToPreferences(){this.preferencesService.voiceVolume$.pipe(C(this.destroy$)).subscribe(e=>{this.volume=e,console.log("[VOICE-SERVICE] Volume updated to:",e)}),this.preferencesService.voiceRate$.pipe(C(this.destroy$)).subscribe(e=>{this.rate=e,console.log("[VOICE-SERVICE] Rate updated to:",e)}),this.preferencesService.voiceLanguage$.pipe(C(this.destroy$)).subscribe(e=>{this.language=e,console.log("[VOICE-SERVICE] Language updated to:",e),this.updateSelectedVoiceForLanguage()}),this.preferencesService.selectedVoice$.pipe(C(this.destroy$)).subscribe(e=>{this.setSelectedVoice(e)}),this.volume=this.preferencesService.getVoiceVolume(),this.rate=this.preferencesService.getVoiceRate(),this.language=this.preferencesService.getVoiceLanguage(),this.setSelectedVoice(this.preferencesService.getSelectedVoice())}isReady(){return"speechSynthesis"in window&&this.selectedVoice!==void 0}isSpeaking(){return speechSynthesis.speaking}speak(e,t){return q(this,null,function*(){if(!this.selectedVoice)return console.warn("[VOICE-SERVICE] No voice selected"),!1;if(!e.trim())return console.warn("[VOICE-SERVICE] No text to speak"),!1;let n=this.extractPlainText(e);if(!n.trim())return console.warn("[VOICE-SERVICE] No text to speak after markdown cleaning"),!1;this.stopSpeech();try{let i=new SpeechSynthesisUtterance(n);i.voice=this.selectedVoice,i.lang=this.selectedVoice.lang,i.volume=this.volume,i.rate=this.rate,this.currentOnEndCallback=t||null,t&&(i.onend=()=>{this.currentOnEndCallback===t&&(this.currentOnEndCallback=null,t())},i.onerror=()=>{this.currentOnEndCallback===t&&(this.currentOnEndCallback=null,t())}),this.currentUtterance=i,this.speakingSubject.next(!0);let r=i.onend,h=i.onerror;return i.onend=k=>{this.speakingSubject.next(!1),r&&r.call(i,k)},i.onerror=k=>{this.speakingSubject.next(!1),h&&h.call(i,k)},speechSynthesis.speak(i),console.log("[VOICE-SERVICE] Started speaking:",e.substring(0,50)+"..."),!0}catch(i){return console.error("[VOICE-SERVICE] Error speaking:",i),!1}})}stopSpeech(){if(this.currentUtterance||speechSynthesis.speaking){if(speechSynthesis.cancel(),this.currentUtterance=null,this.currentOnEndCallback){let e=this.currentOnEndCallback;this.currentOnEndCallback=null,e()}this.speakingSubject.next(!1),console.log("[VOICE-SERVICE] Speech stopped")}}ding(){try{let e=new(window.AudioContext||window.webkitAudioContext),t=e.createOscillator(),n=e.createGain();t.connect(n),n.connect(e.destination),t.frequency.setValueAtTime(800,e.currentTime),n.gain.setValueAtTime(.1,e.currentTime),n.gain.exponentialRampToValueAtTime(.01,e.currentTime+.1),t.start(e.currentTime),t.stop(e.currentTime+.1),console.log("[VOICE-SERVICE] Notification sound played")}catch(e){console.error("[VOICE-SERVICE] Notification sound failed:",e)}}getVoicesForLanguage(){return q(this,null,function*(){try{let e=this.language.slice(0,2),t=yield this.voices;if(!t||t.length===0)return console.warn("[VOICE-SERVICE] No voices available on system"),[];let n=t.filter(i=>i.lang.toLowerCase().startsWith(e)).sort((i,r)=>i.localService&&!r.localService?-1:!i.localService&&r.localService?1:i.name.localeCompare(r.name));return console.log("[VOICE-SERVICE] Found matching voices:",n.length,"for language:",e),n.map(i=>({name:i.name,lang:i.lang,localService:i.localService,default:i.default,displayName:this.formatVoiceDisplayName(i)}))}catch(e){return console.error("[VOICE-SERVICE] Error getting voices for language:",e),[]}})}formatVoiceDisplayName(e){let t=e.localService?"\u{1F3E0}":"\u2601\uFE0F",n=e.default?" \u2B50":"";return`${t} ${e.name} (${e.lang})${n}`}setSelectedVoice(e){return q(this,null,function*(){if(!e){this.selectedVoice=void 0;return}let[t,n]=e.split("|");if(!t||!n){this.selectedVoice=void 0;return}let i=(yield this.voices)?.find(r=>r.name===t&&r.lang===n);i?(this.selectedVoice=i,console.log("[VOICE-SERVICE] Selected voice:",i.name,i.lang)):(this.selectedVoice=void 0,console.warn("[VOICE-SERVICE] Voice not found:",t,n))})}updateSelectedVoiceForLanguage(){return q(this,null,function*(){let e=yield this.getVoicesForLanguage();if(e.length===0){console.warn("[VOICE-SERVICE] No voices available for language:",this.language),this.selectedVoice=void 0,this.preferencesService.setSelectedVoice(null);return}let t=this.preferencesService.getSelectedVoice();if(t){let[i,r]=t.split("|"),h=r?.slice(0,2),k=this.language.slice(0,2);if(h===k&&e.some(D=>D.name===i&&D.lang===r)){console.log("[VOICE-SERVICE] Keeping current voice for language:",t);return}}let n=e[0];if(n){let i=`${n.name}|${n.lang}`;this.preferencesService.setSelectedVoice(i),console.log("[VOICE-SERVICE] Auto-selected voice for language change:",n.displayName)}})}testSelectedVoice(){setTimeout(()=>{if(!this.selectedVoice){console.log("[VOICE-SERVICE] No voice selected for test");return}this.stopSpeech();let e=this.getTestText();e&&this.speak(e)},100)}getTestText(){let e=this.language.slice(0,2),t={fr:"Bonjour, ceci est un test de la voix s\xE9lectionn\xE9e.",en:"Hello, this is a test of the selected voice.",es:"Hola, esta es una prueba de la voz seleccionada.",de:"Hallo, dies ist ein Test der ausgew\xE4hlten Stimme.",it:"Ciao, questo \xE8 un test della voce selezionata.",pt:"Ol\xE1, este \xE9 um teste da voz selecionada.",ja:"\u3053\u3093\u306B\u3061\u306F\u3001\u3053\u308C\u306F\u9078\u629E\u3055\u308C\u305F\u97F3\u58F0\u306E\u30C6\u30B9\u30C8\u3067\u3059\u3002",ko:"\uC548\uB155\uD558\uC138\uC694, \uC774\uAC83\uC740 \uC120\uD0DD\uB41C \uC74C\uC131\uC758 \uD14C\uC2A4\uD2B8\uC785\uB2C8\uB2E4.",zh:"\u4F60\u597D\uFF0C\u8FD9\u662F\u6240\u9009\u8BED\u97F3\u7684\u6D4B\u8BD5\u3002",ru:"\u041F\u0440\u0438\u0432\u0435\u0442, \u044D\u0442\u043E \u0442\u0435\u0441\u0442 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0433\u043E\u043B\u043E\u0441\u0430.",ar:"\u0645\u0631\u062D\u0628\u0627\u060C \u0647\u0630\u0627 \u0627\u062E\u062A\u0628\u0627\u0631 \u0644\u0644\u0635\u0648\u062A \u0627\u0644\u0645\u062D\u062F\u062F."};return t[e]||t.en||"Hello, this is a test."}extractPlainText(e){let t=e.replace(/[\u{1F600}-\u{1F64F}]|[\u{1F300}-\u{1F5FF}]|[\u{1F680}-\u{1F6FF}]|[\u{1F1E0}-\u{1F1FF}]|[\u{2600}-\u{26FF}]|[\u{2700}-\u{27BF}]|⭐/gu,"").replace(/```[\s\S]*?```/g,"code block").replace(/`([^`]+)`/g,"$1").replace(/\*\*\*(.*?)\*\*\*/g,"$1").replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/~~(.*?)~~/g,"$1").replace(/#{1,6}\s*(.*)/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/https?:\/\/[^\s]+/g,"link").replace(/ /g," ").replace(/&/g,"and").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"');return t=this.addNaturalPunctuation(t),t.replace(/\s+/g," ").trim()}addNaturalPunctuation(e){return e.replace(/\n+/g,`
|
|
4
|
+
`).split(`
|
|
5
|
+
`).map(t=>this.addPeriodIfNeeded(t.trim())).filter(t=>t.length>0).join(" ")}addPeriodIfNeeded(e){return e?/[.!?;:]$/.test(e)?e:e+".":""}static \u0275fac=function(t){return new(t||o)};static \u0275prov=ge({token:o,factory:o.\u0275fac,providedIn:"root"})};var Kt=(o,e)=>e.code,Zt=(o,e)=>e.name+e.lang;function en(o,e){o&1&&(a(0,"div",15)(1,"mat-icon",32),l(2,"warning"),s(),a(3,"span",33),l(4," Browser notifications have been blocked. To enable them, please reset the site permissions in your browser settings. "),s()())}function tn(o,e){if(o&1&&(a(0,"option",18),l(1),s()),o&2){let t=e.$implicit;b("value",t.code),c(),He("",t.flag," ",t.label)}}function nn(o,e){o&1&&(a(0,"option",25),l(1,"Loading voices..."),s())}function on(o,e){o&1&&(a(0,"option",25),l(1,"No voice available"),s())}function rn(o,e){if(o&1&&(a(0,"option",18),l(1),s()),o&2){let t=e.$implicit;b("value",t.name+"|"+t.lang),c(),I(" ",t.displayName," ")}}var pe=class o{destroy$=new F;selectedTheme="light";selectedVoiceLanguage="en-US";useEnterToSend=!1;printTechnicalMessages=!1;showTechnicalMessages=!0;showWarningMessages=!0;voiceAnnounceEnabled=!1;voiceMode="speech";voiceReadFullText=!1;voiceVolume=80;voiceRate=120;agentNotificationEnabled=!1;notificationSoundEnabled=!0;browserNotificationEnabled=!1;browserNotificationDenied=!1;availableVoices=[];selectedVoiceId=null;loadingVoices=!1;voiceLanguageOptions=[{code:"fr-FR",label:"Fran\xE7ais",flag:"\u{1F1EB}\u{1F1F7}"},{code:"en-US",label:"English (US)",flag:"\u{1F1FA}\u{1F1F8}"},{code:"en-GB",label:"English (UK)",flag:"\u{1F1EC}\u{1F1E7}"},{code:"es-ES",label:"Espa\xF1ol",flag:"\u{1F1EA}\u{1F1F8}"},{code:"de-DE",label:"Deutsch",flag:"\u{1F1E9}\u{1F1EA}"},{code:"it-IT",label:"Italiano",flag:"\u{1F1EE}\u{1F1F9}"},{code:"pt-BR",label:"Portugu\xEAs",flag:"\u{1F1E7}\u{1F1F7}"},{code:"ja-JP",label:"\u65E5\u672C\u8A9E",flag:"\u{1F1EF}\u{1F1F5}"},{code:"ko-KR",label:"\uD55C\uAD6D\uC5B4",flag:"\u{1F1F0}\u{1F1F7}"},{code:"zh-CN",label:"\u4E2D\u6587 (\u7B80\u4F53)",flag:"\u{1F1E8}\u{1F1F3}"},{code:"ru-RU",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",flag:"\u{1F1F7}\u{1F1FA}"},{code:"ar-SA",label:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",flag:"\u{1F1F8}\u{1F1E6}"}];preferencesService=v(ie);voiceSynthesisService=v(Ee);themeService=v(Bt);ngOnInit(){this.selectedTheme=this.themeService.getCurrentTheme(),this.selectedVoiceLanguage=this.preferencesService.getVoiceLanguage(),this.useEnterToSend=this.preferencesService.getEnterToSend(),this.printTechnicalMessages=this.preferencesService.getPrintTechnicalMessages(),this.showTechnicalMessages=!this.preferencesService.getHideTechnicalMessages(),this.showWarningMessages=!this.preferencesService.getHideWarningMessages(),this.voiceAnnounceEnabled=this.preferencesService.getVoiceAnnounceEnabled(),this.voiceMode=this.preferencesService.getVoiceMode(),this.voiceReadFullText=this.preferencesService.getVoiceReadFullText(),this.voiceVolume=Math.round(this.preferencesService.getVoiceVolume()*100),this.voiceRate=Math.round(this.preferencesService.getVoiceRate()*100),this.selectedVoiceId=this.preferencesService.getSelectedVoice(),this.agentNotificationEnabled=this.preferencesService.getAgentNotificationEnabled(),this.notificationSoundEnabled=this.preferencesService.getNotificationSoundEnabled(),this.browserNotificationEnabled=this.preferencesService.getBrowserNotificationEnabled(),this.loadAvailableVoices(),this.themeService.currentTheme$.pipe(C(this.destroy$)).subscribe(e=>{this.selectedTheme=e}),this.preferencesService.voiceLanguage$.pipe(C(this.destroy$)).subscribe(e=>{this.selectedVoiceLanguage=e}),this.preferencesService.enterToSend$.pipe(C(this.destroy$)).subscribe(e=>{this.useEnterToSend=e}),this.preferencesService.printTechnicalMessages$.pipe(C(this.destroy$)).subscribe(e=>{this.printTechnicalMessages=e}),this.preferencesService.hideTechnicalMessages$.pipe(C(this.destroy$)).subscribe(e=>{this.showTechnicalMessages=!e}),this.preferencesService.hideWarningMessages$.pipe(C(this.destroy$)).subscribe(e=>{this.showWarningMessages=!e}),this.preferencesService.voiceAnnounceEnabled$.pipe(C(this.destroy$)).subscribe(e=>{this.voiceAnnounceEnabled=e}),this.preferencesService.voiceMode$.pipe(C(this.destroy$)).subscribe(e=>{this.voiceMode=e}),this.preferencesService.voiceReadFullText$.pipe(C(this.destroy$)).subscribe(e=>{this.voiceReadFullText=e}),this.preferencesService.voiceVolume$.pipe(C(this.destroy$)).subscribe(e=>{this.voiceVolume=Math.round(e*100)}),this.preferencesService.voiceRate$.pipe(C(this.destroy$)).subscribe(e=>{this.voiceRate=Math.round(e*100)}),this.preferencesService.selectedVoice$.pipe(C(this.destroy$)).subscribe(e=>{this.selectedVoiceId=e}),this.preferencesService.voiceLanguage$.pipe(C(this.destroy$)).subscribe(()=>{this.loadAvailableVoices()}),this.preferencesService.agentNotificationEnabled$.pipe(C(this.destroy$)).subscribe(e=>{this.agentNotificationEnabled=e}),this.preferencesService.notificationSoundEnabled$.pipe(C(this.destroy$)).subscribe(e=>{this.notificationSoundEnabled=e}),this.preferencesService.browserNotificationEnabled$.pipe(C(this.destroy$)).subscribe(e=>{this.browserNotificationEnabled=e,this.checkNotificationPermission()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}onThemeChange(){console.log("[OPTIONS] Theme changed to:",this.selectedTheme),this.themeService.setTheme(this.selectedTheme)}onVoiceLanguageChange(){console.log("[OPTIONS] Voice language changed to:",this.selectedVoiceLanguage),this.preferencesService.setVoiceLanguage(this.selectedVoiceLanguage)}onEnterToSendChange(){console.log("[OPTIONS] Enter to send changed to:",this.useEnterToSend),this.preferencesService.setEnterToSend(this.useEnterToSend)}onPrintTechnicalMessagesChange(){console.log("[OPTIONS] Print technical messages changed to:",this.printTechnicalMessages),this.preferencesService.setPrintTechnicalMessages(this.printTechnicalMessages)}onShowTechnicalMessagesChange(){let e=!this.showTechnicalMessages;console.log("[OPTIONS] Show technical messages changed to:",this.showTechnicalMessages,"(hide:",e,")"),this.preferencesService.setHideTechnicalMessages(e)}onShowWarningMessagesChange(){let e=!this.showWarningMessages;console.log("[OPTIONS] Show warning messages changed to:",this.showWarningMessages,"(hide:",e,")"),this.preferencesService.setHideWarningMessages(e)}onVoiceAnnounceEnabledChange(){console.log("[OPTIONS] Voice announce enabled changed to:",this.voiceAnnounceEnabled),this.preferencesService.setVoiceAnnounceEnabled(this.voiceAnnounceEnabled)}onVoiceModeChange(){console.log("[OPTIONS] Voice mode changed to:",this.voiceMode),this.preferencesService.setVoiceMode(this.voiceMode)}onVoiceReadFullTextChange(){console.log("[OPTIONS] Voice read full text changed to:",this.voiceReadFullText),this.preferencesService.setVoiceReadFullText(this.voiceReadFullText)}onVoiceVolumeChange(){let e=this.voiceVolume/100;console.log("[OPTIONS] Voice volume changed to:",e),this.preferencesService.setVoiceVolume(e)}onVoiceRateChange(){let e=this.voiceRate/100;console.log("[OPTIONS] Voice rate changed to:",e),this.preferencesService.setVoiceRate(e)}loadAvailableVoices(){return q(this,null,function*(){this.loadingVoices=!0;try{this.availableVoices=yield this.voiceSynthesisService.getVoicesForLanguage(),console.log("[OPTIONS] Loaded",this.availableVoices.length,"voices for current language")}catch(e){console.error("[OPTIONS] Error loading voices:",e),this.availableVoices=[]}finally{this.loadingVoices=!1}})}onSelectedVoiceChange(){console.log("[OPTIONS] Selected voice changed to:",this.selectedVoiceId),this.preferencesService.setSelectedVoice(this.selectedVoiceId)}testVoice(){console.log("[OPTIONS] Testing voice with current settings"),this.voiceSynthesisService.testSelectedVoice()}onAgentNotificationEnabledChange(){console.log("[OPTIONS] Agent notification enabled changed to:",this.agentNotificationEnabled),this.preferencesService.setAgentNotificationEnabled(this.agentNotificationEnabled)}onNotificationSoundEnabledChange(){console.log("[OPTIONS] Notification sound enabled changed to:",this.notificationSoundEnabled),this.preferencesService.setNotificationSoundEnabled(this.notificationSoundEnabled)}onBrowserNotificationEnabledChange(){console.log("[OPTIONS] Browser notification enabled changed to:",this.browserNotificationEnabled),this.preferencesService.setBrowserNotificationEnabled(this.browserNotificationEnabled)}checkNotificationPermission(){"Notification"in window&&(this.browserNotificationDenied=Notification.permission==="denied",console.log("[OPTIONS] Notification permission status:",Notification.permission))}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=V({type:o,selectors:[["app-options-panel"]],decls:144,vars:35,consts:[[1,"options-content"],[1,"option-section"],[1,"section-title"],[1,"option-group"],[1,"radio-group"],[1,"option-radio"],["type","radio","name","theme","value","light",3,"ngModelChange","change","ngModel"],[1,"radio-mark"],["type","radio","name","theme","value","dark",3,"ngModelChange","change","ngModel"],["type","radio","name","theme","value","system",3,"ngModelChange","change","ngModel"],[1,"option-label"],["type","radio","name","enterBehavior",3,"ngModelChange","change","value","ngModel"],[1,"toggle-option"],["color","primary",3,"ngModelChange","change","ngModel"],["color","primary",3,"ngModelChange","change","ngModel","disabled"],[1,"notification-error"],["for","voice-language-select",1,"option-label"],["id","voice-language-select",1,"option-select",3,"ngModelChange","change","ngModel"],[3,"value"],["type","radio","name","voiceAnnounce",3,"ngModelChange","change","value","ngModel"],["type","radio","name","voiceMode","value","speech",3,"ngModelChange","change","ngModel"],["type","radio","name","voiceMode","value","notification",3,"ngModelChange","change","ngModel"],["type","radio","name","voiceReadFull",3,"ngModelChange","change","value","ngModel"],["for","voice-select",1,"option-label"],["id","voice-select",1,"option-select",3,"ngModelChange","change","ngModel","disabled"],["value",""],["role","button","tabindex","0","title","Test voice with current settings",1,"test-voice-link",3,"click"],[1,"thread-name"],["for","voice-volume-slider",1,"option-label"],["id","voice-volume-slider","type","range","min","0","max","100","step","5",1,"option-slider",3,"ngModelChange","input","ngModel"],["for","voice-rate-slider",1,"option-label"],["id","voice-rate-slider","type","range","min","50","max","200","step","10",1,"option-slider",3,"ngModelChange","input","ngModel"],[1,"error-icon"],[1,"error-message"]],template:function(t,n){t&1&&(a(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon"),l(4,"palette"),s(),a(5,"span"),l(6,"Appearance"),s()(),a(7,"div",3)(8,"div",4)(9,"label",5)(10,"input",6),S("ngModelChange",function(r){return y(n.selectedTheme,r)||(n.selectedTheme=r),r}),p("change",function(){return n.onThemeChange()}),s(),P(11,"span",7),l(12," Light "),s(),a(13,"label",5)(14,"input",8),S("ngModelChange",function(r){return y(n.selectedTheme,r)||(n.selectedTheme=r),r}),p("change",function(){return n.onThemeChange()}),s(),P(15,"span",7),l(16," Dark "),s(),a(17,"label",5)(18,"input",9),S("ngModelChange",function(r){return y(n.selectedTheme,r)||(n.selectedTheme=r),r}),p("change",function(){return n.onThemeChange()}),s(),P(19,"span",7),l(20," System "),s()()()(),a(21,"div",1)(22,"div",2)(23,"mat-icon"),l(24,"chat_bubble_outline"),s(),a(25,"span"),l(26,"Messaging"),s()(),a(27,"div",3)(28,"span",10),l(29,"Send message behavior:"),s(),a(30,"div",4)(31,"label",5)(32,"input",11),S("ngModelChange",function(r){return y(n.useEnterToSend,r)||(n.useEnterToSend=r),r}),p("change",function(){return n.onEnterToSendChange()}),s(),P(33,"span",7),l(34," Enter to send "),s(),a(35,"label",5)(36,"input",11),S("ngModelChange",function(r){return y(n.useEnterToSend,r)||(n.useEnterToSend=r),r}),p("change",function(){return n.onEnterToSendChange()}),s(),P(37,"span",7),l(38," Enter for new line "),s()()(),a(39,"div",3)(40,"div",12)(41,"span",10),l(42,"Show technical messages"),s(),a(43,"mat-slide-toggle",13),S("ngModelChange",function(r){return y(n.showTechnicalMessages,r)||(n.showTechnicalMessages=r),r}),p("change",function(){return n.onShowTechnicalMessagesChange()}),s()()(),a(44,"div",3)(45,"div",12)(46,"span",10),l(47,"Show warning messages"),s(),a(48,"mat-slide-toggle",13),S("ngModelChange",function(r){return y(n.showWarningMessages,r)||(n.showWarningMessages=r),r}),p("change",function(){return n.onShowWarningMessagesChange()}),s()()(),a(49,"div",3)(50,"div",12)(51,"span",10),l(52,"Include technical messages in print"),s(),a(53,"mat-slide-toggle",13),S("ngModelChange",function(r){return y(n.printTechnicalMessages,r)||(n.printTechnicalMessages=r),r}),p("change",function(){return n.onPrintTechnicalMessagesChange()}),s()()()(),a(54,"div",1)(55,"div",2)(56,"mat-icon"),l(57,"notifications"),s(),a(58,"span"),l(59,"Notifications"),s()(),a(60,"div",3)(61,"div",12)(62,"span",10),l(63,"Notify when the agent answers or requests input"),s(),a(64,"mat-slide-toggle",13),S("ngModelChange",function(r){return y(n.agentNotificationEnabled,r)||(n.agentNotificationEnabled=r),r}),p("change",function(){return n.onAgentNotificationEnabledChange()}),s()()(),a(65,"div",3)(66,"div",12)(67,"span",10),l(68,"Notification sound"),s(),a(69,"mat-slide-toggle",14),S("ngModelChange",function(r){return y(n.notificationSoundEnabled,r)||(n.notificationSoundEnabled=r),r}),p("change",function(){return n.onNotificationSoundEnabledChange()}),s()()(),a(70,"div",3)(71,"div",12)(72,"span",10),l(73,"Browser notification"),s(),a(74,"mat-slide-toggle",14),S("ngModelChange",function(r){return y(n.browserNotificationEnabled,r)||(n.browserNotificationEnabled=r),r}),p("change",function(){return n.onBrowserNotificationEnabledChange()}),s()(),m(75,en,5,0,"div",15),s()(),a(76,"div",1)(77,"div",2)(78,"mat-icon"),l(79,"record_voice_over"),s(),a(80,"span"),l(81,"Voice & Speech"),s()(),a(82,"div",3)(83,"label",16),l(84,"Voice recognition language:"),s(),a(85,"select",17),S("ngModelChange",function(r){return y(n.selectedVoiceLanguage,r)||(n.selectedVoiceLanguage=r),r}),p("change",function(){return n.onVoiceLanguageChange()}),R(86,tn,2,3,"option",18,Kt),s()(),a(88,"div",3)(89,"span",10),l(90,"Automatic announcement:"),s(),a(91,"div",4)(92,"label",5)(93,"input",19),S("ngModelChange",function(r){return y(n.voiceAnnounceEnabled,r)||(n.voiceAnnounceEnabled=r),r}),p("change",function(){return n.onVoiceAnnounceEnabledChange()}),s(),P(94,"span",7),l(95," Enabled "),s(),a(96,"label",5)(97,"input",19),S("ngModelChange",function(r){return y(n.voiceAnnounceEnabled,r)||(n.voiceAnnounceEnabled=r),r}),p("change",function(){return n.onVoiceAnnounceEnabledChange()}),s(),P(98,"span",7),l(99," Disabled "),s()()(),a(100,"div",3)(101,"span",10),l(102,"Voice mode:"),s(),a(103,"div",4)(104,"label",5)(105,"input",20),S("ngModelChange",function(r){return y(n.voiceMode,r)||(n.voiceMode=r),r}),p("change",function(){return n.onVoiceModeChange()}),s(),P(106,"span",7),l(107," Voice synthesis "),s(),a(108,"label",5)(109,"input",21),S("ngModelChange",function(r){return y(n.voiceMode,r)||(n.voiceMode=r),r}),p("change",function(){return n.onVoiceModeChange()}),s(),P(110,"span",7),l(111," Sound notification "),s()()(),a(112,"div",3)(113,"span",10),l(114,"Message reading:"),s(),a(115,"div",4)(116,"label",5)(117,"input",22),S("ngModelChange",function(r){return y(n.voiceReadFullText,r)||(n.voiceReadFullText=r),r}),p("change",function(){return n.onVoiceReadFullTextChange()}),s(),P(118,"span",7),l(119," Full message "),s(),a(120,"label",5)(121,"input",22),S("ngModelChange",function(r){return y(n.voiceReadFullText,r)||(n.voiceReadFullText=r),r}),p("change",function(){return n.onVoiceReadFullTextChange()}),s(),P(122,"span",7),l(123," First paragraphs only "),s()()(),a(124,"div",3)(125,"label",23),l(126,"Selected voice:"),s(),a(127,"select",24),S("ngModelChange",function(r){return y(n.selectedVoiceId,r)||(n.selectedVoiceId=r),r}),p("change",function(){return n.onSelectedVoiceChange()}),m(128,nn,2,0,"option",25),m(129,on,2,0,"option",25),R(130,rn,2,2,"option",18,Zt),s(),P(132,"div",10),a(133,"a",26),p("click",function(){return n.testVoice()}),a(134,"span",27),l(135,"Test voice"),s()()(),a(136,"div",3)(137,"label",28),l(138),s(),a(139,"input",29),S("ngModelChange",function(r){return y(n.voiceVolume,r)||(n.voiceVolume=r),r}),p("input",function(){return n.onVoiceVolumeChange()}),s()(),a(140,"div",3)(141,"label",30),l(142),s(),a(143,"input",31),S("ngModelChange",function(r){return y(n.voiceRate,r)||(n.voiceRate=r),r}),p("input",function(){return n.onVoiceRateChange()}),s()()()()),t&2&&(c(10),x("ngModel",n.selectedTheme),c(4),x("ngModel",n.selectedTheme),c(4),x("ngModel",n.selectedTheme),c(14),b("value",!0),x("ngModel",n.useEnterToSend),c(4),b("value",!1),x("ngModel",n.useEnterToSend),c(7),x("ngModel",n.showTechnicalMessages),c(5),x("ngModel",n.showWarningMessages),c(5),x("ngModel",n.printTechnicalMessages),c(11),x("ngModel",n.agentNotificationEnabled),c(5),x("ngModel",n.notificationSoundEnabled),b("disabled",!n.agentNotificationEnabled),c(5),x("ngModel",n.browserNotificationEnabled),b("disabled",!n.agentNotificationEnabled||n.browserNotificationDenied),c(),g(n.browserNotificationDenied?75:-1),c(10),x("ngModel",n.selectedVoiceLanguage),c(),L(n.voiceLanguageOptions),c(7),b("value",!0),x("ngModel",n.voiceAnnounceEnabled),c(4),b("value",!1),x("ngModel",n.voiceAnnounceEnabled),c(8),x("ngModel",n.voiceMode),c(4),x("ngModel",n.voiceMode),c(8),b("value",!0),x("ngModel",n.voiceReadFullText),c(4),b("value",!1),x("ngModel",n.voiceReadFullText),c(6),x("ngModel",n.selectedVoiceId),b("disabled",n.loadingVoices||n.availableVoices.length===0),c(),g(n.loadingVoices?128:-1),c(),g(!n.loadingVoices&&n.availableVoices.length===0?129:-1),c(),L(n.availableVoices),c(8),I("Volume: ",n.voiceVolume,"%"),c(),x("ngModel",n.voiceVolume),c(3),I("Speed: ",n.voiceRate,"%"),c(),x("ngModel",n.voiceRate))},dependencies:[H,ht,ut,B,mt,gt,pt,$,U,N,$t],styles:['.options-content[_ngcontent-%COMP%]{padding:0;width:100%}.option-group[_ngcontent-%COMP%]{padding:0 1rem 1rem;margin-bottom:1rem;border-bottom:1px solid var(--color-border-light)}.option-group[_ngcontent-%COMP%]:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.option-label[_ngcontent-%COMP%]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text);font-size:.875rem}.toggle-option[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:1rem}.toggle-option[_ngcontent-%COMP%] .option-label[_ngcontent-%COMP%]{margin-bottom:0;flex:1}.toggle-option[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{flex-shrink:0}.option-select[_ngcontent-%COMP%]{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-input-bg);color:var(--color-text);font-size:.875rem;cursor:pointer}.option-select[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #7064fb1a}.option-select[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.option-select[_ngcontent-%COMP%] option[_ngcontent-%COMP%]{padding:.5rem}.option-checkbox[_ngcontent-%COMP%]{display:flex;align-items:center;cursor:pointer;font-size:.875rem;color:var(--color-text);-webkit-user-select:none;user-select:none}.option-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]{display:none}.option-checkbox[_ngcontent-%COMP%] .checkmark[_ngcontent-%COMP%]{width:18px;height:18px;border:2px solid var(--color-border);border-radius:3px;margin-right:.75rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.option-checkbox[_ngcontent-%COMP%] .checkmark[_ngcontent-%COMP%]:after{content:"";width:10px;height:6px;border-left:2px solid transparent;border-bottom:2px solid transparent;transform:rotate(-45deg);transition:all .2s ease;opacity:0}.option-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:checked + .checkmark[_ngcontent-%COMP%]{background-color:var(--color-primary);border-color:var(--color-primary)}.option-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:checked + .checkmark[_ngcontent-%COMP%]:after{border-left-color:#fff;border-bottom-color:#fff;opacity:1}.option-checkbox[_ngcontent-%COMP%]:hover .checkmark[_ngcontent-%COMP%]{border-color:var(--color-primary)}.option-checkbox[_ngcontent-%COMP%]:focus-within .checkmark[_ngcontent-%COMP%]{box-shadow:0 0 0 3px #7064fb1a}.option-section[_ngcontent-%COMP%]{padding-top:1rem;margin-top:1rem;border-top:2px solid var(--color-border)}.option-section[_ngcontent-%COMP%]:first-child{border-top:none;padding-top:0;margin-top:0}.section-title[_ngcontent-%COMP%]{margin:0 0 1rem;padding:0 1rem;font-size:.9rem;font-weight:600;color:var(--color-text);display:flex;align-items:center;gap:.5rem}.section-title[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px}.radio-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.option-radio[_ngcontent-%COMP%]{display:flex;align-items:center;cursor:pointer;font-size:.875rem;color:var(--color-text);-webkit-user-select:none;user-select:none}.option-radio[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]{display:none}.option-radio[_ngcontent-%COMP%] .radio-mark[_ngcontent-%COMP%]{width:16px;height:16px;border:2px solid var(--color-border);border-radius:50%;margin-right:.5rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0;position:relative}.option-radio[_ngcontent-%COMP%] .radio-mark[_ngcontent-%COMP%]:after{content:"";width:8px;height:8px;border-radius:50%;background-color:var(--color-primary);transition:all .2s ease;opacity:0;transform:scale(0)}.option-radio[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]:checked + .radio-mark[_ngcontent-%COMP%]{border-color:var(--color-primary)}.option-radio[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]:checked + .radio-mark[_ngcontent-%COMP%]:after{opacity:1;transform:scale(1)}.option-radio[_ngcontent-%COMP%]:hover .radio-mark[_ngcontent-%COMP%]{border-color:var(--color-primary)}.option-radio[_ngcontent-%COMP%]:focus-within .radio-mark[_ngcontent-%COMP%]{box-shadow:0 0 0 3px #7064fb1a}.option-slider[_ngcontent-%COMP%]{width:100%;height:6px;border-radius:3px;background:var(--color-bg-solid);outline:none;cursor:pointer;-webkit-appearance:none;appearance:none}.option-slider[_ngcontent-%COMP%]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid white;box-shadow:0 2px 6px #0003;transition:all .2s ease}.option-slider[_ngcontent-%COMP%]::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000004d}.option-slider[_ngcontent-%COMP%]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid white;box-shadow:0 2px 6px #0003;transition:all .2s ease}.option-slider[_ngcontent-%COMP%]::-moz-range-thumb:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000004d}.option-slider[_ngcontent-%COMP%]::-webkit-slider-track{height:6px;border-radius:3px;background:var(--color-bg-secondary)}.option-slider[_ngcontent-%COMP%]::-moz-range-track{height:6px;border-radius:3px;background:var(--color-bg-secondary);border:none}.option-slider[_ngcontent-%COMP%]:focus{outline:none}.option-slider[_ngcontent-%COMP%]:focus::-webkit-slider-thumb{box-shadow:0 0 0 3px #7064fb4d,0 2px 6px #0003}.option-slider[_ngcontent-%COMP%]:focus::-moz-range-thumb{box-shadow:0 0 0 3px #7064fb4d,0 2px 6px #0003}.test-voice-btn[_ngcontent-%COMP%]{width:100%;padding:.75rem 1rem;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.test-voice-btn[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 2px 8px #7064fb4d}.test-voice-btn[_ngcontent-%COMP%]:active{transform:translateY(0);box-shadow:0 1px 4px #7064fb4d}.test-voice-btn[_ngcontent-%COMP%]:focus{outline:none;box-shadow:0 0 0 3px #7064fb4d}.test-voice-btn[_ngcontent-%COMP%]:disabled{background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:not-allowed;transform:none;box-shadow:none}.test-voice-link[_ngcontent-%COMP%]{text-decoration-thickness:1.5px;text-underline-offset:3px;background:transparent;border:none;padding:0;font-size:.775rem;font-weight:400;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:underline}.test-voice-link[_ngcontent-%COMP%]:hover{color:var(--color-primary-hover, var(--color-primary));text-decoration-thickness:2px}.test-voice-link[_ngcontent-%COMP%]:active{opacity:.8}.test-voice-link[_ngcontent-%COMP%]:focus{outline:2px solid var(--color-primary);outline-offset:2px}.test-voice-link[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px}.notification-error[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;margin-top:.75rem;background-color:#d32f2f1a;border:1px solid rgba(211,47,47,.3);border-radius:6px;font-size:.8125rem;line-height:1.5}.notification-error[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{color:#d32f2f;font-size:20px;width:20px;height:20px;flex-shrink:0;margin-top:2px}.notification-error[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%]{color:var(--color-text);flex:1}.notification-error[_ngcontent-%COMP%]{margin-top:.75rem;padding:.75rem;background-color:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:6px;display:flex;align-items:flex-start;gap:.5rem}.notification-error[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{color:#f44336;font-size:20px;width:20px;height:20px;flex-shrink:0;margin-top:2px}.notification-error[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text);line-height:1.5;flex:1}']})};var an=(o,e)=>({subThreads:o,depth:e}),sn=o=>({subThreads:o,depth:1}),Yt=(o,e)=>e.id,ln=(o,e)=>e.label;function cn(o,e){if(o&1){let t=M();a(0,"mat-icon",10),p("click",function(i){u(t);let r=d().$implicit,h=d(3);return _(h.toggleSubThreads(i,r.id))}),l(1),s()}if(o&2){let t=d().$implicit,n=d(3);c(),w(n.isParentExpanded(t.id)?"expand_more":"chevron_right")}}function dn(o,e){o&1&&Ne(0)}function pn(o,e){if(o&1&&fe(0,dn,1,0,"ng-container",11),o&2){let t=d().$implicit,n=d().depth;d();let i=De(1);b("ngTemplateOutlet",i)("ngTemplateOutletContext",Xe(2,an,t.subThreads,n+1))}}function mn(o,e){if(o&1){let t=M();a(0,"div",5)(1,"a",6),p("click",function(i){let r=u(t).$implicit;return d(3).selectThread(r.id),_(i.preventDefault())})("keydown.enter",function(i){let r=u(t).$implicit;return d(3).selectThread(r.id),_(i.preventDefault())})("keydown.space",function(i){let r=u(t).$implicit;return d(3).selectThread(r.id),_(i.preventDefault())}),m(2,cn,2,1,"mat-icon",7),a(3,"span",8),l(4),s(),a(5,"span",9),l(6),s()()(),m(7,pn,1,5,"ng-container")}if(o&2){let t,n=e.$implicit,i=d().depth,r=d(2);G("--sub-depth",i),T("current",n.id===((t=r.currentThread())==null?null:t.id)),c(2),g(n.subThreads!=null&&n.subThreads.length?2:-1),c(2),w(n.delegatedAgentName||"Agent"),c(2),w(n.delegatedTask||n.name),c(),g(r.isParentExpanded(n.id)&&(n.subThreads!=null&&n.subThreads.length)?7:-1)}}function gn(o,e){if(o&1&&R(0,mn,8,8,null,null,Yt),o&2){let t=e.subThreads;L(t)}}function hn(o,e){o&1&&(a(0,"div",4),P(1,"span",12),a(2,"span",13),l(3,"Loading threads..."),s()())}function un(o,e){if(o&1&&(a(0,"div",25),l(1),s()),o&2){let t=d(6);c(),w(t.renameErrorMessage)}}function _n(o,e){if(o&1){let t=M();a(0,"div",18)(1,"input",24),S("ngModelChange",function(i){u(t);let r=d(5);return y(r.editingThreadName,i)||(r.editingThreadName=i),_(i)}),p("keydown",function(i){u(t);let r=d(5);return _(r.onEditKeydown(i))})("blur",function(){u(t);let i=d(5);return _(i.onEditBlur())})("click",function(i){return i.stopPropagation()}),s(),m(2,un,2,1,"div",25),s()}if(o&2){let t=d(5);c(),x("ngModel",t.editingThreadName),b("disabled",t.isRenamingThread),c(),g(t.renameErrorMessage?2:-1)}}function fn(o,e){if(o&1){let t=M();a(0,"mat-icon",10),p("click",function(i){u(t);let r=d(2).$implicit,h=d(4);return _(h.toggleSubThreads(i,r.id))}),l(1),s()}if(o&2){let t=d(2).$implicit,n=d(4);c(),w(n.isParentExpanded(t.id)?"expand_more":"chevron_right")}}function vn(o,e){if(o&1&&(a(0,"span",27),l(1),s()),o&2){let t=d(2).$implicit;c(),w(t.name)}}function bn(o,e){o&1&&(P(0,"mat-spinner",29),a(1,"span",30),l(2,"Generating name..."),s()),o&2&&b("diameter",16)}function Cn(o,e){o&1&&(a(0,"mat-icon",28),l(1,"group"),s())}function xn(o,e){if(o&1){let t=M();a(0,"a",26),p("click",function(i){u(t);let r=d().$implicit;return d(4).selectThread(r.id),_(i.preventDefault())})("keydown.enter",function(i){u(t);let r=d().$implicit;return d(4).selectThread(r.id),_(i.preventDefault())})("keydown.space",function(i){u(t);let r=d().$implicit;return d(4).selectThread(r.id),_(i.preventDefault())}),m(1,fn,2,1,"mat-icon",7),m(2,vn,2,1,"span",27)(3,bn,3,1),m(4,Cn,2,0,"mat-icon",28),s()}if(o&2){let t=d().$implicit,n=d(4);b("matTooltip",t.name?t.name+`
|
|
6
|
+
|
|
7
|
+
`+(t.summary||""):t.summary||"")("matTooltipDisabled",!t.summary),c(),g(t.subThreads!=null&&t.subThreads.length?1:-1),c(),g(t.name?2:3),c(2),g(n.isSharedThread(t)?4:-1)}}function yn(o,e){if(o&1){let t=M();a(0,"button",31),p("click",function(i){u(t);let r=d().$implicit,h=d(4);return _(h.startEditingThreadName(i,r))}),a(1,"mat-icon"),l(2,"edit"),s()()}}function Sn(o,e){o&1&&Ne(0)}function Mn(o,e){if(o&1&&fe(0,Sn,1,0,"ng-container",11),o&2){let t=d().$implicit;d(3);let n=De(1);b("ngTemplateOutlet",n)("ngTemplateOutletContext",Qe(2,sn,t.subThreads))}}function Pn(o,e){if(o&1){let t=M();a(0,"div",17),m(1,_n,3,3,"div",18)(2,xn,5,5,"a",19),a(3,"div",20),m(4,yn,3,0,"button",21),a(5,"button",22),p("click",function(i){let r=u(t).$implicit,h=d(4);return _(h.toggleStar(i,r))}),a(6,"mat-icon"),l(7),s()(),a(8,"button",23),p("click",function(i){let r=u(t).$implicit,h=d(4);return _(h.deleteThread(i,r))}),a(9,"mat-icon"),l(10,"delete"),s()()()(),m(11,Mn,1,4,"ng-container")}if(o&2){let t,n=e.$implicit,i=d(4);T("current",n.id===((t=i.currentThread())==null?null:t.id)),c(),g(i.editingThreadId===n.id?1:2),c(3),g(i.editingThreadId!==n.id&&n.name?4:-1),c(),T("starred",i.isStarred(n)),b("title",i.isStarred(n)?"Unstar thread":"Star thread"),c(2),w(i.isStarred(n)?"star":"star_outline"),c(4),g(i.isParentExpanded(n.id)&&(n.subThreads!=null&&n.subThreads.length)?11:-1)}}function Tn(o,e){if(o&1&&(a(0,"div",14)(1,"div",16),l(2),s(),R(3,Pn,12,9,null,null,Yt),s()),o&2){let t=e.$implicit;c(2),w(t.label),c(),L(t.threads)}}function wn(o,e){o&1&&(a(0,"div",15),l(1,"No existing threads"),s())}function On(o,e){if(o&1&&(a(0,"div",15),l(1),s()),o&2){let t=d(3);c(),I('No threads matching "',t.searchQuery(),'"')}}function En(o,e){if(o&1&&(R(0,Tn,5,1,"div",14,ln),m(2,wn,2,0,"div",15)(3,On,2,1,"div",15)),o&2){let t,n=d(2);L(n.getGroupedThreads()),c(2),g(!((t=n.threads())!=null&&t.length)&&!n.searchQuery()?2:n.searchQuery()&&n.getGroupedThreads().length===0?3:-1)}}function kn(o,e){if(o&1&&(fe(0,gn,2,0,"ng-template",null,0,Je),a(2,"div",3),m(3,hn,4,0,"div",4)(4,En,4,1),s()),o&2){let t=d();c(3),g(t.isLoadingThreadList()?3:4)}}function Vn(o,e){o&1&&(a(0,"span",32),l(1,"No project selected"),s())}function In(o,e){o&1&&(a(0,"span",32),l(1,"Loading..."),s())}function jn(o,e){if(o&1&&(a(0,"div",2),m(1,Vn,2,0,"span",32)(2,In,2,0,"span",32),s()),o&2){let t,n=d();c(),g((t=n.currentProject())!=null&&t.name?2:1)}}var Ve=class o{projects=null;searchMode=!1;searchQuery=ye("");searchModeChange=new se;threadSelected=new se;projectStateService=v(Te);threadStateService=v(we);threadApiService=v(rt);userService=v(Oe);router=v(Se);destroyRef=v(ue);currentThread=O(this.threadStateService.selectedThread$);currentProject=O(this.projectStateService.selectedProject$);threads=O(this.threadStateService.threadList$);isLoadingThreadList=O(this.threadStateService.isLoadingThreadList$);username=O(this.userService.username$);isTouchDevice="ontouchstart"in window||navigator.maxTouchPoints>0;editingThreadId=null;editingThreadName="";isRenamingThread=!1;renameErrorMessage="";expandedParents=new Set;constructor(){le(()=>{let e=this.currentThread()?.id,t=this.threads();if(!e||!t?.length)return;let n=new Map;for(let r of t)r.parentThreadId&&n.set(r.id,r.parentThreadId);let i=e;for(;i;){let r=n.get(i);r&&this.expandedParents.add(r),i=r}})}ngOnInit(){this.userService.fetchCurrentUser().subscribe({error:e=>{console.error("[THREAD-SELECTOR] Failed to load current user:",e)}})}selectThread(e){this.threadStateService.selectThread(e),this.threadSelected.emit(),this.router.navigate(["project",this.currentProject()?.name,"thread",e])}getGroupedThreads(){let e=this.threads();if(!e?.length)return[];let t=new Set(e.map(f=>f.id)),n=e.filter(f=>!f.parentThreadId),i=e.filter(f=>!!f.parentThreadId),r=i.filter(f=>!t.has(f.parentThreadId)),h=i.filter(f=>t.has(f.parentThreadId)),k=new Map;for(let f of h){let E=f.parentThreadId;k.has(E)||k.set(E,[]),k.get(E).push(f)}let K=f=>(k.get(f)||[]).sort((z,J)=>z.modifiedDate>J.modifiedDate?-1:1).map(z=>re(Y({},z),{subThreads:K(z.id)})),D=[...n,...r];if(this.searchQuery()&&this.searchQuery().trim()){let f=this.searchQuery().toLowerCase().trim();D=D.filter(E=>E.name.toLowerCase().includes(f)||E.summary&&E.summary.toLowerCase().includes(f))}if(!D.length)return[];let Z=this.username();if(!Z)return[];let Re=D.map(f=>re(Y({},f),{subThreads:K(f.id)})),Le=Re.filter(f=>f.starring&&f.starring.includes(Z)),Gt=Re.filter(f=>!f.starring||!f.starring.includes(Z)),oe=new Map,ze=new Date;ze.setHours(0,0,0,0);for(let f of Gt){let E=new Date(f.modifiedDate);E.setHours(0,0,0,0);let z=ze.getTime()-E.getTime(),J=Math.floor(z/(1e3*60*60*24)),A;J===0?A="Today":J===1?A="Yesterday":J<7?A="This Week":J<30?A="This Month":J<90?A="Last 3 Months":A="Older",oe.has(A)||oe.set(A,[]),oe.get(A).push(f)}let je=[];if(Le.length>0){let f=[...Le].sort((E,z)=>E.modifiedDate>z.modifiedDate?-1:1);je.push({label:"Starred",threads:f})}return["Today","Yesterday","This Week","This Month","Last 3 Months","Older"].filter(f=>oe.has(f)).forEach(f=>{je.push({label:f,threads:oe.get(f)})}),je}isParentExpanded(e){return this.expandedParents.has(e)}toggleSubThreads(e,t){e.stopPropagation(),this.expandedParents.has(t)?this.expandedParents.delete(t):this.expandedParents.add(t)}isSubThread(e){return!!e.parentThreadId}isSharedThread(e){return e.users&&e.users.length>1}isStarred(e){let t=this.username();return!!t&&e.starring&&e.starring.includes(t)}toggleStar(e,t){e.stopPropagation();let n=this.username();if(!n)return;let i=t.starring&&t.starring.includes(n),r=i?this.threadApiService.unstarThread(t.id):this.threadApiService.starThread(t.id);this.threadStateService.updateStarLocal(t.id,!i,n),r.pipe(Q(this.destroyRef)).subscribe({next:()=>{},error:h=>{console.error("Error toggling star:",h),this.threadStateService.refreshThreadList()}})}deleteThread(e,t){e.stopPropagation();let n=this.currentProject()?.name;!n||!confirm(`Are you sure you want to delete the thread "${t.name}"?`)||this.threadApiService.deleteThread(t.id).subscribe({next:()=>{this.currentThread()?.id===t.id&&(this.threadStateService.clearSelection(),this.router.navigate(["project",n])),this.threadStateService.refreshThreadList()},error:r=>{console.error("Error deleting thread:",r),alert("Failed to delete thread. Please try again.")}})}formatDate(e){try{let t=new Date(e),i=new Date().getTime()-t.getTime(),r=Math.floor(i/(1e3*60*60*24));return r===0?"Today":r===1?"Yesterday":r<7?`${r} days ago`:t.toLocaleDateString("en-EN",{day:"numeric",month:"short"})}catch(t){return"No date"}}startEditingThreadName(e,t){e.stopPropagation(),this.editingThreadId=t.id,this.editingThreadName=t.name||"",this.renameErrorMessage="",setTimeout(()=>{let n=document.querySelector(".thread-name-input");n&&(n.focus(),n.select())},0)}cancelEditingThreadName(){this.editingThreadId=null,this.editingThreadName="",this.renameErrorMessage=""}saveThreadName(e){if(e&&e.stopPropagation(),!this.editingThreadId)return;let t=this.editingThreadName.trim();if(!t){this.renameErrorMessage="Thread name cannot be empty";return}if(t.length>200){this.renameErrorMessage="Thread name is too long (max 200 characters)";return}let n=this.editingThreadId;this.isRenamingThread=!0,this.renameErrorMessage="",this.threadStateService.renameThread(n,t).subscribe({next:()=>{console.log("[THREAD-SELECTOR] Thread renamed successfully"),this.cancelEditingThreadName(),this.isRenamingThread=!1},error:i=>{console.error("[THREAD-SELECTOR] Error renaming thread:",i),this.renameErrorMessage=i.message||"Failed to rename thread",this.isRenamingThread=!1}})}onEditKeydown(e){e.key==="Enter"?(e.preventDefault(),e.stopPropagation(),this.saveThreadName()):e.key==="Escape"&&(e.preventDefault(),e.stopPropagation(),this.cancelEditingThreadName())}onEditBlur(){setTimeout(()=>{this.editingThreadId&&!this.isRenamingThread&&this.saveThreadName()},200)}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=V({type:o,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","","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"],[1,"disabled-text"]],template:function(t,n){if(t&1&&(a(0,"div",1),p("click",function(r){return r.stopPropagation()})("keydown",function(r){return r.stopPropagation()}),m(1,kn,5,1)(2,jn,3,1,"div",2),s()),t&2){let i;c(),g((i=n.currentProject())!=null&&i.name?1:2)}},dependencies:[Ye,H,B,$,_t,U,ne,N,te,W,ft,dt,ct,lt,st,at],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}.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 Nn=["logsContent"],Dn=(o,e)=>e.name;function An(o,e){if(o&1){let t=M();a(0,"button",12),p("click",function(){u(t);let i=d().$implicit,r=d();return _(r.start(i.name))}),a(1,"mat-icon"),l(2,"play_arrow"),s()()}if(o&2){let t=d().$implicit;b("disabled",t.isLoading)}}function Fn(o,e){if(o&1){let t=M();a(0,"button",13),p("click",function(){u(t);let i=d().$implicit,r=d();return _(r.stop(i.name))}),a(1,"mat-icon"),l(2,"stop"),s()()}if(o&2){let t=d().$implicit;b("disabled",t.isLoading)}}function Rn(o,e){if(o&1&&(a(0,"a",8)(1,"mat-icon",14),l(2,"open_in_new"),s()()),o&2){let t=d().$implicit;b("href",t.url,ce)("title",t.url)}}function Ln(o,e){if(o&1&&(a(0,"div",15),l(1),s()),o&2){let t=d(),n=t.$implicit,i=t.$index;G("order",i*2),c(),w(n.errorMessage)}}function zn(o,e){if(o&1){let t=M();a(0,"button",21),p("click",function(){u(t);let i=d(3);return _(i.onManualRefresh())}),a(1,"mat-icon"),l(2,"refresh"),s()()}}function Wn(o,e){if(o&1&&(a(0,"div",16)(1,"div",17)(2,"span",18),l(3),s(),m(4,zn,3,0,"button",19),s(),a(5,"pre",20,0),l(7),s()()),o&2){let t=d(),n=t.$implicit,i=t.$index,r=d();G("order",i*2+1),c(3),I("",n.name," logs"),c(),g(n.status==="running"?4:-1),c(3),w(r.logs()||"(empty)")}}function Bn(o,e){if(o&1){let t=M();a(0,"div",2)(1,"span",3),l(2),s(),a(3,"div",4),m(4,An,3,1,"button",5)(5,Fn,3,1,"button",6),a(6,"span",7),l(7),s(),m(8,Rn,3,2,"a",8),a(9,"button",9),p("click",function(){let i=u(t).$implicit,r=d();return _(r.toggleLogs(i.name))}),a(10,"mat-icon"),l(11),s()()()(),m(12,Ln,2,3,"div",10),m(13,Wn,8,5,"div",11)}if(o&2){let t=e.$implicit,n=e.$index,i=d();G("order",n*2),c(2),w(t.name),c(2),g(t.status==="stopped"?4:5),c(2),T("running",t.status==="running"),c(),I(" ",t.status==="running"?"Running":"Stopped"," "),c(),g(t.url?8:-1),c(),b("title",i.logsOpenFor()===t.name?"Hide logs":"Show logs"),c(2),w(i.logsOpenFor()===t.name?"expand_less":"terminal"),c(),g(t.errorMessage?12:-1),c(),g(i.logsOpenFor()===t.name?13:-1)}}var Ie=class o{destroyRef=v(ue);projectApi=v(Pe);projectName=ye.required();entryStates=ee([]);hasPreview=xe(()=>this.entryStates().length>0);logsOpenFor=ee(null);logs=ee("");logsContent;logsPollTimer=null;logsTimeoutTimer=null;static LOGS_POLL_MS=5e3;static LOGS_TIMEOUT_MS=1200*1e3;constructor(){le(()=>{let e=this.projectName();e&&this.onProjectChanged(e)},{allowSignalWrites:!0}),le(()=>{console.log("entry states",this.entryStates())})}ngOnDestroy(){this.stopLogPolling()}onProjectChanged(e){this.stopLogPolling(),this.entryStates.set([]),this.logsOpenFor.set(null),this.logs.set(""),this.projectApi.getPreviewEntries(e).pipe(Q(this.destroyRef)).subscribe({next:t=>{let n=t.entries;if(n.length===0)return;let i=n.map(h=>({name:h.name,command:h.command,url:h.url,status:"stopped",isLoading:!1,errorMessage:""}));this.entryStates.set(i);let r=n.map(h=>this.projectApi.getPreviewStatus(e,h.name));We(r).pipe(Q(this.destroyRef)).subscribe({next:h=>{this.entryStates.update(k=>k.map((K,D)=>{let Z=h[D];return Z?re(Y({},K),{status:Z.status}):K}))},error:()=>{}})},error:()=>{}})}start(e){this.updateEntry(e,{isLoading:!0,errorMessage:""}),this.projectApi.startPreview(this.projectName(),e).pipe(Q(this.destroyRef)).subscribe({next:t=>{this.updateEntry(e,{status:t.status,isLoading:!1})},error:t=>{this.updateEntry(e,{errorMessage:t?.error?.error??"Failed to start preview",isLoading:!1})}})}stop(e){this.updateEntry(e,{isLoading:!0,errorMessage:""}),this.projectApi.stopPreview(this.projectName(),e).pipe(Q(this.destroyRef)).subscribe({next:()=>{this.updateEntry(e,{status:"stopped",isLoading:!1}),this.logsOpenFor()===e&&this.stopLogPolling()},error:t=>{this.updateEntry(e,{errorMessage:t?.error?.error??"Failed to stop preview",isLoading:!1})}})}toggleLogs(e){this.logsOpenFor()===e?(this.logsOpenFor.set(null),this.logs.set(""),this.stopLogPolling()):(this.logsOpenFor.set(e),this.refreshLogs(),this.startLogPolling())}onManualRefresh(){this.refreshLogs(),this.logsPollTimer&&this.resetLogsTimeout()}refreshLogs(){let e=this.logsOpenFor();e&&this.projectApi.getPreviewLogs(this.projectName(),e).pipe(Q(this.destroyRef)).subscribe({next:t=>{this.logs.set(t.logs),this.scrollLogsToBottom()},error:()=>this.logs.set("(failed to load logs)")})}updateEntry(e,t){this.entryStates.update(n=>n.map(i=>i.name===e?Y(Y({},i),t):i))}startLogPolling(){this.stopLogPolling(),this.logsPollTimer=setInterval(()=>{this.logsOpenFor()?this.refreshLogs():this.stopLogPolling()},o.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()},o.LOGS_TIMEOUT_MS)}scrollLogsToBottom(){setTimeout(()=>{let e=this.logsContent?.nativeElement;e&&(e.scrollTop=e.scrollHeight)})}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=V({type:o,selectors:[["app-preview-panel"]],viewQuery:function(t,n){if(t&1&&ve(Nn,5),t&2){let i;be(i=Ce())&&(n.logsContent=i.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(t,n){t&1&&(a(0,"div",1),R(1,Bn,14,12,null,null,Dn),s()),t&2&&(c(),L(n.entryStates()))},dependencies:[te,W,ne,N],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}"]})};function $n(o,e){if(o&1&&(a(0,"div",3),l(1),s()),o&2){let t=d();c(),I("\u274C ",t.errorMessage)}}var me=class o{dialogRef=v(Ke);data=v(Ze);jsonContent;errorMessage="";title;constructor(){this.jsonContent=this.data.initialContent,this.title=this.data.title||this.getDefaultTitle(this.data.configType,this.data.projectName)}getDefaultTitle(e,t){return e==="user"?"User Configuration":`Project Configuration: ${t||"Unknown"}`}onSave(){this.errorMessage="";let e;try{e=JSON.parse(this.jsonContent)}catch(t){this.errorMessage=`Invalid JSON syntax: ${t instanceof Error?t.message:"Unknown error"}`;return}this.dialogRef.close(e)}onCancel(){this.dialogRef.close()}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=V({type:o,selectors:[["app-json-editor"]],decls:13,vars:3,consts:[["mat-dialog-title",""],["mat-icon-button","","title","Close",1,"close-button",3,"click"],["spellcheck","false","placeholder","Enter JSON configuration...",1,"json-textarea",3,"ngModelChange","ngModel"],[1,"error-message"],["align","end"],["matButton","",3,"click"],["matButton","filled","color","primary",3,"click"]],template:function(t,n){t&1&&(a(0,"div",0),l(1),a(2,"button",1),p("click",function(){return n.onCancel()}),a(3,"mat-icon"),l(4,"close"),s()()(),a(5,"mat-dialog-content")(6,"textarea",2),S("ngModelChange",function(r){return y(n.jsonContent,r)||(n.jsonContent=r),r}),s(),m(7,$n,2,1,"div",3),s(),a(8,"mat-dialog-actions",4)(9,"button",5),p("click",function(){return n.onCancel()}),l(10,"Cancel"),s(),a(11,"button",6),p("click",function(){return n.onSave()}),l(12,"Save"),s()()),t&2&&(c(),I(" ",n.title," "),c(5),x("ngModel",n.jsonContent),c(),g(n.errorMessage?7:-1))},dependencies:[qe,H,B,$,U,N,W,ot,tt,nt,it],styles:["[mat-dialog-title][_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}[mat-dialog-title][_ngcontent-%COMP%] .close-button[_ngcontent-%COMP%]{margin-left:auto}mat-dialog-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;min-height:400px}.json-textarea[_ngcontent-%COMP%]{flex:1;min-height:300px;max-height:80vh;padding:1rem;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:.875rem;line-height:1.5;background:var(--color-code-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:4px;resize:vertical;outline:none;transition:border-color .2s}.json-textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-primary)}.json-textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary);opacity:.6}.error-message[_ngcontent-%COMP%]{padding:.75rem 1rem;border-radius:4px;font-size:.875rem;line-height:1.4;background:#dc26261a;color:#dc2626;border:1px solid rgba(220,38,38,.3)}"]})};var Un=["threadSearchInput"],Hn=["*"];function Qn(o,e){if(o&1){let t=M();a(0,"button",27),p("click",function(){u(t);let i=d();return _(i.toggle())}),a(1,"mat-icon"),l(2,"menu"),s()(),a(3,"button",28),p("click",function(){u(t);let i=d();return _(i.createNewThread())}),a(4,"mat-icon",10),l(5,"play_circle"),s()()}if(o&2){let t=d();c(3),b("disabled",!t.selectedProjectName())}}function Xn(o,e){if(o&1){let t=M();a(0,"div",12)(1,"a",29),p("click",function(i){return u(t),d().openMissionControl(),_(i.preventDefault())}),a(2,"mat-icon"),l(3,"rocket_launch"),s(),a(4,"span",30),l(5,"Task Control"),s()()()}}function Jn(o,e){if(o&1){let t=M();a(0,"div",15)(1,"mat-icon",31),l(2,"search"),s(),a(3,"input",32,0),S("ngModelChange",function(i){u(t);let r=d();return y(r.threadSearchQuery,i)||(r.threadSearchQuery=i),_(i)}),p("input",function(){u(t);let i=d();return _(i.onThreadSearchInput())}),s(),a(5,"button",33),p("click",function(){u(t);let i=d();return _(i.closeThreadSearch())}),a(6,"mat-icon"),l(7,"close"),s()()()}if(o&2){let t=d();c(3),x("ngModel",t.threadSearchQuery)}}function Yn(o,e){if(o&1){let t=M();a(0,"div",16)(1,"mat-icon",23),l(2,"forum"),s(),a(3,"span",24),l(4,"Threads"),s(),a(5,"button",34),p("click",function(i){u(t);let r=d();return _(r.toggleThreadSearch(i))}),a(6,"mat-icon"),l(7,"search"),s()()()}}function qn(o,e){o&1&&(a(0,"mat-icon",22),l(1,"keyboard_arrow_up"),s())}function Gn(o,e){o&1&&(a(0,"mat-icon",23),l(1,"hub"),s())}function Kn(o,e){o&1&&(a(0,"mat-icon",22),l(1,"keyboard_arrow_up"),s())}function Zn(o,e){o&1&&(a(0,"mat-icon",23),l(1,"tune"),s())}function ei(o,e){o&1&&(a(0,"div",36)(1,"div",40),P(2,"app-options-panel",41),s()())}function ti(o,e){if(o&1){let t=M();a(0,"div",35)(1,"a",21),p("click",function(i){return u(t),d(3).openProjectConfig(),i.preventDefault(),_(i.stopPropagation())}),a(2,"mat-icon",23),l(3,"settings_applications"),s(),a(4,"span",24),l(5,"Project Configuration"),s()()()}}function ni(o,e){o&1&&(a(0,"div",35)(1,"a",42)(2,"mat-icon",23),l(3,"settings_applications"),s(),a(4,"span",24),l(5,"Project config (No project)"),s()()())}function ii(o,e){if(o&1&&m(0,ti,6,0,"div",35)(1,ni,6,0,"div",35),o&2){let t=d(2);g(t.selectedProjectName()?0:1)}}function oi(o,e){if(o&1){let t=M();a(0,"div",35)(1,"a",21),p("click",function(i){return u(t),d(2).openAgents(),i.preventDefault(),_(i.stopPropagation())}),a(2,"mat-icon",23),l(3,"smart_toy"),s(),a(4,"span",24),l(5,"Agents"),s()()()}}function ri(o,e){o&1&&(a(0,"div",35)(1,"a",42)(2,"mat-icon",23),l(3,"smart_toy"),s(),a(4,"span",24),l(5,"Agents (No project)"),s()()())}function ai(o,e){if(o&1){let t=M();a(0,"div",35)(1,"a",21),p("click",function(i){return u(t),d(2).openPrompts(),i.preventDefault(),_(i.stopPropagation())}),a(2,"mat-icon",23),l(3,"description"),s(),a(4,"span",24),l(5,"Prompts"),s()()()}}function si(o,e){o&1&&(a(0,"div",35)(1,"a",42)(2,"mat-icon",23),l(3,"description"),s(),a(4,"span",24),l(5,"Prompts (No project)"),s()()())}function li(o,e){if(o&1){let t=M();a(0,"div",35)(1,"a",21),p("click",function(i){return u(t),d(2).openSchedulers(),i.preventDefault(),_(i.stopPropagation())}),a(2,"mat-icon",23),l(3,"schedule"),s(),a(4,"span",24),l(5,"Schedulers"),s()()()}}function ci(o,e){o&1&&(a(0,"div",35)(1,"a",42)(2,"mat-icon",23),l(3,"schedule"),s(),a(4,"span",24),l(5,"Schedulers (No project)"),s()()())}function di(o,e){o&1&&(a(0,"mat-icon",22),l(1,"keyboard_arrow_up"),s())}function pi(o,e){o&1&&(a(0,"mat-icon",23),l(1,"rocket_launch"),s())}function mi(o,e){if(o&1&&(a(0,"div",36),P(1,"app-preview-panel",43),s()),o&2){let t=d(3);c(),b("projectName",t.selectedProjectName())}}function gi(o,e){if(o&1){let t=M();a(0,"div",35)(1,"a",21),p("click",function(i){return u(t),d(2).toggleSection("preview"),i.preventDefault(),_(i.stopPropagation())}),m(2,di,2,0,"mat-icon",22)(3,pi,2,0,"mat-icon",23),a(4,"span",24),l(5,"Preview Server"),s()(),m(6,mi,2,1,"div",36),s()}if(o&2){let t=d(2);T("expanded",t.expandedSections.preview),c(),T("active",t.expandedSections.preview),c(),g(t.expandedSections.preview?2:3),c(4),g(t.expandedSections.preview?6:-1)}}function hi(o,e){if(o&1){let t=M();a(0,"div",25)(1,"div",35)(2,"a",21),p("click",function(i){return u(t),d().toggleSection("config"),_(i.preventDefault())}),m(3,Kn,2,0,"mat-icon",22)(4,Zn,2,0,"mat-icon",23),a(5,"span",24),l(6,"Preferences"),s()(),m(7,ei,3,0,"div",36),s(),a(8,"div",35)(9,"a",21),p("click",function(i){return u(t),d().openTokenUsage(),i.preventDefault(),_(i.stopPropagation())}),a(10,"mat-icon",23),l(11,"data_usage"),s(),a(12,"span",24),l(13,"Token Usage"),s()()(),a(14,"div",35)(15,"a",21),p("click",function(i){return u(t),d().openUserConfig(),i.preventDefault(),_(i.stopPropagation())}),a(16,"mat-icon",23),l(17,"manage_accounts"),s(),a(18,"span",24),l(19,"User Configuration"),s()()(),m(20,ii,2,1),m(21,oi,6,0,"div",35)(22,ri,6,0,"div",35),m(23,ai,6,0,"div",35)(24,si,6,0,"div",35),m(25,li,6,0,"div",35)(26,ci,6,0,"div",35),m(27,gi,7,6,"div",37),a(28,"div",35)(29,"a",38),P(30,"img",39),a(31,"span",24),l(32,"Contribute on GitHub"),s()()()()}if(o&2){let t=d();c(),T("expanded",t.expandedSections.config),c(),T("active",t.expandedSections.config),c(),g(t.expandedSections.config?3:4),c(4),g(t.expandedSections.config?7:-1),c(13),g(t.isAdmin?20:-1),c(),g(t.selectedProjectName()?21:22),c(2),g(t.selectedProjectName()?23:24),c(2),g(t.selectedProjectName()?25:26),c(2),g(t.hasPreviewConfig()?27:-1),c(3),de("src","CODAY-Logo.png",ce)}}function ui(o,e){if(o&1){let t=M();a(0,"div",26)(1,"mat-icon",44),l(2,"warning"),s(),a(3,"span",45),l(4),s(),a(5,"button",46),p("click",function(){u(t);let i=d();return _(i.configErrorMessage="")}),a(6,"mat-icon"),l(7,"close"),s()()()}if(o&2){let t=d();c(4),w(t.configErrorMessage)}}var qt=class o{destroy$=new F;sidenavStateChange=new se;drawerOpen=!1;breakpointObserver=v(Ge);isDesktop=O(this.breakpointObserver.observe("(min-width: 1400px)").pipe(ae(e=>e.matches)),{initialValue:!1});userOpenPreference=ee(!0);isOpen=xe(()=>this.userOpenPreference());isAdmin=!1;configErrorMessage="";expandedSections={config:!1,preview:!1,settings:!1};isThreadSearchActive=!1;threadSearchQuery="";threadSearchInput;dialog=v(et);configApi=v(Wt);projectStateService=v(Te);projectApi=v(Pe);router=v(Se);preferences=v(ie);threadStateService=v(we);projects=O(this.projectStateService.projectList$);selectedProject=O(this.projectStateService.selectedProject$);selectedProjectName=O(this.projectStateService.selectedProject$.pipe(ae(e=>e?.name)));isProjectVolatile=O(this.projectStateService.selectedProject$.pipe(ae(e=>e?.config?.volatile||!1)));forcedProject=O(this.projectStateService.forcedProject$);hasPreviewConfig=O(this.projectStateService.selectedProject$.pipe(ae(e=>{let t=e?.config?.preview;return Array.isArray(t)&&!!t.length})),{initialValue:!1});ngOnInit(){let e=window.innerWidth>=1024,t=this.preferences.getPreference("sidenavOpen",e);this.userOpenPreference.set(t??e),this.configApi.getUserConfig().pipe(C(this.destroy$)).subscribe({next:n=>{this.isAdmin=n.groups?.includes("CODAY_ADMIN")??!1,console.log("[SIDENAV] User admin status:",this.isAdmin)},error:n=>{console.error("[SIDENAV] Error loading user config for roles:",n),this.isAdmin=!1}})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}toggle(){let e=!this.userOpenPreference();this.userOpenPreference.set(e),this.saveSidenavState(e),this.sidenavStateChange.emit(e)}close(){this.userOpenPreference()&&(this.userOpenPreference.set(!1),this.saveSidenavState(!1),this.sidenavStateChange.emit(!1))}saveSidenavState(e){this.preferences.setPreference("sidenavOpen",e)}openTokenUsage(){this.configErrorMessage="",this.router.navigate(["/token-usage"])}openUserConfig(){console.log("[SIDENAV] openUserConfig called"),this.configErrorMessage="",this.configApi.getUserConfig().pipe(C(this.destroy$)).subscribe({next:e=>{console.log("[SIDENAV] User config loaded, opening dialog"),this.dialog.open(me,{data:{configType:"user",initialContent:JSON.stringify(e,null,2)}}).afterClosed().subscribe(n=>{n&&this.saveUserConfig(n)})},error:e=>{console.error("[SIDENAV] Error loading user config:",e),this.configErrorMessage=e?.error?.error||"Failed to load user configuration"}})}saveUserConfig(e){this.configApi.updateUserConfig(e).pipe(C(this.destroy$)).subscribe({next:t=>{console.log("[SIDENAV] User config saved successfully")},error:t=>{console.error("[SIDENAV] Error saving user config:",t),this.configErrorMessage=t?.error?.error||"Failed to save user configuration"}})}openProjectConfig(){let e=this.selectedProjectName();if(!e){console.error("[SIDENAV] No project selected"),this.configErrorMessage="No project selected. Please select a project first.";return}this.configErrorMessage="",this.projectApi.getProjectConfig(e).pipe(C(this.destroy$)).subscribe({next:t=>{console.log("[SIDENAV] Project config loaded, opening dialog"),this.dialog.open(me,{data:{configType:"project",projectName:e,initialContent:JSON.stringify(t,null,2)}}).afterClosed().subscribe(i=>{i&&this.saveProjectConfig(e,i)})},error:t=>{console.error("[SIDENAV] Error loading project config:",t),this.configErrorMessage=t?.error?.error||"Failed to load project configuration"}})}saveProjectConfig(e,t){this.projectApi.updateProjectConfig(e,t).pipe(C(this.destroy$)).subscribe({next:n=>{console.log("[SIDENAV] Project config saved successfully")},error:n=>{console.error("[SIDENAV] Error saving project config:",n),this.configErrorMessage=n?.error?.error||"Failed to save project configuration"}})}requireProjectSelection(e){return this.selectedProjectName()?!0:(console.error(`[SIDENAV] No project selected, cannot ${e}`),this.configErrorMessage="Please select a project first",!1)}openAgents(){if(!this.requireProjectSelection("open agents"))return;let e=this.selectedProjectName();this.router.navigate(["project",e,"agents"])}openPrompts(){if(!this.requireProjectSelection("open prompts"))return;let e=this.selectedProjectName();this.router.navigate(["project",e,"prompts"])}openSchedulers(){if(!this.requireProjectSelection("open schedulers"))return;let e=this.selectedProjectName();this.router.navigate(["project",e,"schedulers"])}toggleSection(e){let t=this.expandedSections[e];e==="settings"?this.expandedSections[e]=!t:(["config","preview"].forEach(i=>{this.expandedSections[i]=!1}),this.expandedSections[e]=!t)}navigateToHome(){if(this.forcedProject()){console.log("[SIDENAV] Cannot navigate to home - forced project active");return}console.log("[SIDENAV] Navigating to home (project selection)"),this.projectStateService.clearSelection(),this.router.navigate(["/"])}openMissionControl(){let e=this.selectedProjectName();e&&(this.router.navigate(["project",e,"tasks"]),this.close())}createNewThread(){let e=this.selectedProjectName();if(!e){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",e])}onThreadSelectedOnMobile(){this.isDesktop()||this.close()}toggleThreadSearch(e){e.stopPropagation(),this.isThreadSearchActive=!0,this.threadSearchQuery="",setTimeout(()=>{this.threadSearchInput?.nativeElement.focus()},0)}closeThreadSearch(){this.isThreadSearchActive=!1,this.threadSearchQuery=""}onThreadSearchInput(){}onThreadSearchModeChange(e){e||this.closeThreadSearch()}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=V({type:o,selectors:[["app-sidenav"]],viewQuery:function(t,n){if(t&1&&ve(Un,5),t&2){let i;be(i=Ce())&&(n.threadSearchInput=i.first)}},inputs:{drawerOpen:"drawerOpen"},outputs:{sidenavStateChange:"sidenavStateChange"},ngContentSelectors:Hn,decls:35,vars:32,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",3,"click","keydown.enter","keydown.space","title"],[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(t,n){t&1&&($e(),m(0,Qn,6,1),a(1,"mat-sidenav-container",1)(2,"mat-sidenav",2),p("closed",function(){return n.close()}),a(3,"div",3)(4,"button",4),p("click",function(){return n.close()}),a(5,"mat-icon"),l(6,"chevron_left"),s()(),a(7,"img",5),p("click",function(r){return n.navigateToHome(),r.stopPropagation()})("keydown.enter",function(r){return n.navigateToHome(),r.preventDefault(),r.stopPropagation()})("keydown.space",function(r){return n.navigateToHome(),r.preventDefault(),r.stopPropagation()}),s(),a(8,"div",6)(9,"h2",7),l(10),s()()(),a(11,"div",8)(12,"a",9),p("click",function(r){return n.createNewThread(),r.preventDefault()}),a(13,"mat-icon",10),l(14,"play_circle"),s(),a(15,"span",11),l(16,"Start a new thread"),s()()(),m(17,Xn,6,0,"div",12),a(18,"div",13)(19,"div",14),m(20,Jn,8,1,"div",15)(21,Yn,8,0,"div",16),a(22,"div",17)(23,"app-thread-selector",18),p("searchModeChange",function(r){return n.onThreadSearchModeChange(r)})("threadSelected",function(){return n.onThreadSelectedOnMobile()}),s()()()(),a(24,"div",19)(25,"div",20)(26,"a",21),p("click",function(r){return n.toggleSection("settings"),r.preventDefault()}),m(27,qn,2,0,"mat-icon",22)(28,Gn,2,0,"mat-icon",23),a(29,"span",24),l(30,"Control Center"),s()(),m(31,hi,33,12,"div",25),s()()(),a(32,"mat-sidenav-content"),Ue(33),s()(),m(34,ui,8,1,"div",26)),t&2&&(g(!n.isOpen()&&!n.drawerOpen?0:-1),c(),T("sidenav-open",n.isOpen()),b("hasBackdrop",!1),c(),b("opened",n.isOpen())("disableClose",!0),c(5),T("sidenav-logo",!0)("clickable",!n.forcedProject())("disabled",n.forcedProject()),b("title",n.forcedProject()?"Project selection disabled":"Go to project selection"),de("src","CODAY-Logo.png",ce)("role",n.forcedProject()?null:"button")("tabindex",n.forcedProject()?null:"0"),c(3),w(n.selectedProjectName()),c(7),g(n.selectedProjectName()?17:-1),c(3),g(n.isThreadSearchActive?20:21),c(3),b("searchMode",n.isThreadSearchActive)("searchQuery",n.threadSearchQuery),c(),T("is-admin",n.isAdmin),c(),T("expanded",n.expandedSections.settings),c(),T("active",n.expandedSections.settings),c(),g(n.expandedSections.settings?27:28),c(4),g(n.expandedSections.settings?31:-1),c(),T("sidenav-closed-offset",!n.isOpen()),c(2),g(n.configErrorMessage?34:-1))},dependencies:[H,B,$,U,Rt,At,Ft,Dt,ne,N,te,W,Ht,Qt,pe,Ve,Ie],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%] .sidenav-logo.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed;pointer-events:none}.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{Ut as a,Ee as b,qt as c};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as _e,b as v,c as fe,d as $}from"./chunk-IXD43YQI.js";import{A as pe,E as ue,H as w,K as we,e as T,f as K,h as ce,p as le,q as he,u as me}from"./chunk-B2QA6UZX.js";import{$a as y,$b as g,A as ee,B as b,Bb as H,Db as L,F as te,Fb as D,G as re,Gb as u,H as V,Hb as s,Ib as q,Jb as U,Ka as G,Kb as _,Lb as f,Ma as N,Pa as se,Qb as S,R as j,Rb as l,T as d,Wa as h,Xa as de,_ as ie,aa as z,ca as n,ga as O,h as c,ha as Q,jb as Z,ka as W,la as ne,lb as C,mb as k,oa as x,pa as M,sb as m,sc as B,t as P,ta as ae,tb as p,wa as E,ya as F,za as oe}from"./chunk-3JGMGRXW.js";var A=["*"],be=["content"],ye=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],Ce=["mat-drawer","mat-drawer-content","*"];function ke(i,I){if(i&1){let e=H();m(0,"div",1),L("click",function(){O(e);let r=D();return Q(r._onBackdropClicked())}),p()}if(i&2){let e=D();l("mat-drawer-shown",e._isShowingBackdrop())}}function De(i,I){i&1&&(m(0,"mat-drawer-content"),s(1,2),p())}var xe=[[["mat-sidenav"]],[["mat-sidenav-content"]],"*"],Me=["mat-sidenav","mat-sidenav-content","*"];function Ee(i,I){if(i&1){let e=H();m(0,"div",1),L("click",function(){O(e);let r=D();return Q(r._onBackdropClicked())}),p()}if(i&2){let e=D();l("mat-drawer-shown",e._isShowingBackdrop())}}function Fe(i,I){i&1&&(m(0,"mat-sidenav-content"),s(1,2),p())}var Se=`.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}
|
|
2
|
+
`;var Be=new z("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:()=>!1}),Y=new z("MAT_DRAWER_CONTAINER"),R=(()=>{class i extends v{_platform=n(T);_changeDetectorRef=n(B);_container=n(X);constructor(){let e=n(F),t=n(_e),r=n(M);super(e,t,r)}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}_shouldBeHidden(){if(this._platform.isBrowser)return!1;let{start:e,end:t}=this._container;return e!=null&&e.mode!=="over"&&e.opened||t!=null&&t.mode!=="over"&&t.opened}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=h({type:i,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:6,hostBindings:function(t,r){t&2&&(S("margin-left",r._container._contentMargins.left,"px")("margin-right",r._container._contentMargins.right,"px"),l("mat-drawer-content-hidden",r._shouldBeHidden()))},features:[g([{provide:v,useExisting:i}]),y],ngContentSelectors:A,decls:1,vars:0,template:function(t,r){t&1&&(u(),s(0))},encapsulation:2,changeDetection:0})}return i})(),J=(()=>{class i{_elementRef=n(F);_focusTrapFactory=n(he);_focusMonitor=n(ce);_platform=n(T);_ngZone=n(M);_renderer=n(se);_interactivityChecker=n(le);_doc=n(ne);_container=n(Y,{optional:!0});_focusTrap=null;_elementFocusedBeforeDrawerWasOpened=null;_eventCleanups;_isAttached=!1;_anchor=null;get position(){return this._position}set position(e){e=e==="end"?"end":"start",e!==this._position&&(this._isAttached&&this._updatePositionInParent(e),this._position=e,this.onPositionChanged.emit())}_position="start";get mode(){return this._mode}set mode(e){this._mode=e,this._updateFocusTrapState(),this._modeChanged.next()}_mode="over";get disableClose(){return this._disableClose}set disableClose(e){this._disableClose=w(e)}_disableClose=!1;get autoFocus(){let e=this._autoFocus;return e??(this.mode==="side"?"dialog":"first-tabbable")}set autoFocus(e){(e==="true"||e==="false"||e==null)&&(e=w(e)),this._autoFocus=e}_autoFocus;get opened(){return this._opened()}set opened(e){this.toggle(w(e))}_opened=ae(!1);_openedVia=null;_animationStarted=new c;_animationEnd=new c;openedChange=new x(!0);_openedStream=this.openedChange.pipe(b(e=>e),P(()=>{}));openedStart=this._animationStarted.pipe(b(()=>this.opened),V(void 0));_closedStream=this.openedChange.pipe(b(e=>!e),P(()=>{}));closedStart=this._animationStarted.pipe(b(()=>!this.opened),V(void 0));_destroyed=new c;onPositionChanged=new x;_content;_modeChanged=new c;_injector=n(W);_changeDetectorRef=n(B);constructor(){this.openedChange.pipe(d(this._destroyed)).subscribe(e=>{e?(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement,this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._eventCleanups=this._ngZone.runOutsideAngular(()=>{let e=this._renderer,t=this._elementRef.nativeElement;return[e.listen(t,"keydown",r=>{r.keyCode===27&&!this.disableClose&&!me(r)&&this._ngZone.run(()=>{this.close(),r.stopPropagation(),r.preventDefault()})}),e.listen(t,"transitionrun",this._handleTransitionEvent),e.listen(t,"transitionend",this._handleTransitionEvent),e.listen(t,"transitioncancel",this._handleTransitionEvent)]}),this._animationEnd.subscribe(()=>{this.openedChange.emit(this.opened)})}_forceFocus(e,t){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let r=()=>{a(),o(),e.removeAttribute("tabindex")},a=this._renderer.listen(e,"blur",r),o=this._renderer.listen(e,"mousedown",r)})),e.focus(t)}_focusByCssSelector(e,t){let r=this._elementRef.nativeElement.querySelector(e);r&&this._forceFocus(r,t)}_takeFocus(){if(!this._focusTrap)return;let e=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":N(()=>{!this._focusTrap.focusInitialElement()&&typeof e.focus=="function"&&e.focus()},{injector:this._injector});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus);break}}_restoreFocus(e){this.autoFocus!=="dialog"&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,e):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){let e=this._doc.activeElement;return!!e&&this._elementRef.nativeElement.contains(e)}ngAfterViewInit(){this._isAttached=!0,this._position==="end"&&this._updatePositionInParent("end"),this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState())}ngOnDestroy(){this._eventCleanups.forEach(e=>e()),this._focusTrap?.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(e){return this.toggle(!0,e)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(e=!this.opened,t){e&&t&&(this._openedVia=t);let r=this._setOpen(e,!e&&this._isFocusWithinDrawer(),this._openedVia||"program");return e||(this._openedVia=null),r}_setOpen(e,t,r){return e===this.opened?Promise.resolve(e?"open":"close"):(this._opened.set(e),this._container?._transitionsEnabled?this._setIsAnimating(!0):setTimeout(()=>{this._animationStarted.next(),this._animationEnd.next()}),this._elementRef.nativeElement.classList.toggle("mat-drawer-opened",e),!e&&t&&this._restoreFocus(r),this._changeDetectorRef.markForCheck(),this._updateFocusTrapState(),new Promise(a=>{this.openedChange.pipe(re(1)).subscribe(o=>a(o?"open":"close"))}))}_setIsAnimating(e){this._elementRef.nativeElement.classList.toggle("mat-drawer-animating",e)}_getWidth(){return this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=this.opened&&!!this._container?._isShowingBackdrop())}_updatePositionInParent(e){if(!this._platform.isBrowser)return;let t=this._elementRef.nativeElement,r=t.parentNode;e==="end"?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),r.insertBefore(this._anchor,t)),r.appendChild(t)):this._anchor&&this._anchor.parentNode.insertBefore(t,this._anchor)}_handleTransitionEvent=e=>{let t=this._elementRef.nativeElement;e.target===t&&this._ngZone.run(()=>{e.type==="transitionrun"?this._animationStarted.next(e):(e.type==="transitionend"&&this._setIsAnimating(!1),this._animationEnd.next(e))})};static \u0275fac=function(t){return new(t||i)};static \u0275cmp=h({type:i,selectors:[["mat-drawer"]],viewQuery:function(t,r){if(t&1&&U(be,5),t&2){let a;_(a=f())&&(r._content=a.first)}},hostAttrs:[1,"mat-drawer"],hostVars:12,hostBindings:function(t,r){t&2&&(Z("align",null)("tabIndex",r.mode!=="side"?"-1":null),S("visibility",!r._container&&!r.opened?"hidden":null),l("mat-drawer-end",r.position==="end")("mat-drawer-over",r.mode==="over")("mat-drawer-push",r.mode==="push")("mat-drawer-side",r.mode==="side"))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:A,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(t,r){t&1&&(u(),m(0,"div",1,0),s(2),p())},dependencies:[v],encapsulation:2,changeDetection:0})}return i})(),X=(()=>{class i{_dir=n(pe,{optional:!0});_element=n(F);_ngZone=n(M);_changeDetectorRef=n(B);_animationDisabled=we();_transitionsEnabled=!1;_allDrawers;_drawers=new oe;_content;_userContent;get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(e){this._autosize=w(e)}_autosize=n(Be);get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(e){this._backdropOverride=e==null?null:w(e)}_backdropOverride=null;backdropClick=new x;_start=null;_end=null;_left=null;_right=null;_destroyed=new c;_doCheckSubject=new c;_contentMargins={left:null,right:null};_contentMarginChanges=new c;get scrollable(){return this._userContent||this._content}_injector=n(W);constructor(){let e=n(T),t=n(fe);this._dir?.change.pipe(d(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),t.change().pipe(d(this._destroyed)).subscribe(()=>this.updateContentMargins()),!this._animationDisabled&&e.isBrowser&&this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._element.nativeElement.classList.add("mat-drawer-transition"),this._transitionsEnabled=!0},200)})}ngAfterContentInit(){this._allDrawers.changes.pipe(j(this._allDrawers),d(this._destroyed)).subscribe(e=>{this._drawers.reset(e.filter(t=>!t._container||t._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(j(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(e=>{this._watchDrawerToggle(e),this._watchDrawerPosition(e),this._watchDrawerMode(e)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(te(10),d(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(e=>e.open())}close(){this._drawers.forEach(e=>e.close())}updateContentMargins(){let e=0,t=0;if(this._left&&this._left.opened){if(this._left.mode=="side")e+=this._left._getWidth();else if(this._left.mode=="push"){let r=this._left._getWidth();e+=r,t-=r}}if(this._right&&this._right.opened){if(this._right.mode=="side")t+=this._right._getWidth();else if(this._right.mode=="push"){let r=this._right._getWidth();t+=r,e-=r}}e=e||null,t=t||null,(e!==this._contentMargins.left||t!==this._contentMargins.right)&&(this._contentMargins={left:e,right:t},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(e){e._animationStarted.pipe(d(this._drawers.changes)).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),e.mode!=="side"&&e.openedChange.pipe(d(this._drawers.changes)).subscribe(()=>this._setContainerClass(e.opened))}_watchDrawerPosition(e){e.onPositionChanged.pipe(d(this._drawers.changes)).subscribe(()=>{N({read:()=>this._validateDrawers()},{injector:this._injector})})}_watchDrawerMode(e){e._modeChanged.pipe(d(ee(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(e){let t=this._element.nativeElement.classList,r="mat-drawer-container-has-open";e?t.add(r):t.remove(r)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(e=>{e.position=="end"?(this._end!=null,this._end=e):(this._start!=null,this._start=e)}),this._right=this._left=null,this._dir&&this._dir.value==="rtl"?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&this._start.mode!="over"||this._isDrawerOpen(this._end)&&this._end.mode!="over"}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(e=>e&&!e.disableClose&&this._drawerHasBackdrop(e)).forEach(e=>e._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(e){return e!=null&&e.opened}_drawerHasBackdrop(e){return this._backdropOverride==null?!!e&&e.mode!=="side":this._backdropOverride}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=h({type:i,selectors:[["mat-drawer-container"]],contentQueries:function(t,r,a){if(t&1&&q(a,R,5)(a,J,5),t&2){let o;_(o=f())&&(r._content=o.first),_(o=f())&&(r._allDrawers=o)}},viewQuery:function(t,r){if(t&1&&U(R,5),t&2){let a;_(a=f())&&(r._userContent=a.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(t,r){t&2&&l("mat-drawer-container-explicit-backdrop",r._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[g([{provide:Y,useExisting:i}])],ngContentSelectors:Ce,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(t,r){t&1&&(u(ye),C(0,ke,1,2,"div",0),s(1),s(2,1),C(3,De,2,0,"mat-drawer-content")),t&2&&(k(r.hasBackdrop?0:-1),G(3),k(r._content?-1:3))},dependencies:[R],styles:[`.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}
|
|
3
|
+
`],encapsulation:2,changeDetection:0})}return i})(),ge=(()=>{class i extends R{static \u0275fac=(()=>{let e;return function(r){return(e||(e=E(i)))(r||i)}})();static \u0275cmp=h({type:i,selectors:[["mat-sidenav-content"]],hostAttrs:[1,"mat-drawer-content","mat-sidenav-content"],features:[g([{provide:v,useExisting:i}]),y],ngContentSelectors:A,decls:1,vars:0,template:function(t,r){t&1&&(u(),s(0))},encapsulation:2,changeDetection:0})}return i})(),Te=(()=>{class i extends J{get fixedInViewport(){return this._fixedInViewport}set fixedInViewport(e){this._fixedInViewport=w(e)}_fixedInViewport=!1;get fixedTopGap(){return this._fixedTopGap}set fixedTopGap(e){this._fixedTopGap=K(e)}_fixedTopGap=0;get fixedBottomGap(){return this._fixedBottomGap}set fixedBottomGap(e){this._fixedBottomGap=K(e)}_fixedBottomGap=0;static \u0275fac=(()=>{let e;return function(r){return(e||(e=E(i)))(r||i)}})();static \u0275cmp=h({type:i,selectors:[["mat-sidenav"]],hostAttrs:[1,"mat-drawer","mat-sidenav"],hostVars:16,hostBindings:function(t,r){t&2&&(Z("tabIndex",r.mode!=="side"?"-1":null)("align",null),S("top",r.fixedInViewport?r.fixedTopGap:null,"px")("bottom",r.fixedInViewport?r.fixedBottomGap:null,"px"),l("mat-drawer-end",r.position==="end")("mat-drawer-over",r.mode==="over")("mat-drawer-push",r.mode==="push")("mat-drawer-side",r.mode==="side")("mat-sidenav-fixed",r.fixedInViewport))},inputs:{fixedInViewport:"fixedInViewport",fixedTopGap:"fixedTopGap",fixedBottomGap:"fixedBottomGap"},exportAs:["matSidenav"],features:[g([{provide:J,useExisting:i}]),y],ngContentSelectors:A,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(t,r){t&1&&(u(),m(0,"div",1,0),s(2),p())},dependencies:[v],encapsulation:2,changeDetection:0})}return i})(),Xe=(()=>{class i extends X{_allDrawers=void 0;_content=void 0;static \u0275fac=(()=>{let e;return function(r){return(e||(e=E(i)))(r||i)}})();static \u0275cmp=h({type:i,selectors:[["mat-sidenav-container"]],contentQueries:function(t,r,a){if(t&1&&q(a,ge,5)(a,Te,5),t&2){let o;_(o=f())&&(r._content=o.first),_(o=f())&&(r._allDrawers=o)}},hostAttrs:[1,"mat-drawer-container","mat-sidenav-container"],hostVars:2,hostBindings:function(t,r){t&2&&l("mat-drawer-container-explicit-backdrop",r._backdropOverride)},exportAs:["matSidenavContainer"],features:[g([{provide:Y,useExisting:i},{provide:X,useExisting:i}]),y],ngContentSelectors:Me,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(t,r){t&1&&(u(xe),C(0,Ee,1,2,"div",0),s(1),s(2,1),C(3,Fe,2,0,"mat-sidenav-content")),t&2&&(k(r.hasBackdrop?0:-1),G(3),k(r._content?-1:3))},dependencies:[ge],styles:[Se],encapsulation:2,changeDetection:0})}return i})(),Ye=(()=>{class i{static \u0275fac=function(t){return new(t||i)};static \u0275mod=de({type:i});static \u0275inj=ie({imports:[$,ue,$]})}return i})();export{R as a,J as b,X as c,ge as d,Te as e,Xe as f,Ye as g};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{d as _n,e as bn,f as yn,g as xn}from"./chunk-ZAM3WGZM.js";import{a as de}from"./chunk-AJOXSD6I.js";import{i as We}from"./chunk-53STPEYQ.js";import{a as Gt,b as Ut,e as Xt,f as Zt,i as en,j as tn,m as fn,n as gn}from"./chunk-AK6F2DC7.js";import{d as Bt,f as we,h as Ht,i as zt,j as qt,l as Kt,m as $t,p as Yt,s as Wt,v as Jt}from"./chunk-IXD43YQI.js";import{a as le,b as Qt}from"./chunk-WPC6XC7P.js";import{C as hn,D as Ye,b as nn,c as Ke,g as $e,h as on,j as an,l as ke,m as rn,o as sn,r as ln,s as dn,u as cn,v as mn,w as pn,x as un}from"./chunk-XJUBZLY2.js";import{A as Vt,E as He,K as Ie,M as De,N as ze,O as qe,P as Se,a as Nt,b as jt,h as Me,i as Le,n as Lt,t as X,u as Ve,w as Be}from"./chunk-B2QA6UZX.js";import{$a as xe,$b as z,A as ee,Ab as ot,B as Q,Bb as D,Cb as Ne,Db as _,Eb as ve,F as gt,Fb as c,Fc as Rt,G as Te,Gb as j,Hb as M,Ib as U,J as _t,Jb as re,Ka as r,Kb as S,Lb as k,Ma as vt,Na as be,Pa as Fe,Pb as Ce,Qb as Y,R as G,Ra as Ct,Rb as E,S as fe,Sa as ye,Sb as se,T as bt,Tb as u,Ub as C,Vb as je,Wa as y,Wb as St,Xa as oe,Ya as T,_ as te,_b as kt,a as J,aa as L,ab as ae,ac as Et,b as ue,bb as Mt,bc as at,ca as s,e as $,ga as x,h as F,ha as v,hc as Tt,ia as Pe,ib as wt,jb as b,jc as Pt,k as ft,ka as ge,kc as B,la as _e,lb as f,m as he,ma as ne,mb as g,mc as Ot,nb as It,nc as At,oa as h,ob as Re,oc as W,pa as Oe,pb as w,qb as I,rb as p,sb as l,sc as q,ta as R,tb as d,tc as A,ua as yt,ub as P,uc as Ft,va as ie,vb as O,wa as xt,wb as N,xb as Dt,ya as H,za as Ae}from"./chunk-3JGMGRXW.js";var zn=[[["","dsDrawerSide",""]],[["","dsDrawerContent",""]]],qn=["[dsDrawerSide]","[dsDrawerContent]"],vn=class n{breakpointObserver=s(Lt);destroyRef=s(ne);open=!0;drawerWidth="280px";mobileBreakpoint=768;openChange=new h;isMobile=R(!1);drawerMode=B(()=>this.isMobile()?"over":"side");ngOnInit(){this.breakpointObserver.observe([`(max-width: ${this.mobileBreakpoint-1}px)`]).pipe(de(this.destroyRef)).subscribe(o=>this.isMobile.set(o.matches))}onOpenedChange(o){this.openChange.emit(o)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-drawer"]],inputs:{open:"open",drawerWidth:"drawerWidth",mobileBreakpoint:"mobileBreakpoint"},outputs:{openChange:"openChange"},ngContentSelectors:qn,decls:5,vars:6,consts:[[1,"ds-drawer",2,"height","100%"],[1,"ds-drawer__sidenav",3,"openedChange","opened","mode"],[1,"ds-drawer__content"]],template:function(e,t){e&1&&(j(zn),l(0,"mat-sidenav-container",0)(1,"mat-sidenav",1),_("openedChange",function(a){return t.onOpenedChange(a)}),M(2),d(),l(3,"mat-sidenav-content",2),M(4,1),d()()),e&2&&(r(),Y("width",t.drawerWidth),E("ds-drawer__sidenav--overlay",t.isMobile()),p("opened",t.open)("mode",t.drawerMode()))},dependencies:[xn,bn,yn,_n],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0}.ds-drawer[_ngcontent-%COMP%]{width:100%;flex:1;min-height:0;--mat-sidenav-container-background-color: transparent;--mat-sidenav-container-divider-color: var(--color-border, rgba(0, 0, 0, .1));--mat-sidenav-scrim-color: rgba(0, 0, 0, .2)}.ds-drawer.mat-drawer-container[_ngcontent-%COMP%]{flex:1;min-height:0}.ds-drawer__sidenav[_ngcontent-%COMP%]{background:var(--glass-bg, rgba(255, 255, 255, .92));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));border-right:1px solid var(--color-border, rgba(0, 0, 0, .1));box-shadow:none;--mat-sidenav-container-shape: 0;border-radius:0}.ds-drawer__sidenav--overlay[_ngcontent-%COMP%]{background:var(--color-bg, #ffffff);backdrop-filter:none;-webkit-backdrop-filter:none}.ds-drawer__content[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}"],changeDetection:0})};var Je=class n{icon;title="";disabled=!1;variant="default";action=new h;onClick(){this.disabled||this.action.emit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-icon-button"]],inputs:{icon:"icon",title:"title",disabled:"disabled",variant:"variant"},outputs:{action:"action"},decls:3,vars:5,consts:[["mat-icon-button","","type","button",3,"click","disabled","title"]],template:function(e,t){e&1&&(l(0,"button",0),_("click",function(){return t.onClick()}),l(1,"mat-icon"),u(2),d()()),e&2&&(se("icon-button variant-"+t.variant),p("disabled",t.disabled)("title",t.title),r(2),C(t.icon))},dependencies:[qe,le],styles:['@charset "UTF-8";.icon-button[_ngcontent-%COMP%]{transition:color .2s ease,background .2s ease,transform .12s ease,opacity .2s ease}.icon-button[_ngcontent-%COMP%]:hover:not(:disabled){transform:scale(1.1)}.icon-button[_ngcontent-%COMP%]:active:not(:disabled){transform:scale(1.15)}.icon-button[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.icon-button.variant-default[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73)}.icon-button.variant-default[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-primary, #007aff)}.icon-button.variant-primary[_ngcontent-%COMP%]:hover:not(:disabled), .icon-button.variant-danger[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--color-text-inverse, #ffffff);box-shadow:0 4px 14px var(--icon-button-shadow-color);background:var(--icon-button-accent-color)}.icon-button.variant-primary[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-primary, #007aff);--icon-button-shadow-color: rgba(0, 122, 255, .3);color:var(--color-primary, #007aff)}.icon-button.variant-danger[_ngcontent-%COMP%]{--icon-button-accent-color: var(--color-error, #ff3b30);--icon-button-shadow-color: rgba(255, 59, 48, .3);color:var(--color-error, #ff3b30)}']})};var Kn=(n,o)=>o.uid;function $n(n,o){n&1&&(l(0,"span",2),u(1,"*"),d())}function Yn(n,o){if(n&1&&(l(0,"p",3),u(1),d()),n&2){let e=c();r(),C(e.description)}}function Wn(n,o){if(n&1&&P(0,"input",4),n&2){let e=c();p("type",e.htmlInputType)("id",e.inputId)("formControl",e.control()),b("required",e.required()||null)}}function Jn(n,o){if(n&1&&P(0,"input",5),n&2){let e=c();p("id",e.inputId)("formControl",e.control()),b("required",e.required()||null)}}function Qn(n,o){if(n&1&&(l(0,"div",6),P(1,"input",11),l(2,"span",12),u(3),d()()),n&2){let e=c();r(),p("id",e.inputId)("formControl",e.control()),r(2),C(e.label)}}function Gn(n,o){n&1&&(l(0,"option",13),u(1,"\u2014 none \u2014"),d())}function Un(n,o){if(n&1&&(l(0,"option",14),u(1),d()),n&2){let e=o.$implicit;p("value",e),r(),C(e)}}function Xn(n,o){if(n&1&&(l(0,"select",7),f(1,Gn,2,0,"option",13),w(2,Un,2,2,"option",14,Re),d()),n&2){let e=c();p("id",e.inputId)("formControl",e.control()),b("required",e.required()||null),r(),g(e.required()?-1:1),r(),I(e.enumOptions)}}function Zn(n,o){if(n&1){let e=D();l(0,"div",15),P(1,"input",17),l(2,"button",18),_("click",function(){let i=x(e).$index,a=c(2);return v(a.removeScalarItem(i))}),u(3," \xD7 "),d()()}if(n&2){let e=o.$index,t=c(2);r(),p("type",t.itemInputType)("formControl",t.getScalarItemControl(e)),b("aria-label",t.label+" item "+(e+1)),r(),b("aria-label","Remove "+t.label+" item "+(e+1))}}function ei(n,o){if(n&1){let e=D();l(0,"div",8),w(1,Zn,4,4,"div",15,It),l(3,"button",16),_("click",function(){x(e);let i=c();return v(i.addScalarItem())}),u(4),d()()}if(n&2){let e=c();r(),I(e.itemArray.controls),r(3),je("+ Add ",e.label)}}function ti(n,o){if(n&1){let e=D();l(0,"div",19)(1,"div",20)(2,"span",21),u(3),d(),l(4,"button",18),_("click",function(){let i=x(e).$implicit,a=c(2);return v(a.removeObjectItem(i.uid))}),u(5," \xD7 "),d()(),l(6,"ds-json-schema-form",22),_("valueChange",function(i){let a=x(e).$implicit,m=c(2);return v(m.onObjectItemChange(a.uid,i))}),d()()}if(n&2){let e=o.$implicit,t=o.$index,i=c(2);r(3),St("",(i.itemObjectSchema==null?null:i.itemObjectSchema.title)??i.label," ",t+1),r(),b("aria-label","Remove "+i.label+" item "+(t+1)),r(2),p("schema",i.itemObjectSchema)("value",e.seed)}}function ni(n,o){if(n&1){let e=D();l(0,"div",8),w(1,ti,7,5,"div",19,Kn),l(3,"button",16),_("click",function(){x(e);let i=c();return v(i.addObjectItem())}),u(4),d()()}if(n&2){let e=c();r(),I(e.objectItems()),r(3),je("+ Add ",e.label)}}function ii(n,o){if(n&1){let e=D();l(0,"div",9)(1,"ds-json-schema-form",22),_("valueChange",function(i){x(e);let a=c();return v(a.onNestedValueChange(i))}),d()()}if(n&2){let e=c();r(),p("schema",e.fieldSchema())("value",e.nestedInitialValue())}}function oi(n,o){if(n&1&&P(0,"textarea",10),n&2){let e=c();p("id",e.inputId)("formControl",e.control()),b("required",e.required()||null)}}var ai=0;function Cn(n){return{uid:ai++,seed:n,value:n}}var Qe=class n{fieldKey=W.required();fieldSchema=W.required();control=W.required();required=W(!1);itemArray=new ln([]);objectItems=R([]);nestedInitialValue=R(null);ngOnInit(){if(this.fieldType==="array-scalar")this.initScalarArray();else if(this.fieldType==="array-object")this.initObjectArray();else if(this.fieldType==="nested-object"){let o=this.control().value;this.nestedInitialValue.set(o&&typeof o=="object"&&!Array.isArray(o)?o:null)}}initScalarArray(){let o=this.control().value;(Array.isArray(o)?o:[]).forEach(t=>this.itemArray.push(new ke(t))),this.itemArray.valueChanges.subscribe(t=>{this.control().setValue(t,{emitEvent:!0})})}addScalarItem(){this.itemArray.push(new ke(null))}removeScalarItem(o){this.itemArray.removeAt(o)}getScalarItemControl(o){return this.itemArray.at(o)}get itemInputType(){let o=this.fieldSchema().items;if(!o)return"text";let e=Array.isArray(o.type)?o.type[0]:o.type;return e==="number"||e==="integer"?"number":"text"}initObjectArray(){let o=this.control().value,e=Array.isArray(o)?o:[];this.objectItems.set(e.map(t=>Cn(J({},t))))}addObjectItem(){this.objectItems.update(o=>[...o,Cn(null)]),this.syncObjectArrayToControl()}removeObjectItem(o){this.objectItems.update(e=>e.filter(t=>t.uid!==o)),this.syncObjectArrayToControl()}onObjectItemChange(o,e){this.objectItems.update(t=>t.map(i=>i.uid===o?ue(J({},i),{value:e}):i)),this.syncObjectArrayToControl()}get itemObjectSchema(){return this.fieldSchema().items??null}syncObjectArrayToControl(){this.control().setValue(this.objectItems().map(o=>o.value),{emitEvent:!0})}get label(){return this.fieldSchema().title??this.fieldKey()}get description(){return this.fieldSchema().description}get fieldType(){let o=this.fieldSchema();if(o.enum?.length)return"enum";switch(Array.isArray(o.type)?o.type[0]:o.type){case"number":case"integer":return"number";case"boolean":return"boolean";case"array":{let t=o.items;return(t?Array.isArray(t.type)?t.type[0]:t.type:void 0)==="object"&&t?.properties?"array-object":"array-scalar"}case"object":return o.properties?"nested-object":"textarea";default:return"text"}}get htmlInputType(){switch(this.fieldSchema().format){case"password":return"password";case"email":return"email";case"uri":case"url":return"url";case"date":return"date";case"date-time":return"datetime-local";default:return"text"}}get enumOptions(){return this.fieldSchema().enum??[]}get inputId(){return`ds-field-${this.fieldKey()}`}onNestedValueChange(o){let e=this.control().value;JSON.stringify(e)!==JSON.stringify(o)&&this.control().setValue(o,{emitEvent:!0})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-json-schema-field"]],inputs:{fieldKey:[1,"fieldKey"],fieldSchema:[1,"fieldSchema"],control:[1,"control"],required:[1,"required"]},decls:13,vars:5,consts:[[1,"ds-field"],[1,"ds-field__label",3,"for"],["aria-hidden","true",1,"ds-field__required"],[1,"ds-field__description"],[1,"ds-field__input",3,"type","id","formControl"],["type","number",1,"ds-field__input",3,"id","formControl"],[1,"ds-field__checkbox-row"],[1,"ds-field__select",3,"id","formControl"],[1,"ds-field__array"],[1,"ds-field__nested"],["rows","4","placeholder","JSON",1,"ds-field__textarea",3,"id","formControl"],["type","checkbox",1,"ds-field__checkbox",3,"id","formControl"],[1,"ds-field__checkbox-label"],["value",""],[3,"value"],[1,"ds-field__array-row"],["type","button",1,"ds-field__array-add",3,"click"],[1,"ds-field__input","ds-field__input--array-item",3,"type","formControl"],["type","button",1,"ds-field__array-remove",3,"click"],[1,"ds-field__array-object-card"],[1,"ds-field__array-object-header"],[1,"ds-field__array-object-title"],[3,"valueChange","schema","value"]],template:function(e,t){if(e&1&&(l(0,"div",0)(1,"label",1),u(2),f(3,$n,2,0,"span",2),d(),f(4,Yn,2,1,"p",3),f(5,Wn,1,4,"input",4)(6,Jn,1,3,"input",5)(7,Qn,4,3,"div",6)(8,Xn,4,4,"select",7)(9,ei,5,1,"div",8)(10,ni,5,1,"div",8)(11,ii,2,2,"div",9)(12,oi,1,3,"textarea",10),d()),e&2){let i;r(),p("for",t.inputId),r(),je(" ",t.label," "),r(),g(t.required()?3:-1),r(),g(t.description?4:-1),r(),g((i=t.fieldType)==="text"?5:i==="number"?6:i==="boolean"?7:i==="enum"?8:i==="array-scalar"?9:i==="array-object"?10:i==="nested-object"?11:i==="textarea"?12:-1)}},dependencies:()=>[Ye,pn,un,Ke,sn,nn,mn,$e,dn,Ge],styles:[".ds-field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.ds-field__label[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text, #1d1d1f)}.ds-field__required[_ngcontent-%COMP%]{color:var(--color-error, #d32f2f);margin-left:2px}.ds-field__description[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);margin:0}.ds-field__input[_ngcontent-%COMP%], .ds-field__select[_ngcontent-%COMP%], .ds-field__textarea[_ngcontent-%COMP%]{width:100%;padding:6px 10px;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:var(--color-bg-secondary, #f5f5f7);color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;box-sizing:border-box;transition:border-color .15s ease}.ds-field__input[_ngcontent-%COMP%]:focus, .ds-field__select[_ngcontent-%COMP%]:focus, .ds-field__textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}.ds-field__textarea[_ngcontent-%COMP%]{font-family:Menlo,Monaco,Courier New,monospace;font-size:.8125rem;resize:vertical;background:var(--color-code-bg, #f5f5f7)}.ds-field__checkbox-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.ds-field__checkbox[_ngcontent-%COMP%]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary, #007aff);flex-shrink:0}.ds-field__checkbox-label[_ngcontent-%COMP%]{font-size:.875rem;color:var(--color-text, #1d1d1f)}.ds-field__array[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px}.ds-field__array-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px}.ds-field__input--array-item[_ngcontent-%COMP%]{flex:1}.ds-field__array-remove[_ngcontent-%COMP%]{flex-shrink:0;width:28px;height:28px;padding:0;border:1px solid var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease}.ds-field__array-remove[_ngcontent-%COMP%]:hover{border-color:var(--color-error, #d32f2f);color:var(--color-error, #d32f2f)}.ds-field__array-object-card[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7);display:flex;flex-direction:column;gap:10px}.ds-field__array-object-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.ds-field__array-object-title[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6e6e73)}.ds-field__array-add[_ngcontent-%COMP%]{align-self:flex-start;padding:4px 10px;border:1px dashed var(--color-border, #d1d1d6);border-radius:6px;background:transparent;color:var(--color-primary, #007aff);font-size:.8125rem;font-family:inherit;cursor:pointer;transition:border-color .15s ease}.ds-field__array-add[_ngcontent-%COMP%]:hover{border-color:var(--color-primary, #007aff)}.ds-field__nested[_ngcontent-%COMP%]{border:1px solid var(--color-border-light, #e5e5ea);border-radius:8px;padding:12px;background:var(--color-bg-secondary, #f5f5f7)}"],changeDetection:0})};function ri(n,o){if(n&1&&P(0,"ds-json-schema-field",1),n&2){let e=o.$implicit,t=c(2);p("fieldKey",e)("fieldSchema",t.getFieldSchema(e))("control",t.getControl(e))("required",t.isRequired(e))}}function si(n,o){if(n&1&&(l(0,"div",0),w(1,ri,1,4,"ds-json-schema-field",1,Re),d()),n&2){let e=c();p("formGroup",e.formGroup),r(),I(e.fieldKeys())}}var Ge=class n{destroyRef=s(ne);schema=W(null);value=W(null);valueChange=At();formGroup=new an({});fieldKeys=B(()=>{let o=this.schema();return o?.properties?Object.keys(o.properties):[]});hasFields=B(()=>this.fieldKeys().length>0);constructor(){yt(()=>{let o=this.schema(),e=Pt(()=>this.value());this.rebuildForm(o,e)})}rebuildForm(o,e){if(Object.keys(this.formGroup.controls).forEach(t=>{this.formGroup.removeControl(t)}),!o?.properties){this.valueChange.emit(null);return}for(let[t,i]of Object.entries(o.properties)){let a=e?.[t]??i.default??null;this.formGroup.addControl(t,new ke(a))}this.formGroup.valueChanges.pipe(de(this.destroyRef)).subscribe(()=>this.emitValue()),this.emitValue()}emitValue(){if(!this.schema()?.properties){this.valueChange.emit(null);return}this.valueChange.emit(this.formGroup.value)}getFieldSchema(o){return this.schema()?.properties?.[o]??{}}isRequired(o){return this.schema()?.required?.includes(o)??!1}getControl(o){return this.formGroup.get(o)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-json-schema-form"]],inputs:{schema:[1,"schema"],value:[1,"value"]},outputs:{valueChange:"valueChange"},decls:1,vars:1,consts:[[1,"ds-json-schema-form",3,"formGroup"],[3,"fieldKey","fieldSchema","control","required"]],template:function(e,t){e&1&&f(0,si,3,1,"div",0),e&2&&g(t.hasFields()?0:-1)},dependencies:[Ye,on,cn,Qe],styles:[".ds-json-schema-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}"]})};var Ue=class n{static \u0275fac=function(e){return new(e||n)};static \u0275dir=T({type:n,selectors:[["","dsCardActions",""]]})};var di=[[["","dsCardActions",""]]],ci=["[dsCardActions]"],mi=(n,o)=>o.label;function pi(n,o){if(n&1&&(l(0,"span"),u(1),d()),n&2){let e=o.$implicit;se(kt("entity-card__badge badge-",e.variant)),r(),C(e.label)}}function ui(n,o){if(n&1&&(l(0,"div",3),w(1,pi,2,4,"span",6,mi),d()),n&2){let e=c();r(),I(e.badges)}}function hi(n,o){if(n&1&&(l(0,"span",4),u(1),d()),n&2){let e=c();p("matTooltip",e.description),r(),C(e.description)}}function fi(n,o){n&1&&(l(0,"div",5),M(1),d())}var Xe=class n{id;name;description=void 0;badges=[];selected=new h;cardActions;get hasActions(){return this.cardActions!==void 0}onClick(){this.selected.emit(this.id)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-entity-card"]],contentQueries:function(e,t,i){if(e&1&&U(i,Ue,5),e&2){let a;S(a=k())&&(t.cardActions=a.first)}},inputs:{id:"id",name:"name",description:"description",badges:"badges"},outputs:{selected:"selected"},ngContentSelectors:ci,decls:7,vars:8,consts:[["matRipple","",1,"entity-card",3,"click","keydown.enter","keydown.space"],[1,"entity-card__body"],[1,"entity-card__name"],[1,"entity-card__badges"],["matTooltipShowDelay","600",1,"entity-card__description",3,"matTooltip"],[1,"entity-card__actions"],[3,"class"]],template:function(e,t){e&1&&(j(di),l(0,"div",0),_("click",function(){return!t.hasActions&&t.onClick()})("keydown.enter",function(){return!t.hasActions&&t.onClick()})("keydown.space",function(){return!t.hasActions&&t.onClick()}),l(1,"div",1)(2,"span",2),u(3),d(),f(4,ui,3,0,"div",3),f(5,hi,2,2,"span",4),d(),f(6,fi,2,0,"div",5),d()),e&2&&(E("entity-card--clickable",!t.hasActions),b("role",t.hasActions?null:"button")("tabindex",t.hasActions?null:"0"),r(3),C(t.name),r(),g(t.badges.length>0?4:-1),r(),g(t.description?5:-1),r(),g(t.hasActions?6:-1))},dependencies:[Se,De,Ut,Gt],styles:[".entity-card[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.25rem;background:var(--color-bg-secondary, rgba(255, 255, 255, .7));border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:12px;overflow:hidden;position:relative;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease}.entity-card--clickable[_ngcontent-%COMP%]{cursor:pointer}.entity-card--clickable[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff);box-shadow:0 2px 12px var(--color-shadow, rgba(0, 0, 0, .08));transform:translateY(-1px)}.entity-card--clickable[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:2px}.entity-card--clickable[_ngcontent-%COMP%]:active{transform:translateY(0)}.entity-card__body[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.375rem}.entity-card__name[_ngcontent-%COMP%]{font-size:.9375rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1.3}.entity-card__description[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-card__badges[_ngcontent-%COMP%]{display:flex;gap:.25rem;flex-wrap:wrap}.entity-card__badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.0625rem .3rem;border-radius:999px;font-size:.5625rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#fff}.entity-card__badge.badge-warning[_ngcontent-%COMP%]{background:var(--color-warning, #ff9500)}.entity-card__badge.badge-info[_ngcontent-%COMP%]{background:var(--color-info, #5ac8fa)}.entity-card__badge.badge-success[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.entity-card__badge.badge-error[_ngcontent-%COMP%]{background:var(--color-error, #ff3b30)}.entity-card__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}"],changeDetection:0})};var rt=new L("CdkAccordion"),wn=(()=>{class n{_stateChanges=new F;_openCloseAllActions=new F;id=s(X).getId("cdk-accordion-");multi=!1;openAll(){this.multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(e){this._stateChanges.next(e)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:[2,"multi","multi",A]},exportAs:["cdkAccordion"],features:[z([{provide:rt,useExisting:n}]),ie]})}return n})(),In=(()=>{class n{accordion=s(rt,{optional:!0,skipSelf:!0});_changeDetectorRef=s(q);_expansionDispatcher=s(We);_openCloseAllSubscription=$.EMPTY;closed=new h;opened=new h;destroyed=new h;expandedChange=new h;id=s(X).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(e){if(this._expanded!==e){if(this._expanded=e,this.expandedChange.emit(e),e){this.opened.emit();let t=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,t)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;get disabled(){return this._disabled()}set disabled(e){this._disabled.set(e)}_disabled=R(!1);_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((e,t)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===t&&this.id!==e&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",A],disabled:[2,"disabled","disabled",A]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[z([{provide:rt,useValue:void 0}])]})}return n})(),Dn=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275mod=oe({type:n});static \u0275inj=te({})}return n})();var gi=["body"],_i=["bodyWrapper"],bi=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],yi=["mat-expansion-panel-header","*","mat-action-row"];function xi(n,o){}var vi=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],Ci=["mat-panel-title","mat-panel-description","*"];function Mi(n,o){n&1&&(O(0,"span",1),Pe(),O(1,"svg",2),Dt(2,"path",3),N()())}var st=new L("MAT_ACCORDION"),Sn=new L("MAT_EXPANSION_PANEL"),wi=(()=>{class n{_template=s(be);_expansionPanel=s(Sn,{optional:!0});constructor(){}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["ng-template","matExpansionPanelContent",""]]})}return n})(),kn=new L("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),ct=(()=>{class n extends In{_viewContainerRef=s(ye);_animationsDisabled=Ie();_document=s(_e);_ngZone=s(Oe);_elementRef=s(H);_renderer=s(Fe);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=e}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}_togglePosition;afterExpand=new h;afterCollapse=new h;_inputChanges=new F;accordion=s(st,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=s(X).getId("mat-expansion-panel-header-");constructor(){super();let e=s(kn,{optional:!0});this._expansionDispatcher=s(We),e&&(this.hideToggle=e.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(G(null),Q(()=>this.expanded&&!this._portal),Te(1)).subscribe(()=>{this._portal=new we(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let e=this._document.activeElement,t=this._body.nativeElement;return e===t||t.contains(e)}return!1}_transitionEndListener=({target:e,propertyName:t})=>{e===this._bodyWrapper?.nativeElement&&t==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let e=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this._transitionEndListener),e.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=y({type:n,selectors:[["mat-expansion-panel"]],contentQueries:function(t,i,a){if(t&1&&U(a,wi,5),t&2){let m;S(m=k())&&(i._lazyContent=m.first)}},viewQuery:function(t,i){if(t&1&&re(gi,5)(_i,5),t&2){let a;S(a=k())&&(i._body=a.first),S(a=k())&&(i._bodyWrapper=a.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(t,i){t&2&&E("mat-expanded",i.expanded)("mat-expansion-panel-spacing",i._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",A],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[z([{provide:st,useValue:void 0},{provide:Sn,useExisting:n}]),xe,ie],ngContentSelectors:yi,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(t,i){t&1&&(j(bi),M(0),l(1,"div",2,0)(3,"div",3,1)(5,"div",4),M(6,1),ae(7,xi,0,0,"ng-template",5),d(),M(8,2),d()()),t&2&&(r(),b("inert",i.expanded?null:""),r(2),p("id",i.id),b("aria-labelledby",i._headerId),r(4),p("cdkPortalOutlet",i._portal))},dependencies:[zt],styles:[`.mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel{position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:var(--mat-expansion-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}@media print{.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-content{font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}
|
|
2
|
+
`],encapsulation:2,changeDetection:0})}return n})();var mt=(()=>{class n{panel=s(ct,{host:!0});_element=s(H);_focusMonitor=s(Me);_changeDetectorRef=s(q);_parentChangeSubscription=$.EMPTY;constructor(){s(Le).load(ze);let e=this.panel,t=s(kn,{optional:!0}),i=s(new Ot("tabindex"),{optional:!0}),a=e.accordion?e.accordion._stateChanges.pipe(Q(m=>!!(m.hideToggle||m.togglePosition))):ft;this.tabIndex=parseInt(i||"")||0,this._parentChangeSubscription=ee(e.opened,e.closed,a,e._inputChanges.pipe(Q(m=>!!(m.hideToggle||m.disabled||m.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(Q(()=>e._containsFocus())).subscribe(()=>this._focusMonitor.focusVia(this._element,"program")),t&&(this.expandedHeight=t.expandedHeight,this.collapsedHeight=t.collapsedHeight)}expandedHeight;collapsedHeight;tabIndex=0;get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){let e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:Ve(e)||(e.preventDefault(),this._toggle());break;default:this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e);return}}focus(e,t){e?this._focusMonitor.focusVia(this._element,e,t):this._element.nativeElement.focus(t)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=y({type:n,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:13,hostBindings:function(t,i){t&1&&_("click",function(){return i._toggle()})("keydown",function(m){return i._keydown(m)}),t&2&&(b("id",i.panel._headerId)("tabindex",i.disabled?-1:i.tabIndex)("aria-controls",i._getPanelId())("aria-expanded",i._isExpanded())("aria-disabled",i.panel.disabled),Y("height",i._getHeaderHeight()),E("mat-expanded",i._isExpanded())("mat-expansion-toggle-indicator-after",i._getTogglePosition()==="after")("mat-expansion-toggle-indicator-before",i._getTogglePosition()==="before"))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:Ft(e)]},ngContentSelectors:Ci,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(t,i){t&1&&(j(vi),O(0,"span",0),M(1),M(2,1),M(3,2),N(),f(4,Mi,3,0,"span",1)),t&2&&(E("mat-content-hide-toggle",!i._showToggle()),r(4),g(i._showToggle()?4:-1))},styles:[`.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header{height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}}
|
|
3
|
+
`],encapsulation:2,changeDetection:0})}return n})();var En=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return n})(),Tn=(()=>{class n extends wn{_keyManager;_ownHeaders=new Ae;_headers;hideToggle=!1;displayMode="default";togglePosition="after";ngAfterContentInit(){this._headers.changes.pipe(G(this._headers)).subscribe(e=>{this._ownHeaders.reset(e.filter(t=>t.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new Be(this._ownHeaders).withWrap().withHomeAndEnd()}_handleHeaderKeydown(e){this._keyManager.onKeydown(e)}_handleHeaderFocus(e){this._keyManager.updateActiveItem(e)}ngOnDestroy(){super.ngOnDestroy(),this._keyManager?.destroy(),this._ownHeaders.destroy()}static \u0275fac=(()=>{let e;return function(i){return(e||(e=xt(n)))(i||n)}})();static \u0275dir=T({type:n,selectors:[["mat-accordion"]],contentQueries:function(t,i,a){if(t&1&&U(a,mt,5),t&2){let m;S(m=k())&&(i._headers=m)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(t,i){t&2&&E("mat-accordion-multi",i.multi)},inputs:{hideToggle:[2,"hideToggle","hideToggle",A],displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],features:[z([{provide:st,useExisting:n}]),xe]})}return n})(),Pn=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275mod=oe({type:n});static \u0275inj=te({imports:[Dn,qt,He]})}return n})();var Di=["searchInput"],Si=[[["","toolbar-start",""]],[["","toolbar-extras",""]]],ki=["[toolbar-start]","[toolbar-extras]"],An=n=>({$implicit:n}),Ei=()=>[],Ti=(n,o)=>o.groupKey,Fn=(n,o)=>o.id;function Pi(n,o){if(n&1){let e=D();l(0,"button",14),_("click",function(){x(e);let i=c();return v(i.clearSearch())}),l(1,"mat-icon"),u(2,"close"),d()()}}function Oi(n,o){if(n&1){let e=D();l(0,"button",15),_("click",function(){x(e);let i=c();return v(i.onCreateRequested())}),l(1,"mat-icon"),u(2,"add"),d()()}}function Ai(n,o){if(n&1&&(l(0,"p",11),u(1),d()),n&2){let e=c();r(),C(e.emptyMessage)}}function Fi(n,o){if(n&1&&(l(0,"mat-expansion-panel-header")(1,"mat-panel-title",18),u(2),d()()),n&2){let e=c().$implicit;r(2),C(e.groupLabel)}}function Ri(n,o){n&1&&ot(0)}function Ni(n,o){if(n&1&&ae(0,Ri,1,0,"ng-container",19),n&2){let e=o.$implicit,t=c(3),i=Ce(18);p("ngTemplateOutlet",t.itemTemplate??i)("ngTemplateOutletContext",at(2,An,e))}}function ji(n,o){if(n&1&&(l(0,"mat-expansion-panel",16),f(1,Fi,3,1,"mat-expansion-panel-header"),l(2,"div",17),w(3,Ni,1,4,"ng-container",null,Fn),d()()),n&2){let e=o.$implicit,t=c(2);p("expanded",!0),r(),g(e.groupLabel?1:-1),r(),Y("--card-min-width",t.cardMinWidth),r(),I(e.items)}}function Li(n,o){if(n&1&&(l(0,"mat-accordion",12),w(1,ji,5,4,"mat-expansion-panel",16,Ti),d()),n&2){let e=c();p("multi",!0),r(),I(e.groupedItems())}}function Vi(n,o){n&1&&ot(0)}function Bi(n,o){if(n&1&&ae(0,Vi,1,0,"ng-container",19),n&2){let e=o.$implicit,t=c(2),i=Ce(18);p("ngTemplateOutlet",t.itemTemplate??i)("ngTemplateOutletContext",at(2,An,e))}}function Hi(n,o){if(n&1&&(l(0,"div",17),w(1,Bi,1,4,"ng-container",null,Fn),d()),n&2){let e=c();Y("--card-min-width",e.cardMinWidth),r(),I(e.filteredItems())}}function zi(n,o){if(n&1){let e=D();l(0,"ds-entity-card",20),_("selected",function(i){x(e);let a=c();return v(a.onItemSelected(i))}),d()}if(n&2){let e=o.$implicit;p("id",e.id)("name",e.name)("description",e.description)("badges",e.badges??Et(4,Ei))}}var On=class n{title;items=[];searchPlaceholder="Filter\u2026";emptyMessage="No items found.";autoFocusSearch=!1;cardMinWidth="260px";contentMaxWidth="900px";showCreate=!1;itemTemplate;itemSelected=new h;createRequested=new h;searchInputRef;itemsSignal=R([]);searchQuery=R("");isSearchActive=B(()=>this.searchQuery().trim().length>0);filteredItems=B(()=>{let o=this.searchQuery().toLowerCase().trim(),e=this.itemsSignal();return o?e.filter(t=>t.name.toLowerCase().includes(o)||(t.description?.toLowerCase().includes(o)??!1)):e});groupedItems=B(()=>{let o=this.filteredItems(),e=[],t=new Map;for(let a of o){if(!a.groupKey){e.push(a);continue}t.has(a.groupKey)||t.set(a.groupKey,{groupKey:a.groupKey,groupLabel:a.groupLabel??a.groupKey,items:[]}),t.get(a.groupKey).items.push(a)}let i=[];return e.length>0&&i.push({groupKey:"",groupLabel:"",items:e}),i.push(...t.values()),i});hasGroups=B(()=>!this.isSearchActive()&&this.groupedItems().some(o=>o.groupKey!==""));ngOnChanges(o){o.items&&this.itemsSignal.set(this.items)}ngAfterViewInit(){this.autoFocusSearch&&setTimeout(()=>this.searchInputRef?.nativeElement.focus(),0)}onSearchChange(o){this.searchQuery.set(o)}clearSearch(){this.searchQuery.set(""),this.searchInputRef?.nativeElement.focus()}onItemSelected(o){this.itemSelected.emit(o)}onCreateRequested(){this.createRequested.emit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-entity-list"]],viewQuery:function(e,t){if(e&1&&re(Di,5),e&2){let i;S(i=k())&&(t.searchInputRef=i.first)}},hostVars:1,hostBindings:function(e,t){e&2&&b("title",null)},inputs:{title:"title",items:"items",searchPlaceholder:"searchPlaceholder",emptyMessage:"emptyMessage",autoFocusSearch:"autoFocusSearch",cardMinWidth:"cardMinWidth",contentMaxWidth:"contentMaxWidth",showCreate:"showCreate",itemTemplate:"itemTemplate"},outputs:{itemSelected:"itemSelected",createRequested:"createRequested"},features:[ie],ngContentSelectors:ki,decls:19,vars:8,consts:[["searchInput",""],["defaultCard",""],[1,"entity-list"],[1,"entity-list__toolbar"],[1,"entity-list__title"],["appearance","fill","subscriptSizing","dynamic",1,"entity-list__search-field"],["matPrefix",""],["matInput","","type","search","autocomplete","off",3,"ngModelChange","keydown.escape","placeholder","ngModel"],["matSuffix","","mat-icon-button","","aria-label","Clear"],["mat-icon-button","","type","button","title","Create",1,"entity-list__toolbar-btn","entity-list__toolbar-btn--primary"],[1,"entity-list__content"],[1,"entity-list__empty"],[3,"multi"],[1,"entity-list__grid",3,"--card-min-width"],["matSuffix","","mat-icon-button","","aria-label","Clear",3,"click"],["mat-icon-button","","type","button","title","Create",1,"entity-list__toolbar-btn","entity-list__toolbar-btn--primary",3,"click"],[1,"entity-list__panel",3,"expanded"],[1,"entity-list__grid"],[1,"entity-list__panel-title"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"selected","id","name","description","badges"]],template:function(e,t){e&1&&(j(Si),l(0,"div",2)(1,"div",3),M(2),l(3,"h1",4),u(4),d(),l(5,"mat-form-field",5)(6,"mat-icon",6),u(7,"search"),d(),l(8,"input",7,0),_("ngModelChange",function(a){return t.onSearchChange(a)})("keydown.escape",function(){return t.clearSearch()}),d(),f(10,Pi,3,0,"button",8),d(),M(11,1),f(12,Oi,3,0,"button",9),d(),l(13,"div",10),f(14,Ai,2,1,"p",11)(15,Li,3,1,"mat-accordion",12)(16,Hi,3,2,"div",13),d()(),ae(17,zi,1,5,"ng-template",null,1,Tt)),e&2&&(r(4),C(t.title),r(4),p("placeholder",t.searchPlaceholder)("ngModel",t.searchQuery()),r(2),g(t.isSearchActive()?10:-1),r(2),g(t.showCreate?12:-1),r(),Y("max-width",t.contentMaxWidth),r(),g(t.filteredItems().length===0?14:t.hasGroups()?15:16))},dependencies:[hn,Ke,$e,rn,Qt,le,qe,Pn,Tn,ct,mt,En,tn,en,Xt,Zt,gn,fn,Xe,Rt],styles:[".entity-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%;box-sizing:border-box}.entity-list__toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .1));height:56px;width:100%;box-sizing:border-box}.entity-list__title[_ngcontent-%COMP%]{flex:0 0 auto;margin:0;font-size:1rem;font-weight:600;color:var(--color-text, #1d1d1f);white-space:nowrap}.entity-list__search-field[_ngcontent-%COMP%]{margin-left:auto;padding-left:20px;flex:0 1 240px;min-width:80px;--mat-form-field-container-height: 36px;--mat-form-field-container-vertical-padding: 6px;font-size:.875rem;--mat-form-field-filled-with-label-container-padding-top: 0;--mdc-filled-text-field-container-color: transparent;--mdc-filled-text-field-hover-container-color: transparent;--mdc-filled-text-field-focus-container-color: transparent;--mdc-filled-text-field-active-indicator-color: transparent;--mdc-filled-text-field-hover-active-indicator-color: transparent;--mdc-filled-text-field-focus-active-indicator-color: transparent;--mdc-filled-text-field-active-indicator-height: 0}.entity-list__toolbar-btn[_ngcontent-%COMP%]{flex-shrink:0;color:var(--color-text-secondary, #6e6e73)}.entity-list__toolbar-btn[_ngcontent-%COMP%]:hover{color:var(--color-text, #1d1d1f)}.entity-list__toolbar-btn--primary[_ngcontent-%COMP%]{color:var(--color-primary, #007aff)}.entity-list__toolbar-btn--primary[_ngcontent-%COMP%]:hover{color:var(--color-primary-hover, #0051d5)}.entity-list__content[_ngcontent-%COMP%]{width:100%;max-width:900px;margin:0 auto;padding:.75rem 1rem;box-sizing:border-box}.entity-list__empty[_ngcontent-%COMP%]{margin:0;padding:2rem 0;text-align:center;color:var(--color-text-secondary, #6e6e73);font-size:.9375rem}.entity-list__panel[_ngcontent-%COMP%]{background:transparent;box-shadow:none!important}.entity-list__panel[_ngcontent-%COMP%] + .entity-list__panel[_ngcontent-%COMP%]{border-top:1px solid var(--color-border-light, rgba(40, 40, 40, .08))}.entity-list__panel-title[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary, #6e6e73)}.entity-list__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-min-width, 260px),1fr));gap:.75rem;padding:.5rem 0}"]})};var Yi=["mat-menu-item",""],Wi=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],Ji=["mat-icon, [matMenuItemIcon]","*"];function Qi(n,o){n&1&&(Pe(),l(0,"svg",2),P(1,"polygon",3),d())}var Gi=["*"];function Ui(n,o){if(n&1){let e=D();O(0,"div",0),ve("click",function(){x(e);let i=c();return v(i.closed.emit("click"))})("animationstart",function(i){x(e);let a=c();return v(a._onAnimationStart(i.animationName))})("animationend",function(i){x(e);let a=c();return v(a._onAnimationDone(i.animationName))})("animationcancel",function(i){x(e);let a=c();return v(a._onAnimationDone(i.animationName))}),O(1,"div",1),M(2),N()()}if(n&2){let e=c();se(e._classList),E("mat-menu-panel-animations-disabled",e._animationsDisabled)("mat-menu-panel-exit-animation",e._panelAnimationState==="void")("mat-menu-panel-animating",e._isAnimating()),Ne("id",e.panelId),b("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}var ut=new L("MAT_MENU_PANEL"),Ee=(()=>{class n{_elementRef=s(H);_document=s(_e);_focusMonitor=s(Me);_parentMenu=s(ut,{optional:!0});_changeDetectorRef=s(q);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new F;_focused=new F;_highlighted=!1;_triggersSubmenu=!1;constructor(){s(Le).load(ze),this._parentMenu?.addItem?.(this)}focus(e,t){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,t):this._getHostElement().focus(t),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){let e=this._elementRef.nativeElement.cloneNode(!0),t=e.querySelectorAll("mat-icon, .material-icons");for(let i=0;i<t.length;i++)t[i].remove();return e.textContent?.trim()||""}_setHighlighted(e){this._highlighted=e,this._changeDetectorRef.markForCheck()}_setTriggersSubmenu(e){this._triggersSubmenu=e,this._changeDetectorRef.markForCheck()}_hasFocus(){return this._document&&this._document.activeElement===this._getHostElement()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=y({type:n,selectors:[["","mat-menu-item",""]],hostAttrs:[1,"mat-mdc-menu-item","mat-focus-indicator"],hostVars:8,hostBindings:function(t,i){t&1&&_("click",function(m){return i._checkDisabled(m)})("mouseenter",function(){return i._handleMouseEnter()}),t&2&&(b("role",i.role)("tabindex",i._getTabIndex())("aria-disabled",i.disabled)("disabled",i.disabled||null),E("mat-mdc-menu-item-highlighted",i._highlighted)("mat-mdc-menu-item-submenu-trigger",i._triggersSubmenu))},inputs:{role:"role",disabled:[2,"disabled","disabled",A],disableRipple:[2,"disableRipple","disableRipple",A]},exportAs:["matMenuItem"],attrs:Yi,ngContentSelectors:Ji,decls:5,vars:3,consts:[[1,"mat-mdc-menu-item-text"],["matRipple","",1,"mat-mdc-menu-ripple",3,"matRippleDisabled","matRippleTrigger"],["viewBox","0 0 5 10","focusable","false","aria-hidden","true",1,"mat-mdc-menu-submenu-icon"],["points","0,0 5,5 0,10"]],template:function(t,i){t&1&&(j(Wi),M(0),l(1,"span",0),M(2,1),d(),P(3,"div",1),f(4,Qi,2,0,":svg:svg",2)),t&2&&(r(3),p("matRippleDisabled",i.disableRipple||i.disabled)("matRippleTrigger",i._getHostElement()),r(),g(i._triggersSubmenu?4:-1))},dependencies:[De],encapsulation:2,changeDetection:0})}return n})();var jn=new L("MatMenuContent"),Nr=(()=>{class n{_template=s(be);_appRef=s(wt);_injector=s(ge);_viewContainerRef=s(ye);_document=s(_e);_changeDetectorRef=s(q);_portal;_outlet;_attached=new F;constructor(){}attach(e={}){this._portal||(this._portal=new we(this._template,this._viewContainerRef)),this.detach(),this._outlet||(this._outlet=new Ht(this._document.createElement("div"),this._appRef,this._injector));let t=this._template.elementRef.nativeElement;t.parentNode.insertBefore(this._outlet.outletElement,t),this._changeDetectorRef.markForCheck(),this._portal.attach(this._outlet,e),this._attached.next()}detach(){this._portal?.isAttached&&this._portal.detach()}ngOnDestroy(){this.detach(),this._outlet?.dispose()}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["ng-template","matMenuContent",""]],features:[z([{provide:jn,useExisting:n}])]})}return n})(),Xi=new L("mat-menu-default-options",{providedIn:"root",factory:()=>({overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"})}),pt="_mat-menu-enter",Ze="_mat-menu-exit",me=(()=>{class n{_elementRef=s(H);_changeDetectorRef=s(q);_injector=s(ge);_keyManager;_xPosition;_yPosition;_firstItemFocusRef;_exitFallbackTimeout;_animationsDisabled=Ie();_allItems;_directDescendantItems=new Ae;_classList={};_panelAnimationState="void";_animationDone=new F;_isAnimating=R(!1);parentMenu;direction;overlayPanelClass;backdropClass;ariaLabel;ariaLabelledby;ariaDescribedby;get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}templateRef;items;lazyContent;overlapTrigger=!1;hasBackdrop;set panelClass(e){let t=this._previousPanelClass,i=J({},this._classList);t&&t.length&&t.split(" ").forEach(a=>{i[a]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(a=>{i[a]=!0}),this._elementRef.nativeElement.className=""),this._classList=i}_previousPanelClass;get classList(){return this.panelClass}set classList(e){this.panelClass=e}closed=new h;close=this.closed;panelId=s(X).getId("mat-menu-panel-");constructor(){let e=s(Xi);this.overlayPanelClass=e.overlayPanelClass||"",this._xPosition=e.xPosition,this._yPosition=e.yPosition,this.backdropClass=e.backdropClass,this.overlapTrigger=e.overlapTrigger,this.hasBackdrop=e.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new Be(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(G(this._directDescendantItems),fe(e=>ee(...e.map(t=>t._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{let t=this._keyManager;if(this._panelAnimationState==="enter"&&t.activeItem?._hasFocus()){let i=e.toArray(),a=Math.max(0,Math.min(i.length-1,t.activeItemIndex||0));i[a]&&!i[a].disabled?t.setActiveItem(a):t.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusRef?.destroy(),clearTimeout(this._exitFallbackTimeout)}_hovered(){return this._directDescendantItems.changes.pipe(G(this._directDescendantItems),fe(t=>ee(...t.map(i=>i._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){let t=e.keyCode,i=this._keyManager;switch(t){case 27:Ve(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&this.direction==="ltr"&&this.closed.emit("keydown");break;case 39:this.parentMenu&&this.direction==="rtl"&&this.closed.emit("keydown");break;default:(t===38||t===40)&&i.setFocusOrigin("keyboard"),i.onKeydown(e);return}}focusFirstItem(e="program"){this._firstItemFocusRef?.destroy(),this._firstItemFocusRef=vt(()=>{let t=this._resolvePanel();if(!t||!t.contains(document.activeElement)){let i=this._keyManager;i.setFocusOrigin(e).setFirstItemActive(),!i.activeItem&&t&&t.focus()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){}setPositionClasses(e=this.xPosition,t=this.yPosition){this._classList=ue(J({},this._classList),{"mat-menu-before":e==="before","mat-menu-after":e==="after","mat-menu-above":t==="above","mat-menu-below":t==="below"}),this._changeDetectorRef.markForCheck()}_onAnimationDone(e){let t=e===Ze;(t||e===pt)&&(t&&(clearTimeout(this._exitFallbackTimeout),this._exitFallbackTimeout=void 0),this._animationDone.next(t?"void":"enter"),this._isAnimating.set(!1))}_onAnimationStart(e){(e===pt||e===Ze)&&this._isAnimating.set(!0)}_setIsOpen(e){if(this._panelAnimationState=e?"enter":"void",e){if(this._keyManager.activeItemIndex===0){let t=this._resolvePanel();t&&(t.scrollTop=0)}}else this._animationsDisabled||(this._exitFallbackTimeout=setTimeout(()=>this._onAnimationDone(Ze),200));this._animationsDisabled&&setTimeout(()=>{this._onAnimationDone(e?pt:Ze)}),this._changeDetectorRef.markForCheck()}_updateDirectDescendants(){this._allItems.changes.pipe(G(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(t=>t._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}_resolvePanel(){let e=null;return this._directDescendantItems.length&&(e=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),e}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=y({type:n,selectors:[["mat-menu"]],contentQueries:function(t,i,a){if(t&1&&U(a,jn,5)(a,Ee,5)(a,Ee,4),t&2){let m;S(m=k())&&(i.lazyContent=m.first),S(m=k())&&(i._allItems=m),S(m=k())&&(i.items=m)}},viewQuery:function(t,i){if(t&1&&re(be,5),t&2){let a;S(a=k())&&(i.templateRef=a.first)}},hostVars:3,hostBindings:function(t,i){t&2&&b("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",A],hasBackdrop:[2,"hasBackdrop","hasBackdrop",e=>e==null?null:A(e)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],features:[z([{provide:ut,useExisting:n}])],ngContentSelectors:Gi,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel",3,"click","animationstart","animationend","animationcancel","id"],[1,"mat-mdc-menu-content"]],template:function(t,i){t&1&&(j(),Mt(0,Ui,3,12,"ng-template"))},styles:[`mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{border-top-color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: active){.mat-mdc-menu-submenu-icon{fill:CanvasText}}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}
|
|
4
|
+
`],encapsulation:2,changeDetection:0})}return n})(),Zi=new L("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{let n=s(ge);return()=>Kt(n)}});var ce=new WeakMap,eo=(()=>{class n{_canHaveBackdrop;_element=s(H);_viewContainerRef=s(ye);_menuItemInstance=s(Ee,{optional:!0,self:!0});_dir=s(Vt,{optional:!0});_focusMonitor=s(Me);_ngZone=s(Oe);_injector=s(ge);_scrollStrategy=s(Zi);_changeDetectorRef=s(q);_animationsDisabled=Ie();_portal;_overlayRef=null;_menuOpen=!1;_closingActionsSubscription=$.EMPTY;_menuCloseSubscription=$.EMPTY;_pendingRemoval;_parentMaterialMenu;_parentInnerPadding;_openedBy=void 0;get _menu(){return this._menuInternal}set _menu(e){e!==this._menuInternal&&(this._menuInternal=e,this._menuCloseSubscription.unsubscribe(),e&&(this._parentMaterialMenu,this._menuCloseSubscription=e.close.subscribe(t=>{this._destroyMenu(t),(t==="click"||t==="tab")&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(t)})),this._menuItemInstance?._setTriggersSubmenu(this._triggersSubmenu()))}_menuInternal=null;constructor(e){this._canHaveBackdrop=e;let t=s(ut,{optional:!0});this._parentMaterialMenu=t instanceof me?t:void 0}ngOnDestroy(){this._menu&&this._ownsMenu(this._menu)&&ce.delete(this._menu),this._pendingRemoval?.unsubscribe(),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null)}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this._menu)}_closeMenu(){this._menu?.close.emit()}_openMenu(e){if(this._triggerIsAriaDisabled())return;let t=this._menu;if(this._menuOpen||!t)return;this._pendingRemoval?.unsubscribe();let i=ce.get(t);ce.set(t,this),i&&i!==this&&i._closeMenu();let a=this._createOverlay(t),m=a.getConfig(),K=m.positionStrategy;this._setPosition(t,K),this._canHaveBackdrop?m.hasBackdrop=t.hasBackdrop==null?!this._triggersSubmenu():t.hasBackdrop:m.hasBackdrop=t.hasBackdrop??!1,a.hasAttached()||(a.attach(this._getPortal(t)),t.lazyContent?.attach(this.menuData)),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this._closeMenu()),t.parentMenu=this._triggersSubmenu()?this._parentMaterialMenu:void 0,t.direction=this.dir,e&&t.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0),t instanceof me&&(t._setIsOpen(!0),t._directDescendantItems.changes.pipe(bt(t.close)).subscribe(()=>{K.withLockedPosition(!1).reapplyLastPosition(),K.withLockedPosition(!0)}))}focus(e,t){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,t):this._element.nativeElement.focus(t)}_destroyMenu(e){let t=this._overlayRef,i=this._menu;!t||!this.menuOpen||(this._closingActionsSubscription.unsubscribe(),this._pendingRemoval?.unsubscribe(),i instanceof me&&this._ownsMenu(i)?(this._pendingRemoval=i._animationDone.pipe(Te(1)).subscribe(()=>{t.detach(),ce.has(i)||i.lazyContent?.detach()}),i._setIsOpen(!1)):(t.detach(),i?.lazyContent?.detach()),i&&this._ownsMenu(i)&&ce.delete(i),this.restoreFocus&&(e==="keydown"||!this._openedBy||!this._triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,this._setIsMenuOpen(!1))}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this._triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){let t=this._getOverlayConfig(e);this._subscribeToPositions(e,t.positionStrategy),this._overlayRef=Wt(this._injector,t),this._overlayRef.keydownEvents().subscribe(i=>{this._menu instanceof me&&this._menu._handleKeydown(i)})}return this._overlayRef}_getOverlayConfig(e){return new $t({positionStrategy:Yt(this._injector,this._getOverlayOrigin()).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir||"ltr",disableAnimations:this._animationsDisabled})}_subscribeToPositions(e,t){e.setPositionClasses&&t.positionChanges.subscribe(i=>{this._ngZone.run(()=>{let a=i.connectionPair.overlayX==="start"?"after":"before",m=i.connectionPair.overlayY==="top"?"below":"above";e.setPositionClasses(a,m)})})}_setPosition(e,t){let[i,a]=e.xPosition==="before"?["end","start"]:["start","end"],[m,K]=e.yPosition==="above"?["bottom","top"]:["top","bottom"],[et,tt]=[m,K],[nt,it]=[i,a],pe=0;if(this._triggersSubmenu()){if(it=i=e.xPosition==="before"?"start":"end",a=nt=i==="end"?"start":"end",this._parentMaterialMenu){if(this._parentInnerPadding==null){let ht=this._parentMaterialMenu.items.first;this._parentInnerPadding=ht?ht._getHostElement().offsetTop:0}pe=m==="bottom"?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(et=m==="top"?"bottom":"top",tt=K==="top"?"bottom":"top");t.withPositions([{originX:i,originY:et,overlayX:nt,overlayY:m,offsetY:pe},{originX:a,originY:et,overlayX:it,overlayY:m,offsetY:pe},{originX:i,originY:tt,overlayX:nt,overlayY:K,offsetY:-pe},{originX:a,originY:tt,overlayX:it,overlayY:K,offsetY:-pe}])}_menuClosingActions(){let e=this._getOutsideClickStream(this._overlayRef),t=this._overlayRef.detachments(),i=this._parentMaterialMenu?this._parentMaterialMenu.closed:he(),a=this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Q(m=>this._menuOpen&&m!==this._menuItemInstance)):he();return ee(e,i,a,t)}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new we(e.templateRef,this._viewContainerRef)),this._portal}_ownsMenu(e){return ce.get(e)===this}_triggerIsAriaDisabled(){return A(this._element.nativeElement.getAttribute("aria-disabled"))}static \u0275fac=function(t){Ct()};static \u0275dir=T({type:n})}return n})(),Ln=(()=>{class n extends eo{_cleanupTouchstart;_hoverSubscription=$.EMPTY;get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){this._menu=e}menuData;restoreFocus=!0;menuOpened=new h;onMenuOpen=this.menuOpened;menuClosed=new h;onMenuClose=this.menuClosed;constructor(){super(!0);let e=s(Fe);this._cleanupTouchstart=e.listen(this._element.nativeElement,"touchstart",t=>{jt(t)||(this._openedBy="touch")},{passive:!0})}triggersSubmenu(){return super._triggersSubmenu()}toggleMenu(){return this.menuOpen?this.closeMenu():this.openMenu()}openMenu(){this._openMenu(!0)}closeMenu(){this._closeMenu()}updatePosition(){this._overlayRef?.updatePosition()}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTouchstart(),this._hoverSubscription.unsubscribe()}_getOverlayOrigin(){return this._element}_getOutsideClickStream(e){return e.backdropClick()}_handleMousedown(e){Nt(e)||(this._openedBy=e.button===0?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){let t=e.keyCode;(t===13||t===32)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(t===39&&this.dir==="ltr"||t===37&&this.dir==="rtl")&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){this.triggersSubmenu()&&this._parentMaterialMenu&&(this._hoverSubscription=this._parentMaterialMenu._hovered().subscribe(e=>{e===this._menuItemInstance&&!e.disabled&&this._parentMaterialMenu?._panelAnimationState!=="void"&&(this._openedBy="mouse",this._openMenu(!1))}))}static \u0275fac=function(t){return new(t||n)};static \u0275dir=T({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(t,i){t&1&&_("click",function(m){return i._handleClick(m)})("mousedown",function(m){return i._handleMousedown(m)})("keydown",function(m){return i._handleKeydown(m)}),t&2&&b("aria-haspopup",i.menu?"menu":null)("aria-expanded",i.menuOpen)("aria-controls",i.menuOpen?i.menu==null?null:i.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],features:[xe]})}return n})();var Vn=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275mod=oe({type:n});static \u0275inj=te({imports:[Se,Jt,He,Bt]})}return n})();var no=(n,o)=>o.id;function io(n,o){if(n&1&&(O(0,"span",6),u(1),N()),n&2){let e=c().$implicit;r(),C(e.description)}}function oo(n,o){if(n&1){let e=D();O(0,"div",4),ve("mousedown",function(){let i=x(e).$implicit,a=c(2);return v(a.selectItem(i))})("touchstart",function(){let i=x(e).$implicit,a=c(2);return v(a.selectItem(i))}),O(1,"span",5),u(2),N(),f(3,io,2,1,"span",6),N()}if(n&2){let e=o.$implicit,t=o.$index,i=c(2);E("selected",t===i.selectedIndex),r(2),C(e.name),r(),g(e.description?3:-1)}}function ao(n,o){if(n&1&&(O(0,"div",2),w(1,oo,4,4,"div",3,no),N()),n&2){let e=c();r(),I(e.items)}}var Bn=class n{dataSource;placeholder="";disabled=!1;itemSelected=new h;elementRef=s(H);destroyRef=s(ne);query$=new F;query="";items=[];showDropdown=!1;selectedIndex=-1;ngOnInit(){this.query$.pipe(gt(200),_t(),fe(o=>{let e=o.trim();return e?this.dataSource.search(e):he([])}),de(this.destroyRef)).subscribe(o=>{this.items=o,this.selectedIndex=-1,this.showDropdown=o.length>0})}onInput(o){this.query=o.target.value,this.query$.next(this.query)}onFocus(){this.items.length>0&&(this.showDropdown=!0)}onBlur(){setTimeout(()=>this.closeDropdown(),150)}onKeydown(o){if(this.showDropdown)switch(o.key){case"ArrowDown":o.preventDefault(),this.selectedIndex=Math.min(this.selectedIndex+1,this.items.length-1),this.scrollSelectedIntoView();break;case"ArrowUp":o.preventDefault(),this.selectedIndex=Math.max(this.selectedIndex-1,0),this.scrollSelectedIntoView();break;case"Tab":o.preventDefault(),o.shiftKey?this.selectedIndex<=0?this.closeDropdown():(this.selectedIndex--,this.scrollSelectedIntoView()):this.selectedIndex>=this.items.length-1?this.closeDropdown():(this.selectedIndex++,this.scrollSelectedIntoView());break;case"Enter":o.preventDefault(),this.selectedIndex>=0&&this.selectedIndex<this.items.length&&this.selectItem(this.items[this.selectedIndex]);break;case"Escape":o.preventDefault(),this.closeDropdown();break}}selectItem(o){this.itemSelected.emit(o),this.query="",this.closeDropdown()}closeDropdown(){this.showDropdown=!1,this.selectedIndex=-1,this.items=[]}scrollSelectedIntoView(){setTimeout(()=>{this.elementRef.nativeElement.querySelector(".autocomplete-dropdown")?.querySelector(".autocomplete-option.selected")?.scrollIntoView({block:"nearest"})})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-autocomplete-input"]],inputs:{dataSource:"dataSource",placeholder:"placeholder",disabled:"disabled"},outputs:{itemSelected:"itemSelected"},decls:3,vars:4,consts:[[1,"autocomplete-container"],["type","text",3,"input","keydown","focus","blur","placeholder","disabled","value"],[1,"autocomplete-dropdown"],[1,"autocomplete-option",3,"selected"],[1,"autocomplete-option",3,"mousedown","touchstart"],[1,"option-name"],[1,"option-description"]],template:function(e,t){e&1&&(O(0,"div",0)(1,"input",1),ve("input",function(a){return t.onInput(a)})("keydown",function(a){return t.onKeydown(a)})("focus",function(){return t.onFocus()})("blur",function(){return t.onBlur()}),N(),f(2,ao,3,0,"div",2),N()),e&2&&(r(),Ne("placeholder",t.placeholder)("disabled",t.disabled)("value",t.query),r(),g(t.showDropdown&&t.items.length>0?2:-1))},styles:['@charset "UTF-8";.autocomplete-container[_ngcontent-%COMP%]{position:relative;display:block;width:100%}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;font-size:14px;line-height:1.5;color:var(--color-text, #1d1d1f);background:var(--glass-bg);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff);box-shadow:0 0 0 3px #007aff26}.autocomplete-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.autocomplete-dropdown[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:var(--glass-bg);border:1px solid var(--color-border, #e0e0e0);border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;max-height:240px;overflow-y:auto;overflow-x:hidden}.autocomplete-option[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;padding:10px 12px;cursor:pointer;transition:background .1s ease}.autocomplete-option[_ngcontent-%COMP%]:first-child{border-radius:8px 8px 0 0}.autocomplete-option[_ngcontent-%COMP%]:last-child{border-radius:0 0 8px 8px}.autocomplete-option[_ngcontent-%COMP%]:only-child{border-radius:8px}.autocomplete-option[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, #f5f5f5)}.autocomplete-option.selected[_ngcontent-%COMP%]{background:var(--color-bg-hover, #f5f5f5);outline:2px solid var(--color-primary, #007aff);outline-offset:-2px}.autocomplete-option[_ngcontent-%COMP%] .option-name[_ngcontent-%COMP%]{font-size:14px;font-weight:400;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-option[_ngcontent-%COMP%] .option-description[_ngcontent-%COMP%]{font-size:12px;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}']})};var ro=(n,o)=>o.key;function so(n,o){if(n&1&&(l(0,"mat-icon"),u(1),d()),n&2){let e=c().$implicit;r(),C(e.icon)}}function lo(n,o){if(n&1){let e=D();l(0,"button",3),_("click",function(){let i=x(e).$implicit,a=c();return v(a.onItemClick(i.key))}),f(1,so,2,1,"mat-icon"),l(2,"span"),u(3),d()()}if(n&2){let e=o.$implicit;p("disabled",e.disabled??!1),b("data-variant",e.variant??"default"),r(),g(e.icon?1:-1),r(2),C(e.label)}}var Hn=class n{items;itemSelected=new h;onItemClick(o){this.itemSelected.emit(o)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["ds-kebab-menu"]],inputs:{items:"items"},outputs:{itemSelected:"itemSelected"},decls:5,vars:1,consts:[["menu","matMenu"],["icon","more_vert","title","More actions",3,"matMenuTriggerFor"],["mat-menu-item","",3,"disabled"],["mat-menu-item","",3,"click","disabled"]],template:function(e,t){if(e&1&&(P(0,"ds-icon-button",1),l(1,"mat-menu",null,0),w(3,lo,4,4,"button",2,ro),d()),e&2){let i=Ce(2);p("matMenuTriggerFor",i),r(3),I(t.items)}},dependencies:[Je,le,Vn,me,Ee,Ln],styles:["[_nghost-%COMP%]{display:inline-flex;align-items:center}"],changeDetection:0})};export{vn as a,Je as b,Ge as c,Bn as d,Ue as e,Xe as f,On as g,Ee as h,Nr as i,me as j,Ln as k,Vn as l,Hn as m};
|