Files
quiz-test/main-6K3FPUHG.js
2025-12-29 22:23:30 +02:00

4 lines
86 KiB
JavaScript

import{a as rn,b as an,c as sn,d as ln}from"./chunk-37GOEORY.js";import{a as hn}from"./chunk-5WBSN65X.js";import{a as cn,b as mn,c as dn,d as pn,e as gn,f as un,g as Me}from"./chunk-YWCH6MM5.js";import{a as on}from"./chunk-L5RFXRXA.js";import{a as te,b as ne}from"./chunk-FETAVRDH.js";import{a as Kt,c as Jt,e as Xt,f as en,g as tn}from"./chunk-7YTCZJV6.js";import"./chunk-66PBOFKL.js";import"./chunk-NYYADJNO.js";import{b as jt,c as Gt}from"./chunk-R3PUHZUP.js";import"./chunk-3RK6DDJD.js";import{a as $t}from"./chunk-7XDVX5KB.js";import{a as H,b as V}from"./chunk-CTXOKINH.js";import{a as oe}from"./chunk-B4CGVF35.js";import{b as ie}from"./chunk-NIBVQDYD.js";import"./chunk-LLJSP5R2.js";import"./chunk-HMKN2VB2.js";import{a as Ut,b as Yt,c as Zt}from"./chunk-T6TXUSUP.js";import"./chunk-M5XZ5N2D.js";import{b as nn,g as xe}from"./chunk-TAS7XC6E.js";import{a as Wt}from"./chunk-3GOV5KJM.js";import{a as q}from"./chunk-TPLZKWZ7.js";import{e as Bt,f as Ht,i as Vt}from"./chunk-EGL4ZKWQ.js";import{a as $}from"./chunk-GPI43RSU.js";import{b as B}from"./chunk-RC3JXGN6.js";import{a as be,b as ee}from"./chunk-N6VRXIQE.js";import{b as zt,f as Et,k as Tt,y as It}from"./chunk-GWD5A44H.js";import{a as Q}from"./chunk-52JZ5I3Y.js";import{A as wt,Aa as k,B as kt,C as J,H as Rt,N as At,O as Dt,S as qt,W as Qt,X as Ft,ba as Lt,ea as X,j as P,k as ft,l as _t,m as Ce,n as vt,o as Ct,oa as Nt,p as bt,q as xt,r as Z,s as Mt,t as yt,ua as F,v as Pt,w as M,wa as L,x as K,y as Ot,ya as E,z as St,za as w}from"./chunk-COFYR5MX.js";import{$ as me,$b as De,B as se,Bc as gt,Ca as de,Cb as ot,D as Y,Db as g,Eb as u,Ec as N,F as He,Hb as R,I as Ve,Ia as Je,Ib as A,Ic as ut,J as $e,Jb as x,Jc as ht,Kb as o,Lb as r,Mb as h,Pc as ve,T as le,Tb as S,W as Re,Wa as Ae,X as je,Xa as Xe,Xb as f,Za as l,Zb as d,_ as ce,_b as rt,ac as at,ba as Ge,bb as et,bc as st,cc as he,da as c,db as pe,dc as fe,ea as Ue,gb as tt,hb as nt,hc as lt,i as Ne,ia as v,ja as C,jb as it,jc as D,kc as _e,lc as a,ma as Ye,mc as _,n as I,na as W,nc as y,o as Be,ob as b,oc as ct,pa as We,pb as ge,qb as ue,qc as mt,ra as Ze,rc as dt,sc as pt,ta as O,ua as Ke}from"./chunk-2MUIW2M6.js";var In="@",Rn=(()=>{class n{doc;delegate;zone;animationType;moduleImpl;_rendererFactoryPromise=null;scheduler=null;injector=c(Ye);loadingSchedulerFn=c(An,{optional:!0});_engine;constructor(e,i,s,m,p){this.doc=e,this.delegate=i,this.zone=s,this.animationType=m,this.moduleImpl=p}ngOnDestroy(){this._engine?.flush()}loadImpl(){let e=()=>this.moduleImpl??import("./chunk-SDNKCAUU.js").then(s=>s),i;return this.loadingSchedulerFn?i=this.loadingSchedulerFn(e):i=e(),i.catch(s=>{throw new je(5300,!1)}).then(({\u0275createEngine:s,\u0275AnimationRendererFactory:m})=>{this._engine=s(this.animationType,this.doc);let p=new m(this.delegate,this._engine,this.zone);return this.delegate=p,p})}createRenderer(e,i){let s=this.delegate.createRenderer(e,i);if(s.\u0275type===0)return s;typeof s.throwOnSyntheticProps=="boolean"&&(s.throwOnSyntheticProps=!1);let m=new qe(s);return i?.data?.animation&&!this._rendererFactoryPromise&&(this._rendererFactoryPromise=this.loadImpl()),this._rendererFactoryPromise?.then(p=>{let U=p.createRenderer(e,i);m.use(U),this.scheduler??=this.injector.get(Ke,null,{optional:!0}),this.scheduler?.notify(10)}).catch(p=>{m.use(s)}),m}begin(){this.delegate.begin?.()}end(){this.delegate.end?.()}whenRenderingDone(){return this.delegate.whenRenderingDone?.()??Promise.resolve()}componentReplaced(e){this._engine?.flush(),this.delegate.componentReplaced?.(e)}static \u0275fac=function(i){it()};static \u0275prov=ce({token:n,factory:n.\u0275fac})}return n})(),qe=class{delegate;replay=[];\u0275type=1;constructor(t){this.delegate=t}use(t){if(this.delegate=t,this.replay!==null){for(let e of this.replay)e(t);this.replay=null}}get data(){return this.delegate.data}destroy(){this.replay=null,this.delegate.destroy()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}get destroyNode(){return this.delegate.destroyNode}appendChild(t,e){this.delegate.appendChild(t,e)}insertBefore(t,e,i,s){this.delegate.insertBefore(t,e,i,s)}removeChild(t,e,i,s){this.delegate.removeChild(t,e,i,s)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,s){this.delegate.setAttribute(t,e,i,s)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,s){this.delegate.setStyle(t,e,i,s)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){this.shouldReplay(e)&&this.replay.push(s=>s.setProperty(t,e,i)),this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i,s){return this.shouldReplay(e)&&this.replay.push(m=>m.listen(t,e,i,s)),this.delegate.listen(t,e,i,s)}shouldReplay(t){return this.replay!==null&&t.startsWith(In)}},An=new Ge("");function fn(n="animations"){return et("NgAsyncAnimations"),Ue([{provide:tt,useFactory:(t,e,i)=>new Rn(t,e,i,n),deps:[W,ft,pe]},{provide:Je,useValue:n==="noop"?"NoopAnimations":"BrowserAnimations"}])}var re=(n,t)=>{let e=c(q),i=c(M),s=c(Q);if(e.isAuthenticated())return!0;let m=t.url;return s.warning("Please login to access this page."),i.navigate(["/login"],{queryParams:{returnUrl:m}}),!1};var Qe=(n,t)=>{let e=c(q),i=c(M);return e.isAuthenticated()?(i.navigate(["/dashboard"]),!1):!0};var z=(n,t)=>{let e=c(q),i=c(M),s=c(Q),m=e.getCurrentUser();return e.isAuthenticated()?m?.role!=="admin"?(s.error("Access denied. Admin privileges required."),i.navigate(["/dashboard"]),!1):!0:(s.error("Please login to access admin area"),i.navigate(["/login"],{queryParams:{returnUrl:t.url}}),!1)};var _n=[{path:"",pathMatch:"full",canActivate:[()=>{let n=c(q),t=c(M);return n.isAuthenticated()?(t.navigate(["/dashboard"]),!1):(t.navigate(["/categories"]),!1)}],children:[]},{path:"login",loadComponent:()=>import("./chunk-UI3TKFHU.js").then(n=>n.LoginComponent),canActivate:[Qe],title:"Login - Quiz Platform"},{path:"register",loadComponent:()=>import("./chunk-RMZSWKDH.js").then(n=>n.RegisterComponent),canActivate:[Qe],title:"Register - Quiz Platform"},{path:"guest-welcome",loadComponent:()=>import("./chunk-LJBPTG23.js").then(n=>n.GuestWelcomeComponent),title:"Welcome - Quiz Platform"},{path:"categories",loadComponent:()=>import("./chunk-3L3FXYGZ.js").then(n=>n.CategoryListComponent),title:"Categories - Quiz Platform"},{path:"categories/:id",loadComponent:()=>import("./chunk-6XFHITFY.js").then(n=>n.CategoryDetailComponent),title:"Category Detail - Quiz Platform"},{path:"dashboard",loadComponent:()=>import("./chunk-GYQ7OXTP.js").then(n=>n.DashboardComponent),canActivate:[re],title:"Dashboard - Quiz Platform"},{path:"history",loadComponent:()=>import("./chunk-DBIJIYNZ.js").then(n=>n.QuizHistoryComponent),canActivate:[re],title:"Quiz History - Quiz Platform"},{path:"profile",loadComponent:()=>import("./chunk-E645CZY6.js").then(n=>n.ProfileSettingsComponent),canActivate:[re],title:"Profile Settings - Quiz Platform"},{path:"bookmarks",loadComponent:()=>import("./chunk-J3LCK77D.js").then(n=>n.BookmarksComponent),canActivate:[re],title:"My Bookmarks - Quiz Platform"},{path:"quiz/setup",loadComponent:()=>import("./chunk-RQ4AYGDA.js").then(n=>n.QuizSetupComponent),title:"Setup Quiz - Quiz Platform"},{path:"quiz/:sessionId",loadComponent:()=>import("./chunk-3QWAVQEA.js").then(n=>n.QuizQuestionComponent),title:"Quiz - Quiz Platform"},{path:"quiz/:sessionId/results",loadComponent:()=>import("./chunk-OSQNZFMB.js").then(n=>n.QuizResultsComponent),title:"Quiz Results - Quiz Platform"},{path:"quiz/:sessionId/review",loadComponent:()=>import("./chunk-PCQ5ZI2S.js").then(n=>n.QuizReviewComponent),title:"Review Quiz - Quiz Platform"},{path:"admin",loadComponent:()=>import("./chunk-GBWD7IPI.js").then(n=>n.AdminDashboardComponent),canActivate:[z],title:"Admin Dashboard - Quiz Platform"},{path:"admin/analytics",loadComponent:()=>import("./chunk-WHX74LXP.js").then(n=>n.GuestAnalyticsComponent),canActivate:[z],title:"Guest Analytics - Admin"},{path:"admin/guest-settings",loadComponent:()=>import("./chunk-UIJLH2NR.js").then(n=>n.GuestSettingsComponent),canActivate:[z],title:"Guest Settings - Admin"},{path:"admin/guest-settings/edit",loadComponent:()=>import("./chunk-LQYVBPUL.js").then(n=>n.GuestSettingsEditComponent),canActivate:[z],title:"Edit Guest Settings - Admin"},{path:"admin/users",loadComponent:()=>import("./chunk-BGIV2LA3.js").then(n=>n.AdminUsersComponent),canActivate:[z],title:"User Management - Admin"},{path:"admin/users/:id",loadComponent:()=>import("./chunk-OI7I342H.js").then(n=>n.AdminUserDetailComponent),canActivate:[z],title:"User Details - Admin"},{path:"admin/questions",loadComponent:()=>import("./chunk-5DTRLD2T.js").then(n=>n.AdminQuestionsComponent),canActivate:[z],title:"Manage Questions - Admin"},{path:"admin/questions/new",loadComponent:()=>import("./chunk-ML2D4U27.js").then(n=>n.AdminQuestionFormComponent),canActivate:[z],title:"Create Question - Admin"},{path:"admin/questions/:id/edit",loadComponent:()=>import("./chunk-ML2D4U27.js").then(n=>n.AdminQuestionFormComponent),canActivate:[z],title:"Edit Question - Admin"},{path:"admin/categories",loadComponent:()=>import("./chunk-BBCMZBMA.js").then(n=>n.AdminCategoryListComponent),canActivate:[z],title:"Manage Categories - Admin"},{path:"admin/categories/new",loadComponent:()=>import("./chunk-UKR5XEO6.js").then(n=>n.CategoryFormComponent),canActivate:[z],title:"Create Category - Admin"},{path:"admin/categories/edit/:id",loadComponent:()=>import("./chunk-UKR5XEO6.js").then(n=>n.CategoryFormComponent),canActivate:[z],title:"Edit Category - Admin"},{path:"error",loadComponent:()=>import("./chunk-DS2WJYIM.js").then(n=>n.ErrorComponent),title:"Error - Quiz Platform"},{path:"**",redirectTo:"login"}];var vn=(n,t)=>{let e=c(B),i=c($),s=e.getToken(),m=i.getGuestToken(),p={};if(s?p.Authorization=`Bearer ${s}`:m&&(p["x-guest-token"]=m),Object.keys(p).length>0){let U=n.clone({setHeaders:p});return t(U)}return t(n)};var Cn=(n,t)=>{let e=c(B),i=e.getGuestToken();if(!e.getToken()&&i){let m=n.clone({setHeaders:{"x-guest-token":i}});return t(m)}return t(n)};var bn=(n,t)=>{let e=c(M),i=c(Q),s=c(B);return t(n).pipe(Y(m=>{let p="An error occurred";if(m.error instanceof ErrorEvent)p=`Error: ${m.error.message}`;else switch(m.status){case 400:p=m.error?.message||"Bad request";break;case 401:p="Unauthorized. Please login again.",s.clearToken(),s.clearGuestToken(),e.navigate(["/login"]);break;case 403:p=m.error?.message||"Access forbidden";break;case 404:p=m.error?.message||"Resource not found";break;case 409:p=m.error?.message||"Conflict - Resource already exists";break;case 429:p="Too many requests. Please try again later.";break;case 500:p="Server error. Please try again later.";break;default:p=m.error?.message||`Error ${m.status}: ${m.statusText}`}return m.status!==401&&i.error(p),Be(()=>({status:m.status,statusText:m.statusText,message:p,error:m.error}))}))};var xn=(n,t)=>{let e=c(Ut),i=n.headers.has("X-Skip-Loading");return i||e.start("Loading..."),t(n).pipe($e(()=>{i||e.stop()}))};var Mn={providers:[Ze(),gt(),St(_n,kt(Ot),wt({scrollPositionRestoration:"top"})),fn(),Ct(bt([xn,vn,Cn,bn])),{provide:We,useClass:Zt}]};var Dn=(n,t)=>t.id;function qn(n,t){if(n&1){let e=S();o(0,"button",8),f("click",function(){v(e);let s=d().$implicit,m=d();return C(m.onAction(s.action.callback,s.id))}),a(1),r()}if(n&2){let e=d().$implicit;l(),y(" ",e.action.label," ")}}function Qn(n,t){if(n&1){let e=S();o(0,"div",2)(1,"div",3)(2,"mat-icon",4),a(3),r(),o(4,"span",5),a(5),r(),g(6,qn,2,1,"button",6),o(7,"button",7),f("click",function(){let s=v(e).$implicit,m=d();return C(m.toastService.remove(s.id))}),o(8,"mat-icon"),a(9,"close"),r()()()()}if(n&2){let e=t.$implicit,i=d();_e("toast-"+e.type),x("@slideIn",void 0),l(3),_(i.getIcon(e.type)),l(2),_(e.message),l(),u(e.action?6:-1)}}var ye=class n{toastService=c(Q);getIcon(t){return{success:"check_circle",error:"error",warning:"warning",info:"info"}[t]||"info"}onAction(t,e){t(),this.toastService.remove(e)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-toast-container"]],decls:3,vars:0,consts:[[1,"toast-container"],[1,"toast",3,"class"],[1,"toast"],[1,"toast-content"],[1,"toast-icon"],[1,"toast-message"],["mat-button","",1,"toast-action"],["mat-icon-button","",1,"toast-close",3,"click"],["mat-button","",1,"toast-action",3,"click"]],template:function(e,i){e&1&&(o(0,"div",0),R(1,Qn,10,6,"div",1,Dn),r()),e&2&&(l(),A(i.toastService.toasts()))},dependencies:[P,k,w,E,L,F],styles:[".toast-container[_ngcontent-%COMP%]{position:fixed;top:1rem;right:1rem;z-index:10000;display:flex;flex-direction:column;gap:.5rem;max-width:400px}.toast[_ngcontent-%COMP%]{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden;animation:_ngcontent-%COMP%_slideIn .3s ease-out;border-left:4px solid}.toast.toast-success[_ngcontent-%COMP%]{border-left-color:#4caf50}.toast.toast-success[_ngcontent-%COMP%] .toast-icon[_ngcontent-%COMP%]{color:#4caf50}.toast.toast-error[_ngcontent-%COMP%]{border-left-color:#f44336}.toast.toast-error[_ngcontent-%COMP%] .toast-icon[_ngcontent-%COMP%]{color:#f44336}.toast.toast-warning[_ngcontent-%COMP%]{border-left-color:#ff9800}.toast.toast-warning[_ngcontent-%COMP%] .toast-icon[_ngcontent-%COMP%]{color:#ff9800}.toast.toast-info[_ngcontent-%COMP%]{border-left-color:#2196f3}.toast.toast-info[_ngcontent-%COMP%] .toast-icon[_ngcontent-%COMP%]{color:#2196f3}.toast-content[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:1rem}.toast-icon[_ngcontent-%COMP%]{flex-shrink:0}.toast-message[_ngcontent-%COMP%]{flex:1;font-size:.875rem;line-height:1.5}.toast-action[_ngcontent-%COMP%]{flex-shrink:0;text-transform:uppercase;font-weight:500}.toast-close[_ngcontent-%COMP%]{flex-shrink:0;width:32px;height:32px}.toast-close[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px}@keyframes _ngcontent-%COMP%_slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 768px){.toast-container[_ngcontent-%COMP%]{left:1rem;right:1rem;max-width:none}}"]})};var Fn=["*",[["mat-toolbar-row"]]],Ln=["*","mat-toolbar-row"],Nn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=ue({type:n,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"]})}return n})(),yn=(()=>{class n{_elementRef=c(de);_platform=c(Rt);_document=c(W);color;_toolbarRows;constructor(){}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(()=>this._checkToolbarMixedModes()))}_checkToolbarMixedModes(){this._toolbarRows.length}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=b({type:n,selectors:[["mat-toolbar"]],contentQueries:function(i,s,m){if(i&1&&at(m,Nn,5),i&2){let p;he(p=fe())&&(s._toolbarRows=p)}},hostAttrs:[1,"mat-toolbar"],hostVars:6,hostBindings:function(i,s){i&2&&(_e(s.color?"mat-"+s.color:""),D("mat-toolbar-multiple-rows",s._toolbarRows.length>0)("mat-toolbar-single-row",s._toolbarRows.length===0))},inputs:{color:"color"},exportAs:["matToolbar"],ngContentSelectors:Ln,decls:2,vars:0,template:function(i,s){i&1&&(rt(Fn),De(0),De(1,1))},styles:[`.mat-toolbar{background:var(--mat-toolbar-container-background-color, var(--mat-sys-surface));color:var(--mat-toolbar-container-text-color, var(--mat-sys-on-surface))}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font-family:var(--mat-toolbar-title-text-font, var(--mat-sys-title-large-font));font-size:var(--mat-toolbar-title-text-size, var(--mat-sys-title-large-size));line-height:var(--mat-toolbar-title-text-line-height, var(--mat-sys-title-large-line-height));font-weight:var(--mat-toolbar-title-text-weight, var(--mat-sys-title-large-weight));letter-spacing:var(--mat-toolbar-title-text-tracking, var(--mat-sys-title-large-tracking));margin:0}@media(forced-colors: active){.mat-toolbar{outline:solid 1px}}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar .mat-mdc-button-base.mat-mdc-button-base.mat-unthemed{--mat-button-text-label-text-color: var(--mat-toolbar-container-text-color, var(--mat-sys-on-surface));--mat-button-outlined-label-text-color: var(--mat-toolbar-container-text-color, var(--mat-sys-on-surface))}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap;height:var(--mat-toolbar-standard-height, 64px)}@media(max-width: 599px){.mat-toolbar-row,.mat-toolbar-single-row{height:var(--mat-toolbar-mobile-height, 56px)}}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%;min-height:var(--mat-toolbar-standard-height, 64px)}@media(max-width: 599px){.mat-toolbar-multiple-rows{min-height:var(--mat-toolbar-mobile-height, 56px)}}
`],encapsulation:2,changeDetection:0})}return n})();var Pn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=me({imports:[X,X]})}return n})();function Hn(n,t){if(n&1&&(o(0,"div",20)(1,"mat-icon"),a(2,"emoji_events"),r(),o(3,"span"),a(4,"Current Score: "),o(5,"strong"),a(6),r()()()),n&2){let e=d();l(6),y("",e.session().score," points")}}var Pe=class n{dialogRef=c(cn);data=c(mn);router=c(M);session=O(this.data.session);progress=N(()=>{let t=this.session();return t?Math.round(t.currentQuestionIndex/t.totalQuestions*100):0});questionsRemaining=N(()=>{let t=this.session();return t?t.totalQuestions-t.currentQuestionIndex:0});resumeQuiz(){let t=this.session();t&&(this.dialogRef.close({action:"resume"}),this.router.navigate(["/quiz",t.id]))}startNewQuiz(){this.dialogRef.close({action:"new"}),this.router.navigate(["/quiz/setup"])}cancel(){this.dialogRef.close({action:"cancel"})}formatDifficulty(t){return t.charAt(0).toUpperCase()+t.slice(1)}getQuizTypeText(t){switch(t){case"practice":return"Practice";case"timed":return"Timed";case"exam":return"Exam";default:return t}}formatTimeElapsed(){let t=this.session();if(!t?.startedAt)return"Just now";let e=new Date(t.startedAt).getTime(),s=Date.now()-e,m=Math.floor(s/6e4);if(m<1)return"Just now";if(m<60)return`${m} minute${m>1?"s":""} ago`;let p=Math.floor(m/60);if(p<24)return`${p} hour${p>1?"s":""} ago`;let U=Math.floor(p/24);return`${U} day${U>1?"s":""} ago`}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-resume-quiz-dialog"]],decls:86,vars:13,consts:[[1,"resume-quiz-dialog"],[1,"dialog-header"],[1,"header-icon"],["mat-dialog-title",""],["mat-icon-button","",1,"close-btn",3,"click"],[1,"incomplete-session-info"],[1,"message"],[1,"session-details"],[1,"detail-row"],[1,"label"],[1,"value"],[1,"progress-container"],["mode","determinate",3,"value","color"],[1,"progress-text"],[1,"stats-row"],[1,"stat-item","success"],[1,"stat-value"],[1,"stat-label"],[1,"stat-item","error"],[1,"stat-item"],[1,"current-score"],["align","end"],["mat-button","",1,"action-btn","secondary",3,"click"],["mat-raised-button","","color","primary",1,"action-btn","primary",3,"click"]],template:function(e,i){e&1&&(o(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon"),a(4,"history"),r()(),o(5,"h2",3),a(6,"Resume Quiz?"),r(),o(7,"button",4),f("click",function(){return i.cancel()}),o(8,"mat-icon"),a(9,"close"),r()()(),o(10,"mat-dialog-content")(11,"div",5)(12,"p",6),a(13," You have an incomplete quiz session. Would you like to continue where you left off? "),r(),o(14,"div",7)(15,"div",8)(16,"mat-icon"),a(17,"quiz"),r(),o(18,"span",9),a(19,"Progress:"),r(),o(20,"span",10),a(21),r()(),o(22,"div",11),h(23,"mat-progress-bar",12),o(24,"span",13),a(25),r()(),o(26,"div",8)(27,"mat-icon"),a(28,"category"),r(),o(29,"span",9),a(30,"Category:"),r(),o(31,"span",10),a(32),r()(),o(33,"div",8)(34,"mat-icon"),a(35,"tune"),r(),o(36,"span",9),a(37,"Difficulty:"),r(),o(38,"span",10),a(39),r()(),o(40,"div",8)(41,"mat-icon"),a(42,"timer"),r(),o(43,"span",9),a(44,"Quiz Type:"),r(),o(45,"span",10),a(46),r()(),o(47,"div",8)(48,"mat-icon"),a(49,"schedule"),r(),o(50,"span",9),a(51,"Started:"),r(),o(52,"span",10),a(53),r()(),o(54,"div",14)(55,"div",15)(56,"mat-icon"),a(57,"check_circle"),r(),o(58,"span",16),a(59),r(),o(60,"span",17),a(61,"Correct"),r()(),o(62,"div",18)(63,"mat-icon"),a(64,"cancel"),r(),o(65,"span",16),a(66),r(),o(67,"span",17),a(68,"Incorrect"),r()(),o(69,"div",19)(70,"mat-icon"),a(71,"help_outline"),r(),o(72,"span",16),a(73),r(),o(74,"span",17),a(75,"Remaining"),r()()(),g(76,Hn,7,1,"div",20),r()()(),o(77,"mat-dialog-actions",21)(78,"button",22),f("click",function(){return i.startNewQuiz()}),o(79,"mat-icon"),a(80,"add"),r(),a(81," Start New Quiz "),r(),o(82,"button",23),f("click",function(){return i.resumeQuiz()}),o(83,"mat-icon"),a(84,"play_arrow"),r(),a(85," Continue Quiz "),r()()()),e&2&&(l(21),ct(" Question ",i.session().currentQuestionIndex+1," of ",i.session().totalQuestions," "),l(2),x("value",i.progress())("color",i.progress()>66?"primary":i.progress()>33?"accent":"warn"),l(2),y("",i.progress(),"% Complete"),l(7),_(i.session().categoryName||"Quiz"),l(7),_(i.formatDifficulty(i.session().difficulty)),l(7),_(i.getQuizTypeText(i.session().quizType)),l(7),_(i.formatTimeElapsed()),l(6),_(i.session().correctAnswers),l(7),_(i.session().incorrectAnswers),l(7),_(i.questionsRemaining()),l(3),u(i.session().score>0?76:-1))},dependencies:[P,Me,pn,un,gn,E,L,F,k,w,ne,te],styles:[".resume-quiz-dialog[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:500px;max-width:600px}@media (max-width: 768px){.resume-quiz-dialog[_ngcontent-%COMP%]{min-width:unset;max-width:unset;width:100%}}.dialog-header[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--border-color)}.dialog-header[_ngcontent-%COMP%] .header-icon[_ngcontent-%COMP%]{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--accent-color));display:flex;align-items:center;justify-content:center;margin-bottom:1rem;animation:_ngcontent-%COMP%_pulse 2s infinite}.dialog-header[_ngcontent-%COMP%] .header-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:32px;width:32px;height:32px;color:#fff}.dialog-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.dialog-header[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%]{position:absolute;top:.5rem;right:.5rem}@keyframes _ngcontent-%COMP%_pulse{0%,to{transform:scale(1);box-shadow:0 0 rgba(var(--primary-rgb),.7)}50%{transform:scale(1.05);box-shadow:0 0 0 10px rgba(var(--primary-rgb),0)}}mat-dialog-content[_ngcontent-%COMP%]{padding:1.5rem;overflow-y:auto;max-height:70vh}.incomplete-session-info[_ngcontent-%COMP%] .message[_ngcontent-%COMP%]{font-size:1rem;color:var(--text-secondary);text-align:center;margin-bottom:1.5rem;line-height:1.5}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%]{background-color:var(--bg-secondary);border-radius:8px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .detail-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;font-size:.9375rem}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .detail-row[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--primary-color);font-size:20px;width:20px;height:20px;flex-shrink:0}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .detail-row[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{color:var(--text-secondary);font-weight:500;min-width:80px}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .detail-row[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{color:var(--text-primary);font-weight:600}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .progress-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;margin:.5rem 0}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .progress-container[_ngcontent-%COMP%] mat-progress-bar[_ngcontent-%COMP%]{height:8px;border-radius:4px}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .progress-container[_ngcontent-%COMP%] .progress-text[_ngcontent-%COMP%]{font-size:.875rem;color:var(--text-secondary);text-align:right;font-weight:600}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .stats-row[_ngcontent-%COMP%]{display:flex;justify-content:space-around;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .stats-row[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:.25rem;flex:1}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .stats-row[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:28px;width:28px;height:28px;color:var(--text-secondary)}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .stats-row[_ngcontent-%COMP%] .stat-item.success[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#4caf50}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .stats-row[_ngcontent-%COMP%] .stat-item.error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#f44336}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .stats-row[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .stats-row[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%]{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .current-score[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;background:linear-gradient(135deg,rgba(var(--primary-rgb),.1),rgba(var(--accent-rgb),.1));border-radius:6px;margin-top:.5rem}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .current-score[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:#ffc107;font-size:24px;width:24px;height:24px}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .current-score[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:1rem;color:var(--text-primary)}.incomplete-session-info[_ngcontent-%COMP%] .session-details[_ngcontent-%COMP%] .current-score[_ngcontent-%COMP%] span[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--primary-color)}mat-dialog-actions[_ngcontent-%COMP%]{padding:1rem 1.5rem;border-top:1px solid var(--border-color);gap:.75rem;display:flex;justify-content:flex-end}@media (max-width: 768px){mat-dialog-actions[_ngcontent-%COMP%]{flex-direction:column-reverse}mat-dialog-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%}}mat-dialog-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-weight:600;padding:.75rem 1.5rem}mat-dialog-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px}mat-dialog-actions[_ngcontent-%COMP%] .action-btn.primary[_ngcontent-%COMP%]{min-width:160px}mat-dialog-actions[_ngcontent-%COMP%] .action-btn.secondary[_ngcontent-%COMP%]{color:var(--text-secondary)}mat-dialog-actions[_ngcontent-%COMP%] .action-btn.secondary[_ngcontent-%COMP%]:hover{background-color:var(--bg-hover)}@media (prefers-color-scheme: dark){.session-details[_ngcontent-%COMP%]{background-color:#ffffff0d}.current-score[_ngcontent-%COMP%]{background:linear-gradient(135deg,rgba(var(--primary-rgb),.2),rgba(var(--accent-rgb),.2))}}"]})};var Oe=class n{http=c(vt);apiUrl=`${Wt.apiUrl}/search`;searchResults=O({questions:[],categories:[],quizzes:[],totalResults:0});isSearching=O(!1);searchQuery=O("");hasSearched=O(!1);searchCache=new Map;CACHE_TTL=300*1e3;search(t){if(this.searchQuery.set(t),!t||t.trim().length<2)return this.clearResults(),I(this.searchResults());let e=t.trim(),i=this.searchCache.get(e);if(i&&Date.now()-i.timestamp<this.CACHE_TTL)return this.searchResults.set(i.results),this.hasSearched.set(!0),I(i.results);this.isSearching.set(!0);let s=new Ce().set("q",e).set("limit","5");return this.http.get(`${this.apiUrl}`,{params:s}).pipe(Re(m=>{let p=this.transformSearchResults(m);this.searchResults.set(p),this.hasSearched.set(!0),this.searchCache.set(e,{results:p,timestamp:Date.now()})}),le(()=>I(this.searchResults())),Y(m=>(console.error("Search error:",m),this.clearResults(),I(this.searchResults()))),Re(()=>this.isSearching.set(!1)))}searchQuestions(t,e=10){if(!t||t.trim().length<2)return I([]);let i=new Ce().set("q",t.trim()).set("type","questions").set("limit",e.toString());return this.http.get(`${this.apiUrl}`,{params:i}).pipe(le(s=>I(this.transformQuestions(s.data.questions))),Y(()=>I([])))}searchCategories(t,e=10){if(!t||t.trim().length<2)return I([]);let i=new Ce().set("q",t.trim()).set("type","categories").set("limit",e.toString());return this.http.get(`${this.apiUrl}`,{params:i}).pipe(le(s=>I(this.transformCategories(s.data.categories))),Y(()=>I([])))}clearResults(){this.searchResults.set({questions:[],categories:[],quizzes:[],totalResults:0}),this.searchQuery.set(""),this.hasSearched.set(!1),this.isSearching.set(!1)}clearCache(){this.searchCache.clear()}transformSearchResults(t){return{questions:this.transformQuestions(t.data.questions),categories:this.transformCategories(t.data.categories),quizzes:this.transformQuizzes(t.data.quizzes),totalResults:t.total}}transformQuestions(t){return t.map(e=>({id:e.id,type:"question",title:e.questionText,description:e.explanation?.substring(0,100),highlight:this.highlightMatch(e.questionText,this.searchQuery()),category:e.category?.name,difficulty:e.difficulty,icon:"quiz",url:`/quiz/question/${e.id}`}))}transformCategories(t){return t.map(e=>({id:e.id,type:"category",title:e.name,description:e.description?.substring(0,100),highlight:this.highlightMatch(e.name,this.searchQuery()),icon:e.icon||"category",url:`/categories/${e.id}`}))}transformQuizzes(t){return t.map(e=>({id:e.id,type:"quiz",title:`Quiz: ${e.category?.name||"Unknown"}`,description:`${e.totalQuestions} questions - Score: ${e.score}%`,category:e.category?.name,icon:"assessment",url:`/quiz/review/${e.id}`}))}highlightMatch(t,e){if(!e||!t)return t;let i=new RegExp(`(${this.escapeRegex(e)})`,"gi");return t.replace(i,"<mark>$1</mark>")}escapeRegex(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}hasResults(){return this.searchResults().totalResults>0}getResultsByType(t){let e=this.searchResults();switch(t){case"question":return e.questions;case"category":return e.categories;case"quiz":return e.quizzes;default:return[]}}static \u0275fac=function(e){return new(e||n)};static \u0275prov=ce({token:n,factory:n.\u0275fac,providedIn:"root"})};var $n=["searchInput"],Le=(n,t)=>t.id;function jn(n,t){if(n&1){let e=S();o(0,"button",8),f("click",function(){v(e);let s=d();return C(s.clearSearch())}),o(1,"mat-icon"),a(2,"close"),r()()}}function Gn(n,t){n&1&&(o(0,"div",9),h(1,"mat-spinner",12),o(2,"p"),a(3,"Searching..."),r()())}function Un(n,t){if(n&1&&(o(0,"div",10)(1,"mat-icon"),a(2,"search_off"),r(),o(3,"p"),a(4,'No results found for "'),o(5,"strong"),a(6),r(),a(7,'"'),r(),o(8,"span",13),a(9,"Try different keywords or check your spelling"),r()()),n&2){let e=d(2);l(6),_(e.searchQuery())}}function Yn(n,t){if(n&1&&(o(0,"div",24),a(1),r()),n&2){let e=d().$implicit;l(),_(e.description)}}function Wn(n,t){if(n&1){let e=S();o(0,"div",20),f("click",function(){let s=v(e).$implicit,m=d(4);return C(m.navigateToResult(s))}),o(1,"mat-icon",21),a(2),r(),o(3,"div",22),h(4,"div",23),g(5,Yn,2,1,"div",24),r(),o(6,"mat-icon",25),a(7,"chevron_right"),r()()}if(n&2){let e=t.$implicit,i=d(4);D("selected",i.isSelected(e)),l(2),_(e.icon||"category"),l(2),x("innerHTML",e.highlight||e.title,Ae),l(),u(e.description?5:-1)}}function Zn(n,t){if(n&1&&(o(0,"div",14)(1,"div",17)(2,"mat-icon"),a(3,"category"),r(),o(4,"span"),a(5,"Categories"),r(),o(6,"span",18),a(7),r()(),R(8,Wn,8,5,"div",19,Le),r()),n&2){let e=d(3);l(7),_(e.searchResults().categories.length),l(),A(e.searchResults().categories)}}function Kn(n,t){n&1&&h(0,"mat-divider")}function Jn(n,t){if(n&1&&(o(0,"span",27)(1,"mat-icon"),a(2,"category"),r(),a(3),r()),n&2){let e=d().$implicit;l(3),y(" ",e.category," ")}}function Xn(n,t){if(n&1&&(o(0,"mat-chip",28),a(1),r()),n&2){let e=d().$implicit,i=d(4);x("color",i.getDifficultyColor(e.difficulty)),l(),y(" ",e.difficulty," ")}}function ei(n,t){if(n&1){let e=S();o(0,"div",20),f("click",function(){let s=v(e).$implicit,m=d(4);return C(m.navigateToResult(s))}),o(1,"mat-icon",21),a(2,"quiz"),r(),o(3,"div",22),h(4,"div",23),o(5,"div",26),g(6,Jn,4,1,"span",27),g(7,Xn,2,2,"mat-chip",28),r()(),o(8,"mat-icon",25),a(9,"chevron_right"),r()()}if(n&2){let e=t.$implicit,i=d(4);D("selected",i.isSelected(e)),l(4),x("innerHTML",e.highlight||e.title,Ae),l(2),u(e.category?6:-1),l(),u(e.difficulty?7:-1)}}function ti(n,t){if(n&1&&(g(0,Kn,1,0,"mat-divider"),o(1,"div",14)(2,"div",17)(3,"mat-icon"),a(4,"quiz"),r(),o(5,"span"),a(6,"Questions"),r(),o(7,"span",18),a(8),r()(),R(9,ei,10,5,"div",19,Le),r()),n&2){let e=d(3);u(e.searchResults().categories.length>0?0:-1),l(8),_(e.searchResults().questions.length),l(),A(e.searchResults().questions)}}function ni(n,t){n&1&&h(0,"mat-divider")}function ii(n,t){if(n&1&&(o(0,"div",24),a(1),r()),n&2){let e=d().$implicit;l(),_(e.description)}}function oi(n,t){if(n&1){let e=S();o(0,"div",20),f("click",function(){let s=v(e).$implicit,m=d(4);return C(m.navigateToResult(s))}),o(1,"mat-icon",21),a(2,"assessment"),r(),o(3,"div",22)(4,"div",29),a(5),r(),g(6,ii,2,1,"div",24),r(),o(7,"mat-icon",25),a(8,"chevron_right"),r()()}if(n&2){let e=t.$implicit,i=d(4);D("selected",i.isSelected(e)),l(5),_(e.title),l(),u(e.description?6:-1)}}function ri(n,t){if(n&1&&(g(0,ni,1,0,"mat-divider"),o(1,"div",14)(2,"div",17)(3,"mat-icon"),a(4,"assessment"),r(),o(5,"span"),a(6,"Quiz History"),r(),o(7,"span",18),a(8),r()(),R(9,oi,9,4,"div",19,Le),r()),n&2){let e=d(3);u(e.searchResults().categories.length>0||e.searchResults().questions.length>0?0:-1),l(8),_(e.searchResults().quizzes.length),l(),A(e.searchResults().quizzes)}}function ai(n,t){if(n&1){let e=S();o(0,"div",11),g(1,Zn,10,1,"div",14),g(2,ti,11,2),g(3,ri,11,2),h(4,"mat-divider"),o(5,"div",15)(6,"button",16),f("click",function(){v(e);let s=d(2);return C(s.viewAllResults())}),o(7,"mat-icon"),a(8,"open_in_new"),r(),a(9),r()()()}if(n&2){let e=d(2);l(),u(e.searchResults().categories.length>0?1:-1),l(),u(e.searchResults().questions.length>0?2:-1),l(),u(e.searchResults().quizzes.length>0?3:-1),l(6),y(" See all ",e.searchResults().totalResults," results ")}}function si(n,t){if(n&1&&(o(0,"div",7),g(1,Gn,4,0,"div",9)(2,Un,10,1,"div",10)(3,ai,10,4,"div",11),r()),n&2){let e=d();l(),u(e.isSearching()?1:e.isEmptySearch()?2:e.hasResults()?3:-1)}}var Se=class n{searchService=c(Oe);router=c(M);searchInput;searchResults=this.searchService.searchResults;isSearching=this.searchService.isSearching;hasSearched=this.searchService.hasSearched;searchQuery=O("");showDropdown=O(!1);selectedIndex=O(-1);searchSubject=new Ne;flatResults=[];ngOnInit(){this.setupSearchDebounce(),this.setupClickOutside()}setupSearchDebounce(){this.searchSubject.pipe(He(500),Ve()).subscribe(t=>{t.trim().length>=2?this.searchService.search(t).subscribe(()=>{this.showDropdown.set(!0),this.updateFlatResults()}):this.clearSearch()})}setupClickOutside(){document.addEventListener("click",t=>{let e=t.target,i=document.querySelector(".search-container");i&&!i.contains(e)&&this.closeDropdown()})}onSearchInput(t){this.searchQuery.set(t),this.searchSubject.next(t),t.trim().length<2&&this.closeDropdown()}onKeyDown(t){let e=t.key;if(this.showDropdown())switch(e){case"ArrowDown":t.preventDefault(),this.navigateDown();break;case"ArrowUp":t.preventDefault(),this.navigateUp();break;case"Enter":t.preventDefault(),this.selectCurrentResult();break;case"Escape":t.preventDefault(),this.closeDropdown();break}}navigateDown(){let t=this.flatResults.length-1;this.selectedIndex()<t&&(this.selectedIndex.update(e=>e+1),this.scrollToSelected())}navigateUp(){this.selectedIndex()>0&&(this.selectedIndex.update(t=>t-1),this.scrollToSelected())}selectCurrentResult(){let t=this.selectedIndex();t>=0&&t<this.flatResults.length&&this.navigateToResult(this.flatResults[t])}scrollToSelected(){setTimeout(()=>{let t=document.querySelector(".result-item.selected");t&&t.scrollIntoView({block:"nearest",behavior:"smooth"})},0)}updateFlatResults(){let t=this.searchResults();this.flatResults=[...t.categories,...t.questions,...t.quizzes],this.selectedIndex.set(-1)}navigateToResult(t){t.url&&(this.router.navigate([t.url]),this.closeDropdown(),this.clearSearch())}viewAllResults(){this.router.navigate(["/search"],{queryParams:{q:this.searchQuery()}}),this.closeDropdown()}clearSearch(){this.searchQuery.set(""),this.searchService.clearResults(),this.showDropdown.set(!1),this.selectedIndex.set(-1),this.flatResults=[]}closeDropdown(){this.showDropdown.set(!1),this.selectedIndex.set(-1)}focusSearch(){this.searchInput?.nativeElement.focus()}getTypeIcon(t){switch(t){case"question":return"quiz";case"category":return"category";case"quiz":return"assessment";default:return"search"}}getDifficultyColor(t){if(!t)return"";switch(t.toLowerCase()){case"easy":return"primary";case"medium":return"accent";case"hard":return"warn";default:return""}}isSelected(t){let e=this.selectedIndex();return e<0?!1:this.flatResults[e]?.id===t.id&&this.flatResults[e]?.type===t.type}hasResults(){return this.searchResults().totalResults>0}isEmptySearch(){return this.hasSearched()&&!this.hasResults()&&!this.isSearching()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-search"]],viewQuery:function(e,i){if(e&1&&st($n,5),e&2){let s;he(s=fe())&&(i.searchInput=s.first)}},decls:9,vars:3,consts:[["searchInput",""],[1,"search-container"],[1,"search-input-wrapper"],["appearance","outline",1,"search-field"],["matPrefix",""],["matInput","","type","text","placeholder","Search questions, categories, quizzes...","autocomplete","off",3,"ngModelChange","keydown","ngModel"],["mat-icon-button","","matSuffix","","aria-label","Clear search"],["role","listbox",1,"search-dropdown"],["mat-icon-button","","matSuffix","","aria-label","Clear search",3,"click"],[1,"search-loading"],[1,"search-empty"],[1,"search-results"],["diameter","40"],[1,"hint"],[1,"results-section"],[1,"see-all-link"],["mat-button","","color","primary",3,"click"],[1,"section-header"],[1,"count"],["role","option",1,"result-item",3,"selected"],["role","option",1,"result-item",3,"click"],[1,"result-icon"],[1,"result-content"],[1,"result-title",3,"innerHTML"],[1,"result-description"],[1,"navigate-icon"],[1,"result-meta"],[1,"meta-item"],[1,"difficulty-chip",3,"color"],[1,"result-title"]],template:function(e,i){if(e&1){let s=S();o(0,"div",1)(1,"div",2)(2,"mat-form-field",3)(3,"mat-icon",4),a(4,"search"),r(),o(5,"input",5,0),pt("ngModelChange",function(p){return v(s),dt(i.searchQuery,p)||(i.searchQuery=p),C(p)}),f("ngModelChange",function(p){return v(s),C(i.onSearchInput(p))})("keydown",function(p){return v(s),C(i.onKeyDown(p))}),r(),g(7,jn,3,0,"button",6),r()(),g(8,si,4,1,"div",7),r()}e&2&&(l(5),mt("ngModel",i.searchQuery),l(2),u(i.searchQuery()?7:-1),l(),u(i.showDropdown()?8:-1))},dependencies:[P,It,zt,Et,Tt,$t,Vt,Bt,Ht,Gt,jt,k,w,E,L,F,ee,be,V,H,xe,nn],styles:[".search-container[_ngcontent-%COMP%]{position:relative;width:100%;max-width:600px}@media (max-width: 768px){.search-container[_ngcontent-%COMP%]{max-width:100%}}.search-input-wrapper[_ngcontent-%COMP%]{position:relative}.search-input-wrapper[_ngcontent-%COMP%] .search-field[_ngcontent-%COMP%]{width:100%}.search-input-wrapper[_ngcontent-%COMP%] .search-field[_ngcontent-%COMP%] .mat-mdc-form-field-infix{padding:.5rem 0}.search-input-wrapper[_ngcontent-%COMP%] .search-field[_ngcontent-%COMP%] .mat-mdc-text-field-wrapper{padding:0}.search-input-wrapper[_ngcontent-%COMP%] .search-field[_ngcontent-%COMP%] input{font-size:.95rem}.search-input-wrapper[_ngcontent-%COMP%] .search-field[_ngcontent-%COMP%] .mat-mdc-form-field-subscript-wrapper{display:none}.search-dropdown[_ngcontent-%COMP%]{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:var(--surface-color);border-radius:8px;box-shadow:0 8px 24px #00000026;max-height:500px;overflow-y:auto;z-index:1000;animation:_ngcontent-%COMP%_dropdownSlide .2s ease-out}@media (max-width: 768px){.search-dropdown[_ngcontent-%COMP%]{max-height:400px}}@keyframes _ngcontent-%COMP%_dropdownSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.search-dropdown[_ngcontent-%COMP%]::-webkit-scrollbar{width:6px}.search-dropdown[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent}.search-dropdown[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--scrollbar-color);border-radius:3px}.search-dropdown[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover-color)}.search-loading[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;gap:1rem}.search-loading[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.95rem;color:var(--text-secondary)}.search-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;gap:.75rem;text-align:center}.search-empty[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:3rem;width:3rem;height:3rem;color:var(--text-disabled)}.search-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.95rem;color:var(--text-primary)}.search-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--primary-color)}.search-empty[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{font-size:.875rem;color:var(--text-secondary)}.search-results[_ngcontent-%COMP%], .results-section[_ngcontent-%COMP%]{padding:.5rem 0}.results-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.results-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}.results-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%]{margin-left:auto;padding:.125rem .5rem;background-color:var(--chip-background);border-radius:12px;font-size:.75rem}.result-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;cursor:pointer;transition:background-color .2s ease}.result-item[_ngcontent-%COMP%]:hover, .result-item.selected[_ngcontent-%COMP%]{background-color:var(--hover-background)}.result-item.selected[_ngcontent-%COMP%]{border-left:3px solid var(--primary-color);padding-left:calc(1rem - 3px)}.result-item[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%]{flex-shrink:0;font-size:1.5rem;width:1.5rem;height:1.5rem;color:var(--icon-color)}.result-item[_ngcontent-%COMP%] .result-content[_ngcontent-%COMP%]{flex:1;min-width:0}.result-item[_ngcontent-%COMP%] .result-content[_ngcontent-%COMP%] .result-title[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--text-primary);line-height:1.4;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.result-item[_ngcontent-%COMP%] .result-content[_ngcontent-%COMP%] .result-title[_ngcontent-%COMP%] mark{background-color:var(--highlight-background);color:var(--highlight-text);padding:.125rem .25rem;border-radius:3px;font-weight:600}.result-item[_ngcontent-%COMP%] .result-content[_ngcontent-%COMP%] .result-description[_ngcontent-%COMP%]{font-size:.875rem;color:var(--text-secondary);line-height:1.4;margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.result-item[_ngcontent-%COMP%] .result-content[_ngcontent-%COMP%] .result-meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;margin-top:.5rem;flex-wrap:wrap}.result-item[_ngcontent-%COMP%] .result-content[_ngcontent-%COMP%] .result-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;font-size:.875rem;color:var(--text-secondary)}.result-item[_ngcontent-%COMP%] .result-content[_ngcontent-%COMP%] .result-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem}.result-item[_ngcontent-%COMP%] .result-content[_ngcontent-%COMP%] .result-meta[_ngcontent-%COMP%] .difficulty-chip[_ngcontent-%COMP%]{height:20px;font-size:.75rem;padding:0 .5rem}.result-item[_ngcontent-%COMP%] .result-content[_ngcontent-%COMP%] .result-meta[_ngcontent-%COMP%] .difficulty-chip[_ngcontent-%COMP%] .mdc-evolution-chip__action--primary{padding:0 .5rem}.result-item[_ngcontent-%COMP%] .navigate-icon[_ngcontent-%COMP%]{flex-shrink:0;font-size:1.25rem;width:1.25rem;height:1.25rem;color:var(--text-disabled)}.see-all-link[_ngcontent-%COMP%]{padding:.5rem 1rem;text-align:center}.see-all-link[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%;justify-content:center}.see-all-link[_ngcontent-%COMP%] button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:.5rem}@media (prefers-color-scheme: dark){.search-container[_ngcontent-%COMP%]{--surface-color: #1e1e1e;--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--text-disabled: #606060;--primary-color: #2196f3;--icon-color: #90caf9;--hover-background: rgba(255, 255, 255, .08);--chip-background: rgba(255, 255, 255, .1);--highlight-background: rgba(33, 150, 243, .3);--highlight-text: #ffffff;--scrollbar-color: rgba(255, 255, 255, .2);--scrollbar-hover-color: rgba(255, 255, 255, .3)}}@media (prefers-color-scheme: light){.search-container[_ngcontent-%COMP%]{--surface-color: #ffffff;--text-primary: #212121;--text-secondary: #757575;--text-disabled: #bdbdbd;--primary-color: #1976d2;--icon-color: #1976d2;--hover-background: rgba(0, 0, 0, .04);--chip-background: rgba(0, 0, 0, .08);--highlight-background: rgba(33, 150, 243, .2);--highlight-text: #0d47a1;--scrollbar-color: rgba(0, 0, 0, .2);--scrollbar-hover-color: rgba(0, 0, 0, .3)}}@media (prefers-reduced-motion: reduce){.search-dropdown[_ngcontent-%COMP%]{animation:none}.result-item[_ngcontent-%COMP%]{transition:none}}.search-field[_ngcontent-%COMP%] input:focus{outline:none}.result-item[_ngcontent-%COMP%]:focus{outline:2px solid var(--primary-color);outline-offset:-2px}"]})};function li(n,t){n&1&&(o(0,"mat-icon"),a(1,"dark_mode"),r())}function ci(n,t){n&1&&(o(0,"mat-icon"),a(1,"light_mode"),r())}function mi(n,t){if(n&1){let e=S();o(0,"div",10)(1,"mat-icon"),a(2,"visibility"),r(),o(3,"span"),a(4,"Guest Mode"),r()(),o(5,"button",11),f("click",function(){v(e);let s=d();return C(s.register())}),a(6," Sign Up "),r()}}function di(n,t){n&1&&(h(0,"mat-divider"),o(1,"button",19)(2,"mat-icon"),a(3,"admin_panel_settings"),r(),o(4,"span"),a(5,"Admin Panel"),r()())}function pi(n,t){if(n&1){let e=S();o(0,"button",12)(1,"mat-icon"),a(2,"account_circle"),r()(),o(3,"mat-menu",13,0)(5,"div",14)(6,"mat-icon"),a(7,"person"),r(),o(8,"div",15)(9,"span",16),a(10),r(),o(11,"span",17),a(12),r()()(),h(13,"mat-divider"),o(14,"button",18),f("click",function(){v(e);let s=d();return C(s.goToDashboard())}),o(15,"mat-icon"),a(16,"dashboard"),r(),o(17,"span"),a(18,"Dashboard"),r()(),o(19,"button",18),f("click",function(){v(e);let s=d();return C(s.goToProfile())}),o(20,"mat-icon"),a(21,"person"),r(),o(22,"span"),a(23,"Profile"),r()(),o(24,"button",18),f("click",function(){v(e);let s=d();return C(s.goToSettings())}),o(25,"mat-icon"),a(26,"settings"),r(),o(27,"span"),a(28,"Settings"),r()(),g(29,di,6,0),h(30,"mat-divider"),o(31,"button",18),f("click",function(){v(e);let s=d();return C(s.logout())}),o(32,"mat-icon"),a(33,"logout"),r(),o(34,"span"),a(35,"Logout"),r()()()}if(n&2){let e=lt(4),i=d();x("matMenuTriggerFor",e),l(10),_(i.currentUser==null?null:i.currentUser.username),l(2),_(i.currentUser==null?null:i.currentUser.email),l(17),u((i.currentUser==null?null:i.currentUser.role)==="admin"?29:-1)}}function gi(n,t){if(n&1){let e=S();o(0,"button",20),f("click",function(){v(e);let s=d();return C(s.login())}),a(1," Login "),r(),o(2,"button",11),f("click",function(){v(e);let s=d();return C(s.register())}),a(3," Sign Up "),r()}}var we=class n{themeService=c(Yt);authService=c(q);guestService=c($);quizService=c(on);router=c(M);dialog=c(dn);hasCheckedForIncompleteSession=!1;menuToggle=ut();theme=this.themeService.theme;authState=this.authService.authState;guestState=this.guestService.guestState;isLoggingOut=O(!1);get currentUser(){return this.authState().user}get isAuthenticated(){return this.authState().isAuthenticated}get isGuest(){return this.guestState().isGuest&&!this.isAuthenticated}ngOnInit(){this.router.events.pipe(se(t=>t instanceof Z)).subscribe(()=>{!this.hasCheckedForIncompleteSession&&!this.router.url.includes("/quiz/")&&(this.checkForIncompleteSession(),this.hasCheckedForIncompleteSession=!0)}),this.router.url.includes("/quiz/")||(this.checkForIncompleteSession(),this.hasCheckedForIncompleteSession=!0)}checkForIncompleteSession(){let t=this.quizService.checkIncompleteSession();t&&this.quizService.restoreSession(t).subscribe({next:({session:e})=>{e.status==="in_progress"&&this.showResumeDialog(e)},error:()=>{console.log("Incomplete session check: Session not found or expired")}})}showResumeDialog(t){this.dialog.open(Pe,{width:"600px",maxWidth:"95vw",disableClose:!1,data:{session:t}}).afterClosed().subscribe(i=>{i?.action==="new"&&this.quizService.clearSession()})}toggleTheme(){this.themeService.toggleTheme()}onMenuToggle(){this.menuToggle.emit()}goToProfile(){this.router.navigate(["/profile"])}goToDashboard(){this.router.navigate(["/dashboard"])}goToSettings(){this.router.navigate(["/settings"])}logout(){this.dialog.open(hn,{width:"400px",data:{title:"Logout Confirmation",message:"Are you sure you want to logout?",confirmText:"Logout",cancelText:"Cancel",confirmColor:"warn"}}).afterClosed().subscribe(e=>{e&&(this.isLoggingOut.set(!0),this.authService.logout().subscribe({next:()=>{this.isLoggingOut.set(!1)},error:()=>{this.isLoggingOut.set(!1)}}))})}login(){this.router.navigate(["/login"])}register(){this.router.navigate(["/register"])}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-header"]],outputs:{menuToggle:"menuToggle"},decls:19,vars:5,consts:[["userMenu","matMenu"],["color","primary",1,"header"],[1,"header-container"],["mat-icon-button","","aria-label","Toggle menu",1,"menu-toggle","mobile-only",3,"click"],["routerLink","/",1,"logo"],[1,"logo-icon"],[1,"logo-text"],[1,"search-wrapper","desktop-only"],[1,"spacer"],["mat-icon-button","","aria-label","Toggle theme",3,"click","matTooltip"],[1,"guest-badge"],["mat-raised-button","","color","accent",3,"click"],["mat-icon-button","","aria-label","User menu",3,"matMenuTriggerFor"],["xPosition","before"],[1,"user-menu-header"],[1,"user-info"],[1,"username"],[1,"email"],["mat-menu-item","",3,"click"],["mat-menu-item","","routerLink","/admin"],["mat-button","",3,"click"]],template:function(e,i){e&1&&(o(0,"mat-toolbar",1)(1,"div",2)(2,"button",3),f("click",function(){return i.onMenuToggle()}),o(3,"mat-icon"),a(4,"menu"),r()(),o(5,"div",4)(6,"mat-icon",5),a(7,"quiz"),r(),o(8,"span",6),a(9,"Interview Quiz"),r()(),o(10,"div",7),h(11,"app-search"),r(),h(12,"div",8),o(13,"button",9),f("click",function(){return i.toggleTheme()}),g(14,li,2,0,"mat-icon")(15,ci,2,0,"mat-icon"),r(),g(16,mi,7,0),g(17,pi,36,4),g(18,gi,4,0),r()()),e&2&&(l(13),x("matTooltip",i.theme()==="light"?"Switch to dark mode":"Switch to light mode"),l(),u(i.theme()==="light"?14:15),l(2),u(i.isGuest?16:-1),l(),u(i.isAuthenticated?17:-1),l(),u(!i.isAuthenticated&&!i.isGuest?18:-1))},dependencies:[P,J,K,Pn,yn,E,L,F,k,w,ln,an,rn,sn,oe,ie,V,H,Me,ee,xe,Se],styles:[".header[_ngcontent-%COMP%]{position:fixed;top:0;left:0;right:0;z-index:var(--z-fixed);box-shadow:var(--shadow-md)}.header-container[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--spacing-md);width:100%;max-width:var(--container-max-width);margin:0 auto;padding:0 var(--spacing-md);height:var(--header-height)}@media (min-width: 768px){.header-container[_ngcontent-%COMP%]{padding:0 var(--spacing-lg)}}.menu-toggle[_ngcontent-%COMP%]{margin-right:var(--spacing-sm)}.logo[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;transition:transform var(--transition-fast)}.logo[_ngcontent-%COMP%]:hover{transform:scale(1.05)}.logo[_ngcontent-%COMP%]:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:var(--radius-sm)}.logo-icon[_ngcontent-%COMP%]{font-size:28px;width:28px;height:28px}.logo-text[_ngcontent-%COMP%]{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}@media (max-width: 480px){.logo-text[_ngcontent-%COMP%]{display:none}}.search-wrapper[_ngcontent-%COMP%]{flex:1;max-width:600px;margin:0 var(--spacing-lg)}@media (max-width: 1024px){.search-wrapper[_ngcontent-%COMP%]{max-width:400px;margin:0 var(--spacing-md)}}.spacer[_ngcontent-%COMP%]{flex:1}.guest-badge[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background-color:#ffffff26;border-radius:var(--radius-full);font-size:var(--font-size-sm)}.guest-badge[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}@media (max-width: 480px){.guest-badge[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:none}}.user-menu-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--color-surface)}.user-menu-header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:40px;width:40px;height:40px;color:var(--color-primary)}.user-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--spacing-xs)}.user-info[_ngcontent-%COMP%] .username[_ngcontent-%COMP%]{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.user-info[_ngcontent-%COMP%] .email[_ngcontent-%COMP%]{font-size:var(--font-size-sm);color:var(--color-text-secondary)} .mat-mdc-menu-panel{min-width:250px!important} .mat-mdc-menu-item{display:flex!important;align-items:center!important;gap:var(--spacing-sm)!important} .mat-mdc-menu-item mat-icon{margin-right:0!important}"]})};var kn="mat-badge-content",ui=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=b({type:n,selectors:[["ng-component"]],decls:0,vars:0,template:function(i,s){},styles:[`.mat-badge{position:relative}.mat-badge.mat-badge{overflow:visible}.mat-badge-content{position:absolute;text-align:center;display:inline-block;transition:transform 200ms ease-in-out;transform:scale(0.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;pointer-events:none;background-color:var(--mat-badge-background-color, var(--mat-sys-error));color:var(--mat-badge-text-color, var(--mat-sys-on-error));font-family:var(--mat-badge-text-font, var(--mat-sys-label-small-font));font-weight:var(--mat-badge-text-weight, var(--mat-sys-label-small-weight));border-radius:var(--mat-badge-container-shape, var(--mat-sys-corner-full))}.mat-badge-above .mat-badge-content{bottom:100%}.mat-badge-below .mat-badge-content{top:100%}.mat-badge-before .mat-badge-content{right:100%}[dir=rtl] .mat-badge-before .mat-badge-content{right:auto;left:100%}.mat-badge-after .mat-badge-content{left:100%}[dir=rtl] .mat-badge-after .mat-badge-content{left:auto;right:100%}@media(forced-colors: active){.mat-badge-content{outline:solid 1px;border-radius:0}}.mat-badge-disabled .mat-badge-content{background-color:var(--mat-badge-disabled-state-background-color, color-mix(in srgb, var(--mat-sys-error) 38%, transparent));color:var(--mat-badge-disabled-state-text-color, var(--mat-sys-on-error))}.mat-badge-hidden .mat-badge-content{display:none}.ng-animate-disabled .mat-badge-content,.mat-badge-content._mat-animation-noopable{transition:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:var(--mat-badge-legacy-small-size-container-size, unset);height:var(--mat-badge-legacy-small-size-container-size, unset);min-width:var(--mat-badge-small-size-container-size, 6px);min-height:var(--mat-badge-small-size-container-size, 6px);line-height:var(--mat-badge-small-size-line-height, 6px);padding:var(--mat-badge-small-size-container-padding, 0);font-size:var(--mat-badge-small-size-text-size, 0);margin:var(--mat-badge-small-size-container-offset, -6px 0)}.mat-badge-small.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-small-size-container-overlap-offset, -6px)}.mat-badge-medium .mat-badge-content{width:var(--mat-badge-legacy-container-size, unset);height:var(--mat-badge-legacy-container-size, unset);min-width:var(--mat-badge-container-size, 16px);min-height:var(--mat-badge-container-size, 16px);line-height:var(--mat-badge-line-height, 16px);padding:var(--mat-badge-container-padding, 0 4px);font-size:var(--mat-badge-text-size, var(--mat-sys-label-small-size));margin:var(--mat-badge-container-offset, -12px 0)}.mat-badge-medium.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-container-overlap-offset, -12px)}.mat-badge-large .mat-badge-content{width:var(--mat-badge-legacy-large-size-container-size, unset);height:var(--mat-badge-legacy-large-size-container-size, unset);min-width:var(--mat-badge-large-size-container-size, 16px);min-height:var(--mat-badge-large-size-container-size, 16px);line-height:var(--mat-badge-large-size-line-height, 16px);padding:var(--mat-badge-large-size-container-padding, 0 4px);font-size:var(--mat-badge-large-size-text-size, var(--mat-sys-label-small-size));margin:var(--mat-badge-large-size-container-offset, -12px 0)}.mat-badge-large.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-large-size-container-overlap-offset, -12px)}
`],encapsulation:2,changeDetection:0})}return n})(),zn=(()=>{class n{_ngZone=c(pe);_elementRef=c(de);_ariaDescriber=c(Lt);_renderer=c(nt);_animationsDisabled=Nt();_idGenerator=c(Ft);get color(){return this._color}set color(e){this._setColor(e),this._color=e}_color="primary";overlap=!0;disabled;position="above after";get content(){return this._content}set content(e){this._updateRenderedContent(e)}_content;get description(){return this._description}set description(e){this._updateDescription(e)}_description;size="medium";hidden;_badgeElement;_inlineBadgeDescription;_isInitialized=!1;_interactivityChecker=c(qt);_document=c(W);constructor(){let e=c(At);e.load(ui),e.load(Dt)}isAbove(){return this.position.indexOf("below")===-1}isAfter(){return this.position.indexOf("before")===-1}getBadgeElement(){return this._badgeElement}ngOnInit(){this._clearExistingBadges(),this.content&&!this._badgeElement&&(this._badgeElement=this._createBadgeElement(),this._updateRenderedContent(this.content)),this._isInitialized=!0}ngOnDestroy(){this._renderer.destroyNode&&(this._renderer.destroyNode(this._badgeElement),this._inlineBadgeDescription?.remove()),this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this.description)}_isHostInteractive(){return this._interactivityChecker.isFocusable(this._elementRef.nativeElement,{ignoreVisibility:!0})}_createBadgeElement(){let e=this._renderer.createElement("span"),i="mat-badge-active";return e.setAttribute("id",this._idGenerator.getId("mat-badge-content-")),e.setAttribute("aria-hidden","true"),e.classList.add(kn),this._animationsDisabled&&e.classList.add("_mat-animation-noopable"),this._elementRef.nativeElement.appendChild(e),typeof requestAnimationFrame=="function"&&!this._animationsDisabled?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{e.classList.add(i)})}):e.classList.add(i),e}_updateRenderedContent(e){let i=`${e??""}`.trim();this._isInitialized&&i&&!this._badgeElement&&(this._badgeElement=this._createBadgeElement()),this._badgeElement&&(this._badgeElement.textContent=i),this._content=i}_updateDescription(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this.description),(!e||this._isHostInteractive())&&this._removeInlineDescription(),this._description=e,this._isHostInteractive()?this._ariaDescriber.describe(this._elementRef.nativeElement,e):this._updateInlineDescription()}_updateInlineDescription(){this._inlineBadgeDescription||(this._inlineBadgeDescription=this._document.createElement("span"),this._inlineBadgeDescription.classList.add("cdk-visually-hidden")),this._inlineBadgeDescription.textContent=this.description,this._badgeElement?.appendChild(this._inlineBadgeDescription)}_removeInlineDescription(){this._inlineBadgeDescription?.remove(),this._inlineBadgeDescription=void 0}_setColor(e){let i=this._elementRef.nativeElement.classList;i.remove(`mat-badge-${this._color}`),e&&i.add(`mat-badge-${e}`)}_clearExistingBadges(){let e=this._elementRef.nativeElement.querySelectorAll(`:scope > .${kn}`);for(let i of Array.from(e))i!==this._badgeElement&&i.remove()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=ue({type:n,selectors:[["","matBadge",""]],hostAttrs:[1,"mat-badge"],hostVars:20,hostBindings:function(i,s){i&2&&D("mat-badge-overlap",s.overlap)("mat-badge-above",s.isAbove())("mat-badge-below",!s.isAbove())("mat-badge-before",!s.isAfter())("mat-badge-after",s.isAfter())("mat-badge-small",s.size==="small")("mat-badge-medium",s.size==="medium")("mat-badge-large",s.size==="large")("mat-badge-hidden",s.hidden||!s.content)("mat-badge-disabled",s.disabled)},inputs:{color:[0,"matBadgeColor","color"],overlap:[2,"matBadgeOverlap","overlap",ve],disabled:[2,"matBadgeDisabled","disabled",ve],position:[0,"matBadgePosition","position"],content:[0,"matBadge","content"],description:[0,"matBadgeDescription","description"],size:[0,"matBadgeSize","size"],hidden:[2,"matBadgeHidden","hidden",ve]}})}return n})(),En=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=me({imports:[Qt,X,X]})}return n})();var fi=(n,t)=>t.route;function _i(n,t){n&1&&h(0,"mat-divider")}function vi(n,t){if(n&1&&(o(0,"a",3)(1,"mat-icon",4),a(2),r(),o(3,"span",5),a(4),r()(),g(5,_i,1,0,"mat-divider")),n&2){let e=d().$implicit,i=d();D("active",i.isActiveRoute(e.route)),x("routerLink",e.route)("matTooltip",e.label)("matTooltipDisabled",i.isOpen()),l(),x("matBadge",e.badge),l(),y(" ",e.icon," "),l(2),_(e.label),l(),u(e.dividerAfter?5:-1)}}function Ci(n,t){if(n&1&&g(0,vi,6,9),n&2){let e=t.$implicit,i=d();u(i.shouldShowItem(e)?0:-1)}}function bi(n,t){n&1&&(o(0,"div",2),h(1,"mat-divider"),o(2,"div",6)(3,"mat-icon"),a(4,"info"),r(),o(5,"p"),a(6,"Sign up for full access"),r(),o(7,"button",7),a(8," Create Account "),r()()())}var ke=class n{storageService=c(B);router=c(M);isOpen=ht(!1);currentRoute="";constructor(){this.router.events.pipe(se(t=>t instanceof Z)).subscribe(t=>{this.currentRoute=t.urlAfterRedirects})}navItems=[{label:"Home",icon:"home",route:"/"},{label:"Dashboard",icon:"dashboard",route:"/dashboard",requiresAuth:!0,dividerAfter:!0},{label:"Categories",icon:"category",route:"/categories"},{label:"Start Quiz",icon:"play_circle",route:"/quiz/setup"},{label:"Quiz History",icon:"history",route:"/history",requiresAuth:!0},{label:"Bookmarks",icon:"bookmark",route:"/bookmarks",requiresAuth:!0,dividerAfter:!0},{label:"Profile",icon:"person",route:"/profile",requiresAuth:!0},{label:"Settings",icon:"settings",route:"/settings",requiresAuth:!0,dividerAfter:!0},{label:"Admin Panel",icon:"admin_panel_settings",route:"/admin",requiresAdmin:!0},{label:"Manage Categories",icon:"category",route:"/admin/categories",requiresAdmin:!0},{label:"User Management",icon:"people",route:"/admin/users",requiresAdmin:!0},{label:"Questions",icon:"quiz",route:"/admin/questions",requiresAdmin:!0},{label:"Analytics",icon:"analytics",route:"/admin/analytics",requiresAdmin:!0}];get currentUser(){return this.storageService.getUserData()}get isAuthenticated(){return this.storageService.isAuthenticated()}get isAdmin(){return this.currentUser?.role==="admin"}shouldShowItem(t){return!(t.requiresAdmin&&!this.isAdmin||t.requiresAuth&&!this.isAuthenticated)}isActiveRoute(t){return t==="/"?this.currentRoute==="/":this.currentRoute.startsWith(t)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-sidebar"]],inputs:{isOpen:[1,"isOpen"]},decls:6,vars:3,consts:[[1,"sidebar"],[1,"sidebar-nav"],[1,"guest-section"],["mat-list-item","","matTooltipPosition","right",3,"routerLink","matTooltip","matTooltipDisabled"],["matListItemIcon","","matBadgeColor","accent",3,"matBadge"],["matListItemTitle","",1,"nav-label"],[1,"guest-prompt"],["mat-raised-button","","color","primary","routerLink","/register"]],template:function(e,i){e&1&&(o(0,"aside",0)(1,"nav",1)(2,"mat-nav-list"),R(3,Ci,1,1,null,null,fi),r(),g(5,bi,9,0,"div",2),r()()),e&2&&(D("open",i.isOpen()),l(3),A(i.navItems),l(2),u(i.isAuthenticated?-1:5))},dependencies:[P,J,K,tn,en,Xt,Jt,H,Kt,k,w,oe,ie,V,En,zn],styles:[".sidebar[_ngcontent-%COMP%]{position:fixed;top:var(--header-height);left:0;bottom:0;width:var(--sidebar-width);background-color:var(--color-surface-elevated);border-right:1px solid var(--color-border);overflow-y:auto;overflow-x:hidden;z-index:var(--z-sticky);transition:transform var(--transition-base)}@media (max-width: 1023px){.sidebar[_ngcontent-%COMP%]{transform:translate(-100%);box-shadow:var(--shadow-xl)}.sidebar.open[_ngcontent-%COMP%]{transform:translate(0)}}@media (min-width: 1024px){.sidebar[_ngcontent-%COMP%]{transform:translate(0)}}.sidebar[_ngcontent-%COMP%]::-webkit-scrollbar{width:6px}.sidebar[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent}.sidebar[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}.sidebar[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:var(--color-text-disabled)}.sidebar-nav[_ngcontent-%COMP%]{padding:var(--spacing-md) 0}.sidebar-nav[_ngcontent-%COMP%] .mat-mdc-list{padding:0}.sidebar-nav[_ngcontent-%COMP%] .mat-mdc-list-item{height:56px;padding:0 var(--spacing-lg);margin:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);transition:background-color var(--transition-fast),transform var(--transition-fast);color:var(--color-text-secondary)}.sidebar-nav[_ngcontent-%COMP%] .mat-mdc-list-item:hover{background-color:var(--color-surface);transform:translate(4px)}.sidebar-nav[_ngcontent-%COMP%] .mat-mdc-list-item.active{background-color:var(--color-primary-lighter);color:var(--color-primary);font-weight:var(--font-weight-medium)}.sidebar-nav[_ngcontent-%COMP%] .mat-mdc-list-item.active mat-icon{color:var(--color-primary)}.sidebar-nav[_ngcontent-%COMP%] .mat-mdc-list-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.sidebar-nav[_ngcontent-%COMP%] .mat-mdc-list-item-icon{margin-right:var(--spacing-md);color:inherit}.sidebar-nav[_ngcontent-%COMP%] .mat-mdc-list-item-title{font-size:var(--font-size-base);color:inherit}.sidebar-nav[_ngcontent-%COMP%] mat-divider[_ngcontent-%COMP%]{margin:var(--spacing-md) var(--spacing-lg);background-color:var(--color-divider)}@media (max-width: 1023px){.nav-label[_ngcontent-%COMP%]{display:inline}}.guest-section[_ngcontent-%COMP%]{margin-top:auto;padding-top:var(--spacing-lg)}.guest-prompt[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);margin:var(--spacing-md);background-color:var(--color-surface);border-radius:var(--radius-lg);text-align:center}.guest-prompt[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:32px;width:32px;height:32px;color:var(--color-primary)}.guest-prompt[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.guest-prompt[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%} .mat-badge-content{font-size:10px;font-weight:var(--font-weight-semibold)}"]})};var Tn=(n,t)=>t.label;function xi(n,t){if(n&1&&(o(0,"a",9)(1,"mat-icon"),a(2),r()()),n&2){let e=t.$implicit;x("href",e.url,Xe),ot("aria-label",e.label),l(2),_(e.icon)}}function Mi(n,t){n&1&&(o(0,"span",31),a(1,"\u2022"),r())}function yi(n,t){if(n&1&&(o(0,"a",30),a(1),r(),g(2,Mi,2,0,"span",31)),n&2){let e=t.$implicit,i=t.$index,s=t.$count;x("routerLink",e.route),l(),y(" ",e.label," "),l(),u(i!==s-1?2:-1)}}var ze=class n{currentYear=new Date().getFullYear();appVersion="1.0.0";socialLinks=[{icon:"public",label:"Website",url:"https://yourdomain.com"},{icon:"alternate_email",label:"Twitter",url:"https://twitter.com/yourapp"},{icon:"alternate_email",label:"LinkedIn",url:"https://linkedin.com/company/yourapp"},{icon:"code",label:"GitHub",url:"https://github.com/yourorg/yourapp"}];footerLinks=[{label:"About",route:"/about"},{label:"Help",route:"/help"},{label:"Privacy Policy",route:"/privacy"},{label:"Terms of Service",route:"/terms"},{label:"Contact",route:"/contact"}];static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-footer"]],decls:60,vars:2,consts:[[1,"footer"],[1,"footer-container"],[1,"footer-top"],[1,"footer-section","brand-section"],[1,"brand"],[1,"brand-icon"],[1,"brand-name"],[1,"brand-description"],[1,"social-links"],["target","_blank","rel","noopener noreferrer","mat-icon-button","",3,"href"],[1,"footer-section"],[1,"footer-heading"],[1,"footer-nav"],["routerLink","/categories",1,"footer-link"],["routerLink","/dashboard",1,"footer-link"],["routerLink","/history",1,"footer-link"],["routerLink","/bookmarks",1,"footer-link"],["routerLink","/about",1,"footer-link"],["routerLink","/help",1,"footer-link"],["routerLink","/faq",1,"footer-link"],["routerLink","/contact",1,"footer-link"],["routerLink","/privacy",1,"footer-link"],["routerLink","/terms",1,"footer-link"],["routerLink","/cookies",1,"footer-link"],["routerLink","/accessibility",1,"footer-link"],[1,"footer-divider"],[1,"footer-bottom"],[1,"copyright"],[1,"version"],[1,"footer-bottom-links"],[1,"footer-bottom-link",3,"routerLink"],[1,"separator"]],template:function(e,i){e&1&&(o(0,"footer",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4)(5,"mat-icon",5),a(6,"quiz"),r(),o(7,"span",6),a(8,"Interview Quiz"),r()(),o(9,"p",7),a(10," Master your interview skills with interactive quizzes and comprehensive practice tests. "),r(),o(11,"div",8),R(12,xi,3,3,"a",9,Tn),r()(),o(14,"div",10)(15,"h3",11),a(16,"Quick Links"),r(),o(17,"nav",12)(18,"a",13),a(19,"Browse Categories"),r(),o(20,"a",14),a(21,"Dashboard"),r(),o(22,"a",15),a(23,"Quiz History"),r(),o(24,"a",16),a(25,"Bookmarks"),r()()(),o(26,"div",10)(27,"h3",11),a(28,"Resources"),r(),o(29,"nav",12)(30,"a",17),a(31,"About Us"),r(),o(32,"a",18),a(33,"Help Center"),r(),o(34,"a",19),a(35,"FAQ"),r(),o(36,"a",20),a(37,"Contact"),r()()(),o(38,"div",10)(39,"h3",11),a(40,"Legal"),r(),o(41,"nav",12)(42,"a",21),a(43,"Privacy Policy"),r(),o(44,"a",22),a(45,"Terms of Service"),r(),o(46,"a",23),a(47,"Cookie Policy"),r(),o(48,"a",24),a(49,"Accessibility"),r()()()(),h(50,"mat-divider",25),o(51,"div",26)(52,"div",27)(53,"p"),a(54),r(),o(55,"p",28),a(56),r()(),o(57,"nav",29),R(58,yi,3,3,null,null,Tn),r()()()()),e&2&&(l(12),A(i.socialLinks),l(42),y("\xA9 ",i.currentYear," Interview Quiz. All rights reserved."),l(2),y("Version ",i.appVersion),l(2),A(i.footerLinks))},dependencies:[P,J,K,k,w,E,F,V,H],styles:[".footer[_ngcontent-%COMP%]{background-color:var(--color-surface);border-top:1px solid var(--color-border);margin-top:auto;padding:var(--spacing-2xl) 0 var(--spacing-lg)}@media (max-width: 767px){.footer[_ngcontent-%COMP%]{padding:var(--spacing-xl) 0 var(--spacing-md)}}.footer-container[_ngcontent-%COMP%]{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--spacing-lg)}@media (max-width: 767px){.footer-container[_ngcontent-%COMP%]{padding:0 var(--spacing-md)}}.footer-top[_ngcontent-%COMP%]{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:var(--spacing-2xl);margin-bottom:var(--spacing-xl)}@media (max-width: 1023px){.footer-top[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr);gap:var(--spacing-xl)}}@media (max-width: 767px){.footer-top[_ngcontent-%COMP%]{grid-template-columns:1fr;gap:var(--spacing-lg)}}.footer-section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--spacing-md)}.brand-section[_ngcontent-%COMP%] .brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.brand-section[_ngcontent-%COMP%] .brand[_ngcontent-%COMP%] .brand-icon[_ngcontent-%COMP%]{font-size:32px;width:32px;height:32px;color:var(--color-primary)}.brand-section[_ngcontent-%COMP%] .brand[_ngcontent-%COMP%] .brand-name[_ngcontent-%COMP%]{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.brand-section[_ngcontent-%COMP%] .brand-description[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);margin:0}.social-links[_ngcontent-%COMP%]{display:flex;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.social-links[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--color-text-secondary);transition:color var(--transition-fast),transform var(--transition-fast)}.social-links[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:var(--color-primary);transform:translateY(-2px)}.social-links[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.footer-heading[_ngcontent-%COMP%]{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.footer-nav[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--spacing-sm)}.footer-link[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:var(--font-size-sm);text-decoration:none;transition:color var(--transition-fast),padding-left var(--transition-fast)}.footer-link[_ngcontent-%COMP%]:hover{color:var(--color-primary);padding-left:var(--spacing-xs)}.footer-link[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.footer-divider[_ngcontent-%COMP%]{margin:var(--spacing-xl) 0;background-color:var(--color-divider)}.footer-bottom[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-md)}@media (max-width: 767px){.footer-bottom[_ngcontent-%COMP%]{flex-direction:column;align-items:center;text-align:center}}.copyright[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--spacing-xs)}.copyright[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.copyright[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{font-size:var(--font-size-xs);color:var(--color-text-disabled)}.footer-bottom-links[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}@media (max-width: 767px){.footer-bottom-links[_ngcontent-%COMP%]{justify-content:center}}.footer-bottom-link[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:var(--font-size-sm);text-decoration:none;transition:color var(--transition-fast)}.footer-bottom-link[_ngcontent-%COMP%]:hover{color:var(--color-primary)}.footer-bottom-link[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.separator[_ngcontent-%COMP%]{color:var(--color-text-disabled);-webkit-user-select:none;user-select:none}"]})};var Ee=class n{static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-loading"]],decls:9,vars:0,consts:[[1,"app-loading-container"],[1,"app-loading-content"],[1,"app-logo"],["diameter","50"]],template:function(e,i){e&1&&(o(0,"div",0)(1,"div",1)(2,"mat-icon",2),a(3,"quiz"),r(),o(4,"h1"),a(5,"Interview Quiz"),r(),h(6,"mat-spinner",3),o(7,"p"),a(8,"Loading application..."),r()()())},dependencies:[P,ee,be,k,w],styles:[".app-loading-container[_ngcontent-%COMP%]{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--surface-color);z-index:9999}.app-loading-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:1.5rem;animation:_ngcontent-%COMP%_fadeIn .3s ease-in}.app-loading-content[_ngcontent-%COMP%] .app-logo[_ngcontent-%COMP%]{font-size:64px;width:64px;height:64px;color:var(--primary-color);animation:_ngcontent-%COMP%_pulse 2s infinite}.app-loading-content[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:2rem;font-weight:500;color:var(--text-primary)}.app-loading-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--text-secondary);font-size:.875rem}@keyframes _ngcontent-%COMP%_fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes _ngcontent-%COMP%_pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}"]})};function Pi(n,t){if(n&1&&(o(0,"span",7)(1,"mat-icon"),a(2,"quiz"),r(),a(3),r()),n&2){let e=d();x("matTooltip",e.quizText()),l(3),y(" ",e.quizText()," ")}}function Oi(n,t){if(n&1&&(o(0,"span",8)(1,"mat-icon"),a(2,"schedule"),r(),a(3),r()),n&2){let e=d();l(3),y(" ",e.timeRemaining," ")}}function Si(n,t){if(n&1&&h(0,"mat-progress-bar",12),n&2){let e=d();x("value",e.quizProgress())}}var Te=class n{guestService=c($);router=c(M);guestState=this.guestService.guestState;timeRemaining="";timerInterval;quizProgress=N(()=>{let t=this.guestState().quizLimit;return t?t.quizzesTaken/t.maxQuizzes*100:0});quizText=N(()=>{let t=this.guestState().quizLimit;return t?`${t.quizzesRemaining} of ${t.maxQuizzes} quizzes remaining`:""});ngOnInit(){this.guestService.getQuizLimit().subscribe(),this.updateTimeRemaining(),this.timerInterval=window.setInterval(()=>{this.updateTimeRemaining()},6e4)}ngOnDestroy(){this.timerInterval&&clearInterval(this.timerInterval)}updateTimeRemaining(){this.timeRemaining=this.guestService.getTimeRemaining()}navigateToRegister(){this.router.navigate(["/register"])}dismissBanner(){}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-guest-banner"]],decls:20,vars:3,consts:[[1,"guest-banner"],[1,"banner-content"],[1,"banner-left"],[1,"guest-icon"],[1,"session-info"],[1,"guest-label"],[1,"stats"],[1,"quiz-count",3,"matTooltip"],["matTooltip","Session expires after this time",1,"time-remaining"],[1,"banner-right"],[1,"upgrade-message"],["mat-raised-button","","color","primary",1,"signup-button",3,"click"],["mode","determinate",1,"quiz-progress",3,"value"]],template:function(e,i){e&1&&(o(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon",3),a(4,"visibility"),r(),o(5,"div",4)(6,"span",5),a(7,"Guest Mode"),r(),o(8,"div",6),g(9,Pi,4,2,"span",7),g(10,Oi,4,1,"span",8),r()()(),o(11,"div",9)(12,"div",10)(13,"mat-icon"),a(14,"stars"),r(),o(15,"span"),a(16,"Sign Up for Full Access"),r()(),o(17,"button",11),f("click",function(){return i.navigateToRegister()}),a(18," Sign Up Now "),r()()(),g(19,Si,1,1,"mat-progress-bar",12),r()),e&2&&(l(9),u(i.guestState().quizLimit?9:-1),l(),u(i.timeRemaining?10:-1),l(9),u(i.guestState().quizLimit?19:-1))},dependencies:[P,k,w,E,L,ne,te,oe,ie],styles:[".guest-banner[_ngcontent-%COMP%]{background:linear-gradient(90deg,var(--accent-color) 0%,var(--primary-color) 100%);color:#fff;box-shadow:0 2px 8px #0000001a;position:sticky;top:64px;z-index:100}.guest-banner[_ngcontent-%COMP%] .banner-content[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;gap:1rem}.guest-banner[_ngcontent-%COMP%] .banner-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;flex:1}.guest-banner[_ngcontent-%COMP%] .banner-left[_ngcontent-%COMP%] .guest-icon[_ngcontent-%COMP%]{font-size:32px;width:32px;height:32px}.guest-banner[_ngcontent-%COMP%] .banner-left[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.guest-banner[_ngcontent-%COMP%] .banner-left[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%] .guest-label[_ngcontent-%COMP%]{font-weight:600;font-size:1rem}.guest-banner[_ngcontent-%COMP%] .banner-left[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1.5rem;font-size:.875rem;opacity:.95}.guest-banner[_ngcontent-%COMP%] .banner-left[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%] .quiz-count[_ngcontent-%COMP%], .guest-banner[_ngcontent-%COMP%] .banner-left[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%] .time-remaining[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.guest-banner[_ngcontent-%COMP%] .banner-left[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%] .quiz-count[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%], .guest-banner[_ngcontent-%COMP%] .banner-left[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%] .time-remaining[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}.guest-banner[_ngcontent-%COMP%] .banner-right[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem}.guest-banner[_ngcontent-%COMP%] .banner-right[_ngcontent-%COMP%] .upgrade-message[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-weight:500}.guest-banner[_ngcontent-%COMP%] .banner-right[_ngcontent-%COMP%] .upgrade-message[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px}.guest-banner[_ngcontent-%COMP%] .banner-right[_ngcontent-%COMP%] .signup-button[_ngcontent-%COMP%]{background-color:#fff!important;color:var(--primary-color)!important;font-weight:600}.guest-banner[_ngcontent-%COMP%] .banner-right[_ngcontent-%COMP%] .signup-button[_ngcontent-%COMP%]:hover{background-color:#ffffffe6!important}.guest-banner[_ngcontent-%COMP%] .quiz-progress[_ngcontent-%COMP%]{height:4px}.guest-banner[_ngcontent-%COMP%] .quiz-progress[_ngcontent-%COMP%] .mat-mdc-progress-bar-fill:after{background-color:#fff!important}@media (max-width: 768px){.guest-banner[_ngcontent-%COMP%] .banner-content[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;padding:.75rem 1rem}.guest-banner[_ngcontent-%COMP%] .banner-left[_ngcontent-%COMP%]{width:100%}.guest-banner[_ngcontent-%COMP%] .banner-left[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%]{flex-wrap:wrap;gap:.75rem}.guest-banner[_ngcontent-%COMP%] .banner-right[_ngcontent-%COMP%]{width:100%;justify-content:space-between}.guest-banner[_ngcontent-%COMP%] .banner-right[_ngcontent-%COMP%] .upgrade-message[_ngcontent-%COMP%]{font-size:.875rem}.guest-banner[_ngcontent-%COMP%] .banner-right[_ngcontent-%COMP%] .upgrade-message[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}.guest-banner[_ngcontent-%COMP%] .banner-right[_ngcontent-%COMP%] .signup-button[_ngcontent-%COMP%]{padding:0 1rem}}@media (max-width: 480px){.guest-banner[_ngcontent-%COMP%] .banner-right[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;gap:.5rem}.guest-banner[_ngcontent-%COMP%] .banner-right[_ngcontent-%COMP%] .signup-button[_ngcontent-%COMP%]{width:100%}}"]})};function wi(n,t){n&1&&h(0,"app-loading")}function ki(n,t){n&1&&h(0,"mat-progress-bar",0)}function zi(n,t){n&1&&h(0,"app-guest-banner")}function Ei(n,t){if(n&1){let e=S();o(0,"div",7),f("click",function(){v(e);let s=d();return C(s.closeSidebar())}),r()}}var Ie=class n{authService=c(q);guestService=c($);toastService=c(Q);router=c(M);title="Interview Quiz Application";isSidebarOpen=O(!1);isInitializing=O(!0);isNavigating=O(!1);isGuest=N(()=>this.guestService.guestState().isGuest&&!this.authService.authState().isAuthenticated);ngOnInit(){this.initializeApp(),this.setupNavigationListener()}setupNavigationListener(){this.router.events.subscribe(t=>{t instanceof xt?this.isNavigating.set(!0):(t instanceof Z||t instanceof Mt||t instanceof yt)&&this.isNavigating.set(!1)})}initializeApp(){if(!this.authService.authState().isAuthenticated){this.isInitializing.set(!1);return}this.authService.verifyToken().subscribe({next:e=>{this.isInitializing.set(!1),e.success||(this.toastService.warning("Session expired. Please login again."),this.router.navigate(["/login"]))},error:()=>{this.isInitializing.set(!1),this.toastService.warning("Session expired. Please login again."),this.router.navigate(["/login"])}})}toggleSidebar(){this.isSidebarOpen.update(t=>!t)}closeSidebar(){this.isSidebarOpen.set(!1)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-root"]],decls:12,vars:5,consts:[["mode","indeterminate","role","progressbar","aria-label","Page loading",1,"navigation-progress-bar"],[1,"app-shell"],[3,"menuToggle"],[1,"main-container"],[3,"isOpen"],[1,"sidebar-overlay"],[1,"main-content"],[1,"sidebar-overlay",3,"click"]],template:function(e,i){e&1&&(g(0,wi,1,0,"app-loading"),g(1,ki,1,0,"mat-progress-bar",0),h(2,"app-toast-container"),o(3,"div",1)(4,"app-header",2),f("menuToggle",function(){return i.toggleSidebar()}),r(),g(5,zi,1,0,"app-guest-banner"),o(6,"div",3),h(7,"app-sidebar",4),g(8,Ei,1,0,"div",5),o(9,"main",6),h(10,"router-outlet"),r()(),h(11,"app-footer"),r()),e&2&&(u(i.isInitializing()?0:-1),l(),u(i.isNavigating()?1:-1),l(4),u(i.isGuest()?5:-1),l(2),x("isOpen",i.isSidebarOpen()),l(),u(i.isSidebarOpen()?8:-1))},dependencies:[P,Pt,ne,te,ye,we,ke,ze,Ee,Te],styles:[".navigation-progress-bar[_ngcontent-%COMP%]{position:fixed;top:0;left:0;right:0;z-index:calc(var(--z-modal) + 1);height:3px}.navigation-progress-bar[_ngcontent-%COMP%] .mat-mdc-progress-bar-fill:after{background-color:var(--color-primary)}.navigation-progress-bar[_ngcontent-%COMP%] .mat-mdc-progress-bar-buffer{background-color:rgba(var(--color-primary-rgb),.3)}.app-shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-height:100vh;background-color:var(--color-background)}.main-container[_ngcontent-%COMP%]{display:flex;flex:1;position:relative;margin-top:var(--header-height)}.main-content[_ngcontent-%COMP%]{flex:1;padding:var(--spacing-lg);overflow-x:hidden;min-height:calc(100vh - var(--header-height) - var(--footer-height))}@media (min-width: 1024px){.main-content[_ngcontent-%COMP%]{margin-left:var(--sidebar-width)}}@media (max-width: 767px){.main-content[_ngcontent-%COMP%]{padding:var(--spacing-md)}}.sidebar-overlay[_ngcontent-%COMP%]{position:fixed;top:var(--header-height);left:0;right:0;bottom:0;background-color:#00000080;z-index:calc(var(--z-sticky) - 1);animation:_ngcontent-%COMP%_fadeIn .25s ease-out}@media (min-width: 1024px){.sidebar-overlay[_ngcontent-%COMP%]{display:none}}@keyframes _ngcontent-%COMP%_fadeIn{0%{opacity:0}to{opacity:1}}html[_ngcontent-%COMP%]{scroll-behavior:smooth}@media (max-width: 1023px){body.sidebar-open[_ngcontent-%COMP%]{overflow:hidden}}"]})};_t(Ie,Mn).catch(n=>console.error(n));