import{a as k,c as E,i as O}from"./chunk-6NRCTHHS.js";import{Aa as R,j as v,w as P,wa as y,ya as D,za as S}from"./chunk-COFYR5MX.js";import{Db as s,Eb as m,Ic as M,Jc as c,Kb as n,Lb as t,Tb as C,Xb as g,Za as a,Zb as p,ia as u,ib as h,ja as _,kc as w,lc as r,mc as f,nc as b,ob as x}from"./chunk-2MUIW2M6.js";function I(o,l){if(o&1&&(n(0,"p",5),r(1),t()),o&2){let e=p();a(),b("Error Code: ",e.errorCode())}}function N(o,l){if(o&1){let e=C();n(0,"button",13),g("click",function(){u(e);let d=p();return _(d.onRetry())}),n(1,"mat-icon"),r(2,"refresh"),t(),r(3," Retry "),t()}}function V(o,l){if(o&1){let e=C();n(0,"button",14),g("click",function(){u(e);let d=p();return _(d.reloadPage())}),n(1,"mat-icon"),r(2,"refresh"),t(),r(3," Reload Page "),t()}}function B(o,l){if(o&1){let e=C();n(0,"button",15),g("click",function(){u(e);let d=p();return _(d.goBack())}),n(1,"mat-icon"),r(2,"arrow_back"),t(),r(3," Go Back "),t()}}function z(o,l){if(o&1&&(n(0,"div",17)(1,"pre"),r(2),t()()),o&2){let e=p(2);a(2),f(e.errorDetails())}}function G(o,l){if(o&1){let e=C();n(0,"div",11)(1,"button",16),g("click",function(){u(e);let d=p();return _(d.toggleDetails())}),n(2,"mat-icon"),r(3),t(),r(4),t(),s(5,z,3,1,"div",17),t()}if(o&2){let e=p();a(3),f(e.detailsExpanded?"expand_less":"expand_more"),a(),b(" ",e.detailsExpanded?"Hide":"Show"," Details "),a(),m(e.detailsExpanded?5:-1)}}function H(o,l){o&1&&(n(0,"div",12)(1,"p"),r(2,"If the problem persists, please contact support."),t()())}var T=class o{constructor(l){this.router=l}title=c("Something Went Wrong");message=c("An unexpected error occurred. Please try again or contact support if the problem persists.");errorCode=c(null);errorType=c("default");errorDetails=c(null);showRetry=c(!0);showReload=c(!1);showBack=c(!0);showDetails=c(!1);showSupport=c(!0);retry=M();detailsExpanded=!1;getIcon(){switch(this.errorType()){case"500":return"report_problem";case"404":return"search_off";case"403":return"lock";case"401":return"person_off";case"network":return"cloud_off";default:return"error_outline"}}toggleDetails(){this.detailsExpanded=!this.detailsExpanded}onRetry(){this.retry.emit()}reloadPage(){window.location.reload()}goHome(){this.router.navigate(["/"])}goBack(){window.history.length>1?window.history.back():this.goHome()}static \u0275fac=function(e){return new(e||o)(h(P))};static \u0275cmp=x({type:o,selectors:[["app-error"]],inputs:{title:[1,"title"],message:[1,"message"],errorCode:[1,"errorCode"],errorType:[1,"errorType"],errorDetails:[1,"errorDetails"],showRetry:[1,"showRetry"],showReload:[1,"showReload"],showBack:[1,"showBack"],showDetails:[1,"showDetails"],showSupport:[1,"showSupport"]},outputs:{retry:"retry"},decls:21,vars:11,consts:[[1,"error-container"],[1,"error-card"],[1,"error-icon"],[1,"error-title"],[1,"error-message"],[1,"error-code"],[1,"error-actions"],["mat-raised-button","","color","primary","aria-label","Retry the operation"],["mat-raised-button","","color","primary","aria-label","Reload the page"],["mat-raised-button","","aria-label","Go to home page",3,"click"],["mat-stroked-button","","aria-label","Go back"],[1,"error-details"],[1,"support-message"],["mat-raised-button","","color","primary","aria-label","Retry the operation",3,"click"],["mat-raised-button","","color","primary","aria-label","Reload the page",3,"click"],["mat-stroked-button","","aria-label","Go back",3,"click"],["mat-button","","aria-label","Toggle error details",1,"details-toggle",3,"click"],[1,"details-content"]],template:function(e,i){e&1&&(n(0,"div",0)(1,"mat-card",1)(2,"mat-card-content")(3,"div",2)(4,"mat-icon"),r(5),t()(),n(6,"h1",3),r(7),t(),n(8,"p",4),r(9),t(),s(10,I,2,1,"p",5),n(11,"div",6),s(12,N,4,0,"button",7),s(13,V,4,0,"button",8),n(14,"button",9),g("click",function(){return i.goHome()}),n(15,"mat-icon"),r(16,"home"),t(),r(17," Go to Home "),t(),s(18,B,4,0,"button",10),t(),s(19,G,6,3,"div",11),s(20,H,3,0,"div",12),t()()()),e&2&&(a(4),w("error-icon-"+i.errorType()),a(),b(" ",i.getIcon()," "),a(2),f(i.title()),a(2),f(i.message()),a(),m(i.errorCode()?10:-1),a(2),m(i.showRetry()?12:-1),a(),m(i.showReload()?13:-1),a(5),m(i.showBack()?18:-1),a(),m(i.showDetails()&&i.errorDetails()?19:-1),a(),m(i.showSupport()?20:-1))},dependencies:[v,D,y,R,S,O,k,E],styles:[".error-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:1rem;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.error-card[_ngcontent-%COMP%]{max-width:600px;width:100%;text-align:center;padding:2rem}.error-icon[_ngcontent-%COMP%]{margin-bottom:1.5rem}.error-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:80px;width:80px;height:80px}.error-icon-500[_ngcontent-%COMP%]{color:#f44336}.error-icon-404[_ngcontent-%COMP%], .error-icon-403[_ngcontent-%COMP%], .error-icon-401[_ngcontent-%COMP%]{color:#ff9800}.error-icon-network[_ngcontent-%COMP%]{color:#9e9e9e}.error-icon-default[_ngcontent-%COMP%]{color:#f44336}.error-title[_ngcontent-%COMP%]{font-size:2rem;font-weight:600;color:#333;margin-bottom:1rem}.error-message[_ngcontent-%COMP%]{font-size:1.125rem;color:#666;margin-bottom:1rem;line-height:1.6}.error-code[_ngcontent-%COMP%]{font-size:.875rem;color:#999;font-family:Courier New,monospace;margin-bottom:1.5rem}.error-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin:2rem 0}.error-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-width:140px}.error-details[_ngcontent-%COMP%]{margin-top:2rem;text-align:left}.details-toggle[_ngcontent-%COMP%]{width:100%;justify-content:center;margin-bottom:1rem}.details-content[_ngcontent-%COMP%]{background:#f5f5f5;border-radius:4px;padding:1rem;max-height:300px;overflow-y:auto}.details-content[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{margin:0;font-size:.875rem;color:#333;white-space:pre-wrap;word-break:break-word}.support-message[_ngcontent-%COMP%]{margin-top:2rem;padding-top:2rem;border-top:1px solid #e0e0e0}.support-message[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:#666;font-size:.875rem}@media (prefers-color-scheme: dark){.error-container[_ngcontent-%COMP%]{background:linear-gradient(135deg,#1a1a2e,#16213e)}.error-card[_ngcontent-%COMP%]{background:#1e1e1e;color:#e0e0e0}.error-title[_ngcontent-%COMP%]{color:#e0e0e0}.error-message[_ngcontent-%COMP%]{color:#b0b0b0}.details-content[_ngcontent-%COMP%]{background:#2a2a2a}.details-content[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{color:#e0e0e0}.support-message[_ngcontent-%COMP%]{border-top-color:#333}}@media (max-width: 768px){.error-card[_ngcontent-%COMP%]{padding:1.5rem}.error-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:60px;width:60px;height:60px}.error-title[_ngcontent-%COMP%]{font-size:1.5rem}.error-message[_ngcontent-%COMP%]{font-size:1rem}.error-actions[_ngcontent-%COMP%]{flex-direction:column}.error-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%}}"]})};export{T as ErrorComponent};